已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一 摘要 單片計(jì)算機(jī)即單片微型計(jì)算機(jī)。( Single-Chip Microcomputer ) ,是 集 CPU ,RAM ,ROM , 定時(shí),計(jì)數(shù)和多種接口于一體的微控制器。他體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn) 品和工業(yè)自動(dòng)化上。而 51 單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次畢業(yè)設(shè) 計(jì)通過(guò)對(duì)它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開(kāi)發(fā)軟、硬的能力。 二 說(shuō)明 系統(tǒng)由 AT89C51、 LED 數(shù)碼管、按鍵、發(fā)光二極管等部分構(gòu)成,能實(shí)現(xiàn)時(shí)間的調(diào)整、定 時(shí)時(shí)間的設(shè)定,輸出等功能。系統(tǒng)的功能選擇由 SB0、 SB1、 SB2、 SB3、 SB4 完成。其中SB0 為時(shí)間校對(duì),定時(shí)器調(diào)整功能鍵,按 SB 0 進(jìn)入調(diào)整狀態(tài)。 SB1 為功能切換鍵。第一輪按動(dòng) SB1 依次進(jìn)入一路、二路、三路定時(shí)時(shí)間設(shè)置提示程序,按 SB3 進(jìn)入各路定時(shí)調(diào)整狀態(tài)。定 時(shí)時(shí)間到,二極管發(fā)亮。到了關(guān)斷時(shí)間后滅掉。如果不進(jìn)入繼續(xù)按 SB1 鍵,依次進(jìn)入時(shí)間 年 位校對(duì)、 月 位校對(duì)、 日 位校對(duì)、 時(shí) 位校對(duì)、 分 位校對(duì)、 秒 位 校對(duì)狀態(tài)。不管是進(jìn)入那種狀態(tài),按動(dòng) SB2 皆可以使被調(diào)整位進(jìn)行不進(jìn)位增量加 1 變化。各 預(yù)置 量設(shè)置完成后,系統(tǒng)將所有的設(shè)置存入 RAM 中,按 SB1 退出調(diào)整狀態(tài)。上電后,系統(tǒng)自 動(dòng)進(jìn)入計(jì)時(shí)狀態(tài),起始于 00 時(shí) 00 分。 SB4 為年月日顯示轉(zhuǎn)換鍵,可使原來(lái)顯示時(shí)分 秒轉(zhuǎn)換顯示年月日。 三、電路原理分析 1. 顯示原理 電原理圖見(jiàn)附圖 1。由 6 個(gè)共陰極的數(shù)碼管組成時(shí)、分、秒的顯示。 P0 口的 8 條數(shù)據(jù)線 P0.0 至 P0.7 分別與兩個(gè) CD4511 譯碼的 ABCD 口相接, P2 口的 P2.0 至 P2.2 分別通過(guò)電阻 R10 至 R13 與 VT1 至 VT3 的基極相連接。這樣通過(guò) P0 口送 出一個(gè)存儲(chǔ)單元的高位、低位 BCD 顯示代碼,通過(guò) P2 口送出掃描選通代碼輪流點(diǎn)亮 LED1 至 LED6,就會(huì)將要顯示的數(shù)據(jù)在數(shù) 碼管中顯示出來(lái)。從 P0 口輸出的代碼是 BCD 碼,從 P2 口輸出的就是位選碼。這是掃描顯示 原理。 。 2 鍵盤(pán)及讀數(shù)原理 鍵盤(pán)是人與微機(jī)打交道的主要設(shè)備,按鍵的讀取容易引起誤動(dòng)作??刹捎密浖?抖動(dòng)的方法處理,軟件的觸點(diǎn)在閉合和斷開(kāi)的時(shí)候會(huì)產(chǎn)生抖動(dòng),這時(shí)觸點(diǎn)的邏輯電 平是不穩(wěn)定的,如不采取妥善處理的話,將引起按鍵命令錯(cuò)誤或重復(fù)執(zhí)行,在這里 采用軟件延時(shí)的方法來(lái)避開(kāi)抖動(dòng),延時(shí)時(shí)間 20ms. 3 連擊功能的實(shí)現(xiàn) 按下某鍵時(shí),對(duì)應(yīng)的功能鍵解釋程序得到執(zhí)行,如操作者沒(méi)有釋放按鍵,則對(duì)應(yīng) 的功能會(huì)反復(fù)執(zhí)行,好象連續(xù)執(zhí)行,在這里我們采用軟件延時(shí) 250ms,當(dāng)按鍵沒(méi)釋放則 執(zhí)行下一條對(duì)應(yīng)程序。利用連擊功能,能實(shí)現(xiàn)快速調(diào)時(shí)操作。 四、程序設(shè)計(jì)思想和相關(guān)指令介紹 本系統(tǒng)的主程序主要完成時(shí)間顯示和定時(shí)輸出判斷功能。而年月日顯示和各時(shí)間單元進(jìn) 位,時(shí)間設(shè)定時(shí),調(diào)定時(shí)間設(shè)定時(shí)等功能全部在中斷服務(wù)程序中完成。 1數(shù)據(jù)與代碼轉(zhuǎn)換 。 由前述可知,從 P2 口輸出位選碼,從 P0 口輸出段選碼, LED 就會(huì)顯示出數(shù)字 來(lái)。但 P0 口的輸出的數(shù)據(jù)是要 BCD 碼,各存儲(chǔ)單元存儲(chǔ)的是二進(jìn)制數(shù),也就是和要顯示出的字符表達(dá) 的含義是不一致的??梢?jiàn),將要顯示的存儲(chǔ)單元的數(shù)據(jù)直接送到 P0 口去驅(qū)動(dòng) LED 數(shù)碼管顯 示是不能正確表達(dá)的,必須在系統(tǒng)內(nèi)部將要顯示的數(shù)據(jù)經(jīng)過(guò) BCD 碼行轉(zhuǎn)換后,將各個(gè)單元數(shù) 據(jù)的段選代碼送入 P0 口,給 CD4511 譯碼后去驅(qū)動(dòng)數(shù)碼管顯示。 具體轉(zhuǎn)換過(guò)程如下: 我們先將要顯示的數(shù)據(jù)裝入累加器 A 中,再將 A 中的數(shù)據(jù)轉(zhuǎn)換成高低兩位的 BCD 碼, 再放回 A 中,然后將 A 中的值輸出。如:有一個(gè)單元存儲(chǔ)了 45 這樣一 位數(shù),則需轉(zhuǎn)換成四 位的 BCD 碼:( 0100)( 0101)然后放入 A 中。 A 中 BCD 碼,高位四位代表 4低四位代 表 5同時(shí)送給兩個(gè)譯碼器中,譯碼后 45 字就在兩個(gè) LED 中顯示出來(lái)。 2計(jì)時(shí)功能的實(shí)現(xiàn)與中斷服務(wù)程序 時(shí)間的運(yùn)行依靠定時(shí)中斷子程序?qū)r(shí)鐘單元數(shù)值進(jìn)位調(diào)整來(lái)實(shí)現(xiàn)的。計(jì)數(shù)器 T0 打開(kāi)后, 進(jìn)入計(jì)時(shí),滿(mǎn) 100 毫秒后,重裝定時(shí)。中斷一次,滿(mǎn)一秒后秒進(jìn)位,滿(mǎn) 60 秒后即為 1 分鐘, 分鐘單元進(jìn)位, 60 分到了后,時(shí)單元進(jìn)位, 24 小時(shí)滿(mǎn)后,天單元進(jìn)位。這樣然后根據(jù)進(jìn)率, 得到年、月 、日、時(shí)、分、秒存儲(chǔ)單元的值,并經(jīng)譯碼后,通過(guò)掃描程序送 LED 中顯示出來(lái), 實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)功能。累加是用指令 INC 來(lái)實(shí)現(xiàn)的。 進(jìn)入中斷服務(wù)程序以后,執(zhí)行 PUSH PSW 和 PUSH A 將程序狀態(tài)寄存器 PSW 的內(nèi)容和累 加器 A 中的數(shù)據(jù)保存起來(lái),這便是所謂的 保護(hù)現(xiàn)場(chǎng) . 以保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)時(shí)存取關(guān)鍵 數(shù)據(jù)的存儲(chǔ)區(qū)叫做堆棧。在軟件的控制之下,堆棧可在片內(nèi) RAM 中的任一區(qū)間設(shè)定,而堆棧 的數(shù)據(jù)存取與一般的 RAM 存取又有區(qū)別,對(duì)它的操作,要遵循 后進(jìn)先出 的原則。 3 時(shí)間控制功能與比較指令 系統(tǒng)的另一功能就是實(shí)現(xiàn)對(duì)執(zhí)行設(shè)備的定時(shí)開(kāi)關(guān)控制,其主要控制思想是這樣的:先 將執(zhí)行設(shè)備開(kāi)啟的時(shí)間和關(guān)閉時(shí)間置入 RAM 某一單元,在計(jì)時(shí)主程序當(dāng)中執(zhí)行幾條比較指 令,如果當(dāng)前計(jì)時(shí)時(shí)間與執(zhí)行設(shè)備的設(shè)定開(kāi)啟時(shí)間相等,就執(zhí)行一條 CLR 指令,將對(duì)應(yīng)的 那路 P3 置為高電位,開(kāi)啟;如果當(dāng)前計(jì)時(shí)時(shí)間與執(zhí)行設(shè)備設(shè)定的關(guān)閉時(shí)間相等,就執(zhí)行SETB 對(duì)應(yīng)的 P3 置低電位,二極管截止,。實(shí)現(xiàn)此控制功能用到的比較指令為 CJNE A, #direct, rel,其轉(zhuǎn)移條件是累加器 A 中的值與立即數(shù)不等則轉(zhuǎn)移。 參考文獻(xiàn) 1、 謝自 美,電子線路設(shè)計(jì)、實(shí)驗(yàn)、測(cè)試 武漢:華中理工大學(xué)出版社, 2000 2、 何書(shū)森、何華斌實(shí)用數(shù)字電路原理與設(shè)計(jì)速成福州:福建科學(xué)技術(shù)出版社, 2000.6 3、 白駒衍, 單片計(jì)算機(jī)及應(yīng)用北京:電子工業(yè)出版社, 1999.2 五:程序 SEC EQU 32H ;秒 即時(shí)時(shí)間 偽指令 MIN EQU 31H ;分 HOUR EQU 30H ;時(shí) DAY EQU 35H ;日 MON EQU 34H ;月 YEAR EQU 33H ;年 MIN_1 EQU 41H ;分 定時(shí)器 1 路、開(kāi)存儲(chǔ)單元 HOUR_1 EQU 42H ;時(shí) DAY_1 EQU 43H ; MON_1 EQU 44H ; YEAR_1 EQU 45H ; MIN_11 EQU 40H ;分 定時(shí)器 1 路、關(guān)存儲(chǔ)單元 HOUR_11 EQU 46H ;時(shí) DAY_11 EQU 47H ;日 MON_11 EQU 48H ;月 YEAR_11 EQU 49H ;年 ;* ORG 0000H ljmp MAIN ORG 0003H ;中斷轉(zhuǎn)換顯示年月日、 INT0( SB4 鍵) LJMP SHOW ORG 000BH ;計(jì)數(shù)中斷 T0、方式 1 LJMP TIME ORG 0013H LJMP CHANGE; 調(diào)整時(shí)間、定時(shí)、 INT1( SB0 鍵) ;-主程序 ORG 0030H MAIN: ;-初始化付值 MOV YEAR , #02 MOV MON , #05 MOV DAY , #01 MOV HOUR , #00 MOV MIN , #00 MOV SEC , #00 CLR 40H ;定時(shí)單元 1 路清零 CLR 41H CLR 42H CLR 43H CLR 44H CLR 45H CLR 46H CLR 47H CLR 48H CLR 49H ;-開(kāi)中斷 MOV TMOD , #01H ;計(jì)數(shù)、模式 1、 T0 MOV TL0, #0B0H ;100SM 計(jì)數(shù)定時(shí) MOV TH0, #3CH ; clr p3.0 MOV 20H, #0AH ;10 次 *100SM SETB PT0 ;T0 為最高級(jí) SETB TR0 ;允許計(jì)數(shù) SETB ET0 ;允許 T0 中斷 SETB EX0 ;允許 INT0 中斷 SETB EX1 ;允許 INT1 中斷 SETB EA ;開(kāi)總中斷 ;-顯示、定時(shí)器啟動(dòng)判斷 LOOP: MOV R1, #30H; 存儲(chǔ)單元 MOV R4, #01H; 位選通 MOV R3, #03H; 三組顯示 NEXT: MOV A , R1 ; MOV B , #10 ;將存儲(chǔ)單元轉(zhuǎn)換成兩高低兩組的BCD 碼 DIV AB SWAP A ORL A, B MOV P0, A;輸出 MOV P2, R4 INC R1 ;下一單元 MOV A, R4 ; RL A ;位移 MOV R4, A LCALL DE5SM ;延時(shí) 0.5SM DJNZ R3, NEXT ;全掃描顯示一偏 ;-判斷定時(shí)輸出 (只編寫(xiě)了一路 ) CJNE R7, #88H,LOOP ;是 8 則開(kāi),否則、定時(shí)已關(guān)、轉(zhuǎn) ;-開(kāi) MOV A, YEAR CJNE A, YEAR_1, LOOP_1;年比較,不等轉(zhuǎn)關(guān) MOV A, MON CJNE A, MON_1, LOOP_1 MOV A, DAY CJNE A , DAY_1,LOOP_1 MOV A, HOUR CJNE A, HOUR_1,LOOP_1 MOV A, MIN CJNE A, MIN_1, LOOP_1 CPL P3.0 ;-關(guān) LOOP_1: MOV A, YEAR CJNE A, YEAR_11, LOOP;年比較 MOV A, MON CJNE A, MON_11, LOOP MOV A, DAY CJNE A , DAY_11,LOOP MOV A, HOUR CJNE A, HOUR_11,LOOP MOV A, MIN CJNE A, MIN_11, LOOP CPL P3.0 LJMP LOOP ;-年月日顯示中斷子程序 SHOW: PUSH PSW push ACC PUSH B PUSH 01H PUSH 02H PUSH 03H PUSH 04H MOV R2, #0FFH ;中斷掃描次數(shù) TURN: MOV R1 , #33H MOV R4 , #01H MOV R3 , #03H NEXT_1: MOV A, R1 MOV B , #10 DIV AB SWAP A ORL A, B MOV P0, A MOV P2, R4 INC R1 RL A MOV R4 ,A LCALL DE5SM DJNZ R3, NEXT_1 DJNZ R2, TURN ;反復(fù)顯示一定時(shí)間后返回 POP 04H POP 03H POP 02H POP 01H POP B POP ACC POP PSW RETI ;-計(jì)數(shù)中斷服務(wù)子程序 TIME: PUSH PSW PUSH ACC PUSH B PUSH 06H MOV TH0 , #3CH;重裝計(jì)數(shù) MOV TL0 , #0BH; DJNZ 20H, OUT ;轉(zhuǎn)到中斷跳出 pop 程序 MOV 20H, #0AH ; 重裝: 100*10=1000 ;-進(jìn)位程序 INC SEC MOV R6, SEC ; CJNE R6, #60, OUT;比較 MOV SEC , #00 ; INC MIN MOV R6, MIN CJNE R6, #60, OUT MOV MIN , #00 INC HOUR MOV R6 , HOUR CJNE R6 , #25 , OUT MOV HOUR ,#00 INC DAY MOV R5, MON CJNE R5, #1, MON_22;是否 1 月、不是轉(zhuǎn) 2 月 MOV R5, DAY CJNE R5, #32, OUT ; 本月是否益出 INC MON MOV DAY,#1 LJMP OUT OUT: POP 06H POP B POP ACC POP PSW RETI MON_22: MOV R5, MON CJNE R5 , #2 , MON_33;是否 2 月、不是轉(zhuǎn) 3 月 MOV A, YEAR ;判斷是否瑞年 MOV B, #4 DIV AB MOV A , B JNZ OUT_1;不是則轉(zhuǎn)( A 不為零則轉(zhuǎn)) MOV R5 ,DAY CJNE R5,#30, OUT;如是瑞年、判斷是否到 29 天 INC MON MOV DAY ,#1 LJMP OUT OUT_1: MOV R5, DAY CJNE R5, #29, OUT ;平年二月判斷 INC MON MOV DAY , #1 LJMP OUT MON_33: MOV R5, MON CJNE R5, #3 , MON_44 MOV R5, DAY CJNE R5 , #32, OUT INC MON MOV DAY , #1 LJMP OUT MON_44: MOV R5, MON CJNE R5,#4, MON_55 MOV R5, DAY CJNE R5 ,#31,OUT INC MON MOV DAY , #1 LJMP OUT MON_55: MOV R5,MON CJNE R5,#5, MON_66 MOV R5,DAY CJNE R5,#32,OUT INC MON MOV DAY,#1 LJMP OUT MON_66: MOV R5, MON CJNE R5,#6, MON_77 MOV R5, DAY CJNE R5 ,#31,OUT INC MON MOV DAY , #1 LJMP OUT MON_77: MOV R5, MON CJNE R5,#7, MON_88 MOV R5, DAY CJNE R5,#32,L1 INC MON MOV DAY , #1 L1: LJMP OUT MON_88: MOV R5, MON CJNE R5,#8, MON_99 MOV R5, DAY CJNE R5 ,#32,L2 INC MON MOV DAY , #1 L2: LJMP OUT MON_99: MOV R5, MON CJNE R5,#9, MON_00 MOV R5,DAY CJNE R5 ,#31,L3 INC MON MOV DAY , #1 L3: LJMP OUT MON_00: MOV R5, MON CJNE R5,#10, MON_AA MOV R5, DAY CJNE R5 ,#32,L4 INC MON MOV DAY , #1 L4: LJMP OUT MON_AA: MOV R5, MON CJNE R5,#11, MON_BB MOV R5,DAY CJNE R5,#31,L5 INC MON MOV DAY , #1 L5: LJMP OUT MON_BB: MOV R5, DAY CJNE R5 ,#32,L6 INC YEAR MOV MON, #1 MOV DAY , #1 L6:LJMP OUT ;-按 SB2定時(shí)器年單元加 1 子程序 SB3_2: LJMP SHOW_2 ;二路沒(méi)編返回 SB3_3: LJMP SHOW_3 ;三路沒(méi)編返回 SB3_1: MOV A , YEAR_1 ; 調(diào)時(shí)年單元 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A, 01H, SB3_1 CJNE A, #0FBH, KEY2_7 ;按 SB2 轉(zhuǎn)年調(diào)整 LJMP MON_111 ;按 SB1 往下調(diào)月單元 KEY2_7:CJNE A, #0FDH, SB3_1 INC YEAR_1 ; 1 路年單元加 1 MOV R5,YEAR_1 CJNE R5,#09,SB3_1 ;益出 MOV YEAR_1, #00H AJMP SB3_1 ; ;-月單元加 1 子程序 MON_111: MOV A , MON_1 ; 調(diào)時(shí)月單元顯示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LCALL DE250SM CJNE A, 01H, MON_111 CJNE A, #0FBH, KEY2_8 ;按 SB2 轉(zhuǎn)月調(diào)整 LJMP DAY_111 KEY2_8: CJNE A,#0FDH,MON_111 INC MON_1 ;1 路月單元加 1 MOV R5,MON_1 CJNE R5,#13,MON_111;益出 MOV MON_1, #01H AJMP MON_111 ; 轉(zhuǎn)到月顯 ;_-日單元加 1 子程序 DAY_111: MOV A , DAY_1 ; 調(diào)時(shí)日單元顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #04H LCALL READ LCALL DE250SM CJNE A, 01H,DAY_111 CJNE A, #0FBH, KEY2_9 ;按 SB2 轉(zhuǎn)日調(diào)整 LJMP HOUR_111 KEY2_9: CJNE A,#0FDH,DAY_111 INC DAY_1 ;1 組日單元加 1 MOV R5, DAY_1 CJNE R5,#32,DAY_111;益出 MOV DAY_1, #01H AJMP DAY_111 ; 轉(zhuǎn)到日顯 ;-按 SB2 時(shí)單元加 1 子程序 HOUR_111: MOV A , HOUR_1 ; 調(diào)時(shí)時(shí)單元顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A, 01H,HOUR_111 CJNE A, #0FBH, KEY2_10 ; 按 SB2 轉(zhuǎn)時(shí)調(diào)整 LJMP MIN_111 KEY2_10:CJNE A,#0FDH,HOUR_111 INC HOUR_1 MOV R5,HOUR_1 CJNE R5,#24,HOUR_111;益出 MOV HOUR_1, #00H AJMP HOUR_111 ; 轉(zhuǎn)到時(shí)顯 ;-分單元加 1 子程序 MIN_111: MOV A , MIN_1 ; 調(diào)時(shí)分單元、并顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LCALL DE250SM CJNE A, 01H,MIN_111 CJNE A, #0FBH, KEY2_11 ;按 SB2 轉(zhuǎn)分調(diào)整 AJMP OFF_CH ;按 SB3 往下調(diào)定時(shí):關(guān)單元 KEY2_11: CJNE A, #0FDH, MIN_111 INC MIN_1 ;1 路分單元加 1 MOV R5, MIN_1 CJNE R5,#60,MIN_111;益處 MOV MIN_1, #00H AJMP MIN_111 ; 轉(zhuǎn)到分顯 年單元調(diào)整 OFF_CH: MOV A , YEAR_11 ; 調(diào)時(shí)年單元 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A, 01H, OFF_CH CJNE A, #0FBH, KEY2_F7 ;按 SB2 轉(zhuǎn)年調(diào)整 LJMP MON_OFF ;按 SB1 往下調(diào)月單元 KEY2_F7:CJNE A, #0FDH, OFF_CH INC YEAR_11 ; 1 路年單元加 1 MOV R5,YEAR_11 CJNE R5,#09,OFF_CH ;益出 MOV YEAR_11, #00H AJMP OFF_CH ; ;-月單元加 1 子程序 MON_OFF: MOV A , MON_11 ; 調(diào)時(shí)月單元顯示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LCALL DE250SM CJNE A, 01H, MON_OFF CJNE A, #0FBH, KEY2_F8 ;按 SB2 轉(zhuǎn)月調(diào)整 LJMP DAY_OFF KEY2_F8: CJNE A,#0FDH,MON_OFF INC MON_11 ;1 路月單元加 1 MOV R5,MON_11 CJNE R5,#13,MON_OFF;益出 MOV MON_11, #01H AJMP MON_OFF ; 轉(zhuǎn)到月顯 ;_-日單元加 1 子程序 DAY_OFF: MOV A , DAY_11 ; 調(diào)時(shí)日單元顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #04H LCALL READ LCALL DE250SM CJNE A, 01H,DAY_OFF CJNE A, #0FBH, KEY2_F9 ;按 SB2 轉(zhuǎn)日調(diào) 整 LJMP HOUR_OFF KEY2_F9: CJNE A,#0FDH,DAY_OFF INC DAY_11 ;1 組日單元加 1 MOV R5, DAY_11 CJNE R5,#32,DAY_OFF;益出 MOV DAY_11, #01H AJMP DAY_OFF ; 轉(zhuǎn)到日顯 ;-按 SB2 時(shí)單元加 1 子程序 HOUR_OFF: MOV A , HOUR_11 ; 調(diào)時(shí)時(shí)單元顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A, 01H,HOUR_OFF CJNE A, #0FBH, KEY2_F10 ; 按 SB2 轉(zhuǎn)時(shí)調(diào)整 LJMP MIN_OFF KEY2_F10:CJNE A,#0FDH,HOUR_OFF INC HOUR_11 MOV R5,HOUR_11 CJNE R5,#24,HOUR_OFF;益出 MOV HOUR_11, #00H AJMP HOUR_OFF ; 轉(zhuǎn)到時(shí)顯 ;-分單元加 1 子程序 MIN_OFF: MOV A , MIN_11 ; 調(diào)時(shí)分單元、并顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LCALL DE250SM CJNE A, 01H,MIN_OFF CJNE A, #0FBH, KEY2_F11 ;按 SB2 轉(zhuǎn)分調(diào)整 LJMP ON_1 ;按 SB3 往下調(diào)定時(shí):開(kāi)與關(guān) KEY2_F11: CJNE A, #0FDH, MIN_OFF INC MIN_11 ;1 路分單元加 1 MOV R5, MIN_11 CJNE R5,#60,MIN_OFF;益處 MOV MIN_11, #00H LJMP MIN_OFF ; 轉(zhuǎn)到分顯 ;-開(kāi)、關(guān)定時(shí) ON_1:CJNE A, #0FBH, MIN_OFF K1: MOV A, #88H MOV R7, A MOV P0, A MOV P2, #0FFH;三組都顯示開(kāi) LCALL READ LCALL DE250SM CJNE A, 01H, ON_1;去抖后比較 CJNE A, #0FBH,KEY2_12 ;按 SB2 轉(zhuǎn)關(guān) LJMP OUT_A ;按 SB3 調(diào)出、處于開(kāi) 狀態(tài) KEY2_12: CJNE A, #0FDH, K1 k2: MOV A, #00H; 顯示 0 關(guān) MOV R7, A MOV P0, A MOV P2, #0FFH; LCALL READ LCALL DE250SM CJNE A, 01H, K2;去抖后比較 CJNE A, #0FBH,KEY2_13 ;按 SB2 轉(zhuǎn)開(kāi) LJMP OUT_A ;SB3 調(diào)出、處關(guān)狀態(tài) KEY2_13: CJNE A, #0FDH, K2 ; 比較按了沒(méi) LJMP K1 ; 按了 SB2、轉(zhuǎn)開(kāi) OUT_A: POP 00H POP B POP ACC POP PSW RETI ;_-讀取按鍵程序 READ:MOV A , P1;讀取按鍵 MOV R1, A LCALL DE10MS MOV A, P1 RET ;_-延時(shí)程序 DE5SM:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《直接能源ATP》課件
- 幼兒園工作總結(jié)笑容滿(mǎn)園
- 探索學(xué)術(shù)之路
- 公司人員述職報(bào)告匯編9篇
- 幼兒園工作總結(jié)傳遞溫暖收獲微笑
- 2023-2024年項(xiàng)目部安全培訓(xùn)考試題含答案(培優(yōu)B卷)
- 2023年項(xiàng)目管理人員安全培訓(xùn)考試題附答案(研優(yōu)卷)
- 《電廠職業(yè)病防治》課件
- 激發(fā)學(xué)習(xí)動(dòng)力教學(xué)策略報(bào)告
- 中醫(yī)理療師年度總結(jié)
- 最新VTE指南解讀(靜脈血栓栓塞癥的臨床護(hù)理指南解讀)
- 生產(chǎn)計(jì)劃控制程序文件
- 中學(xué)校本課程教材《生活中的化學(xué)》
- 污水處理站運(yùn)行維護(hù)管理方案
- 農(nóng)村公路養(yǎng)護(hù)工程施工組織設(shè)計(jì)
- 個(gè)人如何開(kāi)辦婚介公司,婚介公司經(jīng)營(yíng)和管理
- 公司物流倉(cāng)儲(chǔ)規(guī)劃方案及建議書(shū)
- 天津市歷年社會(huì)保險(xiǎn)繳費(fèi)基數(shù)、比例
- 2024國(guó)家開(kāi)放大學(xué)電大專(zhuān)科《學(xué)前兒童發(fā)展心理學(xué)》期末試題及答案
- 汽車(chē)座椅面套縫紉工時(shí)定額的研究
- 立體幾何常考定理總結(jié)(八大定理)
評(píng)論
0/150
提交評(píng)論