本文介紹用單片機(jī)制作的定時(shí)自控電路實(shí)現(xiàn)八路定時(shí)控制,非常適合于學(xué)校等單位作為作息控制信號或其他定時(shí)控制用,有興趣的朋友不妨一試。
該電路由一片AT89C2051單片機(jī)、6位LED數(shù)碼管、6個(gè)按鍵、11.0952NHz晶振等組成,并接了1片74HC374擴(kuò)展了5個(gè)輸出口。
一、硬件設(shè)計(jì)
電路原理圖見圖1。整個(gè)電路由顯示電路、鍵盤電路、輸入輸出接口及CPU組成。
顯示電路由U2、U3、Vl~V7和六位共陽數(shù)碼管組成(二位一組,分別顯示時(shí)、分、秒)。其中,U2為BCD-7段譯碼器CD4511,通過單片機(jī)U11的P1.4~P1.7,將要顯示的字符BCD碼輸入至U2。經(jīng)U2譯碼后,輸出相應(yīng)的筆段驅(qū)動(dòng)LED數(shù)碼管。
LED數(shù)碼管顯示采用動(dòng)態(tài)掃描方式。在某一時(shí)刻只有一只數(shù)碼管點(diǎn)亮。點(diǎn)亮的位置信號由U3(74HCl38)輸出。來自單片機(jī)U1的3位數(shù)碼管位置編碼信號,通過U3輸出為相應(yīng)的數(shù)碼管驅(qū)動(dòng)信號,并通過V1~V6放大后,驅(qū)動(dòng)相應(yīng)的數(shù)碼管。六位數(shù)碼管接至端口JP4上。其中,端口的③一⑧腳接各數(shù)碼管的公共陽極:⑨腳接數(shù)碼管的時(shí)、分、秒的分隔點(diǎn)腳;(16)~(10)腳接各數(shù)碼管的段顯示腳(A、B、C、D、E、F、G)。由于U2只能輸出7段筆段碼,因而數(shù)碼管的時(shí)、分、秒分隔點(diǎn)是通過V7來驅(qū)動(dòng)的。當(dāng)需要點(diǎn)亮分隔點(diǎn)時(shí),只要在U1的P1.3輸出高電平即可。
鍵盤電路也采用掃描方式,并巧妙地利用了顯示時(shí)的數(shù)碼管驅(qū)動(dòng)的位置信號。也就是在顯示的同時(shí),判斷按鍵的狀態(tài)。方法是:在顯示某一數(shù)碼管時(shí),判斷Ul的P3.7口的狀態(tài)。如果P3.7為高電平,說明沒有按鍵按下:如果為低電平,則說明相應(yīng)的按鍵按下。這時(shí),通過讀U1的P3口中P3.3-P3.5口的值。就可判斷是哪個(gè)鍵按下。然后調(diào)用相應(yīng)的處理程序進(jìn)行處理。
擴(kuò)展輸出口利用顯示的間隙,將輸出數(shù)據(jù)通過U4(74HC374)鎖存輸出。既不影響顯示功能,也使輸出信號穩(wěn)定。擴(kuò)展輸出過程如下:首先在P3口輸出XX110XXX,U3的⑨腳輸出低電平,接著將要輸出的數(shù)據(jù)寫到U1的P1.3~P1.7口,然后在P3口輸出XXlllXXX,U3的⑨腳輸出高電平,這樣,輸出數(shù)據(jù)就被鎖存在U4的00~04中了。
二、軟件設(shè)計(jì)
程序主要包括:定時(shí)中斷服務(wù)程序、時(shí)鐘顯示程序、鍵盤掃描處理程序、八路時(shí)控程序,主程序流程見圖2。
定時(shí)中斷服務(wù)程序?yàn)橄到y(tǒng)提供標(biāo)準(zhǔn)時(shí)鐘。采用TO中斷方式。其流程圖見圖3。待顯示的6位時(shí)鐘(時(shí)、分、秒各兩位)以壓縮BCD碼形式存放在2lH~23H中,低位在前,高位在后。定時(shí)中斷服務(wù)子程序不斷刷新2lH~23H中的內(nèi)容。時(shí)鐘顯示子程序驅(qū)動(dòng)顯示標(biāo)準(zhǔn)時(shí)鐘(電子表),時(shí)間顯示至秒。
八路時(shí)控程序采用循環(huán)調(diào)用方式。調(diào)用過程中,檢測21H~23H的時(shí)鐘信息,若與設(shè)定的定時(shí)起控時(shí)間相符。則輸出至P1口相應(yīng)管腳。
-
AT89C2051
+關(guān)注
關(guān)注
7文章
170瀏覽量
66341 -
定時(shí)電路
+關(guān)注
關(guān)注
2文章
41瀏覽量
21590
發(fā)布評論請先 登錄
相關(guān)推薦
評論