您好,登錄后才能下訂單哦!
這篇文章主要介紹了MCU如何自定義引腳做UART串口,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
當(單片機)芯片自帶的UART端口不夠用時,我們可以考慮利用其它引腳作為UART.
串口RS232的數(shù)據(jù)協(xié)議有兩種,我們以PC與8位/32位單片機間比較常用的異步模式為例子講解.
單片機的TXD引腳先發(fā)一個低電平0給對方,然后發(fā)送5–8個位作為數(shù)據(jù),最后發(fā)送1個位奇偶校驗和1個位高電平1作為停止位.
以下例子為波特率9600bps,1個開始位,8個數(shù)據(jù)位,1個停止位 [10位數(shù)據(jù),無奇偶校驗位:9600-8-N-1]
波特率:每秒鐘發(fā)送的字節(jié)位,如果baudrate=9600,也就是說,每發(fā)送1位耗時1000/9600=104uSec
/************************************** 利用51芯片定時器中斷模擬串口信息發(fā)送 優(yōu)點:可以自定義串口引腳,可以實現(xiàn)多個串口 格式: 9600-8-N-1 功能:模擬串口Send *****************************************/ #include <REG52.H> char g_nSendInx=0; char g_nBuff=0; char g_nFlag=0; #define MY_TXD P1_0 //模擬TXD引腳 void Timer0Init(void)//104微秒@11.0592MHz { //1000ms/9600=104.166us //使用這種方案,由于精確性問題,長時間傳輸會偶然出現(xiàn)幾個誤碼 TMOD &= 0xF0; //設置定時器模式 TMOD |= 0x02; //設置定時器模式 TL0 = 0xA0; //設置定時初值 TH0 = 0xA0; //設置定時重載值 TF0 = 0; //清除TF0標志 TR0 = 1; //定時器0開始計時 ET0=1; EA=1; } /****************************** 自定義串口發(fā)送單字符 ******************************/ void MyUart_Send(char ch){ g_nFlag=0; g_nBuff=ch; TR0=1; while(g_nFlag==0); } /****************************** 自定義串口發(fā)送字符串 ******************************/ void MyUart_String(char* str){ int i=0; while(*(str+i)){ i++; g_nFlag=0; g_nBuff=*(str+i); TR0=1; while(g_nFlag==0); } } /* 定時器0中斷服務 */ void Timer0_ISP() interrupt 1{ g_nSendInx++;//發(fā)送模擬第幾位 if(g_nSendInx==1) { MY_TXD=0;//起始位拉低 }else if(g_nSendInx==10) //格式: 9600-8-N-1,完整10個字節(jié) { MY_TXD=1;//停止位拉高 TR0=0; g_nSendInx=0; g_nFlag=1;///發(fā)送完成標志位 }else{ MY_TXD=g_nBuff&0x01;////sbuffer_data g_nBuff>>=1; } } /********************************** 用Timer0定時中斷模擬串口信號 **********************************/ void main (void) { Timer0Init();///定時器初始化,周期為 1000ms/9600=104us MyUart_String("===Welcome,My Uart===\r\n "); MyUart_Send(0x61); MyUart_Send(0x62); MyUart_Send(0x63); while (1); }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“MCU如何自定義引腳做UART串口”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。