<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AT89C51雙機通信C程序

          AT89C51雙機通信C程序

          作者: 時間:2016-11-11 來源:網(wǎng)絡 收藏
          1. /***********************************************
          2. 文件名:8051串口發(fā)送
          3. 描 述:串口發(fā)送函數(shù) void Uart_sent(char uart_ch)
          4. 握手協(xié)議,主機發(fā)送AA,收到BB
          5. 時 間:2011年3月1日
          6. 【 】:羅志勇
          7. ************************************************/
          8. #include
          9. voiduart_init(void)// X = 256 - f*2(SMOD+1)/384*BAUD
          10. {
          11. SCON=0x50;//REN=1允許串行接受狀態(tài),串口工作模式1
          12. TMOD|=0x20;//定時器工作方式2
          13. PCON|=0x80;
          14. //TH1 = 0xFD; //baud*2 /* reload value 19200、數(shù)據(jù)位8、停止位1。效驗位無 (11.0592)
          15. TH1=0xF3;// //baud*2 /* 波特率4800、數(shù)據(jù)位8、停止位1。效驗位無 (12M)
          16. TL1=0xF3;
          17. TR1=1;
          18. }
          19. voidUart_Send(charuart_chm)//發(fā)送字符
          20. {
          21. TI=0;
          22. SBUF=uart_chm;
          23. while(TI==0);// 等特數(shù)據(jù)傳送(TI發(fā)送中斷標志)
          24. TI=0;// 清除數(shù)據(jù)傳送標志
          25. }
          26. voidUart_sent(charuart_ch)
          27. {
          28. /*握手程序(主機發(fā)送AA,從機回答B(yǎng)B)*/
          29. do{
          30. SBUF=0xAA;//發(fā)送聯(lián)絡信號
          31. while(TI==0);
          32. TI=0;//清除發(fā)送標志
          33. while(RI==0);//等待回答
          34. RI=0;//清除接收標志
          35. }while((SBUF^0xBB)!=0);//有誤,繼續(xù)聯(lián)絡
          36. Uart_Send(uart_ch); //發(fā)送字符函數(shù)
          37. }
          38. voidmain(void)
          39. {
          40. uart_init();//初始化串口
          41. while(1)
          42. {
          43. Uart_sent(P1);
          44. }
          45. }
          46. /***********************************************
          47. 文件名:8051串口接收(中斷)
          48. 描 述:使用串口中斷接收數(shù)據(jù)
          49. 握手協(xié)議,從機收到AA,發(fā)送BB
          50. 時 間:2011年3月1日
          51. 【 】:羅志勇
          52. ************************************************/
          53. #include
          54. charuart_chm;
          55. voiduart_init_r(void)// X = 256 - f*2(SMOD+1)/384*BAUD
          56. {
          57. SCON=0x50;//REN=1允許串行接受狀態(tài),串口工作模式1
          58. TMOD|=0x20;//定時器工作方式2
          59. PCON|=0x80;
          60. //TH1 = 0xFD; //baud*2 /* reload value 19200、數(shù)據(jù)位8、停止位1。效驗位無 (11.0592)
          61. TH1=0xF3;// //baud*2 /* 波特率4800、數(shù)據(jù)位8、停止位1。效驗位無 (12M)
          62. TL1=0xF3;
          63. TR1=1;
          64. ES=1;//開串口中斷
          65. EA=1;// 開總中斷
          66. }
          67. voidUart_receive(void)
          68. {
          69. while(RI==0);// 接收數(shù)據(jù)
          70. RI=0;//清除RI接受中斷標志
          71. P1=SBUF;//讀出數(shù)據(jù)
          72. }
          73. voidmain(void)
          74. {
          75. uart_init_r();
          76. while(1)
          77. {
          78. }
          79. }
          80. voidint_Uart_resive(void)interrupt 4
          81. {
          82. /*握手程序(主機發(fā)來AA,從機回答B(yǎng)B) */
          83. do{
          84. while(RI==0);//等待回答
          85. RI=0;//清除接收標志
          86. }while((SBUF^0xAA)!=0);//判斷是否可正常接收
          87. SBUF=0xBB;//發(fā)送聯(lián)絡信號
          88. while(TI==0);
          89. TI=0;
          90. Uart_receive();//接收函數(shù)
          91. }


          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();