版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課 程 設 計</b></p><p> 設計題目:多功能時鐘程序設計</p><p><b> 沈陽工程學院</b></p><p><b> 課程設計任務書</b></p><p> 課程設計題目: 多功能時鐘程序設計</p>
2、;<p><b> 中文摘要</b></p><p> 時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學技術的不斷發(fā)展,人們對時間計量的精度要求越來越高,應用越來越廣。怎樣讓時鐘更好的為人民服務,怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設計出新型時鐘。 </p><p> 電子時鐘主要是采用先進的當代電子技術,使用微型時鐘芯
3、片的時鐘,與傳統(tǒng)的機械鐘相比,它的時鐘精度,顯示直觀,無機械傳動裝置,廣泛應用于人們的生活環(huán)境之中。此外,人們在生活和工業(yè)、農(nóng)業(yè)生產(chǎn)中對時鐘的功能的也提出了許多更高的要求如:鬧鐘,日歷,所以需要具有多種功能的新型電子時鐘。 根據(jù)人們的不同需求,我們就需要設計一種具有可以正常顯示時鐘/日歷并具有定時報時功能的多功能電子鐘。通過采集各種電子鐘發(fā)展的相關資料,對比分析后決定利用單片機技術,實現(xiàn)多功能電子鐘的各項設計。</p>&
4、lt;p> 該數(shù)字鐘采用液晶顯示屏顯示其時間與定時時間,即采用P6口輸入,P7口輸出,由R0輸入需顯示的時間,再通過延時程序將時間穩(wěn)定的顯示在液晶屏上。校準時間由外部中斷4及開關按鍵控制;定時時間由外部中斷3及開關按鍵控制 ,KEY3、KEY4鍵每按一次其時分秒的數(shù)字增加一。</p><p> 關鍵字: 單片機, 數(shù)字鐘, 校時, 定時器, 日歷</p><p>&
5、lt;b> 目錄</b></p><p> 多功能時鐘程序設計成績評定表2</p><p><b> 中文摘要3</b></p><p> 1課程設計要求5</p><p> 1.1設計主要內容及要求5</p><p> 1.2對設計論文撰寫內容、格式及
6、字數(shù)的要求5</p><p> 1.3時間進度安排5</p><p> 2課程設計思路6</p><p><b> 2.1計時6</b></p><p><b> 2.2校時6</b></p><p><b> 2.3鬧鈴6</
7、b></p><p><b> 3設計流程圖7</b></p><p><b> 4各模塊設計8</b></p><p> 4.1時鐘部分8</p><p> 4.2定時部分10</p><p> 4.3校時部分12</p>
8、<p> 4.4顯示部分14</p><p> 5工作過程分析20</p><p> 5.1時鐘程序分析20</p><p> 5.2定時程序分析20</p><p> 5.3校時程序分析21</p><p> 5.4顯示程序分析21</p><p>
9、; 6主要元器件介紹22</p><p><b> 總結24</b></p><p><b> 致謝25</b></p><p><b> 參考文獻26</b></p><p><b> 附錄27</b></p><
10、;p><b> 課程設計要求</b></p><p><b> 設計主要內容及要求</b></p><p><b> 編寫多功能時鐘程序</b></p><p> 能夠顯示時、分、秒的時鐘程序。</p><p><b> 具有鬧鐘功能。</b&g
11、t;</p><p><b> 能夠進行時間調整。</b></p><p> 對設計論文撰寫內容、格式及字數(shù)的要求</p><p> 課程設計論文是體現(xiàn)和總結課程設計成果的載體,一般不應少于 3000字。</p><p> 學生應撰寫時應做到文理通順,內容正確完整,書寫工整,裝訂整
12、齊。</p><p> 論文要求打印,打印時按《沈陽工程學院畢業(yè)設計(論文)撰寫規(guī)范》的要求</p><p> 課程設計論文裝訂順序為:封面、任務書、成績評審意見表、中文摘要和關鍵詞、目錄、正文、參考文獻。</p><p><b> 時間進度安排</b></p><p><b> 課程設計思路</
13、b></p><p> 本文主要介紹用單片機編程來實現(xiàn)多功能時鐘的方法,本設計由單片機C8051F芯片、開關K1~K8、LED燈及液晶顯示屏為核心,編輯一個程序使他們構成了一個單片機數(shù)字時鐘。與傳統(tǒng)時鐘相比,它具有走時精確,顯示直觀等特點。它的計時周期為24小時,顯滿刻度為“23時59分59秒”,另外具有校時、日期、星期、鬧鐘等功能等特點。</p><p><b> 計
14、時</b></p><p> 當T0進入中斷后,先給T0計時1s,再計時60s;當秒計數(shù)滿60s后開始分的計數(shù),同時將秒清零,否則返回程序繼續(xù)執(zhí)行;同理當分計數(shù)到60min,開始時的計時并共計數(shù)24次,與此同時分、秒清零。當完成24小時的計時后,開始日期計數(shù)與時分計數(shù)原理相同結束計時后返回主程序。</p><p><b> 校時</b></p&g
15、t;<p> 校時就是對時間進行調整,當時鐘時刻不準時可以進行校時。通過開關K1~K4來選擇調整時分秒,并用KEY3進行加一調整。</p><p><b> 鬧鈴</b></p><p> 定時程序實則就是讓系統(tǒng)設定一個鬧鈴時間,并使LED燈在到達時間時亮燈。先判斷星期是否相等,不等跳出鬧鈴程序,相等則繼續(xù)判斷時是否相等,不等跳出,相等繼續(xù)向下判斷
16、分和秒。當系統(tǒng)設定的秒、分、時、星期與顯示的時間都相等時跳到程序TSR使LED亮。定時的時刻由K1、K2、K3、K4來選擇時分秒和星期的調整并用KEY4來進行加一調整。</p><p><b> 設計流程圖</b></p><p><b> 各模塊設計</b></p><p><b> 時鐘部分</b
17、></p><p> 主程序主要是使各端口使能,保證各端口正常使用(主程序請參考附錄)。T0工作于定時方式1,進行16位計數(shù)。其中秒的地址為30H,分的地址為31H,小時的地址為32H,星期地址為33H,日的地址為34H,月的地址為35H,年的地址為36H。</p><p> 當T0進入中斷后,先給T0賦初值3CB0,定時50ms,循環(huán)7次計時1s,再跳入加一子程序JIA1中實現(xiàn)
18、秒加一,循環(huán)60次計時60s;當秒計數(shù)滿60s后開始分的計數(shù),同時將秒清零重新計時,否則返回程序繼續(xù)執(zhí)行;同理當分計數(shù)到60min,程序開始時的計時并共計數(shù)24次,同理計時日期。即時結束后返回主程序等待。</p><p> 在時鐘程序里還加了一個判定K8口的開關來控制計時暫停和繼續(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 ;關看門狗</p
21、><p> MOV WDTCN,#0ADH</p><p> MOV OSCICN,#05H ;內部振蕩4MHz</p><p> MOV P1MDOUT,#0FFH ;設置P1的輸出方式</p><p> MOV P74OUT, #0F0H ;端口6、端口7輸出方式為推挽輸出</p><p>
22、 MOV CKCON,#00H ;T0定時器12分頻</p><p> MOV TMOD,#01H ;T0處于工作方式一,16位</p><p> MOV TCON,#10H ;TR0=1,允許T0計數(shù)</p><p> MOV XBR2,#40H ;交叉開關總使能 </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 ;秒存儲地址<
24、/p><p> MOV 31H,#00H ;分存儲地址</p><p> MOV 32H,#00H ;時存儲地址</p><p> MOV 33H,#01H ;星期存儲地址</p><p> MOV 34H,#01H ;日存儲地址</p><p> MOV
25、 35H,#01H ;月存儲地址</p><p> MOV 36H,#00H ;年存儲地址</p><p> MOV 40H,#00H ;定時秒存儲地址</p><p> MOV 41H,#00H ;定時分存儲地址</p><p> MOV 42H,#00H ;定時時
26、存儲地址</p><p> MOV 43H,#01H ;定時星期存儲地址</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 ;定時50ms</p><p> MOV TH0,#00H</p><p> DJNZ R1,X ;計時1s</p><p> MOV R1,#07H</p><p> MOV 20H,P5 ;開關</p>
28、<p> JNB 07H,LOP_1 ;計時開關</p><p> LCALL JIA1 ;跳轉到計時程序 </p><p> LOP_1: JNB 06H,LOP_2 ;定時開關</p><p> LCALL DING ;跳轉到定時程序</p>&l
29、t;p> LOP_2: LCALL TIME ;跳轉到顯示程序</p><p><b> X: RETI</b></p><p> JIA1: MOV A,30H ;計時程序</p><p> ADD A,#01H ;秒加1</p><p
30、> DA A ;做十進制調整</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 ;做十進制調整</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 ;時加1</p><p> DA A ;做十進制調整</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> 定時部分</b></p
38、><p> 定時程序實則就是人為設定一個鬧鈴時間,并使LED燈在到達時間時亮。</p><p> 將時鐘的星期、時、分、秒先后賦值給A,判斷是否與設定的鬧鈴時間一致,不等則跳出子程序返回主程序繼續(xù)執(zhí)行下一步,相等則跳轉到TSR子程序。</p><p> 定時時間由外部中斷4控制,每按一下,其值增加一,時、分、秒、星期由開關按鍵K1,K2,K3,K4控制。將P5給2
39、0H判斷位00H、01H、02H、03H是否為0,不為0跳轉到時分秒程序中。在43H、42H、41H、40H中存放星期、時、分、秒。當系統(tǒng)設定的秒、分、時、星期與顯示的時間都相等時LED燈亮,表示鬧鈴時間到。期間時間會繼續(xù)顯示,但LED燈依舊亮,閉合K1、K2、K3、K4按下KEY4鍵可熄滅LED燈。</p><p> 定時功能還可以通過K7來控制關閉K7則顯示器顯示DINGSHI OFF 提示定時功能關閉。&
40、lt;/p><p> DING: MOV A,33H ;判斷鬧鐘是否啟動</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 ;定時程序</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 ;關閉鬧鐘</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> 校時部分</b></p><p> 校時部分就是在系統(tǒng)時間不準確的情況下,給系統(tǒng)賦定值,使系統(tǒng)時間可以從該值開始變化,使用外部中斷KEY3,先給30H、31H、32H賦所需時
51、間,然后調用程序將其顯示。其中進入中斷后調用子程序T1可以由KEY3鍵設置所定時間每按一次KEY3鍵值增加一,是調整時還是分或秒,可由開關量輸入鍵K1、K2、K3分別控制。其主程序中加入了外不中斷的有關指令.但需注意的是,在調解時除打開時、分、秒控制鍵外還需打開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 ;時間校準程序</p><p>
53、 JNB 04H,RQ ;選擇修改時間/日期</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 ;日期校準 </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> 顯示程序就是將程序中的時分秒顯示在液晶顯示屏上使其看起來更直觀、方便。其中第一行顯示系統(tǒng)運行時間,第二行顯示定時時間。通過K6來控制第一行顯示時間和日期。</p><p> 該程序主要根據(jù)老師所給程序改編,利用子程序LINE設定顯示屏
67、的主要參數(shù).讓時間顯示在上一行且只顯示一個時分秒,如“23:28:20”,不造成顯示多個的后果。NCD為常函數(shù)表,將0-9數(shù)字依次存放到以左邊標號為起始地址的存儲單元中。TIME中就是將時分秒的十位、各位分別賦予R0,然背后調用查表程序將其顯示在液晶屏上。值得注意的是:時與分、分與秒之間需將冒號也顯示出來。同理,定時時間的顯示在第二行,由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 ;選擇顯示時間/日期</
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 ;關閉定時顯示</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> 時鐘程序分析</b></p><p> 在設計時分秒的程序時,
111、首先定時1s,然后循環(huán)60次,則計時60秒,再判斷是否循環(huán)60次,沒有則繼續(xù)執(zhí)行以完成秒的計時,若完成60次循環(huán)則分加一,同理當分計數(shù)滿60時,時加一,在判斷是否計數(shù)滿24次,滿24次則日加一,同時清零時計數(shù),日計數(shù)滿32則月計數(shù)加一同時日計數(shù)置1,月計數(shù)滿13,則年計數(shù)加一同時月計數(shù)置1。以此完成時分秒和日期的計算并據(jù)此編寫程序。</p><p><b> 定時程序分析</b></
112、p><p> 將時鐘的星期、時、分、秒先后賦值給A,判斷是否與設定的鬧鈴時間一致,不等則跳出子程序返回主程序繼續(xù)執(zhí)行下一步,相等則跳轉到TSR子程序。</p><p> 定時時間由外部中斷4控制,每按一下,其值增加一,時、分、秒、星期由開關按鍵K1,K2,K3,K4控制。將P5給20H判斷位00H、01H、02H、03H是否為0,不為0跳轉到時分秒程序中。在43H、42H、41H、40H中
113、存放星期、時、分、秒。當系統(tǒng)設定的秒、分、時、星期與顯示的時間都相等時LED燈亮,表示鬧鈴時間到。期間時間會繼續(xù)顯示,但LED燈依舊亮,閉合K1、K2、K3、K4按下KEY4鍵可熄滅LED燈。</p><p> 定時功能還可以通過K7來控制關閉K7則顯示器顯示DINGSHI OFF 提示定時功能關閉。</p><p> DING: MOV A,33H ;判斷鬧鐘是否啟動
114、</p><p> CJNE A,43H,N ;判斷 星期是否相同</p><p> MOV A,32H </p><p> CJNE A,42H,N ;判斷時是否相同</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 ;都相同時跳到TSR</p><p> N: RET ;有一個不相同則返回
116、主程序</p><p><b> TSR: </b></p><p> MOV P1,#00H ;LED燈循環(huán)閃爍 </p><p><b> RET</b></p><p> 由于定時時間到的時候燈亮不能自主熄滅所以 設定當K1、K2、K3、K4都關閉時用KEY4來關
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、 ;定時程序</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 ;關
119、閉鬧鐘</p><p><b> RET</b></p><p><b> 校時程序分析</b></p><p> 校時程序包括時分秒和日期的校時,由于控制開關不是很多所以我用了K5來先選擇對時分秒校時和對日期校時。</p><p> 當K5關閉時通過開關K1、K2、K3、K4來選擇對時分秒
120、的時位分位秒位和星期位的校準并通過按KEY3來進行加一調整。</p><p> 當K5打開時同理調整日期實現(xiàn)對日期的校準。</p><p><b> 顯示程序分析</b></p><p> 該部分主要是將隨時變化的時間及定時時間顯示到液晶顯示屏上,因此我設計以下的程序。先定義各端口的用途,關看門狗,確定端口輸出方式等先將秒分時轉換成ASC
121、II碼,存儲在40H,41H中,再將其賦予R4進行顯示,。</p><p> 將秒的各位和十位分別賦給R0,在調用子程序LINE1利用查表將其顯示。程序雖然正確但還是無法顯示動態(tài)值。將時賦予A,使其高四位與低四位交換,再跳轉到子程序屏蔽高四位,顯示低四位值;再將時賦予R0,跳入子程序屏蔽高四位顯示低四位,。同理顯示分、秒需注意的是:再將時分秒賦予R0時,需將其轉換為十進制,以便其顯示的是十進制數(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 ;選擇顯示時間/日期。通過判斷K5來跳入不同的 程序來顯示日期和時間</p><p> LOP1:MOV 20H,P5</p><p> JNB 06H,LP3 ;關閉定時顯示。通過K6來控制定時鬧鐘功能的開關在這里判斷K5的狀態(tài)跳入不同的程序顯示不同的內容。</p><p> LP3: MOV
124、DPTR,#NFD </p><p> MOV P7,#0C0H ;以下部分程序為了顯示“DINGSHI OFF”</p><p><b> 主要元器件介紹</b></p><p> C8051F系列單片機是cygnal出的一種混合信號系統(tǒng)級單片機。片內含CIP-51的CPU內核,其指令系統(tǒng)與MCS-51完全兼容
125、。</p><p> 而C8051F020單片機是該系列中一個比較有代表性的型號,它是完全集成的混合信號系統(tǒng)級SCM芯片,含有64kB片內Flash程序存儲器,4352B的RAM、8個I/O端口共64根I/O口線、一個12位A/D轉換器和一個8位A/D轉換器以及一個雙12位D/A轉換器、2個比較器、5個16位通用定時器、5個捕捉/比較模塊的可編程計數(shù)/定時器陣列、看門狗定時器、VDD監(jiān)視器和溫度傳感器等部分。C
126、8051F020單片機支持雙時鐘。</p><p> 其工作電壓范圍為2.7~3.6V(端口I/O,RST和JTAG引腳的耐壓為5V)。與以前的51系列單片機相比,C8051F020增添了許多功能,同時其可靠性和速度也有了很大提高。</p><p> 其原理圖如下圖所示:</p><p><b> 圖6.1</b></p>
127、<p> 液晶顯示屏(LCD)用于數(shù)字型鐘表和許多便攜式計算機的一種顯示器類型。LCD顯示使用了兩片極化材料,在它們之間是液體水晶溶液。電流通過該液體時會使水晶重新排列,以使光線無法透過它們。因此,每個水晶就像百葉窗,既能允許光線穿過又能擋住光線。</p><p> 液晶顯示器(LCD)目前科技信息產(chǎn)品都朝著輕、薄、短、小的目標發(fā)展,在計算機周邊中擁有悠久歷史的顯示器產(chǎn)品當然也不例外。在便于攜帶與搬
128、運為前題之下,傳統(tǒng)的顯示方式如CRT映像管顯示器及LED顯示板等等,皆受制于體積過大或耗電量甚巨等因素,無法達成使用者的實際需求。而液晶顯示技術的發(fā)展正好切合目前信息產(chǎn)品的潮流,無論是直角顯示、低耗電量、體積小、還是零輻射等優(yōu)點,都能讓使用者享受最佳的視覺環(huán)境。</p><p> 液晶顯示器,依驅動方式來分類可分為靜態(tài)驅動(Static)、單純矩陣驅動(Simple Matrix)以及主動矩陣驅動(Active
129、 Matrix)三種。其中,被動矩陣型又可分為扭轉式向列型(Twisted Nematic;TN)、超扭轉式向列型(Super Twisted Nematic;STN)及其它被動矩陣驅動液晶顯示器;而主動矩陣型大致可區(qū)分為薄膜式晶體管型(Thin Film Transistor;TFT)及二端子二極管型(Metal/Insulator/Metal;MIM)二種方式。</p><p><b> 其樣式如
130、下圖所示:</b></p><p><b> 圖6.2</b></p><p><b> 總結</b></p><p> 兩周的課程設計終于結束了。在這兩周的時間里,我學到了很多。通過這兩周的課設,我學到了更多單片機技術方面的知識,所學的課本知識也更加扎實。</p><p> 除
131、此之外,通過這次課程設計,加強了我們動手、思考和解決問題的能力。在整個設計過程中,經(jīng)常會遇到這樣那樣的情況,就是心里想老著這樣的方法可以行得通,但實際編寫的程序總是實現(xiàn)不了,因此耗費在這上面的時間用去很多。</p><p> 我覺得做課程設計同時也是對課本知識的鞏固和加強,由于課本上的知識太多,平時課間的學習并不能很好的理解和運用各個元件的功能,而且考試內容有限,所以在這次課程設計過程中,我們了解了很多功能的應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設計---多功能數(shù)字時鐘報告
- 多功能數(shù)字時鐘課程設計
- 多功能數(shù)字時鐘課程設計
- eda課程設計報告(多功能數(shù)字時鐘的設計)
- 單片機課程設計-多功能時鐘
- 單片機課程設計---多功能時鐘
- 單片機課程設計---多功能時鐘設計
- 單片機課程設計---多功能時鐘設計
- 數(shù)字電路課程設計----多功能數(shù)字時鐘
- 多功能數(shù)字時鐘 單片機課程設計
- eda課程設計---關于多功能數(shù)字時鐘的設計
- 數(shù)字電路課程設計-多功能數(shù)字時鐘設計
- 數(shù)字電子技術課程設計--多功能時鐘設計
- 單片機課程設計---多功能電子時鐘設計
- 單片機課程設計--多功能電子時鐘
- 電子綜合課程設計——多功能數(shù)字電子時鐘
- 時鐘課程設計報告
- 電子技術課程設計----多功能電子時鐘的設計
- vb時鐘課程設計報告---模擬時鐘
- 多功能數(shù)字鐘課程設計報告
評論
0/150
提交評論