找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机家居控制系统制作 附源程序

[复制链接]
跳转到指定楼层
楼主
学校的一个嵌入式设计大赛,做的一个家居系统,用的是实验室的板子,单片机型号是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)

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:648281 发表于 2019-11-27 19:59 | 只看该作者
规模宏大
回复

使用道具 举报

板凳
ID:535176 发表于 2020-3-12 20:14 | 只看该作者

确实,外设比较多
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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