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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ZIGBEE在51單片機上通信,無線路燈控制系統源代碼

[復制鏈接]
跳轉到指定樓層
樓主
通信程序及電路圖


單片機源程序如下:
  1. #include<reg52.h>
  2. #define jingzhen     12000000UL                         //晶振12M         
  3. #define botelv   9600UL                                      //波特率9600
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. volatile unsigned char sending;

  7. sbit key=P3^4;
  8. sbit key1=P3^5;
  9. sbit key2=P3^3;
  10. sbit key3=P3^7;

  11. uchar code table []="the light state";
  12. uchar code open[]="open normal";
  13. uchar code open1[]="open error";
  14. uchar code close[]="close normal";
  15. uchar code close1[]="close error";
  16. unsigned char x[]="1";
  17. unsigned char y[]="2";                       

  18. sbit lcden=P2^6;
  19. sbit lcdrs=P2^4;
  20. sbit rw=P2^5;

  21. uchar num;

  22. void uartinit(void)          //串口初始化                       
  23. {
  24. EA=0;
  25. TMOD&=0x0F;  
  26. TMOD|=0x20;   
  27. SCON=0x50;     
  28. TH1=256-jingzhen/(botelv*12*16);  
  29. TL1=256-jingzhen/(botelv*12*16);
  30. PCON|=0x80;   
  31. ES=1;         
  32. TR1=1;        
  33. REN=1;         
  34. EA=1;         
  35. }

  36. void send(unsigned char d)                  //d為發送的數據
  37. {

  38. SBUF=d;                   //將數據存到SBUF中
  39. sending=1;         
  40. while(sending);   
  41. }

  42. void sendc(unsigned char * pd)        //發送字符串
  43. {
  44. while((*pd)!='\0')    //遇0停止發送
  45. {
  46.   send(*pd);
  47.   pd++;  
  48. }
  49. }

  50. void delay(uint z)
  51. {
  52.         uint x,y;
  53.         for(x=z;x>0;x--)
  54.                 for(y=110;y>0;y--);
  55. }

  56. void write_com(uchar com)
  57. {
  58.         lcdrs=0;
  59.         P0=com;
  60.         delay(5);
  61.         lcden=1;
  62.         delay(5);
  63.         lcden=0;
  64. }

  65. void write_data(uchar date)
  66. {
  67.         lcdrs=1;
  68.         P0=date;
  69.         delay(5);
  70.         lcden=1;
  71.         delay(5);
  72.         lcden=0;
  73. }

  74. void init()
  75. {       
  76.         rw=0;
  77.         lcden=0;
  78.         write_com(0x38);
  79.         write_com(0x0e);
  80.         write_com(0x06);
  81.         write_com(0x01);
  82.         write_com(0x80);
  83. }

  84. void open2()
  85. {
  86.                  init();
  87.            for(num=0;num<15;num++)    //第一屏        light狀態
  88.             {
  89.                   write_data(table[num]);
  90.                     delay(1);
  91.              }
  92.             write_com(0x80+0x40);
  93.                  for(num=0;num<11;num++)    //第二行 亮 正常
  94.              {       
  95.                    write_data(open[num]);
  96.                     delay(1);
  97.          }
  98. }

  99. void open3()
  100. {
  101.                  init();
  102.            for(num=0;num<15;num++)    //第一屏        light狀態
  103.             {
  104.                   write_data(table[num]);
  105.                     delay(1);
  106.              }
  107.             write_com(0x80+0x40);
  108.                  for(num=0;num<10;num++)    //第二行 亮 不正常
  109.              {       
  110.                    write_data(open1[num]);
  111.                     delay(1);
  112.          }
  113. }

  114. void close2()
  115. {
  116.                 init();
  117.             for(num=0;num<15;num++)    //第一屏        light狀態
  118.             {
  119.                   write_data(table[num]);
  120.                     delay(1);
  121.              }
  122.             write_com(0x80+0x40);
  123.                  for(num=0;num<12;num++)    //第二行 滅 正常
  124.              {       
  125.                    write_data(close[num]);
  126.                     delay(1);
  127.          }
  128. }

  129. void close3()
  130. {
  131.       init();
  132.             for(num=0;num<15;num++)    //第一屏        light狀態
  133.             {
  134.                   write_data(table[num]);
  135.                     delay(1);
  136.              }
  137.             write_com(0x80+0x40);
  138.                  for(num=0;num<11;num++)    //第二行 滅 不正常
  139.              {       
  140.                    write_data(close1[num]);
  141.                     delay(1);
  142.          }
  143. }

  144. void main()                        //主函數
  145. {
  146.     uartinit();
  147.         init();
  148.         for(num=0;num<15;num++)    //第一屏        light狀態
  149.             {
  150.                   write_data(table[num]);
  151.                     delay(1);
  152.              }
  153.                   write_com(0x80+0x40);
  154.                  for(num=0;num<12;num++)    //第二行        正常關閉
  155.              {       
  156.                    write_data(close[num]);
  157.                     delay(1);
  158.          }
  159.         while(1)
  160.         {
  161.          if(key==0)
  162.          {         
  163.            delay(20);
  164.                         if(!key)
  165.                         {
  166.                                 while(!key);       
  167.                                 open2();                                        //亮 正常          
  168.                                 sendc(x);
  169.                         }
  170.           }
  171.           else if(key1==0)
  172.           {
  173.                   open3();                                //亮 不正常
  174.           }
  175.           else if(key2==0)
  176.           {
  177.           delay(20);
  178.                         if(!key2)
  179.                         {
  180.                                 while(!key2);       
  181.                     close2();                                // 滅 正常   
  182.                                 sendc(y);
  183.                         }
  184.           }
  185.           else if(key3==0)
  186.           {
  187.                    close3();                                // 滅 不正常
  188.           }
  189.         }
  190. }

  191. void uart(void) interrupt 4                 //串口中斷
  192. {
  193. ……………………

  194. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
無線路燈控制系統 程序.zip (111.2 KB, 下載次數: 108)




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

使用道具 舉報

沙發
ID:267800 發表于 2019-5-28 01:35 | 只看該作者
非常有用!感謝樓主!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品欧美一区二区三区不卡 | 在线视频一区二区三区 | 久久久久久国产一区二区三区 | av一区二区三区四区 | 日本一区二区三区精品视频 | 久久www免费视频 | 中文字幕在线观看视频网站 | 国内精品视频一区二区三区 | 日韩靠逼| 亚洲乱码国产乱码精品精98午夜 | 天天综合网天天综合 | 国产精品久久久久无码av | 欧美一级二级视频 | 久久视频精品 | 91久久国产 | 天天操夜夜操 | 午夜国产一区 | 亚洲精品永久免费 | 精品欧美二区 | 亚洲精品一 | 精品久久久久久久 | 亚洲精品黄色 | 精产国产伦理一二三区 | 国产一区二区三区在线免费观看 | 剑来高清在线观看 | 国产精品色哟哟网站 | 天堂一区二区三区 | 欧美日韩在线视频观看 | 日韩视频―中文字幕 | 欧美日韩一卡二卡 | 毛片网站在线观看视频 | 国产免费一区二区 | 日韩欧美高清 | 日本欧美国产 | 国产91在线播放 | 二区亚洲 | 韩日一区 | 国产成人精品免高潮在线观看 | 成年免费在线观看 | 精品伦精品一区二区三区视频 | 日韩免费av一区二区 |