新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機———串口通訊的疑惑

        51單片機———串口通訊的疑惑

        作者: 時間:2016-11-20 來源:網絡 收藏
        /*程序的功能是在T1定時器工作方式2下使用串口工作方式1實現串口通訊
        即PC機發送一串數據,51單片機將數據反饋回來。使用回車符作為一串字符串的結束標志總結:我是參照郭天祥51單片機寫的,這個程序寫得還是有點疑惑,就是下面在接受完數據后一定要先將串口中斷關閉(即ES = 0),然后再進行處理,如果不關閉中斷的話,反饋回PC機的數據就是I getn*/#include//#define DEBUG#define u8 unsigned char#define u16 unsigned int#define MAXSIZE 64u8 code table[] = "I get ";u8 flag,index,i,Len;u8 Buff[MAXSIZE];void Configuration(){TMOD = 0x20;TH1 = 0xF3;							//設置波特率為4800TL1 = 0xF3;TR1 = 1;SCON = SCON & (0x3<<6);	SCON = SCON | (0x01<<6) | (1<<4);	//設置串口工作模式和使能接受PCON = PCON | (1<<7);				//設置波特率加倍,即最終的波特率為9600EA = 1;								//開啟中斷ES = 1;}void Recieve() interrupt 4{RI = 0;Buff[index++] = SBUF;#ifdef DEBUGSBUF = Buff[index-1];while(!TI);TI = 0;#endifif (Buff[index-1]==n )			//這一串數據結束{Len = index;index = 0;flag = 1;	}}void main(){Configuration();while(1){if (1==flag)					//判斷是否有數據到來{ES = 0;						//要關閉中斷,否則程序有問題for(i=0;i<6;i++){SBUF = table[i];while(!TI);				//等待數據發送完畢TI = 0;}for(i=0;i

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

        關鍵詞: 51單片機串口通

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 常州市| 东辽县| 乌拉特前旗| 堆龙德庆县| 稻城县| 杭锦旗| 湖南省| 贵州省| 扶风县| 东港市| 汾西县| 虹口区| 汶上县| 宜春市| 卢湾区| 长子县| 启东市| 华亭县| 青河县| 阿克苏市| 盐津县| 桐城市| 安泽县| 略阳县| 汉沽区| 贵德县| 临颍县| 河东区| 罗山县| 武邑县| 九江县| 巴青县| 兴城市| 诸城市| 宜良县| 木里| 武威市| 武川县| 达尔| 和顺县| 高清|