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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

在原單片機程序加按鍵程序怎么加?

[復制鏈接]
跳轉到指定樓層
樓主
ID:491046 發(fā)表于 2019-4-15 17:20 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
這是一個溫度和煙霧傳感器報警程序,(圖中的P1.3腳輸入低電平和溫度傳感器到達31度后報警,LED等都亮起,也就是P3.0-P3.4腳都輸出低電平),現(xiàn)在需要加4個按鍵,(圖中已經畫好)一個手動報警,一個進入設置模式,一個加鍵,一個減鍵,顯示屏顯示報警溫度和現(xiàn)在室內溫度。圖和C程序在附件,希望有人幫忙解決一下。


單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar table[]={"  T:                                       "};
  5. uchar table1[]={"  Tmax 31                                 "};
  6. /********IO????**********/
  7. sbit rs=P2^7;
  8. sbit rw=P2^6;
  9. sbit en=P2^5;
  10. sbit dq=P1^6;
  11. sbit yw=P1^5;
  12. sbit D1=P3^0;
  13. sbit D2=P3^1;
  14. sbit D3=P3^2;
  15. sbit D4=P3^3;
  16. sbit D5=P3^4;


  17. uchar num;
  18. uint tempwarn,d=0,h=0;

  19. void delay(uint n)               
  20. {
  21.         while(n--);
  22. }
  23. //?????
  24. void write_com(uchar com)  
  25. {
  26.         rs=0;                        
  27.         en=0;                        
  28.         P0=com;                        
  29.         delay(100);               
  30.         en=1;                        
  31.         delay(100);
  32.         en=0;                        
  33. }
  34. void write_data(uchar date)           
  35. {
  36.         rs=1;                  
  37.         en=0;
  38.         P0=date;         
  39.         delay(100);
  40.         en=1;
  41.         delay(100);
  42.         en=0;
  43. }  
  44. void init()      
  45. {
  46.         en=0;
  47.         write_com(0x38);        
  48.         write_com(0x0c);        
  49.         write_com(0x06);        
  50.         write_com(0x01);        
  51. }
  52. void  Writebyte(uchar dat)
  53. {
  54.         uchar j;
  55.         for(j=0;j<8;j++)
  56.         {
  57.                 dq=0;
  58.                 dq=dat&0x01;
  59.                 delay(5);
  60.                 dq=1;
  61.                 dat>>=1;
  62.         }
  63. }
  64. uchar Readbyte(void)
  65. {
  66.         uchar i,dat=0;
  67.         for(i=0;i<8;i++)
  68.         {
  69.                 dq=0;
  70.                 dat>>=1;
  71.                 dq=1;
  72.                 if(dq==1)
  73.                 dat|=0x80;
  74.                 delay(4);
  75.         }        
  76.         return dat;
  77. }
  78. void initds18b20(void)
  79. {
  80.         uchar x=0;
  81.         dq=1;
  82.         delay(8);
  83.         dq=0;
  84.         delay(80);
  85.         dq=1;
  86.         delay(14);
  87.         x=dq;
  88.         delay(20);
  89. }
  90. void Readtemp(void)
  91. {
  92.         initds18b20();
  93.         Writebyte(0xcc);
  94.         Writebyte(0x44);

  95.         initds18b20();
  96.         Writebyte(0xcc);
  97.         Writebyte(0xbe);
  98.         d=Readbyte();        
  99.         h=Readbyte();        
  100. }
  101. get()
  102. {
  103.         uint temp,tmp;
  104.         float tt;
  105.         tmp=d;         
  106.         temp=h;         
  107.         temp<<=8;  
  108.         temp|=d;   
  109.         if((h&0x80)!=0)         
  110.         {
  111.                 table[7]='-';        
  112.                 temp=temp-1;
  113.                 temp=~temp;
  114.         }
  115.         else
  116.                 table[7]='+';
  117.                 temp>>=4;
  118.                 table[8]=(temp/100)+'0';        
  119.                 table[9]=(temp/10)%10+'0';      
  120.                 table[10]=(temp%10)+'0';        
  121.                 tmp=tmp&0x0f;                                          
  122.                 tt=tmp*0.0625;                                         
  123.                 table[11]='.';                                         
  124.                 table[12]=((uchar)(tt*10))%10+'0';
  125.                 tempwarn=temp;               
  126.         return tempwarn;
  127. }
  128. void warn(uint tempwarn)
  129. {
  130.                 if(tempwarn>=31&yw==0)
  131.         {
  132.                 D1=0;
  133.                 D2=0;
  134.                 D3=0;
  135.                                               D4=0;
  136.                 D5=0;
  137.         }
  138.                                 else
  139.                                 {
  140.                                               D1=1;
  141.                 D2=1;
  142.                 D3=1;
  143.                                               D4=1;
  144.                 D5=1;
  145.         }
  146. }
  147. void main()
  148. {        
  149.         rw=0;                                          
  150.         init();                                         
  151.         write_com(0x80+0x40);                        
  152.         for(num=0;num<16;num++)               
  153.         {
  154.                 write_data(table1[num]);        
  155.         }
  156.         while(1)                                                
  157.         {
  158.                  Readtemp();
  159.                  get();
  160.              warn(tempwarn);
  161.                  write_com(0x80);  
  162.                  for(num=0;num<15;num++)
  163.                  {
  164.                         write_data(table[num]);
  165.                  }
  166.         }
  167. }

復制代碼

所有資料51hei提供下載:
圖和程序.zip (22.74 KB, 下載次數(shù): 8)


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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲激情一级片 | 成人深夜福利网站 | 国产精品国产a级 | 九九热在线免费观看 | 搞av.com| 国产精品久久久久久久免费大片 | 久久久成 | www.99精品 | 综合久久综合久久 | 99国产精品久久久久老师 | 亚洲国产第一页 | 国产精品永久久久久 | 日韩高清一区 | 九九爱这里只有精品 | 国产黄色一级电影 | 黄色av观看 | 午夜精品久久久久久久久久久久久 | 日韩免费视频一区二区 | 日日做夜夜爽毛片麻豆 | 久久久久久精 | 国产精品成人一区 | 久久国产一区二区三区 | av在线电影网 | 日本视频中文字幕 | 国产高清视频在线 | 欧美亚洲另类在线 | 欧美成人激情 | 一区二区三区四区不卡视频 | 韩日在线| 亚洲精品成人在线 | 亚洲精品成人网 | 欧美日韩成人一区二区 | 亚洲一区影院 | 久久久久久国产精品免费免费 | 伦理午夜电影免费观看 | 人人干人人干人人 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 午夜电影一区二区 | 久久精品亚洲 | 一区二区免费看 | 亚洲精品久久久 |