簡(jiǎn)易電子時(shí)鐘設(shè)計(jì)單片機(jī)_第1頁(yè)
簡(jiǎn)易電子時(shí)鐘設(shè)計(jì)單片機(jī)_第2頁(yè)
簡(jiǎn)易電子時(shí)鐘設(shè)計(jì)單片機(jī)_第3頁(yè)
簡(jiǎn)易電子時(shí)鐘設(shè)計(jì)單片機(jī)_第4頁(yè)
簡(jiǎn)易電子時(shí)鐘設(shè)計(jì)單片機(jī)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.基于單片機(jī)的簡(jiǎn)易電子時(shí)鐘設(shè)計(jì)一 功能分析1)時(shí)制式為24小時(shí)制。2)采用LED數(shù)碼管顯示時(shí)、分,秒采用數(shù)字顯示。3)具有方便的時(shí)間調(diào)校功能。4)計(jì)時(shí)穩(wěn)定度高,可精確校正計(jì)時(shí)精度。二 總體方案設(shè)計(jì)論證比較 2.1 實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)的基本方法利用MCS-51系列單片機(jī)的可編程定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)來(lái)實(shí)現(xiàn)時(shí)鐘計(jì)數(shù)。(1) 計(jì)數(shù)初值計(jì)算:把定時(shí)器設(shè)為工作方式1,定時(shí)時(shí)間為50ms,則計(jì)數(shù)溢出20次即得時(shí)鐘計(jì)時(shí)最小單位秒,而100次計(jì)數(shù)可用軟件方法實(shí)現(xiàn)。假設(shè)使用T/C0,方式1,50ms定時(shí),fosc=12MHz。則初值X滿(mǎn)足(216-X)1/12MHz12s =50000sXB

2、0H(2) 采用中斷方式進(jìn)行溢出次數(shù)累計(jì),計(jì)滿(mǎn)20次為秒計(jì)時(shí)(1秒);(3) 從秒到分和從分到時(shí)的計(jì)時(shí)是通過(guò)累加和數(shù)值比較實(shí)現(xiàn)。2.2 電子鐘的時(shí)間顯示電子鐘的時(shí)鐘時(shí)間在六位數(shù)碼管上進(jìn)行顯示,因此,在內(nèi)部RAM中設(shè)置顯示緩沖區(qū)共8個(gè)單元。LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED137H 36H 35H 34H 33H 32H 31H 30H時(shí)十位 時(shí)個(gè)位 分隔 分十位 分個(gè)位 分隔 秒十位秒個(gè)位2.3 電子鐘的時(shí)間調(diào)整電子鐘設(shè)置3個(gè)按鍵通過(guò)程序控制來(lái)完成電子鐘的時(shí)間調(diào)整。A鍵調(diào)整時(shí);B鍵調(diào)整分;C鍵復(fù)位2.4 總體方案介紹2.4.1 計(jì)時(shí)方案利用AT89S5

3、1單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。該方案節(jié)省硬件成本,且能使讀者在定時(shí)/計(jì)數(shù)器的使用、中斷及程序設(shè)計(jì)方面得到鍛煉與提高,對(duì)單片機(jī)的指令系統(tǒng)能有更深入的了解,從而對(duì)學(xué)好單片機(jī)技術(shù)這門(mén)課程起到一定的作用。2.4.2 控制方案AT89S51的P0口和P2口外接由八個(gè)LED數(shù)碼管(LED8LED1)構(gòu)成的顯示器,用P0口作LED的段碼輸出口,P2口作八個(gè)LED數(shù)碼管的位控輸出線,P1口外接四個(gè)按鍵A、B、C構(gòu)成鍵盤(pán)電路。AT89S51 是一種低功耗,高性能的CMOS 8位微型計(jì)算機(jī)。它帶有8K Flash 可編程和擦除的只讀存儲(chǔ)器(EPROM),該器件采用ATME

4、L的高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)上標(biāo)準(zhǔn)的80C51和80C52的指令系統(tǒng)及引腳兼容,片內(nèi)Flash 集成在一個(gè)芯片上,可用與解決復(fù)雜的問(wèn)題,且成本較低。簡(jiǎn)易電子鐘的功能不復(fù)雜,采用其現(xiàn)有的I/O便可完成,所以本設(shè)計(jì)中采用此的設(shè)計(jì)方案。三 硬件電路設(shè)計(jì)根據(jù)以上的電子時(shí)鐘的設(shè)計(jì)要求可以分為以下的幾個(gè)硬件電路模塊:?jiǎn)纹瑱C(jī)模塊、數(shù)碼顯示模塊與按鍵模塊,模塊之間的關(guān)系圖如下面得方框電路圖1所示。圖1 硬件電路方框圖四 各模塊電路設(shè)計(jì)4.1.1 芯片分析AT89C51單片機(jī)引腳圖如下:圖2 AT89C51引腳圖MCS-51單片機(jī)是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,其各引腳功能如下:VCC:+5

