一、系統(tǒng)方案 1、本設(shè)計采用52單片機作為主控器。 2、霍爾測速送到液晶1602。 3、蜂鳴器報警。
二、硬件設(shè)計 原理圖如下:
三、單片機軟件設(shè)計 - 1、首先是系統(tǒng)初始化
- void lcd_init()//***液晶初始化函數(shù)****
- {
-
- write_1602com(0x38);//設(shè)置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數(shù)據(jù)
- write_1602com(0x0c);//開顯示不顯示光標
- write_1602com(0x06);//整屏不移動,光標自動右移
- write_1602com(0x01);//清顯示
- }
- 2、液晶顯示程序
- /********液晶寫入指令函數(shù)與寫入數(shù)據(jù)函數(shù),以后可調(diào)用**************/
- void write_1602com(uchar com)//****液晶寫入指令函數(shù)****
- {
- RS=0;//數(shù)據(jù)/指令選擇置為指令
- rw=0; //讀寫選擇置為寫
- P0=com;//送入數(shù)據(jù)
- delay(1);
- EN=1;//拉高使能端,為制造有效的下降沿做準備
- delay(1);
- EN=0;//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
- }
- void write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù)****
- {
- RS=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)
- rw=0; //讀寫選擇置為寫
- P0=dat;//送入數(shù)據(jù)
- delay(1);
- EN=1; //en置高電平,為制造下降沿做準備
- delay(1);
- EN=0; //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
- }
- 3、按鍵程序
- /*********************************************************/
- // 按鍵掃描
- /*********************************************************/
- void key()
- {
- if(k1==0) //按下按下
- {
- delay(10);//延時消除按鍵抖動
- if(k1==0) //再次判斷按鍵是否按下
- {
- while(!k1); //判斷按鍵是否釋放
- MAX++;
- if(MAX==10000) MAX=9999;
- }
- }
- if(k2==0)//加
- {
- delay(10);
- if(k2==0)
- {
- while(!k2);
- if(MAX>1) MAX--;
-
- }
- }
- }
- 4、核心算法程序
- /*******************T2中斷函數(shù)函數(shù)********************/
- void T2_time() interrupt 5
- {
-
- TF2 = 0;
- time++; //累計中斷 的次數(shù)
- if(time==20) //1秒到
- {
- TR0=0; //關(guān)閉計數(shù)
- time=0; //1秒時間清零,等待下一秒
- flag=1; //置1告訴主程序
-
- }
- }
復制代碼 四、 proteus仿真設(shè)計Proteus軟件是一款應用比較廣泛的工具,它可以在沒有硬件平臺的基礎(chǔ)上通過自身的軟件仿真出硬件平臺的運行情況,這樣就可以通過軟件仿真來驗證我們設(shè)計的方案有沒有問題,如果有問題,可以重新選擇器件,連接器件,直到達到我們設(shè)定的目的,避免我們搭建實物的時候,如果當初選擇的方案有問題,我們器件都已經(jīng)焊接好了,再去卸載下去,再去焊接新的方案的器件,測試,這樣會浪費人力和物力,也給開發(fā)者帶來一定困惑,Proteus仿真軟件就很好的解決這個問題,我們在設(shè)計之初,就使用該軟件進行模擬仿真,測試,選擇滿足我們設(shè)計的最優(yōu)方案。最后根據(jù)測試沒問題的仿真圖紙,焊接實物,調(diào)試,最終完成本設(shè)計的作品。
|