2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論