單片機(jī)四位時(shí)鐘電路設(shè)計(jì)方案(一)
以AT89C51單片機(jī)為核心的時(shí)鐘電路的程序設(shè)計(jì)
1.主程序設(shè)計(jì)及系統(tǒng)主流程圖
設(shè)計(jì)中采用定時(shí)器T0中斷完成,其余狀態(tài)循環(huán)調(diào)用顯示子程序。系統(tǒng)主流程圖如圖所示
2.時(shí)鐘電路的時(shí)鐘和鬧鈴程序設(shè)計(jì)及流程圖
時(shí)鐘采用11.0256MHZ的脈沖控制, 鬧鈴采用整點(diǎn)報(bào)時(shí)功能。
3 時(shí)鐘電路的顯示程序設(shè)計(jì)及流程圖
碼管顯示的數(shù)據(jù)存放在內(nèi)存單元70H-75H中,其中70H~71H存放秒數(shù)據(jù),72H~73H存放分?jǐn)?shù)據(jù),74H~75H存放時(shí)數(shù)據(jù),每一地址單元內(nèi)均為十進(jìn)制BCD碼。由于采用軟件動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示功能,顯示用十進(jìn)制BCD碼數(shù)據(jù)的對(duì)應(yīng)段碼存放在ROM表中。顯示時(shí),先取出70H~75H某一地址中的數(shù)據(jù),然后查的對(duì)應(yīng)的顯示段碼從P1口輸出。P3口將對(duì)應(yīng)的數(shù)碼管選中,就是顯示該地址單元的數(shù)據(jù)值,每個(gè)LED數(shù)碼管亮1MS時(shí)間再逐位循環(huán)。
4.時(shí)鐘電路的鍵盤程序設(shè)計(jì)及流程圖
P0口輸出段碼數(shù)據(jù),P1.0-P1.2口作掃描輸出,P0.1—P0.4口接按鈕開關(guān)S1,S2,S3,S4,S5,rest 接S6復(fù)位按鍵。P0.0控制秒的調(diào)整,每按一次加1秒;P0.1控制分的調(diào)整,每按一次加1分;P0.2控制時(shí)的調(diào)整,每按一次加1個(gè)小時(shí)。
5.仿真圖及程序
單片機(jī)四位時(shí)鐘電路設(shè)計(jì)方案(二)
通過S1、S2、S3和S4四個(gè)按鍵,對(duì)時(shí)間進(jìn)行修改和鬧鐘的設(shè)置,S0控制鬧鐘的啟動(dòng)和停止。按下S4鍵顯示鬧鐘,松開后顯示時(shí)間;按下S1鍵進(jìn)入時(shí)間修改模式,再按S1鍵時(shí)間的時(shí)加1,按S3分加1,調(diào)整結(jié)束后按下S4恢復(fù)正常顯示;按下S2鍵進(jìn)入鬧鐘修改模式,再按S3鍵鬧鐘的時(shí)加1,按S3分加1,調(diào)整結(jié)束后按下S4恢復(fù)正常顯示。在按鍵按下和放開時(shí)會(huì)出現(xiàn)抖動(dòng)現(xiàn)象。通過延時(shí)程序,可以進(jìn)行去抖動(dòng)設(shè)計(jì)。
Proteus仿真電路
評(píng)論
查看更多