一、系統方案 主程序中main函數主要是引腳的初始化,給單片機引腳初始化,初始化LCD1602,初始化紅外對管,通過對LCD1602賦值,采集進入教室的人數,顯示在LCD1602上面進出人數我們采用按鍵的形式,檢測完畢后按下確認鍵確認是否在我們需要的人數范圍內,當少于我們需要的人數時,蜂鳴器會報警三秒,反之,則會LED亮三秒。
1.png (5.18 KB, 下載次數: 63)
下載附件
2023-8-30 14:51 上傳
二、硬件設計 原理圖如下:
2.png (67.25 KB, 下載次數: 53)
下載附件
2023-8-30 14:51 上傳
三、單片機軟件設計 1、首先是系統初始化 /**** *******1602初始化函數 *****/ void lcd_init() { lcd_write_com(0x38); lcd_write_com(0x0c); lcd_write_com(0x06); lcd_write_com(0x01);
} 2、液晶顯示程序 /**** *******1602寫數據忙函數 *****/ void lcd_write_date(uchar date) { check_busy(); en=0; LCD_PORT=date; rs=1; wr=0; en=1; en=0; } /**** *******1602寫命令函數 *****/ void lcd_write_com(uchar com) { check_busy(); en=0; LCD_PORT=com; rs=0; wr=0; en=1; en=0; } /**** *******1602寫溫度函數 *****/ void lcd_wendu(uchar add,uchar date) { uchar shi,ge; shi=date/10; ge=date%10; lcd_write_com(add); lcd_write_date(shi+'0'); lcd_write_date(ge+'0'); } 3、按鍵程序 void keyscan() {
if(K1==0) //檢測按鍵K1(正轉)是否按下 { delayms(10); //消除抖動 if(K1==0) { ZZ(0x01); count++; buf_3[0]=count/10+'0'; buf_3[1]=count%10+'0'; lcd_write_str(0x80+0x40+8,buf_3); } while(!K1); //檢測按鍵是否松開
} if(K2==0) //檢測按鍵K2(反轉)是否按下 { delayms(10); //消除抖動 if(K2==0) { ZZ_1(0x01); count--; buf_3[0]=count/10+'0'; buf_3[1]=count%10+'0'; lcd_write_str(0x80+0x40+8,buf_3); } while(!K2); //檢測按鍵是否松開
} if(K3==0) //檢測按鍵K2(反轉)是否按下 { delayms(10); //消除抖動 if(K3==0) { if(count >= 80) LED = 0; else { BUZ = 0; delayms(500); BUZ = 1; delayms(500); BUZ = 0; delayms(500); BUZ = 1; delayms(500); } } while(!K3) //檢測按鍵是否松開 { delayms(3000); BUZ = 1; LED = 1; }
} } 4、核心算法程序 /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ 函數功能:主函數 ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/ void main(void) { uint i; count = 70; TMOD = 0x01; //T0 16位工作方式 IR_1=1; //發射端口常態為高電平 lcd_init(); lcd_write_str(0x80,buf_1); lcd_write_str(0x80+0x40,buf_2); lcd_write_str(0x80+0x40+8,"70"); while(1) { keyscan(); } } 四、 proteus仿真設計 Proteus軟件是一款應用比較廣泛的工具,它可以在沒有硬件平臺的基礎上通過自身的軟件仿真出硬件平臺的運行情況,這樣就可以通過軟件仿真來驗證我們設計的方案有沒有問題,如果有問題,可以重新選擇器件,連接器件,直到達到我們設定的目的,避免我們搭建實物的時候,如果當初選擇的方案有問題,我們器件都已經焊接好了,再去卸載下去,再去焊接新的方案的器件,測試,這樣會浪費人力和物力,也給開發者帶來一定困惑,Proteus仿真軟件就很好的解決這個問題,我們在設計之初,就使用該軟件進行模擬仿真,測試,選擇滿足我們設計的最優方案。最后根據測試沒問題的仿真圖紙,焊接實物,調試,最終完成本設計的作品。
3.png (70.17 KB, 下載次數: 54)
下載附件
2023-8-30 14:51 上傳
|