標(biāo)題: 51單片機(jī)時(shí)鐘,匯編代碼 [打印本頁]

作者: lizijian118    時(shí)間: 2025-5-17 11:23
標(biāo)題: 51單片機(jī)時(shí)鐘,匯編代碼
實(shí)驗(yàn)一 數(shù)碼管顯示
一、實(shí)驗(yàn)內(nèi)容
在 4 位數(shù)碼管上精確地顯示時(shí)間的分鐘秒信息,并且能夠每秒自動(dòng)更新顯示內(nèi)容,以實(shí)時(shí)反映時(shí)間的流逝。通過外部開關(guān)的閉合動(dòng)作,將系統(tǒng)切換至?xí)r間設(shè)置模式。在此模式下,借助不同的開關(guān)操作,實(shí)現(xiàn)對(duì)當(dāng)前時(shí)間的加 1 和減 1 調(diào)整,從而完成時(shí)間的設(shè)置功能
二、方案設(shè)計(jì)
(一)硬件設(shè)計(jì)
選用 AT89C51 單片機(jī)作為核心控制單元,充分利用其豐富的內(nèi)部資源與強(qiáng)大的控制能力。
對(duì)于 4 位數(shù)碼管,采用共陽極連接方式,通過單片機(jī)的 P0 口連接數(shù)碼管的段選線,以實(shí)現(xiàn)對(duì)數(shù)碼管各段顯示內(nèi)容的精確控制;利用 P2 口作為位選控制端口,精準(zhǔn)地控制每個(gè)數(shù)碼管的顯示與否,確保時(shí)間信息能夠準(zhǔn)確無誤地在相應(yīng)數(shù)碼管上顯示。
將時(shí)間設(shè)置開關(guān)分別連接至單片機(jī)的 P1.0(斷開開關(guān)以時(shí)間設(shè)置),P1.1(用于加 1 操作)和 P1.2(用于減 1 操作)引腳,通過對(duì)這些引腳電平狀態(tài)的監(jiān)測,及時(shí)捕捉開關(guān)動(dòng)作,進(jìn)而觸發(fā)相應(yīng)的時(shí)間設(shè)置處理程序。
(二)軟件設(shè)計(jì)
單片機(jī)定時(shí)器經(jīng)初始化設(shè)定,以產(chǎn)生周期為 10ms 的中斷信號(hào)。在中斷服務(wù)程序內(nèi),設(shè)有一計(jì)數(shù)變量,每次中斷發(fā)生時(shí),該變量自動(dòng)累加。當(dāng)累計(jì)次數(shù)達(dá) 100 時(shí),此即表示已歷經(jīng) 1 秒時(shí)長,此刻便對(duì)寄存器 R2 予以更新,作為時(shí)間更新的關(guān)鍵依據(jù)。在主程序循環(huán)中,持續(xù)監(jiān)測 R2 值。一旦 R2 大于 10,意味著秒數(shù)個(gè)位已達(dá)進(jìn)位條件,隨即對(duì)十位秒緩存值進(jìn)行更新。同時(shí),系統(tǒng)依照相同邏輯,依次對(duì)十位秒、分、十位分的緩存值展開判斷與更新操作。例如,當(dāng)秒數(shù)累滿 60,分鐘緩存值遞增;分鐘累滿 60,則十位分鐘緩存值相應(yīng)改變,以此確保時(shí)間數(shù)據(jù)的準(zhǔn)確推進(jìn)與更新。對(duì)于按鍵控制,當(dāng)讀取到P1.0呈現(xiàn)低電平時(shí),立即暫停定時(shí)器運(yùn)行,P1.1,P1.2用于更新時(shí)間。

51hei2.png (125.82 KB, 下載次數(shù): 0)

51hei2.png

51hei1.png (96.79 KB, 下載次數(shù): 0)

51hei1.png

c51.zip

44.52 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5

代碼

fz.zip

42.17 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5

PROTEUS仿真






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1