51单片机UART通信程序
时间:11-30
来源:互联网
点击:
用到的特殊寄存器:
SM0 SM1:工作方式控制 01 工作方式1 1起始位 8数据位 1停止位 波特率可变
TI:发送中断位 TI=1 发送完成,软件置0
RI:接收中断位 RI=1 接收完成,软件置0
REN:接收使能
SBUF:缓冲区
PCON最高位SMOD 置1 波特率加倍,0正常
定时器使用模式2 ,10 8位自动增补
代码如下:#includetypedef unsigned char uint8;typedef unsigned int uint16;sbit left=P1^2;uint8 message;void delay42ms(void) //误差 -0.217013888898us{unsigned char a,b,c;for(c=118;c>0;c--)for(b=65;b>0;b--)for(a=1;a>0;a--);}void uart_init(){TMOD=0x20; //定时器模式2 自动增补SCON=0x50; //uart方式1 8位TH1=TL1=0xfd; //9600 th= 256-11059200/(12*32*9600)PCON=0x80; //加倍 19200TR1=1;REN=1;ES=1;EA=1;}main(){uart_init();left=0;while(1);}void uart_interrupt() interrupt 4{if(TI){TI=0;}if(RI){RI=0;message=SBUF;REN=0; //接收关闭if(message==a){left=1;delay42ms();left=0; }if(message==c){SBUF=o;while(TI==0);TI=0;SBUF=k;while(TI==0);TI=0;SBUF=!;}REN=1;}}效果演示:
51单片机UART通信程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)