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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機通信Proteus仿真實驗

[復制鏈接]
跳轉到指定樓層
樓主
本實驗是設置八個按鍵在上位機按下,下位機接收到數據后執行。分別控制八個LED燈,內部有介紹一些關于ASCII可顯示字符的使用。在低一個顯示字符我改動原來是1=31的一個值。改成/=2F...很好理解的,自己多試試改別的也可以。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /********************************************************************
  2. 函數功能:往串口發送一字節數據(可通過超級終端顯示出來,超級終端波特率選為9600)。
  3.             超級終端設置好后,每按下一次S2/S3/S4/S5鍵顯示abcd,松開后均會在超級終端上顯示一個字母"a"。
  4.             入口參數:d: 要發送的字節數據。
  5. ********************************************************************/


  6. #include <reg52.h>
  7. #define jingzhen     11059200UL     /*使用22.1184M晶體*/
  8. #define botelv   9600UL                      /*波特率定義為9600*/

  9. //定義待顯示字符abcd
  10. unsigned char zifua='/';                        //待顯示字符a。
  11. unsigned char zifub='2';                        //待顯示字符。
  12. unsigned char zifuc='3';                        //待顯示字符。
  13. unsigned char zifud='4';                        //待顯示字符。
  14. unsigned char zifue='5';                        //待顯示字符。
  15. unsigned char zifuf='6';                        //待顯示字符。
  16. unsigned char zifug='7';                        //待顯示字符。
  17. unsigned char zifuh='8';                        //待顯示字符。

  18. volatile unsigned char sending;

  19. //設置八個獨立按鍵
  20. sbit s1=P2^0;        //按鍵
  21. sbit s2=P2^1;        //按鍵
  22. sbit s3=P2^2;        //按鍵
  23. sbit s4=P2^3;        //按鍵
  24. sbit s5=P2^4;        //按鍵
  25. sbit s6=P2^5;        //按鍵
  26. sbit s7=P2^6;        //按鍵
  27. sbit s8=P2^7;        //按鍵

  28. //設置for延時函數
  29. void delay(unsigned char i)
  30. {
  31.         unsigned char j,k;
  32.         for(j=i;j>0;j--)
  33.                 for(k=90;k>0;k--);
  34. }


  35. void init(void)                                //串口初始化
  36. {
  37. EA=0; //暫時關閉中斷
  38. TMOD&=0x0F;  //定時器1模式控制在高4位
  39. TMOD|=0x20;    //定時器1工作在模式2,自動重裝模式
  40. SCON=0x50;     //串口工作在模式1
  41. TH1=256-jingzhen/(botelv*12*16);  //計算定時器重裝值
  42. TL1=256-jingzhen/(botelv*12*16);
  43. PCON|=0x80;    //串口波特率加倍
  44. ES=1;         //串行中斷允許
  45. TR1=1;        //啟動定時器1
  46. REN=1;        //允許接收
  47. EA=1;         //允許中斷
  48. }

  49. //發送一個字節的數據,形參d即為待發送數據。
  50. void send(unsigned char d)                  
  51. {
  52. SBUF=d; //將數據寫入到串口緩沖
  53. sending=1;         //設置發送標志
  54. while(sending); //等待發送完畢
  55. }


  56. void main()
  57. {
  58.         init();
  59.         while(1)
  60.         {
  61.                 if(s1==0)            //如果按下S2
  62.                 {
  63.                 delay(20);         //延時
  64.                 if(!s1)           //判斷是否按下
  65.                    {
  66.                    while(!s1);           //循環檢測S2是否按下并執行下一條          
  67.                      send(zifua);    //發送a
  68.                        }
  69. //                else(s1==1);
  70.                 }

  71.           
  72.                 if(s2==0)
  73.                 {
  74.                 delay(20);
  75.                 if(!s2)
  76.                     {
  77.                      while(!s2);                  
  78.                      send(zifub);
  79.                     }
  80.                 }
  81.             

  82.                 if(s3==0)
  83.                 {
  84.                 delay(20);
  85.                 if(!s3)
  86.                     {
  87.                     while(!s3);                  
  88.                     send(zifuc);
  89.                     }
  90.                 }


  91.                  

  92.                 if(s4==0)
  93.                 {
  94.                 delay(20);
  95.                 if(!s4)
  96.                    {
  97.                     while(!s4);                  
  98.                     send(zifud);
  99.                  }
  100.                 }

  101.                 if(s5==0)
  102.                 {
  103.                 delay(20);
  104.                 if(!s5)
  105.                    {
  106.                     while(!s5);                  
  107.                     send(zifue);
  108.                  }
  109.                 }

  110.                 if(s6==0)
  111.                 {
  112.                 delay(20);
  113.                 if(!s6)
  114.                    {
  115.                     while(!s6);                  
  116.                     send(zifuf);
  117.                  }
  118.                 }

  119.                 if(s7==0)
  120.                 {
  121.                 delay(20);
  122.                 if(!s7)
  123.                    {
  124.                     while(!s7);                  
  125.                     send(zifug);
  126.                  }
  127.                 }

  128.                 if(s8==0)
  129.                 {
  130.                   delay(20);
  131.                  if(!s8)
  132.                    {
  133.                     while(!s8);                  
  134.                     send(zifuh);
  135.                  }
  136.                 }




  137.         }
  138. }


  139. void uart(void) interrupt 4        //串口發送中斷
  140. {
  141. if(RI)    //收到數據
  142. {
  143.   RI=0;   //清中斷請求
  144. }
  145. else      //發送完一字節數據
  146. {
  147.   TI=0;
  148.   sending=0;  //清正在發送標志
  149. }
  150. }
復制代碼

所有資料51hei提供下載:
串口通信模擬.zip (63.51 KB, 下載次數: 22)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:634277 發表于 2019-11-2 21:08 | 只看該作者
感謝共享。。。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美福利 | 精品一二三区 | 国产精品免费播放 | 亚洲欧美国产精品久久 | 欧美日韩网站 | 国产精华一区 | 一区二区三区视频在线免费观看 | 亚洲综合视频 | 欧美国产视频一区二区 | 亚洲精品日韩一区二区电影 | 欧美日韩国产一区二区三区 | 狠狠色狠狠色综合日日92 | 国产精品亚洲成在人线 | 黄色毛片免费 | 国产一区二区三区在线 | 荷兰欧美一级毛片 | 色伊人 | 国产99久久精品一区二区永久免费 | 欧美日韩在线观看一区二区三区 | 三级成人在线观看 | h片在线看| 欧美一级二级三级视频 | 日韩欧美在线免费观看视频 | 国产成人99久久亚洲综合精品 | 亚欧洲精品在线视频免费观看 | 国产色婷婷精品综合在线播放 | 欧美成人二区 | 欧美一区二区三区 | 欧美日韩国产精品激情在线播放 | 国产精品日韩欧美一区二区三区 | 国产精品视频yy9299一区 | 欧美午夜视频 | 91在线观看 | 老头搡老女人毛片视频在线看 | 精品国产伦一区二区三区观看体验 | 欧美国产日韩精品 | 91tv在线观看 | 一区二区亚洲 | 国产特级毛片 | 欧美国产日韩在线观看成人 | 婷婷久久网 |