国内做焊接机器人平台网站,找外贸客户的网站,福田蒙派克6座二手值多少钱,wordpress主题插件本章重点学习结构和联合。
//结构和联合应用举例
#include REG51.h //包含头文件REG51.h,使能51内部寄存器;
#include stdio.h //包含头文件stdio.h //_getkey();从串口读入一个字符; //putchar();向串口发送一个字节; //printf();向串口发送一串字节;
/…本章重点学习结构和联合。
//结构和联合应用举例
#include REG51.h //包含头文件REG51.h,使能51内部寄存器;
#include stdio.h //包含头文件stdio.h //_getkey();从串口读入一个字符; //putchar();向串口发送一个字节; //printf();向串口发送一串字节;
///
//函数功能:初始化串口,设置波特率为1200bps16MHz,使能接收,使用8位UART;
void Serial_Port_Initialization()
{ SCON0x50; //串行控制寄存器: SM0,SM1,SM2,REN,TB8,RB8,TI,RI //SM1:SM001,选择方式1,SM20,表示非多机通讯,8-bit UART; //REN1,使能接收; TMOD|0x20; //定时器方式控制寄存器:GATE1,C/T1,M11,M10,GATE0,C/T0,M01,M00 //GATE0,TR置1便可以启动Timer;GATE1,TR置1,且INT脚输入高电平, //才可以启动Timer; //M11:M1010,选择方式2,8位自动重装载; TH1221; //TH1: reload value for 1200 baud 16MHz TR11; //启动Timer1; TI1; //发送UART的第一个字节,为下次发送做准备;
} union dis{ unsigned int value; unsigned char value_high; unsigned char value_low; };
union dis display; //下面定义结构和联合
union test{ unsigned int value; struct{ unsigned char value_high; unsigned char value_low; }DISP; };
union test TT; void main(void)
{ unsigned char temp_value; Serial_Port_Initialization(); //设置波特率为1200bps16MHz,使能接收,使用8位UART; for(;;) { display.value0x2010; printf(display.value%#x\n,display.value); //输出display.value0x2010 printf(display.value_high%#bx\n,display.value_high); //输出display.value_high0x20 printf(display.value_low%#bx\n,display.value_low); //输出display.value_low0x20 //说明display.value_high和display.value_low具有相同的地址; display.value_high0x40; display.value_low0x30; printf(display.value%#x\n,display.value); //输出display.value0x3010 putchar(\n); TT.DISP.value_high0x90; TT.DISP.value_low0x80; printf(TT.value%#x\n,TT.value); //输出TT.value0x9080 TT.value0x7060; printf(TT.value%#x\n,TT.value); //输出TT.value0x7060 temp_valueTT.DISP.value_high; printf(TT.DISP.value_high%#bx\n,temp_value); //输出TT.DISP.value_high0x70 temp_valueTT.DISP.value_low; printf(TT.DISP.value_low%#bx\n,temp_value); //输出TT.DISP.value_high0x60
}
}