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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9506|回復: 10
收起左側

基于51單片機的智能窗簾控制系統Proteus仿真程序

  [復制鏈接]
ID:721091 發表于 2020-6-1 17:19 | 顯示全部樓層 |閱讀模式
自己做的設計,能夠手動開關窗簾,根據光照與溫度自動開關窗簾,有溫控和光控模式,每個模式都有一個按鈕進行控制。窗簾的開關是根據電機的狀態來判斷的,比如0是打開,130左右是關閉。
本人大二,設計上可能還有改善的空間,但給師傅看時是非常完善,沒有錯誤的,歡迎交流,請多指教~

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei截圖20200601171609.png 51hei截圖20200601171505.png

單片機源程序如下:
  1. #include<reg52.h>                   //頭文件
  2. #include"LCD1602.h"
  3. #include"ADC0832.h"
  4. #include"28BYJ48.h"
  5. #include"DS18B20.h"

  6. #define uchar unsigned char

  7. sbit k1 = P1^0;
  8. sbit k2 = P1^1;
  9. sbit k3 = P1^2;
  10. sbit k4 = P1^3;

  11. //全局變量
  12. uchar light=0,temp=0;
  13. int flag=0,z=0,f=0;
  14. int q=0;
  15. int j=0,k=0;
  16. int count=0,flag1=0;
  17. int Time;
  18. int mode=0;

  19. void delay(int x)
  20. {
  21.         int i;
  22.         while(x--)
  23.         for(i=10;i>0;i--);
  24. }

  25. void auto_control_motor(uchar dat)
  26. {
  27.         if(Time < dat)
  28.         {
  29.                 Time++;
  30.                 motor_z();
  31.         }
  32.         else if(Time == dat) motor_s();
  33.         else
  34.         {
  35.                 Time--;
  36.                 motor_f();
  37.         }
  38. }

  39. void light_state_control()
  40. {
  41.         if(light<0)                                                        flag = -1;
  42.         if(light>=0 && light<35)                        flag = 0;
  43.         else if(light>35 && light<75)                flag = 1;
  44.         else                                                                flag = 2;

  45.         switch(flag){
  46.                 case -1:        auto_control_motor(0);
  47.                         break;
  48.                 case  0:        auto_control_motor(0);
  49.                         break;
  50.                 case  1:        auto_control_motor(10);
  51.                         break;
  52.                 case  2:        auto_control_motor(30);
  53.                         break;
  54.                 }
  55. }

  56. void temp_state_control()
  57. {
  58.         if(current<0)                                                        flag = 0;
  59.         if(current>15 && current<=25)                        flag = 0;
  60.         else if(current == 15)                                        motor_s();                                         //特殊情況
  61.         else if(current>25 && current<35)                flag = 1;
  62.         else                                                                        flag = 2;

  63.         switch(flag){
  64.                 case -1:delay(10000);
  65.                         break;
  66.                 case  0:        auto_control_motor(0);
  67.                         break;
  68.                 case  1:        auto_control_motor(14);
  69.                         break;
  70.                 case  2:        auto_control_motor(14);
  71.                         break;
  72.                 }
  73. }

  74. void curtain_state_control()
  75. {
  76.         if((light>=0 && light<35))                        flag = 0;
  77.         else if((light>35 && light<75))                flag = 1;
  78.         else                                                                flag = 2;
  79.         
  80.         switch(flag){
  81.         case  0:        
  82.                                 lcd1602_write_character(12, 3, "on  ");
  83.                                 lcd1602_write_character(12, 4, "low ");
  84.                 break;
  85.         case  1:        
  86.                                 lcd1602_write_character(12, 3, "half");
  87.                                 lcd1602_write_character(12, 4, "mid ");
  88.                 break;
  89.         case  2:        
  90.                                 lcd1602_write_character(12, 3, "off ");
  91.                                 lcd1602_write_character(12, 4, "high");
  92.                 break;
  93.         }        
  94. }


  95. void main(void)
  96. {

  97.         delay(100);
  98.         ReadTemperature();
  99.         delay(100);
  100.         LCD_init();
  101.         ADC0832_read(0);
  102.         ADC0832_read(0);
  103.         lcd1602_write_character(0, 1, "Light  :");
  104.         lcd1602_write_character(0, 2, "Temp   :");
  105.            lcd1602_write_character(0, 3, "Cutain :");
  106.         lcd1602_write_character(0, 4, "Level  :");
  107.         while(1)
  108.         {               
  109.                 if(k1 == 0)                mode = 1;
  110.                 if(k2 == 0)                mode = 2;
  111.                 if(k3 == 0)                mode = 3;
  112.                 if(k4 == 0)                mode = 4;

  113.                 if(mode==1)
  114.                 {
  115.                         light=ADC0832_read(0);                                                                //讀取AD值
  116.                         light=light*100/255;                                                                //轉換為光強
  117.                
  118.                         LCD_disp_char(12, 1, ASCII[light/100]);
  119.                         LCD_disp_char(13,1,ASCII[light%100/10]);
  120.                         LCD_disp_char(14,1,ASCII[light%10]);
  121.                         //窗簾狀態管理
  122.                         light_state_control();
  123.                         curtain_state_control();
  124.                 }
  125. //-------------------------------溫控模式--------------------------------------
  126.                 if(mode==2)
  127.                 {
  128.                         DS_read_temperature();
  129.                         display_temperature();
  130.                           temp_state_control();
  131.                         if(current>15 && current<=25) lcd1602_write_character(12, 3, "on  ");
  132.                         else lcd1602_write_character(12, 3, "off ");  
  133. ……………………

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

所有資料51hei提供下載:
智能窗簾.zip (84.95 KB, 下載次數: 365)

評分

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

查看全部評分

回復

使用道具 舉報

ID:791661 發表于 2020-6-29 14:23 | 顯示全部樓層
void auto_control_motor(uchar dat)
{
        if(Time < dat)
        {
                Time++;
                motor_z();
        }
        else if(Time == dat) motor_s();
        else
        {
                Time--;
                motor_f();
        }
}
這一段的Time有數值嗎
回復

使用道具 舉報

ID:794694 發表于 2020-7-1 14:07 來自手機 | 顯示全部樓層
我到protues仿真不成功,為什么
5f5e8081fd5fa63.jpg
回復

使用道具 舉報

ID:794590 發表于 2020-7-1 15:32 | 顯示全部樓層
乃萬 發表于 2020-6-29 14:23
void auto_control_motor(uchar dat)
{
        if(Time < dat)

全局變量有默認值
回復

使用道具 舉報

ID:328014 發表于 2020-7-2 03:47 | 顯示全部樓層
208314763 發表于 2020-7-1 14:07
我到protues仿真不成功,為什么

你這個是安裝有問題.我剛下載測試的時候也是報錯,不過不是你這個錯誤,是顯示External model DLL "ADC083X.DLL" not found. GLE=0x000036B1.
后來我從http://www.zg4o1577.cn/bbs/dpj-56637-1.html  這里下載了adc083x.dll 到模塊目錄就搞定了
我是安裝的Proteus仿真8.8版本

效果如下圖:
51hei.png
回復

使用道具 舉報

ID:796538 發表于 2020-7-5 07:47 | 顯示全部樓層
51hei團團 發表于 2020-7-2 03:47
你這個是安裝有問題.我剛下載測試的時候也是報錯,不過不是你這個錯誤,是顯示External model DLL "ADC083X ...

怎么安裝這個文件包呢,我百度看直接拖進去,我拖進去了還是不好使,還是會顯示adc083x
回復

使用道具 舉報

ID:897661 發表于 2021-3-30 15:39 | 顯示全部樓層
可以遙控嗎
回復

使用道具 舉報

ID:910315 發表于 2021-4-26 10:00 | 顯示全部樓層
51hei團團 發表于 2020-7-2 03:47
你這個是安裝有問題.我剛下載測試的時候也是報錯,不過不是你這個錯誤,是顯示External model DLL "ADC083X ...

你好  附件在哪找的
回復

使用道具 舉報

ID:839752 發表于 2021-5-7 19:45 | 顯示全部樓層
你好,有具體的各個模塊的講解嗎,比如光敏檢測模塊的數據傳輸,單片機初學者,希望得到你的答復
回復

使用道具 舉報

ID:721091 發表于 2021-5-25 08:52 | 顯示全部樓層

沒做遙控
回復

使用道具 舉報

ID:721091 發表于 2021-5-25 08:53 | 顯示全部樓層
TTTZW 發表于 2021-5-7 19:45
你好,有具體的各個模塊的講解嗎,比如光敏檢測模塊的數據傳輸,單片機初學者,希望得到你的答復

時間太久遠了,現在不做單片機,這些資料沒有了嗷 不好意思
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清美女一级a毛片久久w | 久久香蕉网 | 亚洲一区在线日韩在线深爱 | 欧美久| 国内精品久久久久久影视8 最新黄色在线观看 | 久久久久久免费毛片精品 | av中文字幕在线 | 精品国产乱码一区二区三区a | 一区二区三区精品视频 | 欧美精品电影一区 | 精品成人佐山爱一区二区 | 91在线视频一区 | 欧美日韩综合精品 | 一区二区三区在线播放视频 | 欧美在线国产精品 | 99久久精品国产毛片 | www.久久国产精品 | 91手机精品视频 | 亚洲国产一区二区三区在线观看 | 久热m3u8 | 国产高清毛片 | 97人人超碰 | 国产精品久久久亚洲 | 精品国产免费人成在线观看 | 国产激情偷乱视频一区二区三区 | 国产乱码精品1区2区3区 | 日韩av一区二区在线观看 | 免费观看的av | 伊人网站在线观看 | 四虎免费视频 | 午夜伦4480yy私人影院 | 国产精品免费看 | 在线国产99| 日韩欧美在线视频观看 | 日韩一级在线 | 中文字幕亚洲精品 | 精品在线一区 | 日韩h| 日韩视频一区二区三区 | 欧美aⅴ片 | 在线免费亚洲视频 |