歡迎您光臨本站 登入註冊首頁

概述

用51單片機製作的多路定時自控電路用51單片機製作的多路定時自控電路 該電路由一片AT89C2051單片機、6位LED數碼管、6個按鍵、11.0952NHz晶振等組成,並接了1片74HC374擴展了5……
用51單片機製作的多路定時自控電路
用51單片機製作的多路定時自控電路

 該電路由一片AT89C2051單片機、6位LED數碼管、6個按鍵、11.0952NHz晶振等組成,並接了1片74HC374擴展了5個輸出口。

 一、硬體設計

電路原理圖見圖1。整個電路由顯示電路、鍵盤電路、輸入輸出介面及CPU組成。

 顯示電路由U2、U3、Vl~V7和六位共陽數碼管組成(二位一組,分別顯示時、分、秒)。其中,U2為BCD-7段解碼器CD4511,通過單片機U11的P1.4~P1.7,將要顯示的字元BCD碼輸入至U2。經U2解碼后,輸出相應的筆段驅動LED數碼管。



  LED數碼管顯示採用動態掃描方式。在某一時刻只有一隻數碼管點亮。點亮的位置信號由U3(74HCl38)輸出。來自單片機U1的3位數碼管位置編碼信號,通過U3輸出為相應的數碼管驅動信號,並通過V1~V6放大后,驅動相應的數碼管。六位數碼管接至埠JP4上。其中,埠的③一⑧腳接各數碼管的公共陽極:⑨腳接數碼管的時、分、秒的分隔點腳;(16)~(10)腳接各數碼管的段顯示腳(A、B、C、D、E、F、G)。由於U2隻能輸出7段筆段碼,因而數碼管的時、分、秒分隔點是通過V7來驅動的。當需要點亮分隔點時,只要在U1的P1.3輸出高電平即可。

 鍵盤電路也採用掃描方式,並巧妙地利用了顯示時的數碼管驅動的位置信號。也就是在顯示的同時,判斷按鍵的狀態。方法是:在顯示某一數碼管時,判斷Ul的P3.7口的狀態。如果P3.7為高電平,說明沒有按鍵按下:如果為低電平,則說明相應的按鍵按下。這時,通過讀U1的P3口中P3.3-P3.5口的值。就可判斷是哪個鍵按下。然後調用相應的處理程序進行處理。

 擴展輸出口利用顯示的間隙,將輸出數據通過U4(74HC374)鎖存輸出。既不影響顯示功能,也使輸出信號穩定。擴展輸出過程如下:首先在P3口輸出XX110XXX,U3的⑨腳輸出低電平,接著將要輸出的數據寫到U1的P1.3~P1.7口,然後在P3口輸出XXlllXXX,U3的⑨腳輸出高電平,這樣,輸出數據就被鎖存在U4的00~04中了。

 二、軟體設計

程序主要包括:定時中斷服務程序、時鐘顯示程序、鍵盤掃描處理程序、八路時控程序,主程序流程見圖2。

 定時中斷服務程序為系統提供標準時鐘。採用TO中斷方式。其流程圖見圖3。待顯示的6位時鐘(時、分、秒各兩位)以壓縮BCD碼形式存放在2lH~23H中,低位在前,高位在後。定時中斷服務子程序不斷刷新2lH~23H中的內容。時鐘顯示子程序驅動顯示標準時鐘(電子錶),時間顯示至秒。

 八路時控程序採用循環調用方式。調用過程中,檢測21H~23H的時鐘信息,若與設定的定時起控時間相符。則輸出至P1口相應管腳。





[admin via 研發互助社區 ] 用51單片機製作的多路定時自控電路已經有3035次圍觀

http://cocdig.com/docs/show-post-39342.html