找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 109|回复: 0
打印 上一主题 下一主题
收起左侧

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)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表