




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 序列號 46 論文題目: 基于單片機的數字電子鐘 課程名稱: 單片機原理機接口技術 目錄11 設計任務書2 個性化電子鐘功能描述3 單片機系統原理圖及工作原理描述4 程序模塊框圖5 程序清單6 設計或調試過程中碰到的問題及決計方法7 測試數據,誤差分析,補償方法,補償前后精度比擬8 收獲及意見9 附錄完整電路圖目錄2目錄12目錄23一、課程設計任務書41)根本要求42)設計報告要求:43)課程設計驗收標準:5二、個性化電子鐘功能描述51.根本計時功能:52.校準功能53.鬧鐘模式6三、單片機系統原理圖及工作原理描述61.各模塊介紹62.單片機系統總圖9四、程序模塊框圖91.功能框圖92.程序
2、框圖10五、程序清單11;變量定義11;初始化12;主要執行程序12;按鍵檢測程序13;顯示模式選擇程序13; 中斷效勞程序14;鬧鐘顯示及轉碼程序16;檢測鬧鐘程序18; 顯示時分秒程序18; 顯示年月日的程序22;年月日校準程序26;按鍵檢測程序28;功能小程序34六、設計或調試過程中碰到的問題及解決方法371.存儲錯亂372.工作區的選擇383.鬧鐘響的時間384.按鍵紊亂39七、測試數據,誤差分析,補償方法,補償前后精度比擬39a)未考慮月份不同天數39b)中斷效勞程序造成的時間延遲39八、收獲及意見40九、附錄完整電路圖40一、 課程設計任務書1) 根本要求根據?單片機原理及接口技術
3、?所學的內容及其他相關課程的知識,結合各生的根底,充分發揮個人的特長,設計個性化數字電子鐘。具體要求以下:1 根本電路AT89S51CPU,12MHZ時鐘,常規上電和手動復位電路。2 數碼管顯示模式4位LED數碼顯示器帶鐘點,分別顯示“小時:分鐘或“分鐘:秒3 獨立按鍵3個獨立試按鍵,具體功能描述如下:MODE模式轉換鍵,具有“正常小時校準分鐘校準小時鬧鈴分鐘鬧鈴等5種模式,每按一次,轉換一種模式。假設當前處于正常模式,按一下此鍵,“小時閃爍,表示進入“小時調校模式,再按一次,轉入分鐘模式,如此類推,正常模式下不閃爍。 UP加“1鍵,按下此鍵,被選中的工程加“1 DOWN減“1鍵,按下此鍵,被
4、選中的工程減“14 蜂鳴器設計1路蜂鳴器輸出驅動電路,用于報警或按鍵聲5 電源電路電源:9V交流輸入,全波整流,濾波,7805穩壓電路,輸出5V直流電源共給單片機系統。6 軟件編寫數字電字鐘的所有軟件,包括主程序,定時器中斷計時程序,定時器中斷掃描顯示程序,鍵盤掃描及功能程序,BCD碼轉換程序,“二翻十拆字轉碼程序,鬧鈴程序等等。將這些程序整合成一個完整的電子鐘程序,在軟件模擬器上調試,在MCS51學習機上調試,并測試其功能及性能。在設計軟件時,學生可充分發揮自己的特長和想象力,自行擴充功能,如“秒表功能,通信功能,鐘控功能等。7 精度分析在程序調試通過后,測試計時精度,分析誤差來源,提出補償
5、方法。2) 設計報告要求:每人一份設計報告,要求獨立完成,用統一的封面裝訂,設計報告的內容包括以下局部:1 設計任務書2 個性化電子鐘功能要求3 單片機系統原理圖及工作原理描述4 程序模塊框圖5 程序清單6 設計或調試過程中碰到的問題及決計方法7 測試數據,誤差分析,補償方法,補償前后精度比擬8 完成課程設計后的收獲或體會,對?單片機課程設計?提出改良意見。3) 課程設計驗收標準:本次課程設計的成績由大局部組成:即硬件設計軟件設計和課程設計報告。硬件設計主要是電路圖設計可以用手工畫或計算機輔助設計。軟件局部在辯論時驗收,并結合辯論情況進行評定。1 電路原理圖設計(20%),包括以下知識點:CP
6、U及時鐘,復位電路顯示接口電路鍵盤接口電路蜂鳴器驅動電路電源局部2 軟件設計及辯論(60%),包括以下知識點:主程序及初始化程序定時中斷及計時程序定時中斷及顯示程序鍵盤程序鬧鈴程序按鍵聲程序3 課程設計報告(20%),具體要求見上面所述.4) 根底較好的學生可以結合實際應用自擬題目,題目和具體設計內容定好后由指導老師比準。 指導老師:樂金松2021,12,28二、 個性化電子鐘功能描述1. 根本計時功能:. 上電顯示時鐘、分鐘、秒,時鐘和分鐘顯示小數點以做區分. 當P3.7鍵按下,顯示年月日,因為比擬方便觀察,并沒有設置小數點以作區分。2. 校準功能. 上電顯示為時分秒或年月日. 當P3.4按
7、下一次,校準時鐘位,時鐘位閃爍. 當P3.4按下兩次,校準分鐘位,分鐘位閃爍. 當P3.4按下三次,校準秒位,秒位閃爍,注意,此時假設是顯示年月日模式,調整無效,數碼管熄滅. 當P3.4按下四次,校準年的高位,年的高位閃爍. 當P3.4按下五次,校準年的低位,年的低位閃爍. 當P3.4按下六次,校準月份位,月份位閃爍. 當P3.4按下七次,校準日位,日位閃爍,此時假設是顯示時分秒模式,調整無效,數碼管熄滅,其中,假設P3.5鍵按下,加1,假設P3.6鍵按下,減1. 當P3.4按下八次或九次,為鬧鐘校準模式. 當P3.4按到十次,恢復顯示年月日或者時分秒3. 鬧鐘模式. 當P3.4按到八次,時鐘
8、和分鐘位顯示初始時間12:00,設置小時鬧鐘。假設P3.5鍵按下,加1,假設P3.6鍵按下,減1. 當P3.4按到九次,設置分鐘鬧鐘,假設P3.5鍵按下,加1,假設P3.6鍵按下,減1. 即使沒有設置鬧鐘,在時間為12:00時,也會啟動鬧鐘,鬧鐘聲音為十次簡短的鳴聲。三、 單片機系統原理圖及工作原理描述1. 各模塊介紹a) CPU及時鐘,復位電路i. 復位電路功能描述:上電時,單片時機自動復位,按下S1按鍵時,手動復位,該電子鐘系統會從0開始計時。ii. 時鐘此電路系統配置的是12MHZ的晶振,擁有這個晶振,電路才會計時、中斷系統才會溢出。iii. CPU此電子鐘系統采用的是STC公司的89C
9、52單片機,本電路主要使用其P0口數碼管、P3口按鍵、和P1口蜂鳴器,該單片機內部含有運算器、存儲器、控制器、輸入輸出設備等。b) 顯示接口電路這個開發板需要兩個鎖存器分別控制位選和斷選,只有位選控制端置一,才能送位選信號,同理,斷選控制端置一,才能送段選信號。c) 鍵盤接口電路此按鍵,按下為0,松開為1。d) 蜂鳴器驅動電路蜂鳴器送邏輯1的時候才能發出聲音。e) 電源局部此電源用LM317芯片進行整流,進行濾波和穩壓后,通過調節電位器,可以把輸入的9V電壓轉變成5V的電壓。2. 單片機系統總圖詳見附錄四、 程序模塊框圖正常顯示模式時間校準模式鬧鐘模式 模式1:時分秒 模式2:年月日 模式12
10、3:校準時分秒 模式4567:校準年月日 模式8:設置小時 模式9:設置分鐘1. 功能框圖 程序初始化主執行程序MODE2檢測1,MODE檢測MODE等于8或90,MODE檢測MODE不等于8或9鬧鐘BCD程序MODE2=0BCD1程序鬧鐘顯示程序MODE=,顯示時分秒MODE檢測MODE2=1BCD2程序MODE檢測MODE=1、2、3,校準時分秒MODE=4、5、6、7,校準時分秒MODE=,顯示年月日時分秒顯示程序年月日校準顯示程序時分秒校準顯示程序時分秒校準顯示程序閃爍LED閃爍中斷溢出Key_scan程序重新賦值調整時間返回主執行程序MODE=9,設置分鐘MODE檢測MODE=8,設
11、置小時鬧鐘檢測程序:鬧鐘聲程序檢測是否到達時間2. 程序框圖 五、 程序清單;變量定義LED1EQU7FHLED2EQU7EHLED3EQU7DHLED4EQU7CHLED5EQU7BHLED6EQU7AHLED1_2EQU6CHLED2_2EQU6BHLED3_2EQU6AHLED4_2EQU69HLED5_2EQU68HLED6_2EQU67HLED7_2EQU66HLED8_2EQU65HSCAN_COUNT2EQU64HMODE2EQU60HSCAN_COUNT3EQU5FHSCAN_COUNT4EQU5EHLED1_CLOCK_HOUR EQU5DHLED2_CLOCK_HOUREQ
12、U5CHLED1_CLOCK_MIN EQU5BHLED2_CLOCK_MINEQU5AHH_MEM_CLOCKEQU59HM_MEM_CLOCKEQU58HSCAN_COUNT5EQU57HSCAN_COUNTEQU77H;掃描顯示計數器TEMP1EQU76HTEMP2EQU75HTEMP3EQU74HH_MEMEQU73HM_MEMEQU72HS_MEMEQU71HD_MEMEQU6DHMON_MEMEQU63HY_MEM_1EQU62HY_MEM_2EQU61HMODE_REGEQU6FHTIMER_COUNTEQU6EH ;定時器中斷次數軟件計數器MODEEQU70H ;TEMP4EQ
13、U6CHFLASH_FLAGEQU20H.0;定義閃爍標志位;初始化ORG0000HLJMPMAINORG0003H;外部中斷0的標志RETI;中斷標志ORG000BH;定時器中斷0的標志LJMPT0_INTORG0013H;外部中斷1RETI;-ORG0030H;好似一般都有這一句MAIN:MOVSP,#2FHMOVTL0,#(65536-4608)MOD 256;MOD是取余數,初始化時間常數MOVTH0,#(65536-4608)/256MOVTMOD,#00000001B;G=0,C/T取T定時器,模式為模式116位定時器或計數器方式SETBET0;T0定時器0中斷中斷允許 SETBT
14、R0;定時器0控制位,置1SETBEA;CPU中斷允許總開關LCALL CLR_MEMMOVMON_MEM,#1MOVD_MEM,#1;-MOVH_MEM_CLOCK,#12;主要執行程序;-WAIT:;LCALLCLOCK_CHOOSE;LCALLDELAY_1SLCALLKEY4_SCANLCALLCHOOSELCALLCHECK_TIMESJMPWAIT;-顯示模式的選擇程序-;-等待按鍵按下-KEY4_SCAN:NOKEY_4:MOVC,P3.7 CPLCJNCGATE4;CY為0跳轉,沒有按鍵,執行display程序MOVTEMP4,CLCALLDELAY_10MSORLC,TEMP
15、4JNCK4;按下跳轉;沒按下,返回GATE4:RETK4:LCALLSOUNDINCMODE2MOVA,MODE2CJNEA,#2,K41 ;mode只能為0或者1 mode為1執行display2程序MOVMODE2,#0K41:JNBP3.7,$RET ;顯示模式選擇程序;-無論如何都要選擇一個模式-CHOOSE:MOVA,MODE2CJNEA,#0,NOT_CLOCK0; MODE2為1,判斷是模式8還是模式9MOVA,MODE ;MODE2為0, 判斷是否為8或者9CJNEA,#8,NOT_CLOCK3;MODE2=0的情況下,不為模式8,判斷是否為模式9LCALLCONVERT_B
16、CD3;為模式8,調用displayclock程序LCALLCLOCK_DISPLAY ;為模式8RETNOT_CLOCK3:CJNEA,#9,NOT_CLOCK4;判斷是否為模式9LCALLCONVERT_BCD3 LJMPCLOCK_DISPLAYRETNOT_CLOCK4:LCALLCONVERT_BCD1 ;不為模式9,調用顯示程序1LCALLCHOOSE_DISPLAY1RETNOT_CLOCK0:MOVA,MODECJNEA,#8,NOT_CLOCK1;MODE2為1時,不為模式8,判斷是否為模式9LCALLCONVERT_BCD3;為模式8,調用displayclock程序LCA
17、LLCLOCK_DISPLAYRETNOT_CLOCK1:CJNEA,#9,NOT_CLOCK2;不為模式9,顯示mode2=0下的display程序LCALLCONVERT_BCD3 ;為模式9,調用clockdisplay程序LCALLCLOCK_DISPLAYRETNOT_CLOCK2:LCALLCONVERT_BCD2; 此時為mode2模式為1的,選擇閃爍模式,對DISPLAY程序經行選擇LCALLCHOOSE_DISPLAY2;模式0,display程序RET;-顯示模式選擇函數-CHOOSE_DISPLAY1:MOVA,MODECJNEA,#0,CH_1LCALLDISPLAY1
18、 ;模式為0,調用正常的顯示程序RETCH_1:LCALLDISPLAY1_2RETCHOOSE_DISPLAY2:MOVA,MODECJNEA,#0,CH_2LCALLDISPLAY2 ;模式為0,調用正常的顯示程序RETCH_2:LCALLDISPLAY2_2RET; 中斷效勞程序;-中斷效勞程序-T0_INT:PUSHACC;保護現場開始,保護A累加器PUSHPSW;保護程序狀態字存儲器PUSH DPL;數據地址指針低8位PUSHDPHSETBRS1;選擇2區工作存儲單元MOVTL0,#(65536-5000)MOD 256;恢復時間常數MOVTH0,#(65536-5000)/256L
19、CALLKEY_SCANINCTIMER_COUNTMOVA,TIMER_COUNTCJNEA,#100,T0_INT1;如果A不等于100,跳到TO_INT1MOVTIMER_COUNT,#0CPLFLASH_FLAG;每5MS*100=500MS取反閃爍標志位;LCALLFLASH;CPL:Converse Position Logical 位取反JNBFLASH_FLAG,T0_INT1;為0跳到TO_INT1INCS_MEMMOVA,S_MEMCJNEA,#60,T0_INT1;秒位MOVS_MEM,#0INC M_MEMMOVA,M_MEMCJNEA,#60,T0_INT1 ;分位M
20、OVM_MEM,#0INC H_MEMMOVA,H_MEMCJNEA,#24,T0_INT1MOVH_MEM,#0 ;時位INCD_MEMMOVA,D_MEMCJNEA,#32,T0_INT1MOVD_MEM,#1 ;天INCMON_MEMMOVA,MON_MEMCJNEA,#13,T0_INT1MOVMON_MEM,#1;月INCY_MEM_1MOVA,Y_MEM_1CJNEA,#100,T0_INT1MOVY_MEM_1,#0 ;低位年INCY_MEM_2MOVA,Y_MEM_2CJNEA,#100,T0_INT1MOVY_MEM_2,#0;高位年T0_INT1:POPDPHPOPDPLP
21、OPPSWPOPACCRETI ;出棧;鬧鐘顯示及轉碼程序;鬧鐘顯示程序;-時鐘的顯示函數-CLOCK_DISPLAY:;SETBCLOCK_FLASHMOVP0,#11111111BNOPNOPMOVA,SCAN_COUNT5ADDA,ACCMOVR1,ALCALLFLASH3 ;在flash函數中選擇調用哪個表;MOVDPTR,#LED_SCAN_TABLEMOVA,R1MOVCA,A+DPTRSETBP2.7;位鎖存MOVP0,ACLRP2.7 MOVA,SCAN_COUNT5ADDA,ACCINCAMOVCA,A+DPTRMOVR0,AMOVA,R0MOVP0,A;LCALLDELAY
22、_1S ;調試用CLRP2.6 ;DB3FH,06H,5BH,04FH,66H,6DH,7DH,07H ;DB7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH INCSCAN_COUNT5MOVA,SCAN_COUNT5 CJNEA,#4,DONE5MOVSCAN_COUNT5,#0DONE5: RET;鬧鐘閃爍及模式選擇程序;-時鐘閃爍模式選擇程序-FLASH3:JNBFLASH_FLAG,F31;假設標志位位為0,顯示閃爍程序,否那么顯示正常模式;LCALLLIGHT_OFFLJMP FLASH3F31:MOVA,MODECJNEA,#8,F32LJMPH_F_CL
23、OCK;模式8,校準小時F32:;CJNEA,#0,F34;模式為0,那么返回?LJMPM_F_CLOCK;模式9,校準分鐘F34:RET; ;-閃爍程序-H_F_CLOCK:MOVDPTR,#LED_SCAN_TABLE_CLOCK_1RETM_F_CLOCK:MOVDPTR,#LED_SCAN_TABLE_CLOCK_2RET;鬧鐘BCD轉碼程序;-為鬧鐘做BCD轉碼-CONVERT_BCD3:;第一個數碼管MOVR3,H_MEM_CLOCKMOVR2,#0LCALLBTIDMOVA,R6ANLA,#0FH;保存低四位MOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED1
24、_CLOCK_HOUR,A;第二個數碼管MOVA,R6ANLA,#0F0H;保存高四位SWAPAMOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED2_CLOCK_HOUR,A;第三個數碼管MOVR3,M_MEM_CLOCKMOVR2,#0LCALLBTIDMOVA,R6ANLA,#0FHMOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED1_CLOCK_MIN,A;第四個數碼管MOVA,R6ANLA,#0F0HSWAPA;MOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED2_CLOCK_MIN,ARET;檢測鬧鐘程序;-檢測是否到達鬧鐘
25、時間-CHECK_TIME:MOVA,H_MEM_CLOCKCJNEA,H_MEM,OVER2CHECK_NEXT:MOVA,M_MEM_CLOCKCJNEA,M_MEM,OVER2MOVA,S_MEM;為了防止整一分鐘都會叫,只在一秒的時候判斷一次CJNEA,#0,OVER2LCALLCLOCK_SOUNDRETOVER2:RET; 顯示時分秒程序;時分秒顯示程序;-顯示時分秒程序-DISPLAY1:MOVP0,#11111111BNOPNOP;MOVP0,#0FFHMOVA,SCAN_COUNT;之前定義過:SCAN_COUNTEQU7BHADDA,ACCMOVDPTR,#LED_SCAN
26、_TABLEMOVCA,A+DPTRSETBP2.7;位鎖存MOVP0,ACLRP2.7 MOVA,SCAN_COUNTADDA,ACCINCAMOVCA,A+DPTRMOVR0,AMOVA,R0MOVR0,SCAN_COUNTDOT:CJNER0,#2,NOACT1ORLA,#80HMOVP0,ASETBP0.7 ;調試用SJMPGO_ONNOACT1: CJNER0,#4,NOACT2SJMPACTMOVP0,A CLRP2.6 ;DB3FH,06H,5BH,04FH,66H,6DH,7DH,07H ;DB7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH GO_ON
27、:INCSCAN_COUNTMOVA,SCAN_COUNT CJNEA,#6,DONEMOVSCAN_COUNT,#0DONE: RET;時分秒BCD程序;-CONVERT_BCD1:;第一個數碼管MOVR3,S_MEMMOVR2,#0LCALLBTIDMOVA,R6ANLA,#0FH;保存低四位MOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED1,A;第二個數碼管MOVA,R6ANLA,#0F0H;保存高四位SWAPAMOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED2,A;第三個數碼管MOVR3,M_MEMMOVR2,#0LCALLBTIDMOVA,
28、R6ANLA,#0FHMOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED3,A;第四個數碼管MOVA,R6ANLA,#0F0HSWAPA;MOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED4,A ;第五個數碼管MOVR3,H_MEMMOVR2,#0LCALLBTIDMOVA,R6ANLA,#0FHMOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED5,A ;第六個數碼管MOVA,R6ANLA,#0F0HSWAPAMOVCA,A+DPTRMOVLED6,ARET;二翻十程序;-二翻十程序-BTID:CLRAMOVR4,AMOVR5,AMO
29、VR6,AMOVR7,#16IBTL:CLRCMOVA,R3RLCA;帶進位循環左移,與LC指令的區別?MOVR3,AMOVA,R2RLCAMOVR2,AMOVA,R6ADDCA,R6DAA;DA:十進制調整指令,將二進制結果;調整為十進制數MOVR6,AMOVA,R5ADDCA,R5DAAMOVR5,AMOVA,R4ADDCA,R4;在進行A+R4前,A的值是多少DAAMOVR4,ADJNZR7,IBTL ;減1為1跳轉RET; 顯示年月日的程序;年月日顯示程序;-顯示年月日的程序-DISPLAY2:MOVP0,#11111111BNOPNOP;MOVP0,#0FFHMOVA,SCAN_CO
30、UNT2;之前定義過:SCAN_COUNTEQU7BHADDA,ACCMOVDPTR,#LED_SCAN_TABLE2MOVCA,A+DPTRSETBP2.7;位鎖存MOVP0,ACLRP2.7 MOVA,SCAN_COUNT2ADDA,ACCINCAMOVCA,A+DPTRMOVR0,AMOVA,R0MOVP0,A;LCALLDELAY_1SCLRP2.6 INCSCAN_COUNT2MOVA,SCAN_COUNT2 CJNEA,#8,DONE2MOVSCAN_COUNT2,#0DONE2: RET;年月日BCD轉碼程序;-啟用第二段轉碼程序-CONVERT_BCD2:;第1_2個數碼管MO
31、VR3,D_MEMMOVR2,#0LCALLBTIDMOVA,R6ANLA,#0FH;保存低四位MOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED1_2,A;第2_2個數碼管MOVA,R6ANLA,#0F0H;保存高四位SWAPAMOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED2_2,A;第3_2個數碼管MOVR3,MON_MEMMOVR2,#0LCALLBTIDMOVA,R6ANLA,#0FHMOVDPTR,#LED_CODEMOVCA,A+DPTRJNBFLASH_FLAG,MODE0_BCD1 ;FLASH_FLAG為0跳到MODE0_BCD1M
32、ODE0_BCD1:MOVLED3_2,A;第4_2個數碼管MOVA,R6ANLA,#0F0HSWAPAMOVCA,A+DPTRMOVLED4_2,A ;第5_2個數碼管MOVR3,Y_MEM_1MOVR2,#0LCALLBTIDMOVA,R6ANLA,#0FHMOVDPTR,#LED_CODEMOVCA,A+DPTRJNBFLASH_FLAG,MODE0_BCD2 ;FLASH_FLAG為0跳到MODE0_BCD1MODE0_BCD2:MOVLED5_2,A ;第6_2個數碼管MOVA,R6ANLA,#0F0HSWAPAMOVCA,A+DPTRMOVLED6_2,A ;第7_2個數碼管MOV
33、R3,Y_MEM_2MOVR2,#0LCALLBTIDMOVA,R6ANLA,#0FHMOVDPTR,#LED_CODEMOVCA,A+DPTRMOVLED7_2,A ;第8_2個數碼管MOVA,R6ANLA,#0F0HSWAPAMOVCA,A+DPTRMOVLED8_2,ARET;顯示時分秒校準程序;時分秒校準顯示程序;-第三個display函數,專門校準閃爍時用,節省內存-DISPLAY1_2:MOVP0,#11111111BNOPNOPMOVA,SCAN_COUNT3;之前定義過:SCAN_COUNTEQU7BHADDA,ACCMOVR1,ALCALLFLASH1 ;在flash函數中選
34、擇調用哪個表;MOVDPTR,#LED_SCAN_TABLEMOVA,R1MOVCA,A+DPTRSETBP2.7;位鎖存MOVP0,ACLRP2.7 MOVA,SCAN_COUNT3ADDA,ACCINCAMOVCA,A+DPTRMOVR0,AMOVA,R0MOVP0,A;LCALLDELAY_1S ;調試用CLRP2.6 ;DB3FH,06H,5BH,04FH,66H,6DH,7DH,07H ;DB7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH INCSCAN_COUNT3MOVA,SCAN_COUNT3 CJNEA,#2,DONE3MOVSCAN_COUNT3,
35、#0DONE3: RET;時分秒閃爍模式選擇程序;-判斷閃爍模式-;-時分秒閃爍模式選擇程序-FLASH1:JNBFLASH_FLAG,F1;假設標志位位為0,顯示閃爍程序,否那么顯示正常模式;LCALLLIGHT_OFFSJMP FLASH1F1:MOVA,MODECJNEA,#1,F2LJMPH_F;模式1,校準小時F2:CJNEA,#2,F7LJMPM_F;模式2,校準分鐘F7: CJNEA,#3,F8;如果不等于3,也應該正常顯示LJMPS_F ;模式3,校準秒數F8:CJNEA,#0,F10;如果變回模式0RETF10:;SJMPFLASH1RET ;-閃爍程序-H_F:MOVDPT
36、R,#LED_SCAN_TABLE_1RETM_F:MOVDPTR,#LED_SCAN_TABLE_2RETS_F:MOVDPTR,#LED_SCAN_TABLE_3RET;年月日校準程序;年月日校準顯示程序;-第四個display函數,專門校準閃爍時用年月日,節省內存-DISPLAY2_2:MOVP0,#11111111BNOPNOP;MOVP0,#0FFHMOVA,SCAN_COUNT4;之前定義過:SCAN_COUNTEQU7BHADDA,ACCMOVR1,ALCALLFLASH2 ;在flash函數中選擇調用哪個表;MOVDPTR,#LED_SCAN_TABLEMOVA,R1MOVCA
37、,A+DPTRSETBP2.7;位鎖存MOVP0,ACLRP2.7 MOVA,SCAN_COUNT4ADDA,ACCINCAMOVCA,A+DPTRMOVR0,AMOVA,R0MOVP0,A;LCALLDELAY_1S ;調試用CLRP2.6 ;DB3FH,06H,5BH,04FH,66H,6DH,7DH,07H ;DB7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH INCSCAN_COUNT4MOVA,SCAN_COUNT4 CJNEA,#2,DONE4MOVSCAN_COUNT4,#0DONE4: RET; 年月日閃爍模式選擇程序;-年月日閃爍模式選擇程序-FLA
38、SH2:JNBFLASH_FLAG,F3;假設標志位位為0,顯示閃爍程序,否那么顯示正常模式SJMPFLASH2F3:MOVA,MODE;CJNEA,#1,F12;CJNEA,#2,F12;CJNEA,#3,F12CJNEA,#4,F4;模式4,校準 天數LJMPD_FF4:CJNEA,#5,F5;模式5,校準月份LJMPMON_FF5:CJNEA,#6,F6;模式6,校準低位年LJMPY_F1F6:CJNEA,#7,F9LJMPY_F2;模式7,校準 高位年F9:CJNEA,#0,F11;如果變回模式0,返回RETF11:;SJMPFLASH2RET;-閃爍程序-D_F:MOVDPTR,#LED_SCAN_TABLE21RETMON_F:MOVDPTR,#LED_SCAN_TABLE22RETY_F1:MOVDPTR,#LED
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業發展規劃在程序員中的重要性試題及答案
- 客運員招聘試題及答案
- 烘焙面試試題及答案
- 云南省計算機等級考試試題及答案
- 帶貨技巧面試題及答案
- 運營專員考試試題及答案
- 基金知識測試題及答案
- 2025軟考網絡運維考核試題及答案
- 網絡故障后的應急響應能力測試試題及答案
- 電化學模擬試題及答案
- 2024年全國軟件水平考試之中級網絡工程師考試歷年考試題(詳細參考解析)
- 牛羊肉采購合同范本
- DLT 5434-2021 電力建設工程監理規范表格
- 拓展低空經濟應用場景實施方案
- 托育機構消防安全培訓
- 《現代庫存管理:模型、算法與Python實現》 課件全套 楊超林 第1-17章 現代庫存管理概述-某家電企業H的制造網絡庫存優化實戰
- (正式版)QBT 5998-2024 寵物尿墊(褲)
- (正式版)HGT 6276-2024 雙酚F型環氧樹脂
- 補習班輔導班學員合同協議書范本
- 操作系統智慧樹知到期末考試答案2024年
- 離婚案件中夫妻房產分割問題研究
評論
0/150
提交評論