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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4432|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)智能燈光系統(tǒng)程序+Proteus仿真電路圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:841372 發(fā)表于 2020-11-10 14:06 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
智能過道照明系統(tǒng)主要功能
⑴系統(tǒng)設(shè)有2個(gè)按鍵功能按鍵(模式切換鍵和開關(guān)鍵),和一個(gè)單片機(jī)復(fù)位按鍵;
⑵系統(tǒng)設(shè)有1個(gè)電源指示燈和5個(gè)狀態(tài)指示燈,分別為:光照檢測(cè)信號(hào)指示燈(光線暗時(shí)指示燈亮),紅外熱釋電傳感器信號(hào)指示燈(檢測(cè)到人體信號(hào)指示燈亮),自動(dòng)模式繼電器工作狀態(tài)指示燈(自動(dòng)模式下,繼電器接通,指示燈亮),模式指示燈(手動(dòng)模式時(shí)指示燈亮),手動(dòng)模式繼電器工作狀態(tài)指示燈(手動(dòng)模式下,繼電器接通,指示燈亮);
⑶系統(tǒng)設(shè)置了兩種工作模式:自動(dòng)工作模式和手動(dòng)工作模式,開機(jī)默認(rèn)為自動(dòng)模式,可通過“模式切換鍵”來實(shí)現(xiàn)模式切換;
⑷在自動(dòng)模式下,繼電器接通時(shí)間是延遲變量來控制的,延遲變量>0,繼電器接通,延遲變量=0,繼電器斷開。延遲變量由檢測(cè)到的信號(hào)控制,在檢測(cè)到光線暗時(shí),并且檢測(cè)到有人時(shí),延遲變量就等于設(shè)置的延遲時(shí)間,從而實(shí)現(xiàn)在人走后一段時(shí)間,燈泡自動(dòng)熄滅,節(jié)能的目的;
⑸設(shè)置的延遲時(shí)間可以修改的,在自動(dòng)模式下,長(zhǎng)按“開關(guān)鍵”,每5秒鐘,延遲時(shí)間加10秒,并且5個(gè)狀態(tài)指示燈會(huì)顯示出來,每5秒鐘從左到右亮一個(gè)指示燈,延遲時(shí)間最大為50秒。
⑹在手動(dòng)模式下時(shí),可通過“開關(guān)鍵”控制繼電器開關(guān);

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


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit renti=P2^1;                 //定義人感
  6. sbit guangming=P2^0;         //定義光照檢測(cè)腳
  7. sbit jdq=P2^7;                   //繼電器
  8. sbit L1=P2^6;                   //定義指示燈
  9. sbit L2=P2^5;
  10. sbit L3=P2^4;
  11. sbit L4=P2^3;
  12. sbit L5=P2^2;
  13. sbit K1=P1^0;                  //定義開關(guān)
  14. sbit K2=P1^1;                          
  15. int count;rt,gm,qd,shijian,sj=10,moshi=1,shijian1,count1,shezhi=0;         //變量
  16. void qudou(void)     //去抖延遲                                                                                  
  17. { int i;
  18.    for(i=0;i<2400;i++);
  19. }
  20. void key()                            //按鍵掃描
  21. {if(K1==0)                 //去抖   
  22.    { qudou();
  23.      if(K1==0)                 //模式按鍵按下
  24.     {moshi++;                 //moshi=1是自動(dòng),=0是手動(dòng)
  25.          if(moshi>=2) moshi=0;
  26.          jdq=1;
  27.     }while(K1==0);
  28.         }
  29. if(moshi==1)          //在自動(dòng)模式
  30. {if(K2==0)                //開關(guān)按鍵按下   
  31.    { qudou();
  32.      if(K2==0)
  33.     {shezhi=1;                 //開關(guān)按鍵長(zhǎng)按可以設(shè)置延遲時(shí)間,具體看中斷
  34.          shijian1=0;
  35.     }while(K2==0);
  36.         }
  37.         else shezhi=0;                   //沒按開關(guān)按鍵就退出設(shè)置
  38.   }
  39. }
  40. void rentijiance()                  //紅外人體檢測(cè)子程序
  41. { if(renti==0) rt=1;          //檢測(cè)到?jīng)]人體時(shí),傳感器發(fā)送低電平給單片機(jī),rt就為1        rt=0(有人),rt=1(無人)
  42.    else rt=0;
  43. }
  44. void guangzhaoqiangdu()           //光照強(qiáng)度子程序
  45. { if(guangming==0) gm=1;          //檢測(cè)到光線亮?xí)r,傳感器發(fā)送低電平給單片機(jī),gm就為1  gm=0(光照暗),gm=1(光照亮)
  46.    else gm=0;
  47. }               
  48. void panduan()                        //判斷
  49. {if(moshi==1)
  50. {if(gm==0)
  51.   {if(rt==0)
  52.    shijian=sj;
  53.    else
  54.    shijian=shijian;}
  55.   else
  56.   shijian=shijian;
  57. }
  58. else
  59. shijian=0;
  60. }
  61. void zhishideng()                 //指示燈函數(shù)
  62. {L5=gm;
  63. L4=rt;
  64. if(moshi==1)
  65. L3=jdq;
  66. else
  67. L3=1;
  68. L2=moshi;
  69. if(moshi==0)
  70. L1=jdq;
  71. else
  72. L1=1;
  73. }
  74. void qudong()                           //繼電器驅(qū)動(dòng)
  75. {if(moshi==1)                    //自動(dòng)模式下
  76. {if(shijian>0) jdq=0;         //根據(jù)延遲時(shí)間控制繼電器
  77.   else jdq=1;
  78. }
  79. else                                        //手動(dòng)模式下
  80. {if(K2==0)                   
  81.    { qudou();
  82.      if(K2==0)                         //開下開關(guān)按鍵控制繼電器的開關(guān)
  83.     {jdq=!jdq;
  84.     }while(K2==0);
  85.         }
  86. }
  87. }
  88. void main()                                         //主程序
  89. {      TMOD=0x1;                     //中斷開啟
  90.        TH0=0xb1;
  91.        TL0=0xe0;
  92.        TR0=1;      
  93.        ET0=1;                                                        
  94.        EA=1;                     
  95.        while(1)                       //無線循環(huán)
  96.        {key();                                //按鍵掃描
  97.             rentijiance();                //人體
  98.             guangzhaoqiangdu();        //光照
  99.                 panduan();                         //判斷
  100.                 zhishideng();                 //指示燈
  101.                 qudong();                        //驅(qū)動(dòng)
  102.            }
  103. }
  104. void time0(void) interrupt 1          //中斷
  105. {     TH0=0xb1;                                                  
  106.       TL0=0xe0;
  107.      if(shijian>0)                  //用來計(jì)時(shí)延遲
  108.          { count++;
  109.       if(count==50)  
  110.         { count=0;
  111.               shijian--;
  112.         }
  113.          }

  114.           if(shezhi==1)                 //在自動(dòng)模式下用來設(shè)置延遲時(shí)間
  115.           {count1++;
  116.       if(count1==50)  
  117.         { count1=0;
  118.               shijian1++;
  119.                   if(shijian1<=5)         //長(zhǎng)按5秒,延遲時(shí)間為10s,并有1個(gè)指示燈顯示
  120.                   {sj=10; L5=0;L4=1;L3=1;L2=1;L1=1;}
  121.                   else if(shijian1<=10)        //長(zhǎng)按10秒,延遲時(shí)間為20s,并有2個(gè)指示燈顯示
  122.                   {sj=20; L5=0;L4=0;L3=1;L2=1;L1=1;}
  123.                   else if(shijian1<=15)        //長(zhǎng)按15秒,延遲時(shí)間為30s,并有3個(gè)指示燈顯示
  124.                   {sj=30; L5=0;L4=0;L3=0;L2=1;L1=1;}
  125.                   else if(shijian1<=20)        //長(zhǎng)按20秒,延遲時(shí)間為40s,并有4個(gè)指示燈顯示
  126.                   {sj=40; L5=0;L4=0;L3=0;L2=0;L1=1;}
  127.                   else if(shijian1>25)        //長(zhǎng)按25秒,延遲時(shí)間為50s,并有5個(gè)指示燈顯示
  128.                   {sj=50; L5=0;L4=0;L3=0;L2=0;L1=0;}

  129.         }
  130.            }
  131.          
  132. }
