标题: 51单片机智能家居灯光系统程序 光强度检测和温度控制Proteus仿真 [打印本页]

作者: 枫478    时间: 2025-11-9 21:23
标题: 51单片机智能家居灯光系统程序 光强度检测和温度控制Proteus仿真
可以用于智能家居灯光系统的简单仿真

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




单片机源程序如下:
  1. #include "reg51.h"
  2. #include "ADC0832.h"
  3. #include"Ds18b20.h"
  4. #include "lcd1602.h"
  5. #include <PCF8591.h>
  6. #define uchar unsigned char
  7. #define uint unsigned int
  8. sbit led1=P3^2;//led
  9. sbit led2=P3^3;
  10. sbit led3=P3^4;

  11. uchar light=0;//光照
  12. uchar disp1[]="temp:00C";
  13. uchar disp2[]="light:000Lx";
  14. uchar time=0;//定时
  15. uchar pwm=0;//亮度
  16. //主函数
  17. void main()
  18. {
  19.         init_1602();        
  20.         TMOD|=0X01;
  21.         TH0=0X3C;
  22.         TL0=0XB0;        
  23.         ET0=1;//打开定时器0中断允许
  24.         EA=1;//打开总中断
  25.         TR0=1;//打开定时器
  26.         while(1)
  27.         {
  28.         }
  29. }
  30. //定时器中断
  31. void Timer0() interrupt 1
  32. {
  33.         uint i=0;
  34.         if(time<10)//0.5s
  35.                 time++;
  36.         else
  37.         {
  38.                 time=0;
  39.                 light=ADC(1);//测量亮度
  40.                 Ds18b20ReadTemp();//测量温度
  41.                 i=ds18b20_temp;
  42.                 disp1[5]=i/10+0x30;//显示
  43.                 disp1[6]=i%10+0x30;
  44.                 disp2[6]=light/100+0x30;
  45.                 disp2[7]=light%100/10+0x30;
  46.                 disp2[8]=light%10+0x30;
  47.                 write_string(1,0,disp1);
  48.                 write_string(2,0,disp2);
  49.                 //计算亮度
  50.                 if(light<100)
  51.                         PCF8591_write(light*2);
  52.                 else
  53.                         PCF8591_write(0xff);
  54.                 //颜色控制
  55.                 if(ds18b20_temp<10)
  56.                 {
  57.                         led1=1;led2=0;led3=0;
  58.                 }
  59.                 if((ds18b20_temp>9)&&(ds18b20_temp<20))
  60.                 {
  61.                         led1=1;led2=1;led3=0;
  62.                 }
  63.                 if((ds18b20_temp>19)&&(ds18b20_temp<30))
  64.                 {
  65.                         led1=0;led2=1;led3=0;
  66.                 }
  67.                 if((ds18b20_temp>29)&&(ds18b20_temp<40))
  68.                 {
  69.                         led1=0;led2=1;led3=1;
  70.                 }
  71.                 if((ds18b20_temp>39)&&(ds18b20_temp<50))
  72.                 {
  73.                         led1=0;led2=0;led3=1;
  74.                 }
  75.                 if((ds18b20_temp>49))
  76.                 {
  77.                         led1=1;led2=0;led3=1;
  78.                 }
  79.         }
  80.         TH0=0X3C;
  81.         TL0=0XB0;
  82. }
复制代码

Proteus8.17仿真与程序视频讲解下载:
智能家居灯光系统程序.7z (6.81 MB, 下载次数: 0)





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1