實現的具體現象如下:
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.png (7.89 KB, 下載次數: 62)
下載附件
2020-7-25 14:52 上傳
所有資料51hei提供下載:
溫室管理系統.rar
(146.18 KB, 下載次數: 13)
2020-7-25 11:13 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|