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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機煤氣報警Proteus仿真與程序源碼

[復制鏈接]
跳轉到指定樓層
樓主
51單片機煤氣報警仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg52.h>

  2. sbit clk=P1^0;//位定義
  3. sbit di=P1^1;
  4. sbit doo=P1^2;
  5. sbit cs=P1^3;

  6. sbit ledg =P3^7;
  7. sbit ledr =P3^6;
  8. sbit ledy =P3^5;
  9. sbit buzzer=P3^4;
  10. sbit relay=P3^3;
  11. sbit motor =P3^2;



  12. unsigned char temp=0,temp_buzzer;
  13. void delayms(unsigned int x)//延時
  14. {
  15.         unsigned char a=160;
  16.         while(x--)
  17.         {
  18.                 while(a--);
  19.                 a=160;
  20.         }
  21. }

  22. /******************************************************************/
  23. /*                    ??                                */
  24. /******************************************************************/
  25. void delay_us(unsigned int n) //?? ????????? ?????//延時
  26. {
  27. if (n == 0)
  28.   {  
  29.   return ;  
  30.   }
  31.   while (--n);
  32. }
  33. void main()
  34. {
  35.                 cs=1;
  36.                 doo=1;
  37.        
  38.         TH0=(65536-5000)/256;//設置定時器
  39.         TL0=(65536-5000)%256;
  40.         TMOD=1;//定時器模式
  41.         ET0=1;//開定時器中斷
  42.         EA=1;//開總中斷
  43.         TR0=0;//停止計時
  44.         ledg=0;//ledg亮
  45.         relay=0;//繼電器開
  46.                 while(1)
  47.                 {
  48.                                 temp=0;//開始讀取ad數據
  49.                                 clk=0;
  50.                                 cs=0;
  51.                                 di=1;
  52.                                 delay_us(20);
  53.                                 clk=1;
  54.                                 delay_us(20);
  55.                                 clk=0;
  56.                        
  57.                                 delay_us(20);
  58.                                 clk=1;
  59.                                 delay_us(20);
  60.                                 clk=0;
  61.                        
  62.                                 di=0;

  63.                                 delay_us(20);
  64.                                 clk=1;
  65.                                 delay_us(20);
  66.                                 clk=0;
  67.                        
  68.                                
  69.                                 delay_us(20);
  70.                                 clk=1;
  71.                                 delay_us(20);
  72.                                 clk=0;
  73.                                
  74.                                 if(doo)
  75.                                         temp|=0x80;
  76.                                
  77.                                 delay_us(20);
  78.                                 clk=1;
  79.                                 delay_us(20);
  80.                                 clk=0;
  81.                                
  82.                                 if(doo)
  83.                                         temp|=0x40;
  84.                                
  85.                                 delay_us(20);
  86.                                 clk=1;
  87.                                 delay_us(20);
  88.                                 clk=0;
  89.                                
  90.                                 if(doo)
  91.                                         temp|=0x20;
  92.                                
  93.                                 delay_us(20);
  94.                                 clk=1;
  95.                                 delay_us(20);
  96.                                 clk=0;
  97.                                
  98.                                 if(doo)
  99.                                         temp|=0x10;
  100.                                
  101.                                 delay_us(20);
  102.                                 clk=1;
  103.                                 delay_us(20);
  104.                                 clk=0;
  105.                                
  106.                                 if(doo)
  107.                                         temp|=0x8;
  108.                                
  109.                                 delay_us(20);
  110.                                 clk=1;
  111.                                 delay_us(20);
  112.                                 clk=0;
  113.                                
  114.                                 if(doo)
  115.                                         temp|=0x4;
  116.                                
  117.                                 delay_us(20);
  118.                                 clk=1;
  119.                                 delay_us(20);
  120.                                 clk=0;
  121.                                
  122.                                 if(doo)
  123.                                         temp|=0x2;
  124.                                
  125.                                 delay_us(20);
  126.                                 clk=1;
  127.                                 delay_us(20);
  128.                                 clk=0;
  129.                                
  130.                                 if(doo)
  131.                                         temp|=0x1;
  132.                                 cs=1;
  133.                                
  134.                                 if(temp>150)//如果ad數據大于150
  135.                                 {
  136.                                         ledr=0;//紅led亮
  137.                                         TR0=1;//開始計時
  138.                                         motor=0;//電機轉
  139.                                         relay=1;//繼電器關
  140.                                 }
  141.                                 else
  142.                                 {
  143.                                         ledr=1;//燈關
  144.                                         TR0=0;//定時器停
  145.                                         motor=1;//電機關
  146.                                         relay=0;//繼電器開
  147.                                 }
  148.                                
  149.                                 delayms(50);

  150.                 }
  151. }

  152. void et0() interrupt 1
  153. {
  154.        
  155.         TH0=(65536-1000)/256;//設置定時值
  156.         TL0=(65536-1000)%256;
  157.         buzzer=temp_buzzer;//蜂鳴器電壓取反
  158.         temp_buzzer=!temp_buzzer;
  159. }

復制代碼



所有資料51hei提供下載:
煤氣報警.rar (25.57 KB, 下載次數: 102)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:430445 發表于 2018-11-28 11:20 | 只看該作者
你的代碼為什么在仿真過程中有錯誤?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情av网站 | 99九九视频 | 999精品视频| 91精品欧美久久久久久久 | 日本三级网址 | 精品视频一区二区三区 | 亚洲色欲色欲www | 日韩一区二区三区视频 | 欧美日韩国产一区二区三区 | 欧美日韩国产一区二区三区 | 亚洲视频一区 | 亚洲一区久久 | 玖玖国产| 999久久久免费精品国产 | 看真人视频一级毛片 | 黄篇网址| 国产精品中文字幕在线 | 欧美日韩国产在线 | 国产精品成人69xxx免费视频 | 欧美一区二区三区在线 | 国产精品爱久久久久久久 | 欧美亚洲国产一区二区三区 | 国产精品免费小视频 | 免费看黄色小视频 | 国产精品欧美一区喷水 | 精品久久久久久亚洲综合网 | 国产午夜精品一区二区三区嫩草 | 国产精品久久久爽爽爽麻豆色哟哟 | 日本五月婷婷 | 成年人网站在线观看视频 | 国产美女高潮 | 欧美精品在线播放 | 国产探花在线精品一区二区 | 日韩精品一区二区三区在线 | 黄色片网站在线观看 | 亚洲日本视频 | 亚洲色图综合 | 国产亚洲欧美日韩精品一区二区三区 | 蜜桃视频一区二区三区 | 亚洲一二三视频 | 成人国产精品久久久 |