1. 搖棒的啟動
通過P3.6和P3.7輸出驅動音圈電機的信號, 由于沒有設置檢測搖棒的傳感器,時間間隔只能跟據實驗確定。在調試中發現,當驅動搖棒的信號轉換加速到一定的時候,從靜止狀態轉到正常擺動狀態發生困難,因此需要由慢到快的驅動過程。由下面的程序段實現。
do {
mm--;
DelayMs(120+mm*5); //逐漸縮短延時間
put1=~put1; put2=~put2; //轉換輸出口電平狀態
}while(mm>0);
2. 秒閃現的實現
數字和字符的閃現是通過變量Ms和數組w[]實現的,如需要七位字符中的間的第4位閃現,則w[3]=1。這是通過全局變量Ms在void timer0(void)函數中每隔一秒改變一次狀態(0或1),在void timer1(void)函數中的下列語句中實現。
if((put1==1)&&(ii<7)&&(Ms*w[ii]==0)) P2=~ASCIIDOC[v[ii]*6+jj]; else P2=0xff;
3. 校正顯示不均勻
調試中發現,顯示屏上的字符并不是一樣寬的,仔細分析是由于搖棒在運動中一直受力,使搖棒產生加速運動,這樣就需要在程序中加一校正因子,逐漸縮短顯示的時間段。具體是通過變量tt在函數void timer1(void)中實現的。
4. 按鍵去抖程序
按鍵的去抖采用軟件編程實現,其方法是當檢測到按鍵的接口出現低電平后,隔一段時間再檢測,如還是低電平,則確認為有效,否則無效。具體的程序是通過函數unsigned char ChKey(bit Key)實現。
5. 顯示同步
調試時要根據實際情況確定Ti的值,保證顯示正常。
6.預留的部分功能
提供的程序除提供了一個完整的時鐘程序外,還預留了顯示七個字符功能(見圖12),只是主程序要作一些修改。
?
圖12