版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 題 目:基于51單片機(jī)的時(shí)鐘調(diào)整系統(tǒng)</p><p><b> 前言</b></p><p> 時(shí)鐘是人類生活中必不可少的工具,從掛式的、手機(jī)上的、電腦上的以及手表等。學(xué)完單片機(jī)后,我們基本了解到了單片機(jī)時(shí)鐘的工作原理以及實(shí)現(xiàn)方式。借此研究性教學(xué)的機(jī)會(huì),我們打算用單片機(jī)的知識(shí)完成對(duì)單片機(jī)電子時(shí)鐘的設(shè)計(jì)以及制作。該設(shè)計(jì)不僅可以鍛煉我們的動(dòng)
2、手能力,而且可以加深我們對(duì)單片機(jī)的認(rèn)識(shí)和激發(fā)我們對(duì)機(jī)電控制的探索。</p><p> 基于單片機(jī)的數(shù)字時(shí)鐘采用獨(dú)立式按鍵來(lái)進(jìn)行時(shí)間調(diào)整, MAX7219、AT89C51是其主要芯片,并利用數(shù)碼管LED動(dòng)態(tài)顯示“時(shí)”,“分”,“秒”的現(xiàn)代計(jì)時(shí)裝置。與傳統(tǒng)機(jī)械表相比,它具有走時(shí)精確,顯示直觀等特點(diǎn)。它的計(jì)時(shí)周期為24小時(shí),顯滿刻度為“23時(shí)59分59秒”。它不僅僅可以顯示時(shí)間,還可以顯示星期??偠灾撓到y(tǒng)同時(shí)具有
3、硬件設(shè)計(jì)簡(jiǎn)單,工作穩(wěn)定性高,價(jià)格低廉等優(yōu)點(diǎn)。</p><p> 關(guān)鍵詞:時(shí)鐘 、LED顯示、MAX7219、AT89C51、點(diǎn)陣LED顯示器</p><p><b> 任務(wù)</b></p><p> 設(shè)計(jì)一個(gè)單片機(jī)時(shí)鐘顯示調(diào)整系統(tǒng),其中擴(kuò)展連接6個(gè)8段LED數(shù)碼管顯示器,利用MAX7219顯示驅(qū)動(dòng)器驅(qū)動(dòng)LED用于時(shí)鐘顯示和調(diào)整,利用8*8
4、點(diǎn)陣LED顯示器顯示星期。連接3個(gè)獨(dú)立式按鍵分別控制系統(tǒng)的顯示模式切換和時(shí)間值增減調(diào)整。</p><p><b> 方案</b></p><p> 硬件選擇:MAX7219驅(qū)動(dòng)器、AT89C51單片機(jī)、6位LED顯示器、8*8點(diǎn)陣LED、74LS14、74LS245、電阻、CAP電容、PCELECT4U763V電容、晶振、按鍵、電源</p><
5、p><b> 功能要求</b></p><p> 六位數(shù)碼管顯示時(shí)、分、秒,以24小時(shí)運(yùn)算</p><p><b> 點(diǎn)陣LED顯示星期</b></p><p> 可實(shí)現(xiàn)對(duì)秒、分、時(shí)、星期的加減調(diào)整</p><p><b> 程序設(shè)計(jì)</b></p>
6、<p><b> 1、主程序</b></p><p> 設(shè)計(jì)中計(jì)時(shí)采用定時(shí)器T0中斷完成。主程序循環(huán)調(diào)用顯示子程序和查鍵,當(dāng)端口有開關(guān)按下時(shí),轉(zhuǎn)入相應(yīng)的功能程序。流程圖如圖1所示。</p><p><b> 圖1 主程序流程</b></p><p><b> 顯示子程序</b>&
7、lt;/p><p> 顯示由MAX7219驅(qū)動(dòng)的六位顯示器和點(diǎn)陣LED顯示器共同完成,首先對(duì)其進(jìn)行初始化,然后用單片機(jī)控制顯示器顯示。</p><p> MAX7219驅(qū)動(dòng)器顯示流程圖</p><p><b> 圖2 顯示子程序</b></p><p> 定時(shí)器T0中斷服務(wù)程序</p><p&g
8、t; 定時(shí)溢出中斷周期設(shè)為50MS,中斷進(jìn)入后先進(jìn)行定時(shí)中斷初值校正,當(dāng)中斷累加到20次時(shí),對(duì)秒計(jì)數(shù)單元進(jìn)行加1操作。時(shí)鐘最大計(jì)時(shí)值為23時(shí)59分59秒。在計(jì)數(shù)單元中,采用十進(jìn)制BCD碼計(jì)數(shù),滿十進(jìn)位。流程圖如圖3所示</p><p> 在程序中采用12MHZ晶振頻率,精度為1MS,定時(shí)初值為50MS,用循環(huán)程序進(jìn)行20次循環(huán)可到1S。當(dāng)1S到時(shí)調(diào)用加1程序并判斷秒、分是否為60,當(dāng)秒為60時(shí),秒清零,分加1
9、;當(dāng)分為60時(shí),分清零。當(dāng)時(shí)滿24時(shí),星期加1,時(shí)清零,星期由1至7循環(huán)。終端結(jié)束時(shí),計(jì)時(shí)單元數(shù)據(jù)移入對(duì)應(yīng)顯示單元。</p><p><b> 三、按鍵設(shè)置</b></p><p> 本時(shí)鐘設(shè)置P1.0,P1.1,P1.2接3個(gè)按鈕開關(guān),用于調(diào)時(shí)。其中P1.0用于選擇調(diào)時(shí)模式(對(duì)星期,小時(shí),分鐘,秒的選擇),P1.1完成對(duì)所選的項(xiàng)目進(jìn)行增一的操作,P1.2完成對(duì)所
10、選項(xiàng)目進(jìn)行減一的操作。</p><p><b> 四、程序</b></p><p> KEY1BITP1.0</p><p> KEY2BITP1.1</p><p> KEY3BITP1.2</p><p> CLKBITP1.3</p><p&g
11、t; LOADBITP1.4</p><p> DINBITP1.5</p><p> SECONDDATA30H</p><p> MINUTEDATA31H</p><p> HOURDATA32H</p><p> DAY DATA 33H</p>&
12、lt;p> ORG0000H</p><p><b> AJMPMAIN</b></p><p> ORG000BH</p><p> AJMPTIMER0</p><p> MAIN:MOVSP,#60H</p><p> MOVTMOD,#01H<
13、/p><p> MOVTH0,#0B1H</p><p> MOVTL0,#0E0H</p><p><b> SETBET0</b></p><p><b> SETBEA</b></p><p> MOVR2,#50</p><p
14、><b> SETBTR0</b></p><p> MOVSECOND,#00H</p><p> MOVMINUTE,#00H</p><p> MOVHOUR,#00H</p><p> MOV DAY,#00H</p><p> MO
15、VA,HOUR</p><p> ANLA,#0F0H</p><p><b> SWAPA</b></p><p> MOV79H,A</p><p> MOVA,HOUR</p><p> ANLA,#0FH</p><p> MOV
16、7AH,A</p><p> MOVA,MINUTE</p><p> ANLA,#0F0H</p><p><b> SWAPA</b></p><p> MOV7BH,A</p><p> MOVA, MINUTE</p><p> AN
17、LA,#0FH</p><p> MOV7CH,A</p><p> MOVA,SECOND</p><p> ANLA,#0F0H</p><p><b> SWAPA</b></p><p> MOV7DH,A</p><p> MOV
18、A,SECOND</p><p> ANLA,#0FH</p><p> MOV7EH,A</p><p> MOVR3,#00H</p><p> ACALLINT7219</p><p> LOOP:ACALLKEY</p><p> ACALLDISPL
19、AY</p><p><b> AJMPLOOP</b></p><p> INT7219:MOV50H,#0FH</p><p> MOV51H,#00H</p><p> MOVR0,#50H</p><p> ACALLSEND7219</p><
20、;p> MOV50H,#0CH</p><p> MOV51H,#01H</p><p> MOVR0,#50H</p><p> ACALLSEND7219</p><p> MOV50H,#0BH</p><p> MOV51H,#05H</p><p&g
21、t; MOVR0,#50H</p><p> ACALLSEND7219</p><p> MOV50H,#0AH</p><p> MOV51H,#09H</p><p> MOVR0,#50H</p><p> ACALLSEND7219</p><p>
22、MOV50H,#09H</p><p> MOV51H,#0FFH</p><p> MOVR0,#50H</p><p> ACALLSEND7219</p><p> ACALL D1</p><p><b> RET</b></p><p>
23、; DISPLAY:MOV50H,#01H</p><p> MOV51H,79H</p><p> MOVR0,#50H</p><p> ACALLSEND7219</p><p> MOV50H,#02H</p><p> MOV51H,7AH</p><p>
24、 MOVR0,#50H</p><p> ACALLSEND7219</p><p> MOV50H,#03H</p><p> MOV51H,7BH</p><p> MOVR0,#50H</p><p> ACALLSEND7219</p><p> MOV50H,
25、#04H</p><p> MOV51H,7CH</p><p> MOVR0,#50H</p><p> ACALLSEND7219</p><p> MOV50H,#05H</p><p> MOV51H,7DH</p><p> MOVR0,#50H</p&g
26、t;<p> ACALLSEND7219</p><p> MOV50H,#06H</p><p> MOV51H,7EH</p><p> MOVR0,#50H</p><p> ACALLSEND7219</p><p> ACALL D1</p><p&
27、gt;<b> RET</b></p><p> SEND7219:CLRLOAD</p><p> MOVR4,#02H</p><p><b> CLRC</b></p><p> LOP1:MOVR1,#08H</p><p><b>
28、 MOVA,@R0</b></p><p> LOP2:RLCA</p><p><b> MOVDIN,C</b></p><p><b> SETBCLK</b></p><p><b> CLRCLK</b></p>&
29、lt;p> DJNZR1,LOP2</p><p><b> INCR0</b></p><p> DJNZR4,LOP1</p><p> SETBLOAD</p><p><b> RET</b></p><p><b> D1:&
30、lt;/b></p><p> MOV R6,#0FEH</p><p> MOV R1,#08H</p><p> MOV A,33H</p><p><b> RL A</b></p><p><b> RL A</b><
31、/p><p><b> RL A</b></p><p> MOV R4,A</p><p> LP: MOV P3,#0FFH</p><p><b> MOV A,R4</b></p><p><b> INC R4</b>&
32、lt;/p><p> MOV DPTR,#DTAB</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,R6</p><p> MOV P3,A</p><p><b>
33、; RL A</b></p><p><b> MOV R6,A</b></p><p> ACALL DEL</p><p> DJNZ R1,LP</p><p><b> RET</b></p><p> DEL: MOV R7,
34、#02H</p><p> DL0:MOV R0,#0FFH</p><p> DL6:DJNZ R0,DL6</p><p> DJNZ R7,DL0</p><p><b> RET</b></p><p> KEY:JNBKEY1,KK1</p><p&
35、gt; JBKEY1,$</p><p><b> INCR3</b></p><p> CJNER3,#05H,JMPKK3</p><p> MOVR3,#00H</p><p> JMPKK3:AJMPKK3</p><p> KK1:JNBKEY2,K
36、K2</p><p> JBKEY2,$</p><p><b> MOVA,R3</b></p><p><b> RLA</b></p><p> MOVDPTR,#KJMP1</p><p> JMP@A+DPTR</p><
37、;p> KJMP1:AJMPDISCLK</p><p><b> AJMPSINC</b></p><p><b> AJMPMINC</b></p><p><b> AJMPHINC</b></p><p> AJMP DINC</p
38、><p> SINC:MOVA,SECOND</p><p> ADDA,#01H</p><p><b> DAA</b></p><p> MOVSECOND,A</p><p> CJNEA,#60H,DISS1</p><p> MOV3
39、0H,#01H</p><p> DISS1:AJMPDISS</p><p> MINC:MOVA,MINUTE</p><p> ADDA,#01H</p><p><b> DAA</b></p><p> MOVMINUTE,A</p><p
40、> CJNEA,#60H,DISM1</p><p> MOVMINUTE,#00H</p><p> DISM1:AJMPDISM</p><p> HINC:MOVA,HOUR</p><p> ADDA,#01H</p><p><b> DAA</b>
41、;</p><p> MOVHOUR,A</p><p> CJNEA,#24H,DISH1</p><p> MOVHOUR,#00H</p><p> DISH1:AJMPDISH</p><p> DINC: MOV A,DAY</p><p> ADD A,#
42、01H</p><p> MOV DAY,A</p><p> CJNE A,#07H,DISD1</p><p> MOV DAY,#00H</p><p> DISD1: AJMP DISD</p><p> KK2:JNBKEY3,KK3</p><p> J
43、BKEY3,$</p><p><b> MOVA,R3</b></p><p><b> RLA</b></p><p> MOVDPTR,#KJMP2</p><p> JMP@A+DPTR</p><p> KJMP2:AJMPDISCLK
44、</p><p><b> AJMPSDEC</b></p><p><b> AJMPMDEC</b></p><p><b> AJMPHDEC</b></p><p> AJMP DDEC</p><p> SDEC:MOV
45、A,#9AH</p><p><b> CLRC</b></p><p> SUBBA,#01H</p><p> ADDA,SECOND</p><p><b> DAA</b></p><p> MOVSECOND,A</p>&
46、lt;p> CJNEA,#00H,DISS2</p><p> MOVSECOND,#59H</p><p> DISS2:AJMPDISS</p><p> MDEC:MOVA,#9AH</p><p><b> CLRC</b></p><p> SUBB
47、A,#01H</p><p> ADDA,MINUTE</p><p><b> DAA</b></p><p> MOVMINUTE,A</p><p> CJNEA,#00H,DISM2</p><p> MOVMINUTE,#59H</p><p
48、> DISM2:AJMPDISM</p><p> HDEC:MOVA,#9AH</p><p><b> CLRC</b></p><p> SUBBA,#01H</p><p> ADDA,HOUR</p><p><b> DAA</b
49、></p><p> MOVHOUR,A</p><p> CJNEA,#99H,DISH2</p><p> MOVHOUR,#23H</p><p> DISH2:AJMPDISH</p><p> DDEC: MOV A,#9AH</p><p><
50、;b> CLR C</b></p><p> SUBB A,#01H</p><p> ADD A,DAY</p><p><b> DA A</b></p><p> CJNE A,#99H,DISD2</p><p> MOV A,#06H</
51、p><p> DISD2:MOV DAY,A</p><p> AJMP DISD</p><p> KK3:MOVA,R3</p><p><b> RLA</b></p><p> MOVDPTR,#KJMP3</p><p> JMP@A+
52、DPTR</p><p> KJMP3:AJMPDISCLK</p><p><b> AJMPDISS</b></p><p><b> AJMPDISM</b></p><p><b> AJMPDISH</b></p><p>
53、 AJMP DISD</p><p> DISCLK:MOVR0,#79H</p><p> MOVR1,#HOUR</p><p> MOVR4,#03H</p><p> CFLOOP:MOVA,@R1</p><p><b> SWAPA</b></p&g
54、t;<p> ANLA,#0FH</p><p><b> MOV@R0,A</b></p><p><b> INCR0</b></p><p><b> MOVA,@R1</b></p><p> ANLA,#0FH</p>
55、;<p><b> MOV@R0,A</b></p><p><b> INCR0</b></p><p><b> DECR1</b></p><p> DJNZR4,CFLOOP</p><p><b> SETBTR0&l
56、t;/b></p><p><b> RET</b></p><p> DISS:CLRTR0</p><p> MOVA,SECOND</p><p><b> SWAPA</b></p><p> ANLA,#0FH</p>&
57、lt;p><b> MOV7DH,A</b></p><p> MOVA,SECOND</p><p> ANLA,#0FH</p><p><b> MOV7EH,A</b></p><p> MOV79H,#0FH</p><p> MOV
58、7AH,#0FH</p><p> MOV7BH,#0FH</p><p> MOV7CH,#0FH</p><p><b> AJMPKK5</b></p><p> DISM:CLRTR0</p><p> MOVA,MINUTE</p><p>
59、;<b> SWAPA</b></p><p> ANLA,#0FH</p><p><b> MOV7BH,A</b></p><p> MOVA,MINUTE</p><p> ANL A,#0FH</p><p><b> MOV
60、7CH,A</b></p><p> MOV79H,#0FH</p><p> MOV7AH,#0FH</p><p> MOV7DH,#0FH</p><p> MOV7EH,#0FH</p><p><b> AJMPKK5</b></p>&l
61、t;p> DISH:CLRTR0</p><p> MOVA,HOUR</p><p><b> SWAPA</b></p><p> ANLA,#0FH</p><p><b> MOV79H,A</b></p><p> MOVA,HO
62、UR</p><p> ANLA,#0FH</p><p><b> MOV7AH,A</b></p><p> MOV7BH,#0FH</p><p> MOV7CH,#0FH</p><p> MOV7DH,#0FH</p><p> MOV7
63、EH,#0FH</p><p><b> AJMP KK5</b></p><p> DISD: CLR TR0</p><p> MOV 79H,#0FH</p><p> MOV 7AH,#0FH</p><p> MOV7BH,#0FH</p>&
64、lt;p> MOV7CH,#0FH</p><p> MOV7DH,#0FH</p><p> MOV7EH,#0FH</p><p><b> KK5:RET</b></p><p> TIMER0:PUSHACC</p><p><b> PUSHP
65、SW</b></p><p> MOVTH0,#0B1H</p><p> MOVTL0,#0E0H</p><p> DJNZR2,NEXT</p><p> MOVR2,#50</p><p> MOVA,SECOND</p><p> ADDA,#01
66、H</p><p><b> DAA</b></p><p> MOVSECOND,A</p><p> CJNEA,#60H,NEXT</p><p> S1:MOVSECOND,#00H</p><p> MOVA,MINUTE</p><p&g
67、t; ADDA,#01</p><p><b> DAA</b></p><p> MOVMINUTE,A</p><p> CJNEA,#60H,NEXT</p><p> S2:MOVMINUTE,#00H</p><p> MOVA,HOUR</p&g
68、t;<p> ADDA,#01H</p><p><b> DAA</b></p><p> MOVHOUR,A</p><p> CJNEA,#24H,NEXT</p><p> S3:MOVHOUR,#00H</p><p> MOV A,DA
69、Y</p><p> ADD A,#01H</p><p><b> DA A</b></p><p> MOV DAY,A</p><p> CJNE A,#07H,NEXT</p><p> MOV DAY,#00H</p><p&
70、gt; NEXT:POPPSW</p><p><b> POPACC</b></p><p><b> RETI</b></p><p> DTAB:DB 00H,08H,08H,08H,08H,08H,08H,00H</p><p> DB 00H,04H,24H,24H,2
71、4H,24H,04H,00H</p><p> DB 00H,02H,52H,52H,52H,52H,02H,00H</p><p> DB 00H,0FFH,91H,0F1H,81H,0F1H,91H,0FFH</p><p> DB 91H,91H,91H,0FFH,91H,91H,9FH,01H</p><p> DB 20H,
72、22H,24H,0A8H,60H,28H,24H,22H</p><p> DB 00H,00H,0FFH,91H,91H,0FFH,00H,00H</p><p><b> END</b></p><p> 五、運(yùn)用Proteus進(jìn)行仿真</p><p> 1、正常狀態(tài)下的時(shí)鐘顯示</p><
73、;p> 按一次KEY1對(duì)時(shí)進(jìn)行調(diào)整</p><p> 3、按兩次KEY1對(duì)分進(jìn)行調(diào)整 </p><p> 4、按三次KEY1對(duì)秒進(jìn)行調(diào)整</p><p> 5、按四次KEY1進(jìn)入關(guān)機(jī)</p><p> 6、按五次KEY1返回正常顯示模式</p><p><b> 操作模式</b>
74、</p><p><b> 設(shè)計(jì)說(shuō)明及建議:</b></p><p> 本設(shè)計(jì)特點(diǎn)在于同時(shí)采用由MAX7219驅(qū)動(dòng)六位LED顯示器和點(diǎn)陣LED顯示器,利用前者的設(shè)計(jì)程序簡(jiǎn)便性和后者的顯示的多樣性以達(dá)到理想效果。</p><p><b> 參考文獻(xiàn):</b></p><p> 【1】趙嘉蔚,張
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于51單片機(jī)的時(shí)鐘調(diào)整系統(tǒng)畢業(yè)論文
- 基于51單片機(jī)的時(shí)鐘調(diào)整系統(tǒng)畢業(yè)論文.docx
- 基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文-基于51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì).doc
- 畢業(yè)論文-基于51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì).doc
- 51單片機(jī)畢業(yè)論文---基于單片機(jī)的進(jìn)制換算
- 畢業(yè)論文基于單片機(jī)的時(shí)鐘設(shè)計(jì)
- 基于51單片機(jī)的多功能數(shù)字時(shí)鐘設(shè)計(jì)-畢業(yè)論文設(shè)計(jì)
- 51單片機(jī)畢業(yè)論文--基于mcs-51單片機(jī)的步進(jìn)電機(jī)系統(tǒng)
- 基于51單片機(jī)的串口通訊系統(tǒng)畢業(yè)論文
- 基于51單片機(jī)的最小系統(tǒng)畢業(yè)論文
- 單片機(jī)畢業(yè)論文--數(shù)字時(shí)鐘
- 本科畢業(yè)論文-基于at89c51單片機(jī)的智能時(shí)鐘畢業(yè)論文設(shè)計(jì)
- 基于51單片機(jī)數(shù)字時(shí)鐘 畢業(yè)設(shè)計(jì)
- 畢業(yè)論文---基于51系列單片機(jī)的電子時(shí)鐘設(shè)計(jì)與制作
- 2017畢業(yè)論文-基于at89c51單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)
- 基于51單片機(jī)的紅外自動(dòng)淋浴系統(tǒng)畢業(yè)論文
- 基于51單片機(jī)的智能小車畢業(yè)論文
- 畢業(yè)論文---基于51單片機(jī)的電阻測(cè)量
- 畢業(yè)論文----基于51單片機(jī)的led滾動(dòng)顯示系統(tǒng)
評(píng)論
0/150
提交評(píng)論