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