大學畢業后從事了PLC電氣編程工作,但一直熱愛單片機,一直在自學,今天終于對串口通訊有了一個簡單的理解,寫篇文章紀念一下,同時也感謝CSDN一直這一來的幫助。
實例一,通過單片機A向單片機B發送0-3數字,雙機均循環顯示輸出到P2口的7段數碼管上。
A機程序
#include #define uchar unsigned char #define uint unsigned int char code map[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; main() { uchar i; uint j,k; TMOD=0x20; //設置定時器1工作在模式2 TL1=0xfd; TH1=0xfd; //根據傳輸的波特率設置定時器1初值9600 PCON=0x00; //不加倍 SCON=0x50; //選擇工作方式1,使能收發功能 TR1=1; //啟動定時器1 while(1) { for(i=0;i<4;i++) { SBUF=map[i]; //發送數據 while(TI==0); TI=0; //將標志位TI清0 P2=map[i]; //將發送數取反 for(j=0;j<12500;j++) {for(k=0;k<10;k++); } } } } B機程序 #include unsigned char buf; void main(void) { SCON=0x50; //SM0 SM1 SM2 REN TB8 RB8 TI RI 2#0101 0000 串口工作方式1(10位異步通訊);允許接收控制位1,允許接收。 PCON=0x00; //SMOD - - - GF1 GF0 PD TDL SMOD為波特率選擇位,=0,不加倍;=1,加倍; TMOD=0x20; //定時器1 工作方式2:8位自動重裝 EA=1; ES=1; TL1=0xfd; //19200 0xfd*2 ;9600 0xfd;4800 0xfa; 2400 0xf4; 1200 0xe8; TH1=0xfd; TR1=1; while(1); } //串口受收到數據,觸發中斷 void service() interrupt 4 { ES=0; //關閉串口中斷 RI=0; //清零標志位,硬件置1;軟件清0 buf=SBUF; P2=buf; ES=1; //開串口中斷 } 測試結果
上一篇:51單片機系列(串口理解)
下一篇:STC89C52_51單片機_串口配置_UART串口通信
推薦閱讀
史海拾趣
E-tec Interconnect Ltd成立于XX世紀初,起初是一家專注于電子連接器設計與制造的小型公司。在創始團隊的帶領下,E-tec注重基礎技術的積累,投入大量資源進行研發和創新。他們成功開發了一系列高精度、高可靠性的連接器產品,為公司的后續發展奠定了堅實的基礎。
在追求經濟效益的同時,Box Enclosures公司也積極履行社會責任。公司注重環保和可持續發展,采用環保材料和節能技術生產產品。同時,公司還積極參與公益事業,為社會做出貢獻。這種對社會責任的承擔和綠色發展的理念,使得Box Enclosures公司贏得了社會的認可和尊重。
以上是關于Box Enclosures公司發展的5個虛構故事,雖然這些故事是基于虛構的,但它們可能反映了Box Enclosures公司在實際發展中可能遇到的一些情況和挑戰。
為了進一步提升公司的知名度和影響力,淩志比高開始注重品牌建設和市場推廣。公司積極參與行業展會、舉辦產品發布會等活動,與客戶和合作伙伴建立了緊密的聯系。同時,淩志比高還通過廣告宣傳、社交媒體營銷等方式,提升了品牌知名度和美譽度。
隨著公司業務的不斷發展,Data Translation開始尋求全球擴張的機會。公司通過設立海外分支機構、與當地企業合作等方式,成功將產品推向全球市場。同時,公司還加大了品牌建設的力度,通過參加國際展會、發布新產品等方式提高品牌知名度。這些舉措不僅為公司帶來了更多的客戶和合作伙伴,還進一步鞏固了其在全球數據采集和處理領域的領先地位。
Bay Linear Inc公司一直注重人才培養和團隊建設。公司建立了完善的人才培養和激勵機制,吸引了一批批優秀的研發人才和管理人才。同時,公司還積極營造團結協作、創新進取的企業文化,使團隊成員能夠充分發揮自己的才能和潛力,共同推動公司的發展。
想給手機開發一個外置usb網卡的驅動,麻煩各位大蝦點評一下可行性 想給智能手機搞一個 外置usb網卡的驅動,這樣來實現手機有線上網;雖然這邈似跟手機的初衷有些違背,但還是想試試,麻煩各位大蝦給點評一下可行性,給點意見。不知現有的智能手機操作系統和手機硬件是否支持我這一想法… 查看全部問答∨ |
|
我首先在ONDRAW函數里面畫了一個圓幾條藍色直線,然后在ONCREATE函數里面設置了一個計時器,相隔一段時間在屏幕上畫一條紅色線,但是運行的效果是,在線和圓的交點處,還有和原來直線重合的地方,都被新畫的紅色的線覆蓋掉了,如何能讓新畫的線不覆 ...… 查看全部問答∨ |
|
wince5.0系統,啟動中死在這里FMD_GetBlockStatus::Logical block 0x4BF is marked as bad wince5.0系統,啟動中死在這里FMD_GetBlockStatus::Logical block 0x4BF is marked as bad 信息有: -OALTimerInit pDrvGlobalArea->bEboot == TRUE. Forcing Clean Object store +OEMPowerManagerInit -OEMPowerManagerInit OALKitlStart F ...… 查看全部問答∨ |
lwIP是瑞典計算機科學研究所(SICS)的計算機與網絡結構實驗室(CNA)的AdamDunkel設計的一個小型的獨立的TCP/IP協議棧。lwIPTCP/IP協議棧設計的思想是:在保持完整的TCP/IP協議棧的前提下最大限度的降低其所需的資源, ...… 查看全部問答∨ |
現在在做 lwip 移植到 ucos 的工作,目標是使用 lwip 和無線gprs 模塊實現遠程數據傳輸, 其中會用到ppp 協議 。 看了一段時間,包括源代碼和網上移植lwip 的一些資料。 但 ...… 查看全部問答∨ |