实现的具体现象如下:
1、在12864上从上往下滚动显示参赛员信息及编号,并满足3秒。
如:mmm队,队员mm、mm,参赛编号:B001
2、利用时钟芯片从系统取值显示时间、日期、星期。
3、按键可以显示当前温度,如温度大于30度或者小于30度时发出警报,并显示单位。
4、当温度大于24度时,电机转动通风。并利用AD/DA数模转换器控制电机转动速度。
5、检测温室的光敏度和热敏度,并显示在屏幕上。如果光照强度过大,电机转动(此处点击是控制窗帘);
如果光照强度过小,打开灯(此处的灯就是led灯,也就是发光二极管)。
6、画出程序流程图、子流程图、功能图、电路图。
发挥:
7、现有一只猫,现在要检测这只猫到温室的次数,并且把它进去到温室次数保存在单片机中,
下次启动单片机是,可以查看上次猫进入的次数,并且累计。
8、能够利用矩阵按键显示,以上功能,并且要有相对应的菜单(菜单可以用书本写出来);
没有用到的按键标记为按键的值。
总体设计,感观,合理,创新。
EEPROM存储器
AD/DA数模转换器
DS1302时钟芯片
光敏/热敏电阻传感器
直流/步进电机
12864显示屏
18B20温度传感器
发光二极管
矩阵按键
单片机源程序如下:
- #include "reg51.h"
- #include "12864.h"
- #include "wen_du.h"
- #include "anjian.h"
- #include "dianji.h"
- #include "DA_AD.h"
- #include "guang_re.h"
- #include "cun_cat.h"
- #include "time.h"
- void main()
- {
- ding_init(); //定时器初始化
- led_init(); //12864led显示屏初始化
- // dis_xinxi(); //显示参赛信息
-
- while(1)
- {
- uint qing;
- //dis(0,3,"yqweruio");
- qing = zhi_an;
- scanf();
-
- if(qing != zhi_an){wcode(0x01);cun_a = 1;} //cun_a = 1;是为了保证按键5进入时,只加一次
- switch(zhi_an)
- {
- case 0: dis_zhi_an(); break; //进入死循环,显示按键值,当按s15键退出
- case 1: dis_wen(); break; //显示温度
- case 2: wen_baojin(); break; //温度的转换
- case 3: dian_z(); break; //点击转动
-
- case 4: dis_AD(); break; //显示AD的值
- case 5: dis_cun(); break; //查看存储的数据
- case 6: AD_control_dian();break;//AD数模转换值控制电机转动 ?
- case 7: dis_guang(); break; //显示光照强度
-
- case 8: hong_cat(); break; //显示猫的次数
- case 9: read_shang_cat();break; //显示猫保存上次的次数
- case 10:dis_time(); break; //显示时间
- case 11: break;
-
- case 14:dis_xinxi(); break; //显示参赛信息
- default: break;
- }
- }
- }
复制代码
所有资料51hei提供下载:
温室管理系统.rar
(146.18 KB, 下载次数: 13)
|