多功能數(shù)字時鐘設(shè)計資料
多功能數(shù)字時鐘設(shè)計資料,多功能,數(shù)字,時鐘,設(shè)計,資料
一 摘要單片計算機即單片微型計算機。(Single-Chip Microcomputer ),是 集CPU ,RAM ,ROM ,定時,計數(shù)和多種接口于一體的微控制器。他體積小,成本低,功能強,廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動化上。而51 單片機是各單片機中最為典型和最有代表性的一種。這次畢業(yè)設(shè)計通過對它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計、開發(fā)軟、硬的能力。二 說明系統(tǒng)由AT89C51、LED 數(shù)碼管、按鍵、發(fā)光二極管等部分構(gòu)成,能實現(xiàn)時間的調(diào)整、定時時間的設(shè)定,輸出等功能。系統(tǒng)的功能選擇由SB0、SB1、SB2、SB3、SB4 完成。其中SB0為時間校對,定時器調(diào)整功能鍵,按SB 0 進(jìn)入調(diào)整狀態(tài)。SB1 為功能切換鍵。第一輪按動SB1 依次進(jìn)入一路、二路、三路定時時間設(shè)置提示程序,按SB3 進(jìn)入各路定時調(diào)整狀態(tài)。定時時間到,二極管發(fā)亮。到了關(guān)斷時間后滅掉。如果不進(jìn)入繼續(xù)按SB1 鍵,依次進(jìn)入時間 年 位校對、 月 位校對、 日 位校對、 時 位校對、 分 位校對、 秒 位校對狀態(tài)。不管是進(jìn)入那種狀態(tài),按動SB2 皆可以使被調(diào)整位進(jìn)行不進(jìn)位增量加1 變化。各預(yù)置量設(shè)置完成后,系統(tǒng)將所有的設(shè)置存入RAM 中,按SB1 退出調(diào)整狀態(tài)。上電后,系統(tǒng)自動進(jìn)入計時狀態(tài),起始于 00 時 00 分。SB4 為年月日顯示轉(zhuǎn)換鍵,可使原來顯示時分秒轉(zhuǎn)換顯示年月日。三、電路原理分析1. 顯示原理電原理圖見附圖1。由6 個共陰極的數(shù)碼管組成時、分、秒的顯示。P0 口的8 條數(shù)據(jù)線P0.0 至P0.7 分別與兩個CD4511 譯碼的ABCD 口相接,P2 口的 P2.0 至P2.2 分別通過電阻R10 至R13 與VT1 至VT3 的基極相連接。這樣通過P0 口送出一個存儲單元的高位、低位BCD顯示代碼,通過P2 口送出掃描選通代碼輪流點亮LED1 至LED6,就會將要顯示的數(shù)據(jù)在數(shù)碼管中顯示出來。從P0 口輸出的代碼是BCD 碼,從P2 口輸出的就是位選碼。這是掃描顯示原理。2 鍵盤及讀數(shù)原理鍵盤是人與微機打交道的主要設(shè)備,按鍵的讀取容易引起誤動作??刹捎密浖ザ秳拥姆椒ㄌ幚恚浖挠|點在閉合和斷開的時候會產(chǎn)生抖動,這時觸點的邏輯電平是不穩(wěn)定的,如不采取妥善處理的話,將引起按鍵命令錯誤或重復(fù)執(zhí)行,在這里采用軟件延時的方法來避開抖動,延時時間20ms.3 連擊功能的實現(xiàn)按下某鍵時,對應(yīng)的功能鍵解釋程序得到執(zhí)行,如操作者沒有釋放按鍵,則對應(yīng)的功能會反復(fù)執(zhí)行,好象連續(xù)執(zhí)行,在這里我們采用軟件延時250ms,當(dāng)按鍵沒釋放則執(zhí)行下一條對應(yīng)程序。利用連擊功能,能實現(xiàn)快速調(diào)時操作。四、程序設(shè)計思想和相關(guān)指令介紹本系統(tǒng)的主程序主要完成時間顯示和定時輸出判斷功能。而年月日顯示和各時間單元進(jìn)位,時間設(shè)定時,調(diào)定時間設(shè)定時等功能全部在中斷服務(wù)程序中完成。1數(shù)據(jù)與代碼轉(zhuǎn)換。由前述可知,從P2 口輸出位選碼,從P0 口輸出段選碼,LED 就會顯示出數(shù)字來。但P0口的輸出的數(shù)據(jù)是要BCD 碼,各存儲單元存儲的是二進(jìn)制數(shù),也就是和要顯示出的字符表達(dá)的含義是不一致的??梢?,將要顯示的存儲單元的數(shù)據(jù)直接送到P0 口去驅(qū)動LED 數(shù)碼管顯示是不能正確表達(dá)的,必須在系統(tǒng)內(nèi)部將要顯示的數(shù)據(jù)經(jīng)過BCD 碼行轉(zhuǎn)換后,將各個單元數(shù)據(jù)的段選代碼送入P0 口,給CD4511 譯碼后去驅(qū)動數(shù)碼管顯示。具體轉(zhuǎn)換過程如下:我們先將要顯示的數(shù)據(jù)裝入累加器A 中,再將A 中的數(shù)據(jù)轉(zhuǎn)換成高低兩位的BCD 碼,再放回A 中,然后將A 中的值輸出。如:有一個單元存儲了45 這樣一位數(shù),則需轉(zhuǎn)換成四位的BCD 碼:(0100)(0101)然后放入A 中。 A 中BCD 碼,高位四位代表4低四位代表5同時送給兩個譯碼器中,譯碼后 45 字就在兩個LED 中顯示出來。2計時功能的實現(xiàn)與中斷服務(wù)程序時間的運行依靠定時中斷子程序?qū)r鐘單元數(shù)值進(jìn)位調(diào)整來實現(xiàn)的。計數(shù)器T0 打開后,進(jìn)入計時,滿100 毫秒后,重裝定時。中斷一次,滿一秒后秒進(jìn)位,滿60 秒后即為1 分鐘,分鐘單元進(jìn)位,60 分到了后,時單元進(jìn)位,24 小時滿后,天單元進(jìn)位。這樣然后根據(jù)進(jìn)率,得到年、月、日、時、分、秒存儲單元的值,并經(jīng)譯碼后,通過掃描程序送LED 中顯示出來,實現(xiàn)時鐘計時功能。累加是用指令I(lǐng)NC 來實現(xiàn)的。進(jìn)入中斷服務(wù)程序以后,執(zhí)行PUSH PSW 和PUSH A 將程序狀態(tài)寄存器PSW 的內(nèi)容和累加器A 中的數(shù)據(jù)保存起來,這便是所謂的 保護(hù)現(xiàn)場 . 以保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場時存取關(guān)鍵數(shù)據(jù)的存儲區(qū)叫做堆棧。在軟件的控制之下,堆??稍谄瑑?nèi)RAM 中的任一區(qū)間設(shè)定,而堆棧的數(shù)據(jù)存取與一般的RAM 存取又有區(qū)別,對它的操作,要遵循 后進(jìn)先出 的原則。3 時間控制功能與比較指令系統(tǒng)的另一功能就是實現(xiàn)對執(zhí)行設(shè)備的定時開關(guān)控制,其主要控制思想是這樣的:先將執(zhí)行設(shè)備開啟的時間和關(guān)閉時間置入RAM 某一單元,在計時主程序當(dāng)中執(zhí)行幾條比較指令,如果當(dāng)前計時時間與執(zhí)行設(shè)備的設(shè)定開啟時間相等,就執(zhí)行一條 CLR 指令,將對應(yīng)的那路P3 置為高電位,開啟;如果當(dāng)前計時時間與執(zhí)行設(shè)備設(shè)定的關(guān)閉時間相等,就執(zhí)行SETB對應(yīng)的P3 置低電位,二極管截止,。實現(xiàn)此控制功能用到的比較指令為CJNE A,#direct,rel,其轉(zhuǎn)移條件是累加器A 中的值與立即數(shù)不等則轉(zhuǎn)移。參考文獻(xiàn)1、 謝自美,電子線路設(shè)計、實驗、測試 武漢:華中理工大學(xué)出版社,20002、 何書森、何華斌實用數(shù)字電路原理與設(shè)計速成福州:福建科學(xué)技術(shù)出版社,2000.63、 白駒衍, 單片計算機及應(yīng)用北京:電子工業(yè)出版社, 1999.2五:程序SEC EQU 32H ;秒 即時時間 偽指令MIN EQU 31H ;分HOUR EQU 30H ;時DAY EQU 35H ;日MON EQU 34H ;月YEAR EQU 33H ;年MIN_1 EQU 41H ;分 定時器1 路、開存儲單元HOUR_1 EQU 42H ;時DAY_1 EQU 43H ;MON_1 EQU 44H ;YEAR_1 EQU 45H ;MIN_11 EQU 40H ;分 定時器1 路、關(guān)存儲單元HOUR_11 EQU 46H ;時DAY_11 EQU 47H ;日MON_11 EQU 48H ;月YEAR_11 EQU 49H ;年;*ORG 0000Hljmp MAINORG 0003H ;中斷轉(zhuǎn)換顯示年月日、INT0(SB4 鍵)LJMP SHOWORG 000BH ;計數(shù)中斷 T0、方式1LJMP TIMEORG 0013HLJMP CHANGE; 調(diào)整時間、定時、INT1(SB0 鍵);-主程序ORG 0030HMAIN:;-初始化付值MOV YEAR , #02MOV MON , #05MOV DAY , #01MOV HOUR , #00MOV MIN , #00MOV SEC , #00CLR 40H ;定時單元1 路清零CLR 41HCLR 42HCLR 43HCLR 44HCLR 45HCLR 46HCLR 47HCLR 48HCLR 49H;-開中斷MOV TMOD , #01H ;計數(shù)、模式1、T0MOV TL0, #0B0H ;100SM 計數(shù)定時MOV TH0, #3CH ;clr p3.0MOV 20H, #0AH ;10 次*100SMSETB PT0 ;T0 為最高級SETB TR0 ;允許計數(shù)SETB ET0 ;允許T0 中斷SETB EX0 ;允許INT0 中斷SETB EX1 ;允許INT1 中斷SETB EA ;開總中斷;-顯示、定時器啟動判斷LOOP:MOV R1, #30H; 存儲單元MOV R4, #01H; 位選通MOV R3, #03H; 三組顯示NEXT:MOV A , R1 ;MOV B , #10 ;將存儲單元轉(zhuǎn)換成兩高低兩組的BCD 碼DIV ABSWAP AORL A, BMOV P0, A;輸出MOV P2, R4INC R1 ;下一單元MOV A, R4 ;RL A ;位移MOV R4, ALCALL DE5SM ;延時0.5SMDJNZ R3, NEXT ;全掃描顯示一偏;-判斷定時輸出(只編寫了一路)CJNE R7, #88H,LOOP ;是8 則開,否則、定時已關(guān)、轉(zhuǎn);-開MOV A, YEARCJNE A, YEAR_1, LOOP_1;年比較,不等轉(zhuǎn)關(guān)MOV A, MONCJNE A, MON_1, LOOP_1MOV A, DAYCJNE A , DAY_1,LOOP_1MOV A, HOURCJNE A, HOUR_1,LOOP_1MOV A, MINCJNE A, MIN_1, LOOP_1CPL P3.0;-關(guān)LOOP_1:MOV A, YEARCJNE A, YEAR_11, LOOP;年比較MOV A, MONCJNE A, MON_11, LOOPMOV A, DAYCJNE A , DAY_11,LOOPMOV A, HOURCJNE A, HOUR_11,LOOPMOV A, MINCJNE A, MIN_11, LOOPCPL P3.0LJMP LOOP;-年月日顯示中斷子程序SHOW:PUSH PSWpush ACCPUSH BPUSH 01HPUSH 02HPUSH 03HPUSH 04HMOV R2, #0FFH ;中斷掃描次數(shù)TURN: MOV R1 , #33HMOV R4 , #01HMOV R3 , #03HNEXT_1:MOV A, R1MOV B , #10DIV ABSWAP AORL A, BMOV P0, AMOV P2, R4INC R1RL AMOV R4 ,ALCALL DE5SMDJNZ R3, NEXT_1DJNZ R2, TURN ;反復(fù)顯示一定時間后返回POP 04HPOP 03HPOP 02HPOP 01HPOP BPOP ACCPOP PSWRETI;-計數(shù)中斷服務(wù)子程序TIME:PUSH PSWPUSH ACCPUSH BPUSH 06HMOV TH0 , #3CH;重裝計數(shù)MOV TL0 , #0BH;DJNZ 20H, OUT ;轉(zhuǎn)到中斷跳出pop 程序MOV 20H, #0AH ; 重裝:100*10=1000;-進(jìn)位程序INC SECMOV R6, SEC ;CJNE R6, #60, OUT;比較MOV SEC , #00 ;INC MINMOV R6, MINCJNE R6, #60, OUTMOV MIN , #00INC HOURMOV R6 , HOURCJNE R6 , #25 , OUTMOV HOUR ,#00INC DAYMOV R5, MONCJNE R5, #1, MON_22;是否1 月、不是轉(zhuǎn)2 月MOV R5, DAYCJNE R5, #32, OUT ; 本月是否益出INC MONMOV DAY,#1LJMP OUTOUT:POP 06HPOP BPOP ACCPOP PSWRETIMON_22:MOV R5, MONCJNE R5 , #2 , MON_33;是否2 月、不是轉(zhuǎn)3 月MOV A, YEAR ;判斷是否瑞年MOV B, #4DIV ABMOV A , BJNZ OUT_1;不是則轉(zhuǎn)(A 不為零則轉(zhuǎn))MOV R5 ,DAYCJNE R5,#30, OUT;如是瑞年、判斷是否到29 天INC MONMOV DAY ,#1LJMP OUTOUT_1:MOV R5, DAYCJNE R5, #29, OUT ;平年二月判斷INC MONMOV DAY , #1LJMP OUTMON_33:MOV R5, MONCJNE R5, #3 , MON_44MOV R5, DAYCJNE R5 , #32, OUTINC MONMOV DAY , #1LJMP OUTMON_44:MOV R5, MONCJNE R5,#4, MON_55MOV R5, DAYCJNE R5 ,#31,OUTINC MONMOV DAY , #1LJMP OUTMON_55:MOV R5,MONCJNE R5,#5, MON_66MOV R5,DAYCJNE R5,#32,OUTINC MONMOV DAY,#1LJMP OUTMON_66:MOV R5, MONCJNE R5,#6, MON_77MOV R5, DAYCJNE R5 ,#31,OUTINC MONMOV DAY , #1LJMP OUTMON_77:MOV R5, MONCJNE R5,#7, MON_88MOV R5, DAYCJNE R5,#32,L1INC MONMOV DAY , #1L1: LJMP OUTMON_88:MOV R5, MONCJNE R5,#8, MON_99MOV R5, DAYCJNE R5 ,#32,L2INC MONMOV DAY , #1L2: LJMP OUTMON_99:MOV R5, MONCJNE R5,#9, MON_00MOV R5,DAYCJNE R5 ,#31,L3INC MONMOV DAY , #1L3: LJMP OUTMON_00:MOV R5, MONCJNE R5,#10, MON_AAMOV R5, DAYCJNE R5 ,#32,L4INC MONMOV DAY , #1L4: LJMP OUTMON_AA:MOV R5, MONCJNE R5,#11, MON_BBMOV R5,DAYCJNE R5,#31,L5INC MONMOV DAY , #1L5: LJMP OUTMON_BB:MOV R5, DAYCJNE R5 ,#32,L6INC YEARMOV MON, #1MOV DAY , #1L6:LJMP OUT;-按SB2定時器年單元加1 子程序SB3_2: LJMP SHOW_2 ;二路沒編返回SB3_3: LJMP SHOW_3 ;三路沒編返回SB3_1:MOV A , YEAR_1 ; 調(diào)時年單元MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #01HLCALL READLCALL DE250SMCJNE A, 01H, SB3_1CJNE A, #0FBH, KEY2_7 ;按SB2 轉(zhuǎn)年調(diào)整LJMP MON_111 ;按SB1 往下調(diào)月單元KEY2_7:CJNE A, #0FDH, SB3_1INC YEAR_1 ; 1 路年單元加1MOV R5,YEAR_1CJNE R5,#09,SB3_1 ;益出MOV YEAR_1, #00HAJMP SB3_1 ;-月單元加1 子程序MON_111:MOV A , MON_1 ; 調(diào)時月單元顯示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #02HLCALL READLCALL DE250SMCJNE A, 01H, MON_111CJNE A, #0FBH, KEY2_8 ;按SB2 轉(zhuǎn)月調(diào)整LJMP DAY_111KEY2_8:CJNE A,#0FDH,MON_111INC MON_1 ;1 路月單元加1MOV R5,MON_1CJNE R5,#13,MON_111;益出MOV MON_1, #01HAJMP MON_111 ; 轉(zhuǎn)到月顯;_-日單元加1 子程序DAY_111:MOV A , DAY_1 ; 調(diào)時日單元顯示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #04HLCALL READLCALL DE250SMCJNE A, 01H,DAY_111CJNE A, #0FBH, KEY2_9 ;按SB2 轉(zhuǎn)日調(diào)整LJMP HOUR_111KEY2_9: CJNE A,#0FDH,DAY_111INC DAY_1 ;1 組日單元加1MOV R5, DAY_1CJNE R5,#32,DAY_111;益出MOV DAY_1, #01HAJMP DAY_111 ; 轉(zhuǎn)到日顯;-按SB2 時單元加1 子程序HOUR_111:MOV A , HOUR_1 ; 調(diào)時時單元顯示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #01HLCALL READLCALL DE250SMCJNE A, 01H,HOUR_111CJNE A, #0FBH, KEY2_10 ; 按SB2 轉(zhuǎn)時調(diào)整LJMP MIN_111KEY2_10:CJNE A,#0FDH,HOUR_111INC HOUR_1MOV R5,HOUR_1CJNE R5,#24,HOUR_111;益出MOV HOUR_1, #00HAJMP HOUR_111 ; 轉(zhuǎn)到時顯;-分單元加1 子程序MIN_111:MOV A , MIN_1 ; 調(diào)時分單元、并顯示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #02HLCALL READLCALL DE250SMCJNE A, 01H,MIN_111CJNE A, #0FBH, KEY2_11 ;按SB2 轉(zhuǎn)分調(diào)整AJMP OFF_CH ;按SB3 往下調(diào)定時:關(guān)單元KEY2_11: CJNE A, #0FDH, MIN_111INC MIN_1 ;1 路分單元加1MOV R5, MIN_1CJNE R5,#60,MIN_111;益處MOV MIN_1, #00HAJMP MIN_111 ; 轉(zhuǎn)到分顯年單元調(diào)整OFF_CH: MOV A , YEAR_11 ; 調(diào)時年單元MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #01HLCALL READLCALL DE250SMCJNE A, 01H, OFF_CHCJNE A, #0FBH, KEY2_F7 ;按SB2 轉(zhuǎn)年調(diào)整LJMP MON_OFF ;按SB1 往下調(diào)月單元KEY2_F7:CJNE A, #0FDH, OFF_CHINC YEAR_11 ; 1 路年單元加1MOV R5,YEAR_11CJNE R5,#09,OFF_CH ;益出MOV YEAR_11, #00HAJMP OFF_CH ;-月單元加1 子程序MON_OFF:MOV A , MON_11 ; 調(diào)時月單元顯示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #02HLCALL READLCALL DE250SMCJNE A, 01H, MON_OFFCJNE A, #0FBH, KEY2_F8 ;按SB2 轉(zhuǎn)月調(diào)整LJMP DAY_OFFKEY2_F8:CJNE A,#0FDH,MON_OFFINC MON_11 ;1 路月單元加1MOV R5,MON_11CJNE R5,#13,MON_OFF;益出MOV MON_11, #01HAJMP MON_OFF ; 轉(zhuǎn)到月顯;_-日單元加1 子程序DAY_OFF:MOV A , DAY_11 ; 調(diào)時日單元顯示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #04HLCALL READLCALL DE250SMCJNE A, 01H,DAY_OFFCJNE A, #0FBH, KEY2_F9 ;按SB2 轉(zhuǎn)日調(diào)整LJMP HOUR_OFFKEY2_F9: CJNE A,#0FDH,DAY_OFFINC DAY_11 ;1 組日單元加1MOV R5, DAY_11CJNE R5,#32,DAY_OFF;益出MOV DAY_11, #01HAJMP DAY_OFF ; 轉(zhuǎn)到日顯;-按SB2 時單元加1 子程序HOUR_OFF:MOV A , HOUR_11 ; 調(diào)時時單元顯示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #01HLCALL READLCALL DE250SMCJNE A, 01H,HOUR_OFFCJNE A, #0FBH, KEY2_F10 ; 按SB2 轉(zhuǎn)時調(diào)整LJMP MIN_OFFKEY2_F10:CJNE A,#0FDH,HOUR_OFFINC HOUR_11MOV R5,HOUR_11CJNE R5,#24,HOUR_OFF;益出MOV HOUR_11, #00HAJMP HOUR_OFF ; 轉(zhuǎn)到時顯;-分單元加1 子程序MIN_OFF:MOV A , MIN_11 ; 調(diào)時分單元、并顯示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #02HLCALL READLCALL DE250SMCJNE A, 01H,MIN_OFFCJNE A, #0FBH, KEY2_F11 ;按SB2 轉(zhuǎn)分調(diào)整LJMP ON_1 ;按SB3 往下調(diào)定時:開與關(guān)KEY2_F11: CJNE A, #0FDH, MIN_OFFINC MIN_11 ;1 路分單元加1MOV R5, MIN_11CJNE R5,#60,MIN_OFF;益處MOV MIN_11, #00HLJMP MIN_OFF ; 轉(zhuǎn)到分顯;-開、關(guān)定時ON_1:CJNE A, #0FBH, MIN_OFFK1: MOV A, #88HMOV R7, AMOV P0, AMOV P2, #0FFH;三組都顯示開LCALL READLCALL DE250SMCJNE A, 01H, ON_1;去抖后比較CJNE A, #0FBH,KEY2_12 ;按SB2 轉(zhuǎn)關(guān)LJMP OUT_A ;按SB3 調(diào)出、處于開狀態(tài)KEY2_12: CJNE A, #0FDH, K1k2: MOV A, #00H; 顯示0 關(guān)MOV R7, AMOV P0, AMOV P2, #0FFH;LCALL READLCALL DE250SMCJNE A, 01H, K2;去抖后比較CJNE A, #0FBH,KEY2_13 ;按SB2 轉(zhuǎn)開LJMP OUT_A ;SB3 調(diào)出、處關(guān)狀態(tài)KEY2_13:CJNE A, #0FDH, K2 ; 比較按了沒LJMP K1 ; 按了SB2、轉(zhuǎn)開OUT_A:POP 00HPOP BPOP ACCPOP PSWRETI;_-讀取按鍵程序READ:MOV A , P1;讀取按鍵MOV R1, ALCALL DE10MSMOV A, P1RET;_-延時程序DE5SM:PUSH 01HMOV R1, #0FFHDJNZ R1,$POP 01HRETDE10MS: PUSH 04HPUSH 05HMOV R4, #0AHDl1: MOV R5, #0FFHdl2: DJNZ R5,$DJNZ R4,dl1POP 05HPOP 04HRETDE250SM:PUSH 02HPUSH 00HMOV R0, #0FFHDEL:MOV R2, #0FFHDJNZ R2,$DJNZ R0, DELPOP 00HPOP 02HRET;_-調(diào)整時間進(jìn)位程序MIN_AD:INC MINMOV R6, MINCJNE R6, #60, OU1MOV MIN , #00OU1: RETHOUR_AD:INC HOURMOV R6 , HOURCJNE R6 , #25 , OU2MOV HOUR ,#00OU2: RETDAY_AD:INC DAYMOV R6, DAYCJNE R6 , #32, OU3 ; 是否益出MOV DAY ,#01HOU3: RETMON_AD:INC MONMOV R6, MONCJNE R6, #13, OU4 ; 是否益出MOV MON ,#01HOU4: RETYEAR_AD:INC YEARMOV R6, YEARCJNE R6, #09, OU5;是否益出MOV YEAR ,#00HOU5: RETEND 六:附錄實驗設(shè)計電路圖1流程圖1:實驗主程序流程圖流程圖2:定時中斷程序流程圖流程圖3:調(diào)時功能流程圖七:實驗心得學(xué)了兩周的課程設(shè)計,有很多的心得體會,有關(guān)于單片機方面的,更多的是關(guān)于人與人之間關(guān)系方面的。在這期間,我得到了很多同學(xué)的幫助。我本人對單片機也并不是很熟悉,學(xué)的東西好像它是它,我是我似的,理論聯(lián)系不了實際。以前的匯編語言沒學(xué)好,一開始的程序這塊兒就要令我束手無策了。后來請教我們班的一個男生,每次跟他一起到試驗室調(diào)試程序,看他邊做邊給我講解。最后在計算機上調(diào)試成功,后來自己又抽空做了些拓展,完成了本程序。后來,我發(fā)現(xiàn)自己對單片機也有了很大興趣,想暑假回家以后自己去買一些東西來做,再補一補匯編語言。最后說明自己對這門課程的感受,課堂教學(xué)考慮到大多數(shù)同學(xué)的需求,主要強調(diào)“基本”基本知識、基本理論、基本方法、基本技能。而這次設(shè)計正是為我們提供了一個深入學(xué)習(xí)、探索的機會,成為課堂教學(xué)的有益補充。單片機的設(shè)計 設(shè)計名稱 : 電子時鐘設(shè)計班級 : 學(xué)號 : 姓名 : 指導(dǎo)教師 :
收藏