5、V電源。VSS:接地。RST:復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用完成單片機(jī)的復(fù)位初始化操作。XTAL1和XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。P0口:P0口為一個(gè)8位漏極開(kāi)路雙向I/O口,當(dāng)作輸出口使用時(shí),必須接上拉電阻才能有高電平輸出;當(dāng)作輸入口使用時(shí),必須先向電路中的鎖存器寫(xiě)入“1”,使FET截止,以避免鎖存器為“0”狀態(tài)時(shí)對(duì)引腳讀入的干擾。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,它不再需要多路轉(zhuǎn)接電路MUX;因此它作為輸出口使用時(shí),無(wú)需再外接上拉電

6、阻,當(dāng)作為輸入口使用時(shí),同樣也需先向其鎖存器寫(xiě)“1”,使輸出驅(qū)動(dòng)電路的FET截止。P2口:P2口電路比P1口電路多了一個(gè)多路轉(zhuǎn)接電路MUX,這又正好與P0口一樣。P2口可以作為通用的I/O口使用,這時(shí)多路轉(zhuǎn)接電路開(kāi)關(guān)倒向鎖豐存器Q端。P3口:P3口特點(diǎn)在于,為適應(yīng)引腳信號(hào)第二功能的需要,增加了第二功能控制邏輯。當(dāng)作為I/O口使用時(shí),第二功能信號(hào)引線應(yīng)保持高電平,與非門(mén)開(kāi)通,以維持從鎖存器到輸出端數(shù)據(jù)輸出通路的暢通。當(dāng)輸出第二功能信號(hào)時(shí),該位應(yīng)應(yīng)置“1”,使與非門(mén)對(duì)第二功能信號(hào)的輸出是暢通的,從而實(shí)現(xiàn)第二功能信號(hào)的輸出,具體第二功能如表1所示。4.1.2 晶振電路右圖所示為時(shí)鐘電路原理圖,在AT

7、89S51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內(nèi)部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。圖3晶振電路4. 1.3復(fù)位電路單片機(jī)復(fù)位的條件是:必須使RST/VPD 或RST引(9)加上持續(xù)兩個(gè)機(jī)器周期(即24個(gè)振蕩周期)的高電平。例如,若時(shí)鐘頻率為12 MHz,每機(jī)器周期為1s,則只需2s以上時(shí)間的高電平,在RST引腳出現(xiàn)高電平后的第二個(gè)機(jī)器周期執(zhí)行復(fù)位。單片機(jī)常見(jiàn)的復(fù)位如圖所示。電路為上電復(fù)位電路,它是利用電容充電來(lái)

8、實(shí)現(xiàn)的。在接電瞬間,RESET端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐漸下降。只要保證RESET為高電平的時(shí)間大于兩個(gè)機(jī)器周期,便能正常復(fù)位。該電路除具有上電復(fù)位功能外,若要復(fù)位,只需按圖中的RESET鍵,此時(shí)電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個(gè)復(fù)位高電平。圖4單片機(jī)復(fù)位電路4.2 數(shù)碼顯示模塊設(shè)計(jì)系統(tǒng)采用動(dòng)態(tài)顯示方式,用P0口來(lái)控制LED數(shù)碼管的段控線,而用P2口來(lái)控制其位控線。動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺(jué)殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人

9、以同時(shí)顯示的感覺(jué)。圖5 數(shù)碼顯示電路4.3 按鍵模塊下圖為按鍵模塊電路原理圖,A為復(fù)位鍵,B為時(shí)鐘調(diào)控鍵,C為分鐘調(diào)控鍵。 圖 6 按鍵模塊電路原理圖五 軟件設(shè)計(jì)流程圖在編程上,首先進(jìn)行了初始化,定義程序的的入口地址以及中斷的入口地址,在主程序開(kāi)始定義了一組固定單元用來(lái)儲(chǔ)存計(jì)數(shù)的時(shí).分.秒,在顯示初值之后,進(jìn)入主循環(huán)。在主程序中,對(duì)不同的按鍵進(jìn)行掃描,實(shí)現(xiàn)秒表,時(shí)間調(diào)整,復(fù)位清零等功能,系統(tǒng)總流程圖如下圖7:圖 7 軟件設(shè)計(jì)流程圖六 程序清單 ORG 0000H MOV 30H,#1 設(shè)置時(shí)鐘的起始時(shí)間12.00.00,分配顯示數(shù)據(jù)內(nèi)存 MOV 31H,#2 MOV 32H,#0 MOV 33

