新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機UART通信程序

        51單片機UART通信程序

        作者: 時間:2016-11-30 來源:網絡 收藏
        用到的特殊寄存器:

        本文引用地址:http://www.104case.com/article/201611/323612.htm

        SM0 SM1:工作方式控制 01 工作方式1 1起始位 8數據位 1停止位 波特率可變
        TI:發送中斷位 TI=1 發送完成,軟件置0
        RI:接收中斷位 RI=1 接收完成,軟件置0
        REN:接收使能
        SBUF:緩沖區

        PCON最高位SMOD 置1 波特率加倍,0正常

        定時器使用模式2 ,10 8位自動增補

        代碼如下:#include typedef 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;}}效果演示:





        評論


        技術專區

        關閉
        主站蜘蛛池模板: 军事| 芷江| 鄂托克前旗| 中方县| 盐山县| 兴安盟| 台南市| 筠连县| 东乌珠穆沁旗| 松滋市| 博客| 长葛市| 碌曲县| 石门县| 靖边县| 庆元县| 武陟县| 岐山县| 卢龙县| 鄂托克前旗| 隆回县| 五指山市| 稷山县| 巨野县| 晋江市| 临清市| 柘城县| 上思县| 孝感市| 沅江市| 济源市| 营口市| 沙田区| 龙门县| 桐城市| 固原市| 宜黄县| 双柏县| 淮南市| 电白县| 栾城县|