找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2487|回复: 1
收起左侧

stm32智能家居系统 使用了TFT屏和相关传感器

[复制链接]
ID:295924 发表于 2018-3-23 14:02 | 显示全部楼层 |阅读模式
智能家居系统,使用了TFT屏和相关传感器,由步进电机和丝杆控制门帘

单片机源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "usart.h"
  4. #include "motor.h"   
  5. #include "laser.h"
  6. #include "oled.h"
  7. #include "sensor.h"
  8. #include "ds18b20.h"
  9. u8 Res=0x00;
  10. u8 t1=0,t2=0;;  //定时器变量,每1s加1
  11. int Temperature1,Temperature2,Candela;
  12. u8 x,y;
  13. u8 X=0;

  14. void Go(void);
  15. void Back(void);
  16. void Stop(void);
  17. void BlueTooth(void);
  18. void Light_Time(u8 T);
  19. void Display_init(void);
  20. void Display_show(void);
  21. void Laser(void);
  22. void Measure(void);

  23. int main(void)
  24. {       
  25.         uart_init(9600);       
  26.         delay_init();                     //延时函数初始化          
  27.         TIM1_PWM_Init(899,0);//不分频。PWM频率=72000/(899+1)=80Khz
  28.          TIM3_init(899,0);
  29.         Light_init();
  30.         OLED_Init();
  31.         OLED_Clear();
  32.         Adc_Init(); //初始化光敏传感器
  33.          BEEP_Init();
  34.          Beep=1;
  35.          Display_init();
  36.          delay_ms(3000);
  37.          OLED_Clear();
  38.                  while(DS18B20_Init())        //DS18B20初始化       
  39.         {
  40.      OLED_ShowString(0,0,"DS18B20 Error",16);
  41.         }
  42.            while(1)
  43.         {
  44.              BlueTooth();
  45.                  Laser();
  46.                  Measure();
  47.                  Display_show();
  48.         }
  49. }
  50. void Go(void)
  51. {
  52.                 TIM_SetCompare1(TIM3,500);         
  53.                 TIM_SetCompare2(TIM3,0);
  54. }
  55. void Back(void)
  56. {
  57.                 TIM_SetCompare1(TIM3,0);         
  58.                 TIM_SetCompare2(TIM3,500);
  59. }
  60. void Stop(void)
  61. {
  62.                 TIM_SetCompare1(TIM3,0);         
  63.                 TIM_SetCompare2(TIM3,0);
  64. }
  65. void Display_init(void)
  66. {
  67.         OLED_ShowCHinese(16,0,0);
  68.         OLED_ShowCHinese(32,0,1);
  69.         OLED_ShowCHinese(48,0,2);
  70.         OLED_ShowCHinese(64,0,3);
  71.         OLED_ShowCHinese(80,0,4);
  72.         OLED_ShowCHinese(96,0,5);
  73.        
  74.         OLED_ShowCHinese(32,4,6);
  75.         OLED_ShowCHinese(48,4,7);
  76.         OLED_ShowCHinese(64,4,8);
  77. }
  78. void Display_show(void)
  79. {
  80.         OLED_ShowCHinese(0,0,9);    //温度
  81.         OLED_ShowCHinese(16,0,10);
  82.         OLED_ShowChar(32,0,':',16);
  83.         OLED_ShowNum(48,0,Temperature1,2,16);
  84.         OLED_ShowChar(64,0,'.',16);
  85.         OLED_ShowNum(72,0,Temperature2,1,16);
  86.         OLED_ShowChar(80,0,'C',16);
  87.        
  88.         OLED_ShowCHinese(0,2,13);    //震动
  89.         OLED_ShowCHinese(16,2,14);
  90.         OLED_ShowChar(32,2,':',16);
  91.         OLED_ShowCHinese(48,2,x);   //15 是  16否
  92.        
  93.         OLED_ShowCHinese(0,4,17);    //火焰
  94.         OLED_ShowCHinese(16,4,18);
  95.         OLED_ShowChar(32,4,':',16);
  96.     OLED_ShowCHinese(48,4,y);   //15 是  16否
  97.        
  98.         OLED_ShowCHinese(0,6,11);    //光强
  99.         OLED_ShowCHinese(16,6,12);
  100.         OLED_ShowChar(32,6,':',16);
  101.         OLED_ShowNum(48,6,Candela,3,16);
  102.         OLED_ShowString(72,6,"Cd",16);
  103. }
  104. void Laser(void)
  105. {
  106.            if(Flame==0) x=15;else x=16;
  107.            if(Shock==0) y=15;else y=16;
  108.            if(x==15||y==15) Beep=0; else Beep=1;
  109. }
  110. void Measure(void)
  111. {
  112.         Candela=Get_Adc_Average(ADC_CH1,10);
  113.         Candela=Candela/10;
  114.         Temperature1=DS18B20_Get_Temp();
  115.         Temperature2=Temperature1/10;
  116.         Temperature1=Temperature1/10;
  117. }

  118. void BlueTooth(void)
  119. {
  120.         switch(Res)
  121.         {
  122.                 case 0x00:Stop();break;
  123.                 case 0x01:Go(); break;   
  124.                 case 0x02:Back();break;
  125.                 case 0x03:Light=0;break;
  126.                 case 0x04:Light=300; break;   
  127.                 case 0x05:Light=600;break;
  128.                 case 0x06:Light=900;break;
  129.                
  130.         }
  131. }
  132. //void BlueTooth(void)
  133. //{
  134. //        switch(Res)
  135. //        {
  136. //                case 0x03:Stop();break;
  137. //                case 0x01:Go(); break;   
  138. //                case 0x02:Back();break;
  139. //        }
  140. //}

复制代码

所有资料51hei提供下载:
智能家居系统.rar (298.03 KB, 下载次数: 37)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:224701 发表于 2018-9-11 16:02 | 显示全部楼层
就只有代码,没其他说明不知道是用来干哈
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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