版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p> 設(shè)計(jì)題目:多功能時(shí)鐘程序設(shè)計(jì)</p><p><b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 課程設(shè)計(jì)題目: 多功能時(shí)鐘程序設(shè)計(jì)</p><p><b> 中文摘要</b></p>
2、<p> 時(shí)鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時(shí)間的推移,科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)時(shí)間計(jì)量的精度要求越來(lái)越高,應(yīng)用越來(lái)越廣。怎樣讓時(shí)鐘更好的為人民服務(wù),怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設(shè)計(jì)出新型時(shí)鐘。 </p><p> 數(shù)字電子鐘的設(shè)計(jì)方法有多種,其中,利用單片機(jī)實(shí)現(xiàn)的電子鐘具有編程靈活,便于電子鐘功能的擴(kuò)充,即可用該電子鐘發(fā)出各種控制信號(hào),精確度高等特點(diǎn),同時(shí)可以
3、用該電子鐘發(fā)出各種控制信號(hào)。</p><p> 該數(shù)字鐘采用液晶顯示屏顯示其時(shí)間與定時(shí)時(shí)間,即采用P6口輸入,P7口輸出,由R0輸入需顯示的時(shí)間,再通過(guò)延時(shí)程序?qū)r(shí)間穩(wěn)定的顯示在液晶屏上。校準(zhǔn)時(shí)間由外部中斷4及開(kāi)關(guān)按鍵控制;定時(shí)時(shí)間由外部中斷3及開(kāi)關(guān)按鍵控制 ,KEY3、KEY4鍵每按一次其時(shí)分秒的數(shù)字增加一。</p><p> 關(guān)鍵字: 單片機(jī), 數(shù)字鐘, 校時(shí), 定時(shí)器
4、</p><p><b> 目錄</b></p><p> 1課程設(shè)計(jì)要求1</p><p> 1.1設(shè)計(jì)主要內(nèi)容及要求1</p><p> 1.2對(duì)設(shè)計(jì)論文撰寫內(nèi)容、格式及字?jǐn)?shù)的要求1</p><p> 1.3時(shí)間進(jìn)度安排1</p><p>
5、2課程設(shè)計(jì)思路2</p><p><b> 2.1計(jì)時(shí)2</b></p><p><b> 2.2校時(shí)2</b></p><p><b> 2.3鬧鈴2</b></p><p><b> 3設(shè)計(jì)流程圖3</b></p>
6、;<p><b> 4各模塊設(shè)計(jì)4</b></p><p> 4.1時(shí)鐘部分4</p><p> ?時(shí)鐘程序分析4</p><p> ?時(shí)鐘部分程序4</p><p> 4.2定時(shí)部分6</p><p> ?定時(shí)程序分析6</p>&
7、lt;p> ?定時(shí)部分程序6</p><p> 4.3校時(shí)部分8</p><p> ?校時(shí)程序分析8</p><p> ?校時(shí)部分程序8</p><p> 4.4顯示部分10</p><p> ?顯示程序分析10</p><p> ?顯示部分程序1
8、0</p><p> 5工作過(guò)程分析16</p><p> 5.1時(shí)鐘程序分析16</p><p> 5.2定時(shí)程序分析17</p><p> 5.3校時(shí)程序分析19</p><p> 5.4顯示程序分析20</p><p> 6主要元器件介紹23</p
9、><p> 6.1C8051F020單片機(jī)23</p><p> 6.2液晶顯示器24</p><p><b> 總結(jié)26</b></p><p><b> 致謝27</b></p><p><b> 參考文獻(xiàn)27</b></p
10、><p><b> 附錄28</b></p><p><b> 課程設(shè)計(jì)要求</b></p><p><b> 設(shè)計(jì)主要內(nèi)容及要求</b></p><p><b> 編寫多功能時(shí)鐘程序</b></p><p> 能夠顯示時(shí)、
11、分、秒的時(shí)鐘程序。</p><p><b> 具有鬧鐘功能。</b></p><p><b> 能夠進(jìn)行時(shí)間調(diào)整。</b></p><p> 對(duì)設(shè)計(jì)論文撰寫內(nèi)容、格式及字?jǐn)?shù)的要求</p><p> 課程設(shè)計(jì)論文是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少于 30
12、00字。</p><p> 學(xué)生應(yīng)撰寫時(shí)應(yīng)做到文理通順,內(nèi)容正確完整,書(shū)寫工整,裝訂整齊。</p><p> 論文要求打印,打印時(shí)按《沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范》的要求</p><p> 課程設(shè)計(jì)論文裝訂順序?yàn)椋悍饷?、任?wù)書(shū)、成績(jī)?cè)u(píng)審意見(jiàn)表、中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)。</p><p><b> 時(shí)間進(jìn)
13、度安排</b></p><p><b> 課程設(shè)計(jì)思路</b></p><p> 本文主要介紹用單片機(jī)編程來(lái)實(shí)現(xiàn)多功能時(shí)鐘的方法,本設(shè)計(jì)由單片機(jī)C8051F芯片、LED燈液晶顯示屏為核心,輔以必要的程序,構(gòu)成了一個(gè)單片機(jī)數(shù)字時(shí)鐘。與傳統(tǒng)時(shí)鐘相比,它具有走時(shí)精確,顯示直觀等特點(diǎn)。它的計(jì)時(shí)周期為12小時(shí),分上下午,顯滿刻度為“11時(shí)59分59秒”,然后上下
14、午交替,另外具有校時(shí)、鬧鐘顯示星期等功能等特點(diǎn)。</p><p><b> 計(jì)時(shí)</b></p><p> 當(dāng)T0進(jìn)入中斷后,先給T0計(jì)時(shí)1s,再計(jì)時(shí)60s;當(dāng)秒計(jì)數(shù)滿60s后開(kāi)始分的計(jì)數(shù),同時(shí)將秒清零,否則返回程序繼續(xù)執(zhí)行;同理當(dāng)分計(jì)數(shù)到60min,開(kāi)始時(shí)的計(jì)時(shí)并共計(jì)數(shù)12次,與此同時(shí)分、秒清零。當(dāng)完成12小時(shí)的計(jì)時(shí)后,切換上下午,當(dāng)從下午切換到上午時(shí)為12:0
15、0:00星期加一,加到8時(shí)再變到1,然后返回主程序繼續(xù)。</p><p><b> 校時(shí)</b></p><p> 校時(shí)就是對(duì)時(shí)間進(jìn)行調(diào)整,現(xiàn)將其賦一初值,然后將初值帶入計(jì)時(shí)程序中,然后將其作為初值,計(jì)時(shí)從該值開(kāi)始顯示.。其中初值的設(shè)置由外部中斷KEY3和開(kāi)關(guān)按鍵設(shè)定,K1、K2、K3、K4、K6分別控制時(shí)、分、秒 、上下午、星期。</p><
16、p><b> 鬧鈴</b></p><p> 定時(shí)程序?qū)崉t就是讓系統(tǒng)設(shè)定一個(gè)鬧鈴時(shí)間,并使LED燈在到達(dá)時(shí)間時(shí)亮。先判斷秒是否相等,不等則繼續(xù),相等則判斷分,同理分相等時(shí)判斷時(shí)、上下午、星期,當(dāng)系統(tǒng)設(shè)定的秒、分、時(shí)、上下午、星期與顯示的時(shí)間都相等時(shí)跳到程序TSR使LED亮。其中初值的設(shè)置由外部中斷KEY4和開(kāi)關(guān)按鍵設(shè)定,K1、K2、K3、K4、K6分別控制時(shí)、分、秒、上下午、星期
17、。</p><p><b> 設(shè)計(jì)流程圖</b></p><p><b> 各模塊設(shè)計(jì)</b></p><p><b> 時(shí)鐘部分</b></p><p><b> 時(shí)鐘程序分析</b></p><p> 主程序主要是使各
18、端口使能,保證各端口正常使用(主程序請(qǐng)參考附錄)。T0工作于定時(shí)方式1,進(jìn)行16位計(jì)數(shù)。其中秒的地址為30H,分的地址為31H,小時(shí)的地址為32H,上下午的地址是50H,星期的地址是34H。</p><p> 當(dāng)T0進(jìn)入中斷后,先給T0賦初值3CB0,定時(shí)50ms,循環(huán)20次計(jì)時(shí)1s,再跳入子程序ABC中循環(huán)60次計(jì)時(shí)60s;當(dāng)秒計(jì)數(shù)滿60s后開(kāi)始分的計(jì)數(shù),同時(shí)將秒清零重新計(jì)時(shí),否則返回程序繼續(xù)執(zhí)行;同理當(dāng)分計(jì)
19、數(shù)到60min,程序開(kāi)始時(shí)的計(jì)時(shí)并共計(jì)數(shù)12次,當(dāng)計(jì)數(shù)滿12次時(shí),上下午翻轉(zhuǎn),計(jì)滿13次時(shí)時(shí)針變?yōu)?,與此同時(shí)分、秒清零需重新開(kāi)始計(jì)數(shù),當(dāng)從下午變成上午時(shí),星期加1,星期計(jì)滿7次變?yōu)?。</p><p><b> 時(shí)鐘部分程序</b></p><p> $INCLUDE(C8051F020.INC)</p><p> ORG 0000
20、H </p><p> AJMP MAIN </p><p> ORG 000BH </p><p> AJMP T0 </p><p> ORG
21、 0093H</p><p> LJMP KEY3</p><p> ORG 009BH</p><p> LJMP KEY4</p><p> ORG 0100H</p><p> MAIN: MOV WDTCN,#0DEH ;關(guān)看門狗</p><p>
22、MOV WDTCN,#0ADH</p><p> MOV OSCICN,#05H ;內(nèi)部振蕩4MHz</p><p> MOV P1MDOUT,#0FFH ;設(shè)置P1的輸出方式</p><p> MOV P74OUT, #0F0H ;端口6、端口7輸出方式為推挽輸出</p><p> MOV CKCON,#00
23、H ;T0定時(shí)器12分頻</p><p> MOV TMOD,#01H ;T0處于工作方式一,16位</p><p> MOV TCON,#10H ;TR0=1,允許T0計(jì)數(shù)</p><p> MOV XBR2,#40H ;交叉開(kāi)關(guān)總使能 </p><p> MOV EIE2,#30H
24、 ;中斷6、中斷7使能</p><p> MOV P3IF,#0CH ;中斷7上升沿觸發(fā)</p><p> MOV 50H,#00H</p><p> MOV 60H,#00H</p><p> MOV TH0,#3CH ;賦初值</p><p> MOV TL0,
25、#0B0H</p><p> MOV 30H,#00H ;秒存儲(chǔ)地址</p><p> MOV 31H,#00H ;分存儲(chǔ)地址</p><p> MOV 32H,#12H ;時(shí)存儲(chǔ)地址</p><p> MOV 33H,#00H ;上下午儲(chǔ)存地址</p><p
26、> MOV 34H,#01H ;星期儲(chǔ)存地址</p><p> MOV 40H,#00H </p><p> MOV 41H,#00H</p><p> MOV 42H,#12H</p><p> MOV 43H,#00H</p><p> MOV 44
27、H,#01H</p><p> MOV R1,#04H ;1s循環(huán)次數(shù)</p><p> MOV IE,#82H ;中斷使能</p><p><b> AJMP $</b></p><p> T0: MOV TL0,#0B0H ;定時(shí)50ms</p>
28、<p> MOV TH0,#3CH</p><p> DJNZ R1,X ;計(jì)時(shí)1s</p><p> MOV R1,#04H</p><p> LCALL ABC ;跳轉(zhuǎn)到計(jì)時(shí)程序 </p><p> LCALL DING ;跳轉(zhuǎn)到定時(shí)
29、程序</p><p> LCALL TIME ;跳轉(zhuǎn)到顯示程序</p><p><b> X: RETI</b></p><p> ABC: MOV A,30H </p><p> ADD A,#1 ;秒加1</p><
30、;p> DA A ;做十進(jìn)制調(diào)整</p><p> MOV 30H,A </p><p> CJNE A,#60H,Y ;是否等于60s?若不是,則跳至Y</p><p> MOV 30H,#00H ;若是,則30H清零</p><p>
31、 MOV A,31H </p><p> ADD A, #1 ;分加1</p><p> DA A ;做十進(jìn)制調(diào)整</p><p> MOV 31H,A </p><p> CJNE A,#60H,Y ;是否等于6
32、0s?若不是,則跳至Y</p><p> MOV 31H,#00H ;若是,則31H清零</p><p> MOV A,32H </p><p> ADD A,#1 ;時(shí)加1</p><p> DA A ;做十進(jìn)制調(diào)整</p&g
33、t;<p> MOV 32H,A</p><p> CJNE A,#12H,L</p><p><b> MOV A,31H</b></p><p> CJNE A,#00H,L</p><p><b> MOV A,30H</b></p><p>
34、; CJNE A,#00H,L</p><p><b> MOV A,50H</b></p><p><b> CPL A </b></p><p><b> MOV 50H,A</b></p><p> CJNE A,#00H,Y</p><p&
35、gt;<b> MOV A,34H</b></p><p> ADD A,#01H</p><p><b> DA A</b></p><p><b> MOV 34H,A</b></p><p> CJNE A,#08H,Y</p><p>
36、 MOV 34H,#01H</p><p> L: MOV A,32H</p><p> CJNE A,#13H,Y</p><p> MOV 32H,#01H </p><p><b> Y:RET</b></p><p><b> 定時(shí)部分<
37、;/b></p><p><b> 定時(shí)程序分析</b></p><p> 定時(shí)程序?qū)崉t就是人為設(shè)定一個(gè)鬧鈴時(shí)間,并使LED燈在到達(dá)時(shí)間時(shí)亮。</p><p> 將秒賦予A,判斷系統(tǒng)是否與設(shè)定的一致,不等則繼續(xù)執(zhí)行下一條指令,相等則跳轉(zhuǎn)到lop1判斷分;再將分賦予A,判斷系統(tǒng)是否與設(shè)定的一致,不等則繼續(xù)執(zhí)行下一條指令,相等則跳轉(zhuǎn)到l
38、op2判斷時(shí);然后將時(shí)賦予A,判斷系統(tǒng)是否與設(shè)定的一致,不相等則繼續(xù)下一條指令,相等則跳到LOP3判斷上下午;再將上下午賦予A,判斷系統(tǒng)是否與設(shè)定的一致,不相等則繼續(xù)下一條指令,相等則跳到lop4判斷星期,將星期賦予A,判斷系統(tǒng)是否與設(shè)定的相等,不相等則繼續(xù)下一條指令,相等時(shí)跳轉(zhuǎn)到TSR子程序。</p><p> 定時(shí)時(shí)間由外部中斷4控制,每按一下,其值增加一,時(shí)、分、秒、上下午星期由開(kāi)關(guān)按鍵K1,K2,K3,
39、K4、K6控制。判斷位00H、01H、02H、03、05是否為0,哪個(gè)不為0跳轉(zhuǎn)到相應(yīng)的時(shí)、分、秒、上下午、星期程序中。在42H、41H、40H、60H、44H中存放時(shí)、分、秒、上下午、星期。當(dāng)系統(tǒng)設(shè)定的秒、分、時(shí)、上下午、星期與顯示的時(shí)間都相等時(shí)LED燈亮,表示鬧鈴時(shí)間到。將K1撥到0時(shí),按下KEY4,可熄滅LED燈。</p><p><b> 定時(shí)部分程序</b></p>
40、<p> DING: MOV A,30H ;定時(shí)程序</p><p> CJNE A,40H,N</p><p> AJMP LOP1</p><p> LOP1: MOV A,31H</p><p> CJNE A,41H,N</p><p> AJMP L
41、OP2</p><p> LOP2: MOV A,32H</p><p> CJNE A,42H,N</p><p><b> AJMP LOP3</b></p><p> LOP3: MOV A,50H</p><p> CJNE A,60H,N</p>&l
42、t;p><b> AJMP LOP4</b></p><p> LOP4:MOV A,34H</p><p> CJNE A,44H,N</p><p> AJMP TSR </p><p><b> N: RET</b></p><p> TSR:
43、MOV P1,#00H </p><p><b> RET</b></p><p> KEY4: LCALL T2</p><p> LCALL TIME</p><p> MOV P3IF,#00H</p><p><b> RETI</b
44、></p><p> T2: MOV 20H,P5 ;定時(shí)程序</p><p> JNB 00H,SHI1</p><p> JNB 01H,FEN1</p><p> JNB 02H,MIAO1</p><p> JNB 03H,XINGQI1&
45、lt;/p><p> JNB 05H,ZHOU1</p><p><b> RET </b></p><p> ZHOU1: MOV A,44H</p><p> ADD A,#1</p><p><b> DA A</b></p>&l
46、t;p> MOV 44H,A</p><p> CJNE A,#08H,MB</p><p> MOV 44H,#01H</p><p><b> RET</b></p><p> XINGQI1:MOV A,60H</p><p><b> CPL A<
47、/b></p><p> MOV 60H,A </p><p><b> RET</b></p><p> SHI1: MOV P1,#0FFH</p><p> MOV A,42H </p><p> ADD A,#1 &
48、lt;/p><p> DA A </p><p> MOV 42H,A </p><p> CJNE A,#13H ,MB</p><p> MOV 42H,#1 </p><p><
49、;b> RET</b></p><p> FEN1: MOV A,41H </p><p> ADD A,#1 </p><p> DA A </p><p> MOV 41H,A
50、 </p><p> CJNE A,#60H ,MB </p><p> MOV 41H,#0</p><p><b> RET</b></p><p> MIAO1:MOV A,40H </p><p> ADD A,#1
51、 </p><p> DA A </p><p> MOV 40H,A </p><p> CJNE A,#60H ,MB </p><p> MOV 40H,#0</p><p
52、><b> MB: RET</b></p><p><b> 校時(shí)部分</b></p><p><b> 校時(shí)程序分析</b></p><p> 校時(shí)部分就是在系統(tǒng)時(shí)間不準(zhǔn)確的情況下,給系統(tǒng)賦定值,使系統(tǒng)時(shí)間可以從該值開(kāi)始變化,使用外部中斷KEY3,先給30H、31H、32H、50H
53、、34H賦所需時(shí)間,然后調(diào)用程序?qū)⑵滹@示。其中進(jìn)入中斷后調(diào)用子程序T1可以由KEY3鍵設(shè)置所定時(shí)間每按一次KEY3鍵值增加一,是調(diào)整時(shí)還是分或秒,可由開(kāi)關(guān)量輸入鍵K1、K2、K3、K4、K5分別控制。其主程序中加入了外不中斷的有關(guān)指令.但需注意的是,在調(diào)解時(shí)除打開(kāi)時(shí)、分、秒上下午、星期控制鍵外還需打開(kāi)K11鍵。(主程序只給出所加指令)</p><p><b> 校時(shí)部分程序 </b><
54、;/p><p> KEY3: LCALL T1 </p><p> LCALL TIME</p><p> MOV P3IF,#00H</p><p><b> RETI</b></p><p> T1: MOV 20H,P5 ;校準(zhǔn)程序</p>&
55、lt;p> JNB 00H,SHI</p><p> JNB 01H,FEN</p><p> JNB 02H,MIAO</p><p> JNB 03H,XINGQI</p><p> JNB 05H,ZHOU</p><p><b> RET</b&g
56、t;</p><p> ZHOU: MOV A,34H</p><p><b> ADD A,#1</b></p><p><b> DA A</b></p><p> MOV 34H,A</p><p> CJNE A,#08H,MN</p>
57、;<p> MOV 34H,#01H</p><p><b> RET</b></p><p> XINGQI:MOV A,50H</p><p><b> CPL A</b></p><p> MOV 50H,A</p><p><b&g
58、t; RET </b></p><p> SHI:MOV A,32H </p><p> ADD A,#1 </p><p> DA A </p><p> MOV 32H,A
59、 </p><p> CJNE A,#13H ,MN </p><p> MOV 32H,#01H </p><p><b> RET</b></p><p> FEN: MOV A,31H </p><p> ADD
60、 A,#1 </p><p> DA A </p><p> MOV 31H,A </p><p> CJNE A,#60H ,MN </p><p> MOV 31H,#0</p
61、><p><b> RET</b></p><p> MIAO:MOV A,30H </p><p> ADD A,#1 </p><p> DA A </p><p> MOV
62、 30H,A </p><p> CJNE A,#60H ,MN </p><p> MOV 30H,#0</p><p> MN: RET </p><p><b> 顯示部分</b></p><p><b&
63、gt; 顯示程序分析</b></p><p> 顯示程序就是將程序中的時(shí)分秒顯示在液晶顯示屏上使其看起來(lái)更直觀、方便。其中第一行顯示系統(tǒng)運(yùn)行時(shí)間,第二行顯示定時(shí)時(shí)間。</p><p> 該程序主要根據(jù)老師所給程序改編,利用子程序LINE設(shè)定顯示屏的主要參數(shù).讓時(shí)間顯示在上一行且只顯示一個(gè)時(shí)分秒,如“12:12:12PMXQ1”,不造成顯示多個(gè)的后果。NCD為常函數(shù)表,將0
64、-9、A、P、M、X、Q數(shù)字和字母依次存放到以左邊標(biāo)號(hào)為起始地址的存儲(chǔ)單元中。TIME中就是將時(shí)分秒的十位、各位分別賦予R0,還有判斷50H中是00H還是0FFH,如果是00H就顯示上午AM,然后星期加一,如果是0FFH就顯示下午PM,然背后調(diào)用查表程序?qū)⑵滹@示在液晶屏上。值得注意的是:時(shí)與分、分與秒之間需將冒號(hào)也顯示出來(lái)。同理,定時(shí)時(shí)間的顯示在第二行,由TIME1控制。</p><p><b> 顯
65、示部分程序</b></p><p> TIME: CLR A</p><p> MOV XBR0, A</p><p> LCALL LCD</p><p> MOV DPTR,#NCD</p><p> MOV A,32H</p><p
66、><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,32H</p><p> LCALL LINE1</p
67、><p> LCALL DELAY</p><p> MOV R0,#10</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,31H</p><p><b> SWAP A<
68、/b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,31H</p><p> LCALL LINE1</p><p> LCALL DEL
69、AY</p><p> MOV R0,#10</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,30H</p><p><b> SWAP A</b></p><p>
70、 MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,30H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV
71、 A,50H </p><p> CJNE A,#0FFH,LOPA</p><p> MOV R0,#12</p><p> LCALL LINE1</p><p> LCALL DELAY </p><p> MOV R0,#13</p>&l
72、t;p> LCALL LINE1</p><p> LCALL DELAY </p><p> AJMP LOPP</p><p> LOPA: MOV R0,#11</p><p> LCALL LINE1</p><p> LCALL DELAY</p>
73、;<p> MOV R0,#13</p><p> LCALL LINE1</p><p> LCALL DELAY </p><p> LOPP: MOV R0,#14</p><p> LCALL LINE1</p><p>
74、 LCALL DELAY</p><p> MOV R0,#15</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,34H</p><p> LCALL LINE1</p><p>
75、LCALL DELAY</p><p> MOV DPTR,#NED</p><p> MOV P7,#0C0H</p><p> MOV P6,#1H</p><p> MOV P6,#0H</p><p> MOV R0,#11</p><p&g
76、t; LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,42H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><
77、;p> LCALL DELAY</p><p> MOV R0,42H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#10</p><p> LCALL LINE1</p><p>
78、LCALL DELAY</p><p> MOV A,41H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p&g
79、t; MOV R0,41H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#10</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV
80、 A,40H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,40H</p><p>
81、 LCALL LINE1</p><p> LCALL DELAY</p><p><b> MOV A,60H</b></p><p> CJNE A,#0FFH,LOPA1</p><p> MOV R0,#12</p><p> LCALL LINE1</p
82、><p> LCALL DELAY </p><p> MOV R0,#13</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> LJMP LOP44 </p><p> LOPA1:MOV R0,#1
83、1</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#13</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> LOP44:MOV R
84、0,#14</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#15</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,
85、44H</p><p> LCALL LINE1</p><p> LCALL DELAY1</p><p><b> RET</b></p><p> LINE1: MOV A,R0</p><p> ANL A,#0FH</p><p
86、> MOVC A,@A+DPTR</p><p> MOV P7,A</p><p> MOV P6,#05H</p><p> MOV P6,#04H</p><p><b> RET</b></p><p> LCD: LCALL DELA
87、Y</p><p> MOV P7, #38H</p><p> MOV P6, #01H</p><p> MOV P6, #00H</p><p> LCALL DELAY</p><p> MOV P7, #0EH</p><p> MOV
88、 P6, #01H</p><p> MOV P6, #00H</p><p> LCALL DELAY</p><p> MOV P7, #06H</p><p> MOV P6, #01H</p><p> MOV P6, #00H</p><
89、p> LCALL DELAY</p><p> MOV P7, #01H</p><p> MOV P6, #01H</p><p> MOV P6, #00H</p><p> LCALL DELAY</p><p><b> RET</b>&l
90、t;/p><p> DELAY: MOV R6,#50</p><p> DELAY0: MOV R5,#50</p><p> DJNZ R5,$</p><p> DJNZ R6,DELAY0</p><p><b> RET </b></p>
91、<p> DELAY1: MOV R4,#35 ;DD</p><p> DELAY2: MOV R3,#150</p><p> DELAY3: MOV R2,#250</p><p> DJNZ R2,$</p><p> DJNZ R3,DELAY3</p>&
92、lt;p> DJNZ R4,DELAY2</p><p> RET </p><p> NCD:DB'0','1','2','3','4','5','6','7','8','9',':'
93、;,'A','P','M','X','Q',' ' ;常數(shù)表</p><p> NED:DB'0','1','2','3','4','5','6','7','8','
94、;9',':','A','P','M','X','Q',' ' ;常數(shù)表</p><p><b> END</b></p><p><b> 工作過(guò)程分析</b></p><p><b>
95、; 時(shí)鐘程序分析</b></p><p> 在設(shè)計(jì)時(shí)分秒的程序時(shí),首先定時(shí)1s,然后循環(huán)60次,則計(jì)時(shí)60秒,再判斷是否循環(huán)60次,沒(méi)有則繼續(xù)執(zhí)行以完成秒的計(jì)時(shí),若完成60次循環(huán)則分加一,同理當(dāng)分計(jì)數(shù)滿60時(shí),時(shí)加一,在判斷是否計(jì)數(shù)滿12次,若完成12次則上下午翻轉(zhuǎn),在判斷是否由下午變成上午,若是則星期加1,以此完成時(shí)時(shí)分秒上下午星期的計(jì)時(shí)并據(jù)此編寫程序。(主程序未給出)</p>&
96、lt;p> T0: MOV TL0,#0B0H ;定時(shí)50ms</p><p> MOV TH0,#3CH</p><p> DJNZ R1,X ;計(jì)時(shí)1s</p><p> MOV R1,#04H</p><p> LCALL ABC ;跳轉(zhuǎn)到計(jì)時(shí)程
97、序 </p><p> LCALL DING ;跳轉(zhuǎn)到定時(shí)程序</p><p> LCALL TIME ;跳轉(zhuǎn)到顯示程序</p><p><b> X: RETI</b></p><p> ABC: MOV A,30H </p>
98、<p> ADD A,#1 ;秒加1</p><p> DA A ;做十進(jìn)制調(diào)整</p><p> MOV 30H,A </p><p> CJNE A,#60H,Y ;是否等于60s?若不是,則跳至Y</p><p>
99、MOV 30H,#00H ;若是,則30H清零</p><p> MOV A,31H </p><p> ADD A, #1 ;分加1</p><p> DA A ;做十進(jìn)制調(diào)整</p><p> MOV 31H,A
100、 </p><p> CJNE A,#60H,Y ;是否等于60s?若不是,則跳至Y</p><p> MOV 31H,#00H ;若是,則31H清零</p><p> MOV A,32H </p><p> ADD A,#1 ;時(shí)加1</p
101、><p> DA A ;做十進(jìn)制調(diào)整</p><p> MOV 32H,A</p><p> CJNE A,#12H,L</p><p><b> MOV A,31H</b></p><p> CJNE A,#00H,L</p><p
102、><b> MOV A,30H</b></p><p> CJNE A,#00H,L ;是否為12:00:00?若不是,跳L</p><p><b> MOV A,50H</b></p><p><b> CPL A </b></p><p>
103、MOV 50H,A ;上下午翻轉(zhuǎn)</p><p> CJNE A,#00H,Y</p><p> MOV A,34H ;判斷是否是下午變成上午,若不是,跳Y</p><p> ADD A,#01H ;星期加1</p><p><b> DA A</
104、b></p><p> MOV 34H,A </p><p> CJNE A,#08H,Y</p><p> MOV 34H,#01H</p><p> L: MOV A,32H ;時(shí)鐘是否為13,若不是,跳Y</p><p> CJNE A,#1
105、3H,Y</p><p> MOV 32H,#01H ;若是,時(shí)鐘變成1</p><p><b> Y:RET</b></p><p> T0進(jìn)入中斷,開(kāi)始時(shí)分秒上下午星期的計(jì)時(shí)。最大顯示為“11:59:59PMXQ7”。</p><p><b> 定時(shí)程序分析</b>
106、;</p><p> 定時(shí)程序?qū)崉t就是讓時(shí)鐘設(shè)定一個(gè)鬧鈴時(shí)間,當(dāng)系統(tǒng)時(shí)間與設(shè)定的時(shí)間一致時(shí)顯示時(shí)間并使LED燈亮。先判斷秒是否相等,不等則繼續(xù),相等則跳轉(zhuǎn)到lop1判斷分,同理相等時(shí)跳轉(zhuǎn)到lop2、lop3、lop4判斷時(shí)上下午、星期,當(dāng)系統(tǒng)設(shè)定的與顯示的時(shí)間都相等時(shí)跳到程序TSR使LED亮。鬧鐘時(shí)間由K4調(diào)整。</p><p> DING: MOV A,30H
107、 </p><p> CJNE A,40H,N ;判斷秒是否相等</p><p> AJMP LOP1</p><p> LOP1: MOV A,31H</p><p> CJNE A,41H,N ;判斷分是否相等</p><p> AJMP LOP2</p><
108、;p> LOP2: MOV A,32H</p><p> CJNE A,42H,N ;判斷時(shí)是否相等</p><p><b> AJMP LOP3</b></p><p> LOP3: MOV A,50H</p><p> CJNE A,60H,N ;判斷上下午是否相等<
109、/p><p><b> AJMP LOP4</b></p><p> LOP4: MOV A,34H</p><p> CJNE A,44H,N ;判斷星期是否相等</p><p> AJMP TSR </p><p><b> N: RET</b>
110、;</p><p> TSR: MOV P1,#00H </p><p><b> RET</b></p><p> KEY4: LCALL T2</p><p> LCALL TIME</p><p> MOV P3IF,#00H</p>
111、<p><b> RETI</b></p><p> T2: MOV 20H,P5 ;定時(shí)程序</p><p> JNB 00H,SHI1</p><p> JNB 01H,FEN1</p><p> JNB 02H,MIAO1</p>
112、<p> JNB 03H,WU1</p><p> JNB 05H,ZHOU1 ;判斷加1的是哪個(gè)</p><p><b> RET </b></p><p> ZHOU1:MOV A,44H</p><p> ADD A,#1 ;星期加1
113、</p><p><b> DA A</b></p><p> MOV 44H,A</p><p> CJNE A,#08H,MB</p><p> MOV 44H,#01H</p><p><b> RET</b></p><p&g
114、t; WU1:MOV A,60H</p><p> CPL A ;上下午翻轉(zhuǎn)</p><p> MOV 60H,A </p><p><b> RET</b></p><p> SHI1: MOV P1,#0FFH</p><p> MOV
115、 A,42H </p><p> ADD A,#1 ;時(shí)加1 </p><p> DA A </p><p> MOV 42H,A </p><p> CJNE A,#
116、13H ,MB</p><p> MOV 42H,#1 </p><p><b> RET</b></p><p> FEN1: MOV A,41H </p><p> ADD A,#1 ;分加1</p>&
117、lt;p> DA A </p><p> MOV 41H,A </p><p> CJNE A,#60H ,MB </p><p> MOV 41H,#0</p><p><b> RET</b>
118、</p><p> MIAO1:MOV A,40H </p><p> ADD A,#1 ;秒加1</p><p> DA A </p><p> MOV 40H,A </p>
119、<p> CJNE A,#60H ,MB </p><p> MOV 40H,#0</p><p><b> MB: RET</b></p><p> 開(kāi)始我用P0和P1控制系統(tǒng)時(shí)間和鬧鐘時(shí)間的上下午,但是不成功,因?yàn)榕袛嗍欠裣嗟鹊臅r(shí)候沒(méi)有適合的指令,之后我改用50H、60H分別控制,上下午切
120、換時(shí)直接CPL50H、60H。</p><p><b> 校時(shí)程序分析</b></p><p> 校時(shí)程序在校時(shí)的時(shí)候,時(shí)間是不會(huì)停止走的,按下KEY3、KEY4,再根據(jù)K1、K2、K3、K4、K6的值分別時(shí)、分、秒、上下午、星期加1或翻轉(zhuǎn)。</p><p> KEY3: LCALL T1 </p><p> L
121、CALL TIME</p><p> MOV P3IF,#00H</p><p><b> RETI</b></p><p> T1: MOV 20H,P5 ;校準(zhǔn)程序</p><p> JNB 00H,SHI</p><p> JNB 01H,F
122、EN</p><p> JNB 02H,MIAO</p><p> JNB 03H,WU</p><p> JNB 05H,ZHOU ;判斷調(diào)整哪個(gè)</p><p><b> RET</b></p><p> ZHOU: MOV A,34H</p&
123、gt;<p> ADD A,#1 ;星期加1</p><p><b> DA A</b></p><p> MOV 34H,A</p><p> CJNE A,#08H,MN</p><p> MOV 34H,#01H</p><p>
124、;<b> RET</b></p><p> WU:MOV A,50H</p><p> CPL A </p><p> MOV 50H,A </p><p><b> RET </b></p><p> SHI:MOV
125、 A,32H </p><p> ADD A,#1 </p><p> DA A </p><p> MOV 32H,A </p><p> CJNE A,#13H ,MN </p&g
126、t;<p> MOV 32H,#01H </p><p><b> RET</b></p><p> FEN: MOV A,31H </p><p> ADD A,#1 </p><p> DA
127、 A </p><p> MOV 31H,A </p><p> CJNE A,#60H ,MN </p><p> MOV 31H,#0</p><p><b> RET</b></p>
128、<p><b> MIAO:</b></p><p> MOV A,30H </p><p> ADD A,#1 </p><p> DA A </p><p> MOV 30H,A
129、 </p><p> CJNE A,#60H ,MN </p><p> MOV 30H,#0</p><p> MN: RET ;</p><p><b> 顯示程序分析</b></p><p> 該部分主
130、要是將隨時(shí)變化的時(shí)間及定時(shí)時(shí)間顯示到液晶顯示屏上,開(kāi)始我用ASCII表示,但是太麻煩,而且網(wǎng)上找的ASCII表有些還不適合我們這款單片機(jī),因此我用' '這種方法,直接往里面打上需要顯示的字母和數(shù)字,然后按排列順序往LCD顯示屏上送,便可以方便的將要顯示的東西顯示出來(lái)。</p><p> TIME: CLR A ;累加器清零</p><p>
131、 MOV XBR0, A</p><p> LCALL LCD</p><p> MOV DPTR,#NCD</p><p> MOV A,32H</p><p> SWAP A ;高地位交換</p><p> MOV R0,A</p>
132、<p> LCALL LINE1 ;顯示小時(shí)的十位</p><p> LCALL DELAY</p><p> MOV R0,32H</p><p> LCALL LINE1 ;顯示小時(shí)的個(gè)位</p><p> LCALL DELAY</p><p&
133、gt; MOV R0,#10 ;顯示(:)</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,31H</p><p><b> SWAP A</b></p><p> MOV R
134、0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,31H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的多功能時(shí)鐘設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的多功能lcd時(shí)鐘
- 單片機(jī)多功能數(shù)字電子時(shí)鐘設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 單片機(jī)畢業(yè)設(shè)計(jì)時(shí)鐘程序
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的多功能電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)----基于單片機(jī)的多功能電子時(shí)鐘設(shè)計(jì)(含外文翻譯)
- 單片機(jī)課程設(shè)計(jì)-多功能時(shí)鐘
- 基于單片機(jī)的多功能時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---多功能時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---多功能時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---多功能時(shí)鐘設(shè)計(jì)
- 多功能數(shù)字時(shí)鐘 單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--多功能溫度巡檢儀程序設(shè)計(jì)
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)--單片機(jī)多功能電子鐘設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘設(shè)計(jì)
- 單片機(jī)數(shù)字時(shí)鐘畢業(yè)設(shè)計(jì)
- 單片機(jī)數(shù)字時(shí)鐘畢業(yè)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---多功能電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--多功能電子時(shí)鐘
- 單片機(jī)多功能電子鐘畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論