您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>發(fā)光二極管>

軟件設(shè)計 - 創(chuàng)意設(shè)計之DIY搖擺LED時鐘

2012年03月20日 10:27 本站整理 作者:秩名 用戶評論(0
三. 軟件設(shè)計

  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

  

非常好我支持^.^

(44) 97.8%

不好我反對

(1) 2.2%

( 發(fā)表人:diyfans )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?