復(fù)制代碼

所有資料51hei提供下載:
智能燈光.rar (53.66 KB, 下載次數(shù): 146)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:666063 發(fā)表于 2021-1-4 11:21 | 只看該作者
請(qǐng)問有沒有相關(guān)文檔
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品一区二区三区久久久久久 | 国产精品国产三级国产aⅴ中文 | 精品啪啪| 亚洲精品www久久久 www.蜜桃av | h视频免费观看 | 免费观看黄色片视频 | 欧美精品久久久 | 久久大陆 | 欧美日韩大陆 | 高清一区二区三区 | 午夜视频在线免费观看 | 毛片网络| 久久国产精品一区二区三区 | 日韩成人在线网站 | 超碰在线人人 | 欧美成人一区二区 | av一级久久 | 99久久免费精品国产免费高清 | 91久久精品一区 | 国产精品7777777 | 欧美日韩精品中文字幕 | 激情欧美一区二区三区中文字幕 | 日本三级做a全过程在线观看 | 五月花丁香婷婷 | 福利在线看 | 亚洲一区二区免费 | 自拍 亚洲 欧美 老师 丝袜 | www.国产| 久久99深爱久久99精品 | 最新中文在线视频 | 91久久久久久久久久久 | 日韩午夜影院 | 国产精品久久久久久久久免费相片 | 视频一区二区中文字幕日韩 | 国产精品免费一区二区三区四区 | 国产露脸对白88av | 亚洲性人人天天夜夜摸 | 成人高潮片免费视频欧美 | 国产精品一区二区三区99 | 一区二区免费视频 | 久久久精 |