美乐乐网站首页如何修改,做网站的空间和服务器,cn域名后缀网站,唐山市城乡建设局网站串行口工作之前#xff0c;应对其进行初始化#xff0c;主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下#xff1a;
确定T1的工作方式#xff08;编程TMOD寄存器#xff09;计算T1的初值#xff0c;装载TH1\TL1启动T1#xff08;编程TCON中的TR1位…串行口工作之前应对其进行初始化主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下
确定T1的工作方式编程TMOD寄存器计算T1的初值装载TH1\TL1启动T1编程TCON中的TR1位确定串行口控制编程SCON寄存器
串行口在中断方式工作时要进行中断设置编程IE、IP寄存器中断优先级通常不设置 #include reg52.htypedef unsigned int u16;
typedef unsigned char u8;void UsartInit()
{//TMOD控制T1、T0寄存器工作方式TMOD0X20; // 0010 0000 选择定时器1工作方式2// 设置波特率12MHZ晶振、4800波特率、定时器方式2、SMOD1波特率倍频初值F3HTH10XF3;TL10XF3//PCON不能位操作设置SMODPCON0X80;//TCON寄存器启动定时器TR11;//SCON寄存器串行口控制SCON0X50; // 0101 0000//IE寄存器打开串口中断ES1;EA1;
}void main()
{UsartInit();while(1);
}void Usart() interrupt 4
{u8 receiveData; //定义一个变量用于保存数据receiveDataSBUF; //读取缓冲器里面的数据//由内部硬件使RI置1需要软件把RI清零RI0;// 发送数据SBUFreceiveData;while!TI; //发送完成通过硬件置1取反跳出循环TI0; //发送完成软件清0
}