通用單片機組成低價位時鐘顯示器

admin @ 2014-03-14 , reply:0

一.概述:
    這裡,我們用低價位單片機HT48R05A設計一款時鐘顯示電路,採用一個組合顯示單元,可顯示4位7段數碼,例如顯示“時:分”或“分:秒”值,同時設置四個按鍵用於校準時間,雖然通用單片機沒有使用標準校時專用晶體,時間也不容易做到非常準確(例如要求每個月誤差不大於1s),但對於很多不需要精確時間控制的應用電路還是有很多應用空間。

    推而廣之,也可用其他系列資源基本足夠的單片機來實現,例如EM78P153等,但他們的指令不一定相同,但編程方法是基本一致的。

    我們用HT48R05A-1的PA0-PA6口作為段口線(因為只需7段,PA7不用),輸出數碼的段數據,其它空餘的口(取決與PCB布局方便,用任何5個I/O口均可)作為位驅動輸出,因為電路圖中我們使用了NPN三極體作為驅動管,那麼數碼管必須是共陰極的,當然也可使用共陽極,但需使用PNP驅動三極體,同時程序的位操作是剛好相反的。我們採用四個數碼管(LED)顯示單元採用動態掃描顯示,PA口線還接有4個鍵盤,分別可作為控制鍵使用(例如“時、分、秒”的設置,“開始”、“選擇”,“電源”等按鍵)。

    PA口既作輸出口又作輸入口,在程序上必須時刻改變其口線方式,作為輸出口時,必須對其控制寄存器寫“0”,而作為輸入口線時,必須對其控制寄存器寫“1”。所以PA的工作狀態是時刻改變的,動態掃描要求掃描頻率不能太低,否則顯示的數字會出現閃爍,一般頻率不低於50Hz,就感覺不到閃爍,這在程序上是比較容易實現。

    程序中我們使用了定時中斷來實現時間的加或減時,這樣主程序只需要監控動態掃描輸出和鍵盤。在定時中斷程序中對時,分或秒進行加(或減時)操作,並將更新數據送到顯示緩衝區,這樣動態掃描顯示時的時間取自顯示緩衝區單元即可。
 
    這樣的設計我們幾乎使用了HT48R05A-1的全部資源,達到“物盡其用”的目的,這樣才能使成本最低,價格具有較強的競爭優勢,當然HT48R05A-1的ROM容量僅為512Byte,但對於僅作時間顯示器是完全足夠的,只要合理地安排流程,程序並不複雜。

    值得注意的是,單片機中運算是採用16進位進行的,而時鐘的加(或減時)則有多種制式,例如每10秒進十,屬於十進位,而每60秒加一分鐘和每60分鐘加(或減)一小時,則屬於60進位,每十二個小時(或二十四小時)為一天又屬於12進位(或二十四進進位),這在程序中必須變換,保證時間能正確顯示。

    同時,因為HT48R05A-1具有13個I/O口線,我們此電路僅使用了11個,還剩餘兩個I/O口,也可生級為驅動6位LED的可完整顯示"時,分,秒"的時鐘電路,按同樣原理即可,當然,程序也需同步考慮.



[admin via 研發互助社區 ] 通用單片機組成低價位時鐘顯示器已經有4899次圍觀

http://www.cocdig.com/docs/show-post-866.html