10、H,#0 MOV 34H,#0 MOV 35H,#0 MOV TMOD,#01 啟動(dòng)計(jì)數(shù)器XS0: SETB TR0 使 TRO位置1 MOV TH0,#00H 計(jì)數(shù)器置零 MOV TL0,#00HXS: MOV 40H,#0FEH 掃描控制字初值 MOV DPTR,#TAB 取段碼表地址 MOV P2,40H 從P2口輸出 MOV A,30H 取顯示數(shù)據(jù)到A MOVC A,A+DPTR 查顯示數(shù)據(jù)對(duì)應(yīng)段碼 MOV P0,A 段碼放入P0中 LCALL YS1MS 顯示1MS MOV P0,#0FFH PO端口清零 MOV A,40H 取掃描控制字放入A中 RL A A中數(shù)據(jù)循環(huán)左移 MOV

11、40H,A 放回40H地址段內(nèi) MOV P2,40H MOV A,31H ADD A,#10 進(jìn)位顯示 MOVC A,A+DPTR MOV P0,A LCALL YS1MS MOV P0,#0FFH MOV A,40H RL A MOV 40H,A MOV P2,40H MOV A,32H MOVC A,A+DPTR MOV P0,A LCALL YS1MS MOV P0,#0FFH MOV A,40H RL A MOV 40H,A MOV P2,40H MOV A,33H ADD A,#10 MOVC A,A+DPTR MOV P0,A LCALL YS1MS MOV P0,#0FFH MO

12、V A,40H RL A MOV 40H,A MOV P2,40H MOV A,34H MOVC A,A+DPTR MOV P0,A LCALL YS1MS MOV P0,#0FFH MOV A,40H RL A MOV 40H,A MOV P2,40H MOV A,35H MOVC A,A+DPTR MOV P0,A LCALL YS1MS MOV P0,#0FFH MOV A,40H RL A MOV 40H,A JB TF0,JIA 如果TF0為1時(shí),則執(zhí)行JIA,否則順序執(zhí)行 JNB P1.0,P100 為0則 轉(zhuǎn)移到P100 JNB P1.1,P1000 為0則 轉(zhuǎn)移到P1000 J

13、NB P1.2,P10000 為0則 轉(zhuǎn)移到P10000 AJMP XS 跳轉(zhuǎn)到 XSP100: MOV 30H,#0 清零程序 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0JIA: CLR TF0 TF0清零 MOV A,35H 秒單位數(shù)據(jù)到A CJNE A,#9,JIA1 與 9進(jìn)行比較,大于9就轉(zhuǎn)移到JIA1 MOV 35H,0 秒個(gè)位清零 MOV A,34H 秒十位數(shù)據(jù)到A CJNE A,#5,JIA10 與5進(jìn)行比較,大于5就轉(zhuǎn)移到JIA10 MOV 34H,#0 秒十位清零P10000: JNB P1.2,P10000

14、 為0則 轉(zhuǎn)移到P10000 MOV A,33H 取分的個(gè)位到A CJNE A,#9,JIA100 與 9進(jìn)行比較,大于9就轉(zhuǎn)移到JIA100 MOV 33H,#0 分的個(gè)位清零 MOV A,32H 分十位數(shù)據(jù)到A CJNE A,#5,JIA1000 與5進(jìn)行比較,大于5就轉(zhuǎn)移到JIA1000 MOV 32H,#0 分的十位清零P1000: JNB P1.1,P1000 為0則 轉(zhuǎn)移到P1000 MOV A,31H 時(shí)個(gè)位數(shù)據(jù)到A CJNE A,#9,JIA10000 與 9進(jìn)行比較,大于9就轉(zhuǎn)移到JIA10000 MOV 31H,#0 時(shí)的個(gè)位清零 MOV A,30H 時(shí)十位數(shù)據(jù)到A CJN

15、E A,#2,JIA100000 與2進(jìn)行比較,大于5就轉(zhuǎn)移到JIA100000 MOV 30H,#0 時(shí)的十位清零 AJMP XS0 轉(zhuǎn)移到 XSOJIA100000: INC 30H 加1 AJMP XS0 跳轉(zhuǎn)到 XS0JIA10000: CJNE A,#3,JIAJIA 與3進(jìn)行比較,大于則轉(zhuǎn)移到JIAJIA MOV A,30H 將時(shí)的十位放到 A CJNE A,#02,JIAJIA 與2進(jìn)行比較,大于則轉(zhuǎn)移到JIAJIA MOV 30H,#0 時(shí)段清零 MOV 31H,#0 AJMP XS0 跳轉(zhuǎn)到XSOJIAJIA: INC 31H 加一 AJMP XS0 JIA1000:INC 32H AJMP XS0JIA100: INC 33H AJMP XS0 JIA10: INC 34H AJMP XS0JIA1: INC 35H AJMP XS0 RET 返回YS1MS: MOV R6,#9H 延時(shí)程序YL1: MOV R7,#19H DJNZ R7,$ DJNZ R6,YL1 RETTAB:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H 共陽(yáng)段碼表DB 040H,079H,024H,030H,019H,012H,002H,078H,000H,010H END七 運(yùn)行結(jié)果說(shuō)明

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論