久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 52單片機雙機通信Proteus仿真程序 [打印本頁]

作者: 杜鳴磊    時間: 2020-5-18 08:17
標題: 52單片機雙機通信Proteus仿真程序
在PROTEUS上采用雙單片機A和B,采取TXD連接另一個單片機的RXD,建立一對一通信A外接4個按鍵,編號1~3;B外接一個數碼管,平時顯示0。 A按鍵后,B顯示相應鍵號0.3秒;

進階要求1:A的TXD與B的RXD間加入按鍵開關K,通過K的ON/OFF來控制通信連接的有效和無效;
                  運行中,K由ON改為OFF,通信無效時,B不響應A的按鍵表示通信未建立;

進階2:通信無效時,B顯示9,表示通信無效;運行中K由OFF改為ON,系統自動回復正常
1,首先考慮資源分配
波特率設置要用定時器1自動重裝載模式。
定時器1用于產生10ms中斷
定時器2用來產生20ms中斷
故可選用89c52單片機
2:主函數完成3個定時器初始化函數,之后在while(1)休眠或啥也不干。
3:定時器2中斷服務函數:
自動重裝載模式不需要重置本定時器
按鍵掃描函數獲取鍵號,若無按鍵鍵號為0
重置并啟動超時定時器(tim0)
根據S_OK狀態點亮LED(S_OK=0時點亮)
4:接收中斷模塊
S_OK置1
關閉超時定時器
5:10ms定時中斷模塊
S_OK=0
關閉超時定時器
接收B板模塊
同樣需要3個定時器
1:main函數中三個定時器初始化
2:接收中斷
直接顯示鍵號,開啟0.3s定時器
重置啟動超時定時器
發送信息給A板
3:0.3s定時中斷
關閉本定時器
顯示0
4:超時中斷函數
S_OK=0
數碼管顯示9
關閉本定時器
關閉0.3s定時器

發送A板主函數文件程序示例。完整程序和proteus圖見附件。


單片機源程序如下:
  1. #include <reg52.h>
  2. #include"init.h"

  3. //sfr T2MOD=0XC9;


  4. void send(uchar num); //聲明子函數的時候要加分號
  5. void delay(int z)        //晶振11.592.延時z毫秒
  6. {
  7.   uint x,y;
  8.   for(x=z;x>0;x--)
  9.   for(y=110;y>0;y--);
  10. }
  11. void key()
  12. {
  13.         if(key3==0)
  14.         flash=4;
  15.         else if(key2==0)
  16.         flash=3;
  17.         else if(key1==0)
  18.         flash=2;
  19.         else if(key0==0)
  20.         flash=1;
  21.         else
  22.         flash=0;

  23. }







  24. void send(uchar num)
  25. {
  26.   SBUF=num;      //把發送的內容寫進sbuf,自動發送 ,發送數據時TI為0,!0為1
  27.   while(!TI);   //!邏輯非,發送完數據,發送完數據時TI為1.!1為0,停止發送
  28. // led=1;
  29.   TI=0;             //TI需要軟件清零
  30. }

  31. void tim0() interrupt 1//超時中斷
  32. {
  33.          static unsigned char count;
  34.                                            //定義變量,記錄中斷次數
  35. //         TH0=0xd8;  
  36. //          TL0=0xf0;           //定時器重置,一幀數據一來一回兩個多毫秒,定時10ms夠了
  37.         S_OK=0;                           //進入超時中斷,說明通信已經中斷
  38.         led=1;
  39.         led2=1;
  40.         TR0=0;                           //通信已經中斷,關閉超時定時器        
  41. //        count++;
  42. //        if(count==50)
  43. //         {
  44. //        led2=~led2;
  45. //        count=0;
  46. //        }
  47. }
  48. void receive() interrupt 4        
  49.                                                  //串行接收和發送中斷           
  50. {
  51.      if(RI==1)
  52.          {
  53.          S_OK=1;                        //進入接收中斷說明通信正常   
  54.      RI = 0;                        //RI要手動清0
  55.          led=0;
  56.          led2=0;
  57.          TR0=0;                                //關閉超時定時器
  58.          }
  59.          if(TI==1)
  60.          {
  61.                 TI=0;
  62. //                TH0=0xd8;  
  63. //          TL0=0xf0;  
  64. TH0=0xec;  
  65.           TL0=0x78;
  66.         TR0=1;   
  67.          }
  68.   }
  69. void timer_T2() interrupt 5       //中斷函數
  70. {
  71.     static unsigned char count1;     //定義變量,記錄中斷次數
  72.     TF2=0;                      //軟件清零定時器2溢出標志位
  73.         
  74.     count1++;
  75.         
  76.          
  77.          
  78.                                    //重置并啟動超時定時器
  79.                                          //根據S_OK點亮led3
  80.     if(count1==3)      
  81.     {
  82.     key();                           //掃描按鍵
  83.         SBUF=flash;       //發送一次鍵號key();                           //掃描按鍵
  84.         
  85.         count1=0;         //清零
  86.       
  87.     }
  88. }







  89. void main()
  90. {
  91.    //待運行一次的初始化函數
  92.         tim2init();
  93.         tim1init() ;
  94.            tim0init();
  95.         TR0=0;
  96.         led=0;
  97.         led2=0;
  98.         led3=0;
  99.           while(1)
  100.            {
  101. //                    send(flash);
  102. //           if(S_OK==0)
  103. //           led3=1;
  104. //           else
  105. //           led3=0;
  106.                   //key();   

  107.                   
  108.            }
  109. }
復制代碼
全部資料51hei下載地址:
程序源碼和原理圖.rar (105.97 KB, 下載次數: 33)






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91精品国产综合久久香蕉922 | 日韩精品在线一区二区 | 视频一区二区中文字幕日韩 | 午夜欧美一区二区三区在线播放 | 欧美爱爱视频 | 成人免费在线观看视频 | 国产精品免费一区二区三区 | 日韩综合网 | 欧美一区二区三区免费在线观看 | 久久久精品网站 | 神马影院一区二区三区 | 国产午夜精品一区二区 | 久久精品a级毛片 | 秋霞a级毛片在线看 | 黄色免费看 | 国产在线www | 免费看黄色片 | 不卡一区二区三区四区 | 久久性色 | 久久国内精品 | 国产精品一区二区视频 | 国产精品99久久久久 | 中文字幕不卡 | 97视频成人 | 中文字幕在线一区 | 日产精品久久久一区二区福利 | 懂色一区二区三区免费观看 | 亚洲精品国产电影 | 91精品国产综合久久精品图片 | 亚洲午夜在线 | 日韩高清中文字幕 | 密室大逃脱第六季大神版在线观看 | 九色国产 | 日韩av在线一区二区 | a免费视频 | 欧美日产国产成人免费图片 | www国产成人免费观看视频 | 国产成人精品免高潮在线观看 | 色妞av| av中文网 | 亚洲精品中文字幕中文字幕 |