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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3787|回復: 3
收起左側

自己做的一個基于51單片機的報警系統(仿真與源碼)

[復制鏈接]
ID:318030 發表于 2018-4-27 19:41 | 顯示全部樓層 |閱讀模式
自己畫的電路圖,寫的源碼,可以用。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png 0.jpg

單片機源程序如下:
  1. #include"LM041DRV.H"
  2. #define LED XBYTE[0XBfff]
  3. #define BUTTON XBYTE[0XDfff]
  4. sbit sound=P3^4;
  5. sbit EOC=P3^0;
  6. uint water,press,water_up=200,water_down=30,press_up=210,press_down=40;
  7. void KeyPad()
  8. {
  9.    uint wu,wd,pu,pd;
  10.    switch(BUTTON)
  11.           {   
  12.            case 0xfe:
  13.             while(BUTTON!=0xff);
  14.                  wu=water_up;
  15.                          water_up+=5;
  16.                          break;
  17.                 case 0xfd:
  18.             while(BUTTON!=0xff);
  19.                  wu=water_up;
  20.                          water_up-=5;
  21.                          break;
  22.                 case 0xfb:
  23.             while(BUTTON!=0xff);
  24.                  wd=water_down;
  25.                          water_down+=5;
  26.                          break;
  27.                 case 0xf7:
  28.             while(BUTTON!=0xff);
  29.                  wd=water_down;
  30.                          water_down-=5;
  31.                          break;
  32.                 case 0xef:
  33.             while(BUTTON!=0xff);
  34.                  pu=press_up;
  35.                          press_up+=5;
  36.                          break;
  37.                 case 0xdf:
  38.             while(BUTTON!=0xff);
  39.                  pu=press_up;
  40.                          press_up-=5;
  41.                          break;
  42.                 case 0xbf:
  43.             while(BUTTON!=0xff);
  44.                  pd=press_down;
  45.                          press_down+=5;
  46.                          break;
  47.                 case 0x7f:
  48.            while(BUTTON!=0xff);
  49.                  pd=press_down;
  50.                          press_down-=5;
  51.            }
  52.           if(water_down>60000)
  53.                           water_down=0;
  54.           if(press_down>60000)
  55.                           press_down=0;
  56.            if((water_up-water_down)<30)
  57.                 {
  58.                           water_up=wu;
  59.                           water_down=wd;       
  60.                         }
  61.                 if((press_up-press_down)<30)
  62.                 {
  63.                           press_up=pu;
  64.                           press_down=pd;       
  65.                         }
  66. }
  67. void T0Init()
  68. {
  69.         TMOD=0x01;
  70.         TH0=63832/256;
  71.         TL0=63832%256;
  72.         ET0=1;
  73.         EA=1;
  74. }
  75. uchar Init_disp(uint a,uint b,uint c,uint d)
  76. {
  77. uchar count=0;
  78. SetRowCol(0,4);
  79. printf("UP  DN  RV");
  80. SetRowCol(1,0);
  81. printf("P1:%3u  %3u  %3u",a,b,water);
  82. SetRowCol(2,0);
  83. printf("P2:%3u  %3u  %3u",c,d,press);
  84. if(water>water_up && press>press_up)
  85. {
  86. count++;
  87. SetRowCol(3,0);
  88. printf("AM: P1>UP  P2>UP");
  89. return 0;
  90. }
  91. if(water>water_up && press<press_down)
  92. {
  93. count++;
  94. SetRowCol(3,0);
  95. printf("AM: P1>UP  P2<DN");
  96. return 0;
  97. }
  98. if(water<water_down && press>press_up)
  99. {
  100. count++;
  101. SetRowCol(3,0);
  102. printf("AM: P1<DN  P2>UP");
  103. return 0;
  104. }
  105. if(water<water_down && press<press_down)
  106. {
  107. count++;
  108. SetRowCol(3,0);
  109. printf("AM: P1<DN  P2<DN");
  110. return 0;
  111. }
  112. if(water>water_up)
  113. {
  114. count++;
  115. SetRowCol(3,0);
  116. printf("AM:  P1>UP      ");
  117. }
  118. if(press>press_up)
  119. {
  120. count++;
  121. SetRowCol(3,0);
  122. printf("AM:        P2>UP");
  123. }
  124. if(water<water_down)
  125. {
  126. count++;
  127. SetRowCol(3,0);
  128. printf("AM: P1<DN       ");
  129. }
  130. if(press<press_down)
  131. {
  132. count++;
  133. SetRowCol(3,0);
  134. printf("AM:        P2<DN");
  135. }
  136. if(count==0)
  137. {
  138. SetRowCol(3,0);
  139. printf("AM:              ");
  140. }

  141. }
  142. void main()
  143. {
  144. uchar xdata *adc0808=0x78ff;
  145. uchar i,led=0xff,count;
  146. LM041_Init();
  147. T0Init();
  148.         while(1)
  149.         {
  150.                  adc0808=0x78ff;
  151.                          *adc0808=0;
  152.                          while(EOC==0);
  153.                          *adc0808=0;
  154.                          while(EOC==0);
  155.                          water=*adc0808;
  156.                          adc0808+=0x100;
  157.                          *adc0808=0;
  158.                          while(EOC==0);
  159.                          *adc0808=0;
  160.                          while(EOC==0);
  161.                          press=*adc0808;
  162.                          count=0;
  163.                 if(water>water_up)
  164.                 {
  165.                         led=(led&0xfe);       
  166.                         led=(led|0x02);       
  167.                 }
  168.                 else if(water<water_down)
  169.                 {
  170.                         led=(led&0xfd);       
  171.                         led=(led|0x01);       
  172.                 }
  173.                 else
  174.                 {
  175.                         led=(led|0x03);
  176.                         count++;
  177.                 }
  178.        
  179.                 if(press>press_up)
  180.                 {
  181.                         led=(led&0xfb);       
  182.                         led=(led|0x08);       
  183.                 }
  184.                 else if(press<press_down)
  185.                 {
  186.                         led=(led&0xf7);       
  187.                         led=(led|0x04);       
  188.                 }
  189.                 else
  190.                 {
  191. ……………………

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

所有資料51hei提供下載:
報警電路.zip (84.78 KB, 下載次數: 27)
回復

使用道具 舉報

ID:318981 發表于 2018-4-29 16:46 | 顯示全部樓層
做的不錯
回復

使用道具 舉報

ID:727451 發表于 2020-4-12 19:50 | 顯示全部樓層
這分別實現的是什么功能呀?
回復

使用道具 舉報

ID:727910 發表于 2020-4-13 01:54 來自手機 | 顯示全部樓層
不太懂唉,為什么有的器件沒連在一起呢?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美视频免费在线观看 | 99国产精品视频免费观看一公开 | 午夜成人免费视频 | 国产在线观看一区二区三区 | 欧美成人一区二区三区 | 日韩在线观看一区二区三区 | 免费在线观看一区二区三区 | 一区二区三区免费观看 | 午夜av电影 | 国产精品久久在线观看 | 午夜视频在线播放 | 2018国产大陆天天弄 | 国产观看| 国产1页 | 狠狠干av | 日韩欧美黄色 | 国产精久久久久久 | 色吊丝2288sds中文字幕 | 国产免费a | 久久av一区二区三区 | 精国产品一区二区三区 | 国内精品视频免费观看 | 黑人巨大精品 | 久久久久一区二区三区四区 | 欧美大片一区 | 国产亚洲高清视频 | 精品一二三区视频 | 二区三区av| 91porn在线| 日韩在线视频网址 | 伊人99| 人人做人人澡人人爽欧美 | 国产精品一区二区在线播放 | 成年无码av片在线 | 精品国产一级片 | 欧美精品一区二区免费 | 国产精品久久久久久久久久 | 久久国产精品视频 | 伊人网站视频 | 日韩精品一区二区三区在线观看 | 日日干日日操 |