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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3049|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜精品一区二区三区在线观看 | 国产成人精品免费视频大全最热 | 国产精品福利在线观看 | 国产日韩一区二区三免费高清 | 成人在线一区二区三区 | 成人在线精品 | 成人免费网站在线 | 美女日批免费视频 | 亚洲国产精品区 | 欧美电影免费观看 | 亚洲精品在线播放 | 人人叉| 国产成人精品免费 | 国产精品精品视频 | 精品欧美一区二区三区 | 五月婷婷 六月丁香 | 国产精品久久久久久久久久久免费看 | 久久久久九九九女人毛片 | 亚洲国产成人久久久 | 国产精品一区二区福利视频 | 亚洲国产精品久久久久 | 国产精品一区二区不卡 | 亚洲网站在线观看 | 福利网址 | 精久久久 | www.亚洲| 好姑娘高清在线观看电影 | 亚洲精品乱码久久久久久久久久 | 欧美日韩看片 | 亚洲人va欧美va人人爽 | 午夜久久久 | 观看毛片 | 黄色一级电影在线观看 | 91亚洲精品在线 | 久久国产综合 | 久久久久网站 | 国产乱码一二三区精品 | 91在线第一页 | 九九热热九九 | 国产精品国产馆在线真实露脸 | 中文亚洲视频 |