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

標題: 單片機Proteus仿真主從機串口通信通知流水燈與程序 [打印本頁]

作者: lzh10620    時間: 2020-6-23 08:16
標題: 單片機Proteus仿真主從機串口通信通知流水燈與程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. **********************************************************************
  2. *                         頭文件包含
  3. **********************************************************************
  4. */
  5. #include <reg52.h>
  6. #include <intrins.h>
  7. /*
  8. **********************************************************************
  9. *                         本地宏定義
  10. **********************************************************************
  11. */
  12. typedef unsigned char u8;                 // 重命名類型u8簡化代碼編寫
  13. typedef unsigned int u16;


  14. sbit key= P2^0;
  15. /*
  16. **********************************************************************
  17. *                         本地全局變量
  18. **********************************************************************
  19. */

  20. /*
  21. **********************************************************************
  22. *                         函數原型聲明
  23. **********************************************************************
  24. */
  25. void UartInit(void);
  26. void UartSendByte(u8 c);

  27. /*********************************************************************
  28. * 函 數 名       : main
  29. * 函數功能                 : 主函數
  30. * 參數列表       : 無
  31. * 函數輸出             : 無
  32. *********************************************************************/
  33.   void delay(unsigned int x)
  34. {                              
  35.         unsigned int i,j;
  36.         for(i = x; i > 0; i --)
  37.                 for(j = 114; j > 0; j --);
  38. }
  39. unsigned char flag=0;
  40. void main(void)
  41. {
  42.           unsigned char j = 0;
  43.         UartInit();
  44.         while(1)
  45.         {
  46.         if(key==0)
  47.         {
  48.           delay(5) ;
  49.            if(key==0)
  50.            {
  51.              while(key==0) ;
  52.                  if(flag==0) {flag=1;UartSendByte(1);}
  53.                  else {flag=0;UartSendByte(0);}
  54.            }
  55.          }
  56.            if(flag==1 )
  57.            {
  58.                    P1 = ~(0x80 >> j++);
  59.                    delay(200);
  60.                    if(j == 8)
  61.                    {
  62.                         j = 8;
  63.                         flag=0;
  64.                }
  65.                 }
  66.                 else if(flag==2 )
  67.                 {
  68.                           P1 = ~(0x01 << j++);                            //00000001 00000010 11111101
  69.                         delay(200);
  70.                     if(8 == j)                                   
  71.                     {         
  72.                           j = 8;
  73.                           flag=0;                              
  74.                     }
  75.                 }
  76.                 else
  77.                 {
  78.                     j=0;
  79.                          P1 =0xff;
  80.                 }
  81.         }
  82. }

  83. /*********************************************************************
  84. * 函 數 名       : UartInit
  85. * 函數功能                 : 串口初始化為2400波特率,8位數據位
  86. * 參數列表       : 無
  87. * 函數輸出             : 無
  88. *********************************************************************/
  89. void UartInit(void)
  90. {
  91.     TMOD = 0x20;                // T1設置為8位自動重裝載定時器                       
  92.     SCON = 0x50;                // 串口工作在模式1:8位UART波特率可變,且允許接收
  93.     TH1 = 0xE6;                        // 單片機小精靈V1.3算出的2400波特率且波特率
  94.     TL1 = TH1;                        // 加倍時的定時器設置值。
  95.     PCON = 0x80;                // 設置為波特率加倍
  96.         EA = 1;                                // 開總中斷
  97.         ES = 1;                            // 開串口中斷
  98.         TR1 = 1;                    // 定時器1開啟計數
  99. }


  100. /*********************************************************************
  101. * 函 數 名       : UartSendByte
  102. * 函數功能                 : 通過串口發送1字節數據給外部設備
  103. * 參數列表       : c - 待發送的1字節數據
  104. * 函數輸出             : 無
  105. *********************************************************************/
  106. void UartSendByte(u8 c)
  107. {
  108.     SBUF = c;
  109.     while (!TI);
  110.     TI = 0;
  111. }


  112. /*********************************************************************
  113. * 函 數 名       : UartIsr
  114. * 函數功能                 : 串口的中斷處理程序
  115. * 參數列表       : 無
  116. * 函數輸出             : 無
  117. *********************************************************************/
  118. void UartIsr(void) interrupt 4        // 注意串口中斷的編號是4
  119. {
  120.         u8 c = 0;                                    // 臨時變量用于存儲串口中斷接收的字符

  121.     if (RI)                                                // 串口接收中斷
  122.     {
  123.         RI = 0;
  124.         //add your code here!
  125.                 c = SBUF;                                // 通過串口接收外部發送的字符
  126.                 if(c==1)
  127.                 {
  128.                   flag=2;
  129.                 }
  130.                 else
  131.                 {
  132.                 flag=0;
  133.                 }
  134.         //        UartSendByte(c + 1);        // 加1后回發出去
  135.     }
  136.     else                                                 // 串口發送中斷
  137.         TI = 0;                                        // if else中如果只有1句代碼則可不加大括號
  138. }


復制代碼



全部資料51hei下載地址:
主從機串口通信通知流水燈.rar (177.01 KB, 下載次數: 26)






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品久久久久久久 | 日日干日日操 | 欧美日本韩国一区二区 | 亚洲一区二区久久久 | 欧美综合一区二区 | 91一区二区在线观看 | 成人乱人乱一区二区三区软件 | 天天影视网天天综合色在线播放 | 久久国产精品-国产精品 | 精品av | 亚洲综合色视频在线观看 | 久久福利电影 | 四虎影院在线播放 | 色综合激情 | 午夜电影福利 | 成人精品视频 | www视频在线观看 | 日韩区 | 日韩快播电影网 | 亚洲 欧美 精品 | 亚洲va欧美va天堂v国产综合 | 91在线视频播放 | 日本三级全黄三级a | 农村黄性色生活片 | 亚洲三区视频 | 欧美一级大片免费观看 | 欧美激情啪啪 | 国产亚洲精品久久久久久豆腐 | 午夜91| 99色综合 | 欧美国产激情二区三区 | 亚洲视频一区二区三区四区 | 日韩久久久久久久 | 中文字幕 在线观看 | 在线免费观看日本视频 | 亚洲一区二区久久 | 国产精品成人在线播放 | 乳色吐息在线观看 | 九九热这里只有精品在线观看 | 国产999精品久久久久久绿帽 | 国产99久久久国产精品 |