标题: 单片机家居控制系统制作 附源程序 [打印本页]

作者: 冷月枫    时间: 2019-11-26 18:37
标题: 单片机家居控制系统制作 附源程序
学校的一个嵌入式设计大赛,做的一个家居系统,用的是实验室的板子,单片机型号是STC8A8K64S4A12,因为用的模块较多,所以可能接线有点乱,在这里附上程序,算给大家一个借鉴。

制作出来的实物图如下:


单片机源程序如下:
  1. #include<All.h>

  2. //uchar idata i;
  3. //定时器0产生PWM用来控制直流电机的转速

  4. void DC_Motor_Allocate()
  5. {
  6.    
  7.         //  Motor_Scan();//电机开关扫描按键
  8.           Ray_Key_Scan();//红外按键扫描
  9.       Ray_decode_Ser();//红外控制
  10.           Temperature_Auto_control_fan();//温控风扇

  11. }

  12. void LCD1602_Allocate()
  13. {
  14.         //static uchar xdata count=0;
  15.        
  16.         //if(count==2)
  17.         //{
  18.         //        count=0;
  19.            LCD1602_menu();//LCD1602菜单界面
  20.         //}
  21. //count++;
  22. }

  23. void OLED_Allocate()
  24. {
  25.         static uchar xdata count=0;
  26.         if(count<10)
  27.         {
  28.                  Picture2();//显示第一行
  29.                Home_On_Off();
  30.                         Home_On_Off1();//显示固定的汉字
  31.         }
  32.    else if(count<15)
  33.            Picture1();
  34.    else if(count==15)
  35.            count=0;
  36.    count++;
  37. }
  38. //        switch(count)
  39. //        {
  40. //                case 0,1,2,3,4,5: break;//家居开关显示界面
  41. //                case 6,7,8,9,10: count=0;break;
  42. //        }
  43.         //count++;
  44. ////        if(count==10)
  45. ////        {
  46. //                //count=0;
  47. //      //OLED_menu();//OLED菜单界面
  48. //        //}
  49. //        static uchar xdata Music_count=0;
  50. //        switch(Music_count)
  51. //        {
  52. //                case 0:OLED_Display_Music_Nomatter();break;
  53. //               
  54. //                case 1:OLED_Display_Music_Nomatter2();break;
  55. //                //case 2:OLED_Display_Music_timian();break;
  56. //        }
  57. //        Music_count++;
  58. //        if(Music_count==2)
  59. //                Music_count=0;
  60. //}
  61. //红外对管 数据分配
  62. void Ray_Allocate()
  63. {
  64.   static uchar xdata count=0;
  65.         if(count==3)
  66.         {
  67.                 count=0;
  68.             Gesture();//手势控制音乐
  69.         }
  70.         count++;
  71. }
  72. void main()
  73. {
  74.         LCD12864_Init();
  75.         LCD1602_Init();
  76.         DS1302_Init();
  77.         OLED_Init();//OLED初始化
  78.         Timer0_INT0_Init();//红外遥控  定时器0 外部中断0 初始化
  79.         Picture();//显示需要的图标
  80.      ADC_Init();
  81.   
  82.         //ultrasonic_Init();//定时器1  超声波测距
  83.         //Timer1Init();//定时器1  产生电机PWM
  84.        
  85.         while(1)
  86.         {
  87.                 Smog_Alarm();//烟雾报警
  88.                 Touch_Key_Scan();
  89.                  Motor_Scan();//电机开关扫描按键
  90.           LCD12864_menu();//LCD12864菜单界面
  91.          LCD1602_Allocate();//LCD1602菜单界面
  92.      OLED_Allocate();
  93.      DC_Motor_Allocate();//温控风扇数据分配
  94.          Ray_Allocate();//红外对管
  95.                
  96.                
  97.          //Home_On_Off();
  98.        
  99.                 //LED_Bright();
  100. //        //OLED音乐界面刷新
  101. //        OLED_Music_Flag++;//OLED音乐图片切换标志
  102. //                if(OLED_Music_Flag==3)
  103. //                        OLED_Music_Flag=0;//循环切换
  104.         }
  105.   
  106. }
复制代码

所有资料51hei提供下载:
智能家居8A.zip (469.9 KB, 下载次数: 12)
STC8A8K原理图.pdf (258.34 KB, 下载次数: 13)


作者: 51hei**1140    时间: 2019-11-27 19:59
规模宏大
作者: 冷月枫    时间: 2020-3-12 20:14
51hei**1140 发表于 2019-11-27 19:59
规模宏大

确实,外设比较多




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