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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3109|回復: 0
打印 上一主題 下一主題
收起左側

單片機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)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 98成人网| dy天堂| 亚洲一区 中文字幕 | 亚洲精品久久久 | a级毛片国产 | 在线91| 国产免费xxx | 免费国产一区 | 天天操天天射综合网 | 国产精品久久久久久一区二区三区 | 日韩国产三区 | 欧美理论在线观看 | 国产伦精品一区二区三区照片91 | 精品一区二区三区在线视频 | 精品视频在线观看 | 毛片综合 | 精精国产视频 | 久久精品一 | 国产精品久久久久久久模特 | 日韩在线一区二区三区 | 久久久久久免费观看 | 久久精品欧美视频 | 亚洲精品一二区 | 国产成人网 | 国产大学生情侣呻吟视频 | 五月免费视频 | 亚洲精品一区二区网址 | 欧美一级在线 | 91综合网| 黄色一级毛片 | 成人精品国产 | 一二三四在线视频观看社区 | 欧州一区二区 | 国产精品一区二区av | 久热精品在线 | 欧美日韩大陆 | 91精品久久久久久久久中文字幕 | 成人精品一区 | 日韩激情在线 | 日韩欧美国产成人一区二区 | 91精品国产91久久久 |