版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p> 設(shè)計(jì)題目:多功能時(shí)鐘程序設(shè)計(jì)</p><p><b> 沈陽工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 課程設(shè)計(jì)題目: 多功能時(shí)鐘程序設(shè)計(jì)</p>
2、;<p><b> 中文摘要</b></p><p> 時(shí)鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時(shí)間的推移,科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)時(shí)間計(jì)量的精度要求越來越高,應(yīng)用越來越廣。怎樣讓時(shí)鐘更好的為人民服務(wù),怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設(shè)計(jì)出新型時(shí)鐘。 </p><p> 電子時(shí)鐘主要是采用先進(jìn)的當(dāng)代電子技術(shù),使用微型時(shí)鐘芯
3、片的時(shí)鐘,與傳統(tǒng)的機(jī)械鐘相比,它的時(shí)鐘精度,顯示直觀,無機(jī)械傳動(dòng)裝置,廣泛應(yīng)用于人們的生活環(huán)境之中。此外,人們?cè)谏詈凸I(yè)、農(nóng)業(yè)生產(chǎn)中對(duì)時(shí)鐘的功能的也提出了許多更高的要求如:鬧鐘,日歷,所以需要具有多種功能的新型電子時(shí)鐘。 根據(jù)人們的不同需求,我們就需要設(shè)計(jì)一種具有可以正常顯示時(shí)鐘/日歷并具有定時(shí)報(bào)時(shí)功能的多功能電子鐘。通過采集各種電子鐘發(fā)展的相關(guān)資料,對(duì)比分析后決定利用單片機(jī)技術(shù),實(shí)現(xiàn)多功能電子鐘的各項(xiàng)設(shè)計(jì)。</p>&
4、lt;p> 該數(shù)字鐘采用液晶顯示屏顯示其時(shí)間與定時(shí)時(shí)間,即采用P6口輸入,P7口輸出,由R0輸入需顯示的時(shí)間,再通過延時(shí)程序?qū)r(shí)間穩(wěn)定的顯示在液晶屏上。校準(zhǔn)時(shí)間由外部中斷4及開關(guān)按鍵控制;定時(shí)時(shí)間由外部中斷3及開關(guān)按鍵控制 ,KEY3、KEY4鍵每按一次其時(shí)分秒的數(shù)字增加一。</p><p> 關(guān)鍵字: 單片機(jī), 數(shù)字鐘, 校時(shí), 定時(shí)器, 日歷</p><p>&
5、lt;b> 目錄</b></p><p> 多功能時(shí)鐘程序設(shè)計(jì)成績?cè)u(píng)定表2</p><p><b> 中文摘要3</b></p><p> 1課程設(shè)計(jì)要求5</p><p> 1.1設(shè)計(jì)主要內(nèi)容及要求5</p><p> 1.2對(duì)設(shè)計(jì)論文撰寫內(nèi)容、格式及
6、字?jǐn)?shù)的要求5</p><p> 1.3時(shí)間進(jìn)度安排5</p><p> 2課程設(shè)計(jì)思路6</p><p><b> 2.1計(jì)時(shí)6</b></p><p><b> 2.2校時(shí)6</b></p><p><b> 2.3鬧鈴6</
7、b></p><p><b> 3設(shè)計(jì)流程圖7</b></p><p><b> 4各模塊設(shè)計(jì)8</b></p><p> 4.1時(shí)鐘部分8</p><p> 4.2定時(shí)部分10</p><p> 4.3校時(shí)部分12</p>
8、<p> 4.4顯示部分14</p><p> 5工作過程分析20</p><p> 5.1時(shí)鐘程序分析20</p><p> 5.2定時(shí)程序分析20</p><p> 5.3校時(shí)程序分析21</p><p> 5.4顯示程序分析21</p><p>
9、; 6主要元器件介紹22</p><p><b> 總結(jié)24</b></p><p><b> 致謝25</b></p><p><b> 參考文獻(xiàn)26</b></p><p><b> 附錄27</b></p><
10、;p><b> 課程設(shè)計(jì)要求</b></p><p><b> 設(shè)計(jì)主要內(nèi)容及要求</b></p><p><b> 編寫多功能時(shí)鐘程序</b></p><p> 能夠顯示時(shí)、分、秒的時(shí)鐘程序。</p><p><b> 具有鬧鐘功能。</b&g
11、t;</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)少于 3000字。</p><p> 學(xué)生應(yīng)撰寫時(shí)應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整
12、齊。</p><p> 論文要求打印,打印時(shí)按《沈陽工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范》的要求</p><p> 課程設(shè)計(jì)論文裝訂順序?yàn)椋悍饷?、任?wù)書、成績?cè)u(píng)審意見表、中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)。</p><p><b> 時(shí)間進(jìn)度安排</b></p><p><b> 課程設(shè)計(jì)思路</
13、b></p><p> 本文主要介紹用單片機(jī)編程來實(shí)現(xiàn)多功能時(shí)鐘的方法,本設(shè)計(jì)由單片機(jī)C8051F芯片、開關(guān)K1~K8、LED燈及液晶顯示屏為核心,編輯一個(gè)程序使他們構(gòu)成了一個(gè)單片機(jī)數(shù)字時(shí)鐘。與傳統(tǒng)時(shí)鐘相比,它具有走時(shí)精確,顯示直觀等特點(diǎn)。它的計(jì)時(shí)周期為24小時(shí),顯滿刻度為“23時(shí)59分59秒”,另外具有校時(shí)、日期、星期、鬧鐘等功能等特點(diǎn)。</p><p><b> 計(jì)
14、時(shí)</b></p><p> 當(dāng)T0進(jìn)入中斷后,先給T0計(jì)時(shí)1s,再計(jì)時(shí)60s;當(dāng)秒計(jì)數(shù)滿60s后開始分的計(jì)數(shù),同時(shí)將秒清零,否則返回程序繼續(xù)執(zhí)行;同理當(dāng)分計(jì)數(shù)到60min,開始時(shí)的計(jì)時(shí)并共計(jì)數(shù)24次,與此同時(shí)分、秒清零。當(dāng)完成24小時(shí)的計(jì)時(shí)后,開始日期計(jì)數(shù)與時(shí)分計(jì)數(shù)原理相同結(jié)束計(jì)時(shí)后返回主程序。</p><p><b> 校時(shí)</b></p&g
15、t;<p> 校時(shí)就是對(duì)時(shí)間進(jìn)行調(diào)整,當(dāng)時(shí)鐘時(shí)刻不準(zhǔn)時(shí)可以進(jìn)行校時(shí)。通過開關(guān)K1~K4來選擇調(diào)整時(shí)分秒,并用KEY3進(jìn)行加一調(diào)整。</p><p><b> 鬧鈴</b></p><p> 定時(shí)程序?qū)崉t就是讓系統(tǒng)設(shè)定一個(gè)鬧鈴時(shí)間,并使LED燈在到達(dá)時(shí)間時(shí)亮燈。先判斷星期是否相等,不等跳出鬧鈴程序,相等則繼續(xù)判斷時(shí)是否相等,不等跳出,相等繼續(xù)向下判斷
16、分和秒。當(dāng)系統(tǒng)設(shè)定的秒、分、時(shí)、星期與顯示的時(shí)間都相等時(shí)跳到程序TSR使LED亮。定時(shí)的時(shí)刻由K1、K2、K3、K4來選擇時(shí)分秒和星期的調(diào)整并用KEY4來進(jìn)行加一調(diào)整。</p><p><b> 設(shè)計(jì)流程圖</b></p><p><b> 各模塊設(shè)計(jì)</b></p><p><b> 時(shí)鐘部分</b
17、></p><p> 主程序主要是使各端口使能,保證各端口正常使用(主程序請(qǐng)參考附錄)。T0工作于定時(shí)方式1,進(jìn)行16位計(jì)數(shù)。其中秒的地址為30H,分的地址為31H,小時(shí)的地址為32H,星期地址為33H,日的地址為34H,月的地址為35H,年的地址為36H。</p><p> 當(dāng)T0進(jìn)入中斷后,先給T0賦初值3CB0,定時(shí)50ms,循環(huán)7次計(jì)時(shí)1s,再跳入加一子程序JIA1中實(shí)現(xiàn)
18、秒加一,循環(huán)60次計(jì)時(shí)60s;當(dāng)秒計(jì)數(shù)滿60s后開始分的計(jì)數(shù),同時(shí)將秒清零重新計(jì)時(shí),否則返回程序繼續(xù)執(zhí)行;同理當(dāng)分計(jì)數(shù)到60min,程序開始時(shí)的計(jì)時(shí)并共計(jì)數(shù)24次,同理計(jì)時(shí)日期。即時(shí)結(jié)束后返回主程序等待。</p><p> 在時(shí)鐘程序里還加了一個(gè)判定K8口的開關(guān)來控制計(jì)時(shí)暫停和繼續(xù)。</p><p> $INCLUDE(C8051F020.INC)</p><p&g
19、t; ORG 0000H </p><p> AJMP MAIN </p><p> ORG 000BH </p><p> AJMP TINT0 </p>
20、;<p> ORG 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
21、><p> 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>
22、 MOV CKCON,#00H ;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 ;交叉開關(guān)總使能 </p><p>
23、 MOV EIE2,#30H ;中斷6、中斷7使能</p><p> MOV P3IF,#0CH ;中斷7上升沿觸發(fā)</p><p> MOV TH0,#00H ;賦初值</p><p> MOV TL0,#00H</p><p> MOV 30H,#00H ;秒存儲(chǔ)地址<
24、/p><p> MOV 31H,#00H ;分存儲(chǔ)地址</p><p> MOV 32H,#00H ;時(shí)存儲(chǔ)地址</p><p> MOV 33H,#01H ;星期存儲(chǔ)地址</p><p> MOV 34H,#01H ;日存儲(chǔ)地址</p><p> MOV
25、 35H,#01H ;月存儲(chǔ)地址</p><p> MOV 36H,#00H ;年存儲(chǔ)地址</p><p> MOV 40H,#00H ;定時(shí)秒存儲(chǔ)地址</p><p> MOV 41H,#00H ;定時(shí)分存儲(chǔ)地址</p><p> MOV 42H,#00H ;定時(shí)時(shí)
26、存儲(chǔ)地址</p><p> MOV 43H,#01H ;定時(shí)星期存儲(chǔ)地址</p><p> MOV R1,#07H ;1s循環(huán)次數(shù)</p><p> MOV IE,#82H ;中斷使能</p><p><b> AJMP $</b></p><p
27、> TINT0:MOV TL0,#00H ;定時(shí)50ms</p><p> MOV TH0,#00H</p><p> DJNZ R1,X ;計(jì)時(shí)1s</p><p> MOV R1,#07H</p><p> MOV 20H,P5 ;開關(guān)</p>
28、<p> JNB 07H,LOP_1 ;計(jì)時(shí)開關(guān)</p><p> LCALL JIA1 ;跳轉(zhuǎn)到計(jì)時(shí)程序 </p><p> LOP_1: JNB 06H,LOP_2 ;定時(shí)開關(guān)</p><p> LCALL DING ;跳轉(zhuǎn)到定時(shí)程序</p>&l
29、t;p> LOP_2: LCALL TIME ;跳轉(zhuǎn)到顯示程序</p><p><b> X: RETI</b></p><p> JIA1: MOV A,30H ;計(jì)時(shí)程序</p><p> ADD A,#01H ;秒加1</p><p
30、> 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> M
31、OV A,31H </p><p> ADD A, #01H ;分加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,#01H ;時(shí)加1</p><p> DA A ;做十進(jìn)制調(diào)整</p
33、><p> MOV 32H,A </p><p> CJNE A,#24H,Y ;是否等于60s?若不是,則跳至Y</p><p> MOV 32H,#00H ;若是,則32H清零</p><p> MOV A,34H</p><p> ADD A
34、,#1</p><p><b> DA A</b></p><p> MOV 34H,A</p><p> CJNE A,#32H,YB</p><p> MOV 34H,#01H</p><p> MOV A,#35H</p><p> A
35、DD A,#1</p><p><b> DA A </b></p><p> MOV 35H,A</p><p> CJNE A,#13H,YB</p><p> MOV 35H,#01H</p><p> MOV A,36H</p><p>
36、;<b> INC A</b></p><p><b> DA A </b></p><p> MOV 36H,A</p><p> YB:MOV A,33H</p><p> ADD A,#1</p><p><b> DA
37、 A </b></p><p> MOV 33H,A</p><p> CJNE A,#08H,Y</p><p> MOV 33H,#01H</p><p><b> Y: RET</b></p><p><b> 定時(shí)部分</b></p
38、><p> 定時(shí)程序?qū)崉t就是人為設(shè)定一個(gè)鬧鈴時(shí)間,并使LED燈在到達(dá)時(shí)間時(shí)亮。</p><p> 將時(shí)鐘的星期、時(shí)、分、秒先后賦值給A,判斷是否與設(shè)定的鬧鈴時(shí)間一致,不等則跳出子程序返回主程序繼續(xù)執(zhí)行下一步,相等則跳轉(zhuǎn)到TSR子程序。</p><p> 定時(shí)時(shí)間由外部中斷4控制,每按一下,其值增加一,時(shí)、分、秒、星期由開關(guān)按鍵K1,K2,K3,K4控制。將P5給2
39、0H判斷位00H、01H、02H、03H是否為0,不為0跳轉(zhuǎn)到時(shí)分秒程序中。在43H、42H、41H、40H中存放星期、時(shí)、分、秒。當(dāng)系統(tǒng)設(shè)定的秒、分、時(shí)、星期與顯示的時(shí)間都相等時(shí)LED燈亮,表示鬧鈴時(shí)間到。期間時(shí)間會(huì)繼續(xù)顯示,但LED燈依舊亮,閉合K1、K2、K3、K4按下KEY4鍵可熄滅LED燈。</p><p> 定時(shí)功能還可以通過K7來控制關(guān)閉K7則顯示器顯示DINGSHI OFF 提示定時(shí)功能關(guān)閉。&
40、lt;/p><p> DING: MOV A,33H ;判斷鬧鐘是否啟動(dòng)</p><p> CJNE A,43H,N</p><p> MOV A,32H </p><p> CJNE A,42H,N</p><p> MOV A,31H</p>&l
41、t;p> CJNE A,41H,N</p><p> MOV A,30H</p><p> CJNE A,40H,N</p><p> LJMP TSR </p><p><b> N: RET</b></p><p> TSR: MOV P1,#00H
42、 ;LED燈循環(huán)閃爍 </p><p><b> RET</b></p><p> KEY4: LCALL T2 </p><p> LCALL TIME ;顯示</p><p> MOV P3IF,#00H</p><p><b> RE
43、TI</b></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 03
44、H,XQ1 </p><p> MOV P1,#0FFH ;關(guān)閉鬧鐘</p><p><b> RET </b></p><p> SHI1: MOV A,42H </p><p> ADD A,#1 </p><p
45、> DA A </p><p> MOV 42H,A </p><p> CJNE A,#24H,MB </p><p> MOV 42H,#00H </p><p><b>
46、; RET</b></p><p> FEN1: MOV A,41H </p><p> ADD A,#1 </p><p> DA A </p><p> MOV 41H,A <
47、/p><p> CJNE A,#60H,MB </p><p> MOV 41H,#00H</p><p><b> RET</b></p><p> MIAO1:MOV A,40H </p><p> ADD A,#1
48、 </p><p> DA A </p><p> MOV 40H,A </p><p> CJNE A,#60H,MB </p><p> MOV 40H,#00H</p><p>&l
49、t;b> RET</b></p><p> XQ1: MOV A,43H</p><p><b> ADD A,#1</b></p><p><b> DA A</b></p><p> MOV 43H,A</p><p> CJN
50、EA,#08H,MB </p><p> MOV 43H,#01H</p><p> MB: RET</p><p><b> 校時(shí)部分</b></p><p> 校時(shí)部分就是在系統(tǒng)時(shí)間不準(zhǔn)確的情況下,給系統(tǒng)賦定值,使系統(tǒng)時(shí)間可以從該值開始變化,使用外部中斷KEY3,先給30H、31H、32H賦所需時(shí)
51、間,然后調(diào)用程序?qū)⑵滹@示。其中進(jìn)入中斷后調(diào)用子程序T1可以由KEY3鍵設(shè)置所定時(shí)間每按一次KEY3鍵值增加一,是調(diào)整時(shí)還是分或秒,可由開關(guān)量輸入鍵K1、K2、K3分別控制。其主程序中加入了外不中斷的有關(guān)指令.但需注意的是,在調(diào)解時(shí)除打開時(shí)、分、秒控制鍵外還需打開K11鍵。</p><p> KEY3: ;KEY3中斷程序</p><p><b> LCA
52、LL T1 </b></p><p> LCALL TIME ;顯示</p><p> MOV P3IF,#00H</p><p><b> RETI</b></p><p> T1: MOV 20H,P5 ;時(shí)間校準(zhǔn)程序</p><p>
53、 JNB 04H,RQ ;選擇修改時(shí)間/日期</p><p> JNB 00H,SHI</p><p> JNB 01H,FEN</p><p> JNB 02H,MIAO</p><p> JNB 03H,XQ </p><p><b> RET</b&
54、gt;</p><p> RQ: JNB 00H,NIAN</p><p> JNB 01H,YUE</p><p> JNB 02H,RI1</p><p> JNB 03H,XINGQI</p><p><b> RET </b></p><p&
55、gt; SHI:MOV A,32H </p><p> ADD A,#1 </p><p> DA A </p><p> MOV 32H,A </p><p> CJNE A,#24H
56、,M </p><p> MOV 32H,#0 </p><p><b> RET</b></p><p> FEN: MOV A,31H </p><p> ADD A,#1 </p&g
57、t;<p> DA A </p><p> MOV 31H,A </p><p> CJNE A,#60H,M </p><p> MOV 31H,#0 </p><p><b> RET
58、</b></p><p> MIAO:MOV A,30H </p><p> ADD A,#1 </p><p> DA A </p><p> MOV 30H,A </p&
59、gt;<p> CJNE A,#60H,M </p><p> MOV 30H,#0</p><p> XQ: MOV A,33H</p><p> ADD A,#1</p><p><b> DA A</b></p><p>
60、; MOV 33H,A</p><p> CJNE A,#08H,M</p><p> MOV 33H,#01H </p><p><b> M: RET</b></p><p> NIAN:MOV A,36H ;日期校準(zhǔn) </p><p> INC
61、 A </p><p> DA A </p><p> MOV 36H,A </p><p><b> RET</b></p><p> YUE: MOV A,35H
62、</p><p> ADD A,#1 </p><p> DA A </p><p> MOV 35H,A </p><p> CJNE A,#13H,ASD </p>&l
63、t;p> MOV 35H,#01H </p><p><b> RET</b></p><p> RI1:MOV A,34H </p><p> ADD A,#1 </p><p> DA A
64、 </p><p> MOV 34H,A </p><p> CJNE A,#32H,ASD </p><p> MOV 34H,#01H</p><p><b> RET</b></p><p> XINGQI:
65、MOV A,33H</p><p> ADD A,#1</p><p><b> DA A</b></p><p> MOV 33H,A</p><p> CJNE A,#08H,ASD</p><p> MOV 33H,#01H </p>&
66、lt;p> ASD: RET </p><p><b> 顯示部分</b></p><p> 顯示程序就是將程序中的時(shí)分秒顯示在液晶顯示屏上使其看起來更直觀、方便。其中第一行顯示系統(tǒng)運(yùn)行時(shí)間,第二行顯示定時(shí)時(shí)間。通過K6來控制第一行顯示時(shí)間和日期。</p><p> 該程序主要根據(jù)老師所給程序改編,利用子程序LINE設(shè)定顯示屏
67、的主要參數(shù).讓時(shí)間顯示在上一行且只顯示一個(gè)時(shí)分秒,如“23:28:20”,不造成顯示多個(gè)的后果。NCD為常函數(shù)表,將0-9數(shù)字依次存放到以左邊標(biāo)號(hào)為起始地址的存儲(chǔ)單元中。TIME中就是將時(shí)分秒的十位、各位分別賦予R0,然背后調(diào)用查表程序?qū)⑵滹@示在液晶屏上。值得注意的是:時(shí)與分、分與秒之間需將冒號(hào)也顯示出來。同理,定時(shí)時(shí)間的顯示在第二行,由TIME1控制。</p><p> TIME: CLR A
68、 ;液晶顯示程序</p><p> MOV XBR0, A</p><p> LCALL LCD</p><p> MOV DPTR,#NCD</p><p> MOV 20H,P5</p><p> JNB 05H,LP1 ;選擇顯示時(shí)間/日期</
69、p><p> MOV A,32H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV
70、R0,32H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#10</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,
71、31H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,31H</p><p>
72、 LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#10</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,30H</p><p><
73、b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,30H</p><p> LCALL LINE1</p>&l
74、t;p> LCALL DELAY</p><p> LJMP LP2 </p><p> LP1: MOV R0,#2</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#0</p>&l
75、t;p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,36H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1<
76、;/p><p> LCALL DELAY</p><p> MOV R0,36H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#11</p><p> LCALL LINE1</
77、p><p> LCALL DELAY</p><p> MOV A,35H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL
78、DELAY</p><p> MOV R0,35H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#11</p><p> LCALL LINE1</p><p> LCALL DE
79、LAY</p><p> MOV A,34H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p>
80、MOV R0,34H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> LP2: MOV R0,#11 ;NAOZHONG</p><p> LCALL LINE1</p><p> LCALL DELAY</p
81、><p> MOV R0,#12 ;NAOZHONG</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#13 ;NAOZHONG</p><p> LCALL LINE1</p><p&
82、gt; LCALL DELAY</p><p> MOV R0,33H ;NAOZHONG</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#11 ;NAOZHONG</p><p> LCALL
83、 LINE1</p><p> LCALL DELAY</p><p> JB P1.0,LOP1</p><p> MOV R0,#15 ;NAOZHONG</p><p> LCALL LINE1</p><p> LCALL DELAY</p><
84、p> MOV R0,#0 ;NAOZHONG</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#14 ;NAOZHONG</p><p> LCALL LINE1</p><p> LCALL
85、 DELAY</p><p> LOP1:MOV 20H,P5</p><p> JNB 06H,LP3 ;關(guān)閉定時(shí)顯示</p><p> MOV DPTR,#NED</p><p> MOV P7,#0C0H</p><p> MOV P6,#1H</p>
86、<p> MOV P6,#0H</p><p> MOV R0,#11</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,42H</p><p><b> SWAP A</b><
87、;/p><p> MOV R0,A</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,42H</p><p> LCALL LINE1</p><p> LCALL DELAY</p>&
88、lt;p> MOV R0,#10</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,41H</p><p><b> SWAP A</b></p><p> MOV R0,A</p&g
89、t;<p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,41H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#10</p><
90、p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV A,40H</p><p><b> SWAP A</b></p><p> MOV R0,A</p><p> LCALL LINE1</p>
91、<p> LCALL DELAY</p><p> MOV R0,40H</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#11 ;NAOZHONG</p><p> LCALL LINE1</
92、p><p> LCALL DELAY</p><p> MOV R0,#12 ;NAOZHONG</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#13 ;NAOZHONG</p><p&
93、gt; LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,43H ;NAOZHONG</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p><b> RET</b>
94、;</p><p> LP3: MOV DPTR,#NFD</p><p> MOV P7,#0C0H</p><p> MOV P6,#1H</p><p> MOV P6,#0H</p><p> MOV R0,#11</p><p> LC
95、ALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#0</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#1</p><p> LCALL LINE1
96、</p><p> LCALL DELAY</p><p> MOV R0,#2</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#3</p><p> LCALL LINE1</p>
97、<p> LCALL DELAY</p><p> MOV R0,#4</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#5</p><p> LCALL LINE1</p><p>
98、; LCALL DELAY</p><p> MOV R0,#6</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#10</p><p> LCALL LINE1</p><p> LCALL
99、 DELAY</p><p> MOV R0,#7</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p> MOV R0,#8</p><p> LCALL LINE1</p><p> LCALL DELAY<
100、/p><p> MOV R0,#9</p><p> LCALL LINE1</p><p> LCALL DELAY</p><p><b> RET</b></p><p> LINE1: MOV A,R0</p><p> ANL
101、 A,#0FH</p><p> 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&
102、gt; LCD: LCALL DELAY</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
103、><p> MOV 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
104、</p><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> RE
105、T</b></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&g
106、t;</p><p> DELAY1: MOV R4,#35</p><p> DELAY2: MOV R3,#150</p><p> DELAY3: MOV R2,#250</p><p> DJNZ R2,$</p><p> DJNZ R3,DELAY3</p
107、><p> DJNZ R4,DELAY2</p><p> RET </p><p> NCD : DB '0','1','2','3','4','5','6','7','8','9
108、9;,':',' ','X','Q',')','(',' '</p><p> NED : DB '0','1','2','3','4','5','6','7',
109、9;8','9',':',' ','X','Q',' ' ;常數(shù)表</p><p> NFD : DB 'D','I','N','G','S','H','I','O',
110、39;F','F',' ',' '</p><p><b> END</b></p><p><b> 工作過程分析</b></p><p><b> 時(shí)鐘程序分析</b></p><p> 在設(shè)計(jì)時(shí)分秒的程序時(shí),
111、首先定時(shí)1s,然后循環(huán)60次,則計(jì)時(shí)60秒,再判斷是否循環(huán)60次,沒有則繼續(xù)執(zhí)行以完成秒的計(jì)時(shí),若完成60次循環(huán)則分加一,同理當(dāng)分計(jì)數(shù)滿60時(shí),時(shí)加一,在判斷是否計(jì)數(shù)滿24次,滿24次則日加一,同時(shí)清零時(shí)計(jì)數(shù),日計(jì)數(shù)滿32則月計(jì)數(shù)加一同時(shí)日計(jì)數(shù)置1,月計(jì)數(shù)滿13,則年計(jì)數(shù)加一同時(shí)月計(jì)數(shù)置1。以此完成時(shí)分秒和日期的計(jì)算并據(jù)此編寫程序。</p><p><b> 定時(shí)程序分析</b></
112、p><p> 將時(shí)鐘的星期、時(shí)、分、秒先后賦值給A,判斷是否與設(shè)定的鬧鈴時(shí)間一致,不等則跳出子程序返回主程序繼續(xù)執(zhí)行下一步,相等則跳轉(zhuǎn)到TSR子程序。</p><p> 定時(shí)時(shí)間由外部中斷4控制,每按一下,其值增加一,時(shí)、分、秒、星期由開關(guān)按鍵K1,K2,K3,K4控制。將P5給20H判斷位00H、01H、02H、03H是否為0,不為0跳轉(zhuǎn)到時(shí)分秒程序中。在43H、42H、41H、40H中
113、存放星期、時(shí)、分、秒。當(dāng)系統(tǒng)設(shè)定的秒、分、時(shí)、星期與顯示的時(shí)間都相等時(shí)LED燈亮,表示鬧鈴時(shí)間到。期間時(shí)間會(huì)繼續(xù)顯示,但LED燈依舊亮,閉合K1、K2、K3、K4按下KEY4鍵可熄滅LED燈。</p><p> 定時(shí)功能還可以通過K7來控制關(guān)閉K7則顯示器顯示DINGSHI OFF 提示定時(shí)功能關(guān)閉。</p><p> DING: MOV A,33H ;判斷鬧鐘是否啟動(dòng)
114、</p><p> CJNE A,43H,N ;判斷 星期是否相同</p><p> MOV A,32H </p><p> CJNE A,42H,N ;判斷時(shí)是否相同</p><p> MOV A,31H </p><p> CJN
115、E A,41H,N ;判斷分是否相同</p><p> MOV A,30H</p><p> CJNE A,40H,N ;判斷秒是否相同</p><p> LJMP TSR ;都相同時(shí)跳到TSR</p><p> N: RET ;有一個(gè)不相同則返回
116、主程序</p><p><b> TSR: </b></p><p> MOV P1,#00H ;LED燈循環(huán)閃爍 </p><p><b> RET</b></p><p> 由于定時(shí)時(shí)間到的時(shí)候燈亮不能自主熄滅所以 設(shè)定當(dāng)K1、K2、K3、K4都關(guān)閉時(shí)用KEY4來關(guān)
117、閉指示燈。</p><p> KEY4: LCALL T2 </p><p> LCALL TIME ;顯示</p><p> MOV P3IF,#00H</p><p><b> RETI</b></p><p> T2: MOV 20H,P5
118、 ;定時(shí)程序</p><p> JNB 00H,SHI1</p><p> JNB 01H,FEN1</p><p> JNB 02H,MIAO1</p><p> JNB 03H,XQ1 </p><p> MOV P1,#0FFH ;關(guān)
119、閉鬧鐘</p><p><b> RET</b></p><p><b> 校時(shí)程序分析</b></p><p> 校時(shí)程序包括時(shí)分秒和日期的校時(shí),由于控制開關(guān)不是很多所以我用了K5來先選擇對(duì)時(shí)分秒校時(shí)和對(duì)日期校時(shí)。</p><p> 當(dāng)K5關(guān)閉時(shí)通過開關(guān)K1、K2、K3、K4來選擇對(duì)時(shí)分秒
120、的時(shí)位分位秒位和星期位的校準(zhǔn)并通過按KEY3來進(jìn)行加一調(diào)整。</p><p> 當(dāng)K5打開時(shí)同理調(diào)整日期實(shí)現(xiàn)對(duì)日期的校準(zhǔn)。</p><p><b> 顯示程序分析</b></p><p> 該部分主要是將隨時(shí)變化的時(shí)間及定時(shí)時(shí)間顯示到液晶顯示屏上,因此我設(shè)計(jì)以下的程序。先定義各端口的用途,關(guān)看門狗,確定端口輸出方式等先將秒分時(shí)轉(zhuǎn)換成ASC
121、II碼,存儲(chǔ)在40H,41H中,再將其賦予R4進(jìn)行顯示,。</p><p> 將秒的各位和十位分別賦給R0,在調(diào)用子程序LINE1利用查表將其顯示。程序雖然正確但還是無法顯示動(dòng)態(tài)值。將時(shí)賦予A,使其高四位與低四位交換,再跳轉(zhuǎn)到子程序屏蔽高四位,顯示低四位值;再將時(shí)賦予R0,跳入子程序屏蔽高四位顯示低四位,。同理顯示分、秒需注意的是:再將時(shí)分秒賦予R0時(shí),需將其轉(zhuǎn)換為十進(jìn)制,以便其顯示的是十進(jìn)制數(shù)。</p&
122、gt;<p> TIME: CLR A ;液晶顯示程序</p><p> MOV XBR0, A</p><p> LCALL LCD</p><p> MOV DPTR,#NCD</p><p> MOV 20H,P5</p><p>
123、JNB 05H,LP1 ;選擇顯示時(shí)間/日期。通過判斷K5來跳入不同的 程序來顯示日期和時(shí)間</p><p> LOP1:MOV 20H,P5</p><p> JNB 06H,LP3 ;關(guān)閉定時(shí)顯示。通過K6來控制定時(shí)鬧鐘功能的開關(guān)在這里判斷K5的狀態(tài)跳入不同的程序顯示不同的內(nèi)容。</p><p> LP3: MOV
124、DPTR,#NFD </p><p> MOV P7,#0C0H ;以下部分程序?yàn)榱孙@示“DINGSHI OFF”</p><p><b> 主要元器件介紹</b></p><p> C8051F系列單片機(jī)是cygnal出的一種混合信號(hào)系統(tǒng)級(jí)單片機(jī)。片內(nèi)含CIP-51的CPU內(nèi)核,其指令系統(tǒng)與MCS-51完全兼容
125、。</p><p> 而C8051F020單片機(jī)是該系列中一個(gè)比較有代表性的型號(hào),它是完全集成的混合信號(hào)系統(tǒng)級(jí)SCM芯片,含有64kB片內(nèi)Flash程序存儲(chǔ)器,4352B的RAM、8個(gè)I/O端口共64根I/O口線、一個(gè)12位A/D轉(zhuǎn)換器和一個(gè)8位A/D轉(zhuǎn)換器以及一個(gè)雙12位D/A轉(zhuǎn)換器、2個(gè)比較器、5個(gè)16位通用定時(shí)器、5個(gè)捕捉/比較模塊的可編程計(jì)數(shù)/定時(shí)器陣列、看門狗定時(shí)器、VDD監(jiān)視器和溫度傳感器等部分。C
126、8051F020單片機(jī)支持雙時(shí)鐘。</p><p> 其工作電壓范圍為2.7~3.6V(端口I/O,RST和JTAG引腳的耐壓為5V)。與以前的51系列單片機(jī)相比,C8051F020增添了許多功能,同時(shí)其可靠性和速度也有了很大提高。</p><p> 其原理圖如下圖所示:</p><p><b> 圖6.1</b></p>
127、<p> 液晶顯示屏(LCD)用于數(shù)字型鐘表和許多便攜式計(jì)算機(jī)的一種顯示器類型。LCD顯示使用了兩片極化材料,在它們之間是液體水晶溶液。電流通過該液體時(shí)會(huì)使水晶重新排列,以使光線無法透過它們。因此,每個(gè)水晶就像百葉窗,既能允許光線穿過又能擋住光線。</p><p> 液晶顯示器(LCD)目前科技信息產(chǎn)品都朝著輕、薄、短、小的目標(biāo)發(fā)展,在計(jì)算機(jī)周邊中擁有悠久歷史的顯示器產(chǎn)品當(dāng)然也不例外。在便于攜帶與搬
128、運(yùn)為前題之下,傳統(tǒng)的顯示方式如CRT映像管顯示器及LED顯示板等等,皆受制于體積過大或耗電量甚巨等因素,無法達(dá)成使用者的實(shí)際需求。而液晶顯示技術(shù)的發(fā)展正好切合目前信息產(chǎn)品的潮流,無論是直角顯示、低耗電量、體積小、還是零輻射等優(yōu)點(diǎn),都能讓使用者享受最佳的視覺環(huán)境。</p><p> 液晶顯示器,依驅(qū)動(dòng)方式來分類可分為靜態(tài)驅(qū)動(dòng)(Static)、單純矩陣驅(qū)動(dòng)(Simple Matrix)以及主動(dòng)矩陣驅(qū)動(dòng)(Active
129、 Matrix)三種。其中,被動(dòng)矩陣型又可分為扭轉(zhuǎn)式向列型(Twisted Nematic;TN)、超扭轉(zhuǎn)式向列型(Super Twisted Nematic;STN)及其它被動(dòng)矩陣驅(qū)動(dòng)液晶顯示器;而主動(dòng)矩陣型大致可區(qū)分為薄膜式晶體管型(Thin Film Transistor;TFT)及二端子二極管型(Metal/Insulator/Metal;MIM)二種方式。</p><p><b> 其樣式如
130、下圖所示:</b></p><p><b> 圖6.2</b></p><p><b> 總結(jié)</b></p><p> 兩周的課程設(shè)計(jì)終于結(jié)束了。在這兩周的時(shí)間里,我學(xué)到了很多。通過這兩周的課設(shè),我學(xué)到了更多單片機(jī)技術(shù)方面的知識(shí),所學(xué)的課本知識(shí)也更加扎實(shí)。</p><p> 除
131、此之外,通過這次課程設(shè)計(jì),加強(qiáng)了我們動(dòng)手、思考和解決問題的能力。在整個(gè)設(shè)計(jì)過程中,經(jīng)常會(huì)遇到這樣那樣的情況,就是心里想老著這樣的方法可以行得通,但實(shí)際編寫的程序總是實(shí)現(xiàn)不了,因此耗費(fèi)在這上面的時(shí)間用去很多。</p><p> 我覺得做課程設(shè)計(jì)同時(shí)也是對(duì)課本知識(shí)的鞏固和加強(qiáng),由于課本上的知識(shí)太多,平時(shí)課間的學(xué)習(xí)并不能很好的理解和運(yùn)用各個(gè)元件的功能,而且考試內(nèi)容有限,所以在這次課程設(shè)計(jì)過程中,我們了解了很多功能的應(yīng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)---多功能數(shù)字時(shí)鐘報(bào)告
- 多功能數(shù)字時(shí)鐘課程設(shè)計(jì)
- 多功能數(shù)字時(shí)鐘課程設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告(多功能數(shù)字時(shí)鐘的設(shè)計(jì))
- 單片機(jī)課程設(shè)計(jì)-多功能時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---多功能時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---多功能時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---多功能時(shí)鐘設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)----多功能數(shù)字時(shí)鐘
- 多功能數(shù)字時(shí)鐘 單片機(jī)課程設(shè)計(jì)
- eda課程設(shè)計(jì)---關(guān)于多功能數(shù)字時(shí)鐘的設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)-多功能數(shù)字時(shí)鐘設(shè)計(jì)
- 數(shù)字電子技術(shù)課程設(shè)計(jì)--多功能時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---多功能電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--多功能電子時(shí)鐘
- 電子綜合課程設(shè)計(jì)——多功能數(shù)字電子時(shí)鐘
- 時(shí)鐘課程設(shè)計(jì)報(bào)告
- 電子技術(shù)課程設(shè)計(jì)----多功能電子時(shí)鐘的設(shè)計(jì)
- vb時(shí)鐘課程設(shè)計(jì)報(bào)告---模擬時(shí)鐘
- 多功能數(shù)字鐘課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論