![《單片機原理及應(yīng)用》課程設(shè)計報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/f79ffb7e-1422-459f-a339-5a09be12b1e8/f79ffb7e-1422-459f-a339-5a09be12b1e81.gif)
![《單片機原理及應(yīng)用》課程設(shè)計報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/f79ffb7e-1422-459f-a339-5a09be12b1e8/f79ffb7e-1422-459f-a339-5a09be12b1e82.gif)
![《單片機原理及應(yīng)用》課程設(shè)計報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/f79ffb7e-1422-459f-a339-5a09be12b1e8/f79ffb7e-1422-459f-a339-5a09be12b1e83.gif)
![《單片機原理及應(yīng)用》課程設(shè)計報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/f79ffb7e-1422-459f-a339-5a09be12b1e8/f79ffb7e-1422-459f-a339-5a09be12b1e84.gif)
![《單片機原理及應(yīng)用》課程設(shè)計報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/5/f79ffb7e-1422-459f-a339-5a09be12b1e8/f79ffb7e-1422-459f-a339-5a09be12b1e85.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、經(jīng)典文吉林建筑工程學(xué)院電氣與電子信息工程學(xué)院單片機原理及應(yīng)用課程設(shè)計報告設(shè)計題目:電子計時器綜合系統(tǒng)設(shè)計專業(yè)班級:電子信息科學(xué)與技術(shù)092學(xué)生姓名:學(xué) 號:指導(dǎo)教師:設(shè)計時間:2012.8.27- 2012.9.7教師評語:成績評閱教師日期目錄第1章緒論11 .1課程設(shè)計目的11.2 課程設(shè)計內(nèi)容11.3 課程設(shè)計要求11.4 電子時鐘的簡單介紹1第2章控制系統(tǒng)的硬件設(shè)計42.1 單片機型號的選擇22.2 89C51單片機介紹22.3 振蕩電路42.4 復(fù)位電路42.5 鍵盤電路42.6 數(shù)碼管顯示工作原理52.7 整個電路原理圖5第3章控制系統(tǒng)的軟件設(shè)計63.1 程序流程圖63.2 程序設(shè)計
2、7第4章軟件仿真84.1 Proteus軟件介紹84.2 仿真結(jié)果8第5章心得體會10參考文獻11附錄12第1章緒論1.1課程設(shè)計目的:通過單片機原理與應(yīng)用課程設(shè)計,掌握單片機及其擴展系統(tǒng)設(shè)計的 方法和設(shè)計原則及相應(yīng)的硬件調(diào)試的方法。進一步加深單片機及其擴展系統(tǒng) 設(shè)計和應(yīng)用的理解。1.2課程設(shè)計內(nèi)容:電子計時器綜合系統(tǒng)設(shè)計 有6位數(shù)碼管顯示,能按照分秒進制顯示時間; 能正確手動復(fù)位; 有上電指示燈;1.3課程設(shè)計要求:1)獨立設(shè)計原理圖及相應(yīng)的硬件電路。2)針對選擇的設(shè)計題目,設(shè)計系統(tǒng)軟件。軟件要做到:操作方便,實用 性強,穩(wěn)定可靠。3)設(shè)計說明書格式規(guī)范,層次合理,重點突出。并附上設(shè)計原理圖
3、及相 應(yīng)的源程序。1.4電子計時器的簡單介紹該電子計時器由AT89C51 BUTTON八段數(shù)碼管等構(gòu)成,采用晶振電路作為 驅(qū)動電路,有延時程序和循環(huán)程序產(chǎn)生的一秒定時,達到時分秒的計時,六十秒 為一分鐘,六十分鐘為一小時,滿二十四小時為一天。有兩個按鍵分別控制小時 和分鐘,當(dāng)按下控制分鐘的按鍵時,分鐘加一,同理按控制小時的按鍵時,小時 加一。第2早控制系統(tǒng)的硬件設(shè)計2.1單片機型號的選擇通過對多種單片機性能的分析,最終認為AT89C51時最理想的電子時鐘開發(fā)芯片。AT89C51提供以下標準功能:4k字節(jié)Flash閃速存儲器,128字節(jié)內(nèi) 部RAM,32個I/O 口線,兩個16位定時/計數(shù)器,一
4、個5向量兩級中斷結(jié)構(gòu), 一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時, AT89C51可降至0Hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式 保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬 件復(fù)位。2.2 AT89C51 單片機介紹N曰JL>R-1P R 嚴占«=|7 PR-P二 L i i.>X TALI'XT從rasr產(chǎn)3B:33尹a-三亠! 51 'i d1J2-i 3u斗I 51 6力書口杠1 ZTXOf1 刁鼻nruT
5、m P3 .-4 仃 口 PS J5XT PS O/VVFir 尸2 71H!=1rkL 丁斗弓導(dǎo)J IJUI! = 口I-I rl-12沖 £6丁cwrn if 1 m 1 ,尸空N2MC1 戶廠尸戶尸尸圖 1 AT89C51VCC電源GND接地P0 口: P0 口為一個8位漏極開路雙向I/O 口,每腳可吸收8TTL門電流。當(dāng) P1 口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲 器,它可以被定能夠以為數(shù)據(jù)/地址的第八位。在FLASH編程時,P0輸出原碼, 此時P0外部必須被拉高。P1 口: P1 口是一個內(nèi)部提供上拉電阻的 8位雙向I/O 口,P1 口緩沖器
6、能 接收4TTL門電流。P1 口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1 口被 外部上拉為低電平時,P1 口作為第八位地址接收。P2 口: P2 口為一個內(nèi)部上拉電阻的8位雙向I/O 口,P2 口緩沖器可接收, 輸出4個TTL門電流,當(dāng)P2 口被寫1時,其管腳被內(nèi)部上拉電阻拉高,且作為 輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi) 部上拉的原因。P2 口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存 取時,P2 口輸出地址的高8位。在給出地址1時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對 外部8位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在F
7、LASH編程和校驗時接收高八位地址信號和控制信號。P3 口: P3 口管腳是8個帶內(nèi)部上拉電阻的雙向I/O 口,可接收輸出4個 TTL門電流。當(dāng)P3 口寫入1時,它們被內(nèi)部上拉位高電平,并用作輸入。作為 輸入,由于外部上拉為低電平,P3 口將輸出電流(ILL )這是由于上拉的緣故。RST :復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平 時間。ALE/PROG當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址 的低位字節(jié)。在FLASH編程期間,次引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或
8、用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時, 將跳過一個ALE脈沖。如果想禁止ALE的輸出可在SFR8EK址上置0此時,ALE 只有在執(zhí)行MOVX,MOVC令時ALE才起作用。另外,該引腳被略微拉高。如果微 處理器在外部執(zhí)行狀態(tài)ALE禁止,置為無效。/PSEN:外部程序存儲器的讀選通信號,低電平有效。在由外部程序存儲器取 值期間,每個機器兩次/PSEN有效,但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的 /PSEN信號將不出現(xiàn)。/EA/VPP: /EA為該引腳的第一功能,即外部程序存儲器訪問控制允許端。當(dāng)/EA為高電平時,在PC值不超過OFFFFH時,單片機讀片內(nèi)程序存儲器(4KB中的 程
9、序;當(dāng)PC值超出時,將自動轉(zhuǎn)向片外60KB程序存儲器空間中的程序。當(dāng)/EA 引腳為低電平時,只讀取外部程序存儲器中的內(nèi)容。VPP為該引腳的第二功能,即在對片內(nèi)FLASH進行編程時,VPP引腳接入編程電壓。2.3振蕩電路本次設(shè)計采用內(nèi)部振蕩電路,瓷片電容采用 33pf,晶振采用12MHZ電路 連接如圖2所示下載后可編輯復(fù)制2.4復(fù)位電路單片機系統(tǒng)的復(fù)位電路在這里采用的是上電復(fù)位電路的形式,其中電阻R1采用10KQ的阻值,電容采用電容值為100u的電容。電路連接如圖4所示圖3復(fù)位電路2.5鍵盤電路|I itk g a il>. nr"、1 昂曰6圖4鍵盤電路2.6數(shù)碼管顯示工作原理
10、數(shù)碼管是一個把多個LED顯示段集成在一起的顯示設(shè)備。有兩種類型,一 種是共陽型,一種是共陰型。共陽型就是把多個LED顯示段的陽極接在一起,又 稱為公共端。共陰型就是把多個LED顯示段的陰極接在一起,即為公共商。陽極 即為二極管的正極,又稱為正極,陰極即為二極管的負極,又稱為負極。通常的 數(shù)碼管又分為8段,即8個LED顯示段,這是為工程應(yīng)用方便設(shè)計的,稱為 A、 B、C、D E、F、G DP,其中DP是小數(shù)點位段。而多位數(shù)碼管,除某一位的公共 端會連接在一起,不同位的數(shù)碼管的相同端也會連接在一起。即,所有的A段都會連在一起,其它的段也是如此,這是最實際的用法。數(shù)碼管顯示方法可分為靜 態(tài)顯示和動態(tài)
11、顯示兩種。靜態(tài)顯示就是數(shù)碼管的 8段輸入及公共端電平一直有 效。動態(tài)顯示的原理是,各個數(shù)碼管的相同段連接在一起, 共同占用8位段引管 線;每位數(shù)碼管的陽極連在一起組成公共端。利用人眼的視覺暫留性,依次給出各個數(shù)碼管公共端加有效信號,早同時給出該數(shù)碼管加有效的數(shù)據(jù)信號,當(dāng)全段 掃描速度大于視覺暫留速度時,顯示就會清晰顯示出來。2.7整個電路原理圖>-LiE|T2ILEkPFT,rP-1S|1 眄* Jikr *=rxaaTSftH冷、r?!?? -S亠一罟空丄亠:HTF圖6 電路原理圖第3章控制系統(tǒng)的軟件設(shè)計3.1程序流程圖本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、 定時計數(shù)中斷程序、時間調(diào)整程序、
12、延時程序四大模塊。主程序流程圖:顯示數(shù)據(jù)處理3.2 程序設(shè)計見附錄第4章軟件仿真4.1 Proteus軟件介紹Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件,是目前最好的模擬單片機外圍器件的工具??梢苑抡?1系列、AVR PIC等常用的MCI及其外圍電路(如 LCD RAM ROM鍵盤、馬達、LED AD/DA部分SPI 器件,部分IIC器件等)。Proteus是世界上著名的EDA工具,從原理圖布圖、 代碼調(diào)試到單片機與外圍設(shè)備協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件 PCE設(shè)計軟件和虛擬模 型
13、仿真軟件三合一的設(shè)計平臺。Proteus具有原理布圖、PCB自動或人工布線、 SPICE電路仿真的功能。4.2仿真結(jié)果ir3*iirwr: 畤昕 * fjJF n h .flTHUAE*FV旳* ” 皿片EIJkE 右W17PUW-D PZJWiJH rriouff306.38圖7時鐘仿真圖"LJ1IPI-!I * hr rfrar -II圖8秒表仿真結(jié)果第5章心得體會課程設(shè)計是對課程的實踐與總結(jié),只要做了就會有收獲。在這次設(shè)計中我加 深了程序的閱讀能力、程序的靈活調(diào)用、單片機的設(shè)計制作調(diào)試方法。為了能順 利的完成這次的課程設(shè)計我找了很多資料也因此知道了不少課本上沒深入介紹 的東西,
14、提高了我的思維空間,拓寬了我的知識面,加深了對單片機課程的興趣。 最主要的是加強了動手的能力。遇到問題是先思考,解決不了再查資料,實在弄 不出來就問老師和同學(xué)們,畢竟不恥下問是中華名族的優(yōu)良美德。 只有如此才能 不斷進步。通過這次課程設(shè)計我了解到學(xué)好一門匯編語言, 最根本的應(yīng)該是了解所能接 觸到的程序中最關(guān)鍵的是哪些,實際的應(yīng)用編寫更是非常重要,所以我們一定要 自己動手試一下,嘗試編寫程序。因為做一個旁觀者事不能夠?qū)W到東西的。此外在此次設(shè)計中我對此次設(shè)計的內(nèi)容有一下感觸,第一,由于此次設(shè)計的過程中設(shè)計秒表和時鐘的顯示,即在一個數(shù)碼管上顯示兩種變量,必須確定以下 兩點:1、必須仔細的核對每一個變
15、量的名字,我曾經(jīng)在核對變量的名字上面花 了很大的力氣,由于變量的名字錯了,軟件編譯時很少能檢查出,因此仿真時往 往不容易發(fā)現(xiàn)。2、要每個子程序的調(diào)試,這樣才能確認某一個部分是正確的,這樣才有繼續(xù)往 下做的信心和勇氣。參考文獻1 單片機原理及應(yīng)用/張毅剛 彭喜元 彭宇主編高等教育出版社,2010年5 月第二版2 單片機原理及應(yīng)用/張毅剛高等教育出版社,20043MCS-51系列單片機實用接口技術(shù)/李華主編北京:北京航空航天大學(xué)出版社,1993.84單片機C語言輕松入門周堅編 北京航空航天大學(xué)出版社5 單片機人機接口實例公茂法編著,北京航空航天大學(xué)出版社6 單片機應(yīng)用系統(tǒng)設(shè)計與實踐陳景初,北京:北
16、京航空航天大學(xué)出版社附錄DISBEG EQU30H;TIMCONEQU2FHORG0000H;LJMPMAINORG0003H;RETIORG000BH;LJMPINTT0ORG0013H;RETIORG001BH;LJMPINTT1ORG0023H;RETITAB: DB顯示單元首地址存放報時次數(shù)程序開始關(guān)外中斷0定時器T0中斷程序入口;跳至INTT0執(zhí)行關(guān)中斷1定時器T1中斷程序入口;跳至INTT1執(zhí)行關(guān)串行中斷0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFHl_TAB: DB0C0H,0F9H,0A4H,0B0H,99H
17、,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88HDLY1M: MOV R6,#14H;1毫秒延時DL_LOOP: MOV R7,#19HDL_LOOP1:DJNZR7,DL_LOOP1DJNZR6,DL_LOOPRETDLY20M:LCALLD_II_PLAYLCALLD_II_PLAYLCALLD_II_PLAYRETCTIME: MOV A,#10HMOVB,79HMULABADDA,78HMOVTIMCON,ACLOOP:LCALL DLY20MLCALLDL_LOOPSLCALLDL_LOOPSLCALLDL_LOOPSDJNZTIMCON,CLOOPC
18、LR08H;:清整點報時標志AJMPMLOOP1MAIN:MOVR0,#00H;清00H-7FH內(nèi)存單元DL_LOOPS:LCALLLCALLDL05SRETDL05S: MOV R3,#20HDL05S1:LCALLDJNZR3,DL05S1RETDL05S;8毫秒*32=0.196 秒D_II_PLAYMOV R7,#80H;MLOOP: MOV R0,#00HINCR0;DJNZR7,MLOOPJMOV20H,#00HJ清20H (標志用)MOV7AH,#0AHJ放入"熄滅符"數(shù)據(jù)MOVTMOD,#11HJ設(shè)T0、T1為16位定時器MOVTL0,#0B0H;50MS定
19、時初值(T0計時用)MOVTH0,#3CH;50MS定時初值MOVTL1,#0B0H;50MS定時初值(T1閃爍定時用)MOVTH1,#3CH;50MS定時初值SETBEA;總中斷開放SETBET0;允許T0中斷SETBTR0;開啟T0定時器MOVR4,#14H;1秒定時用計數(shù)值(50MS< 20)MOVDISBEG,#70H ;顯示單元為70-75HMLOOP1:LCALLD_II_PLAY;調(diào)用顯示子程序JNBP1.0,T_SETSCJNBP1.1QLY5 ;秒表功能,P1.1按鍵調(diào)時時作減1加JNBP1.2,FUNBTJ秒表 STOP,PUSE,CLRJB 08H, CTIMEAJ
20、MPMLOOP1;P1.0 口為 1 時跳回 MLOOP1FUNBT:LJMPDLY6TSET:LCALLDLY20MJBP1.3,MLOOP1 ;TS_LOOP:JNBP1.3,TS_LOOP;等待鍵釋放MINCHG: SETB EALCALLD_II_PLAYJNBP1.2QLY1 ;分加1JNBP1.0,DLY3 ;分減1JNBP1.3,DLY ;進入時調(diào)整AJMPMINCHGCLRBELL:AJMPMLOOP1DLY:LCALLDLY20M;消抖JBP1.3, MINCHGT_SETSC:LJMPR_SETTIM;轉(zhuǎn)到R_SETTIMDLY1:LCALLDLY20M;消抖JBP1.2,
21、 MINCHGDLY2:LCALLD_II_PLAY;等鍵釋放JNBP1.2, DLY2CLREACJNEA,#60H,ADD_MJADD)_M: JCMINCHG ;小于60分時返回ACALLCLR_H;大于或等于60分時分計時單元清AJMPMINCHGDLY3 :LCALLDLY20M;消抖JBP1.0, MINCHGDLY4:LCALLD_II_PLAY;等鍵釋放JNBP1.0, DLY4CLREAMOVR0,#53H;LJMPMINCHGDLY5:LCALLDLY20MJBP1.1,T_MLOOP1JNBP1.1,$CPL03HJNB03H,DIS_SETMOVDISBEG,#60H
22、;顯示秒表數(shù)據(jù)單元MOV60H,#00HMOV61H,#00HMOV62H,#00HMOV63H,#00HMOV64H,#00HMOV65H,#00HMOVTL1,#0F0H;10MS定時初值()MOVTH1,#0D8H;10MS定時初值SETBTR1SETBET1T MLOOP1:LJMPMLOOP1DIS_SET: MOV DISBEG,#70H ;顯示時鐘數(shù)據(jù)單元CLRET1CLRTR1T_MLOOP11:LJMPMLOOP1DLY6:LCALLDLY20MJBP1.2,T_MLOOP11T_EST11: JNBP1.2,T_EST11CLRET1CLRTR1T_EST22: JNBP1
23、.1QLY5JBP1.2,T_EST21LCALLDLY20MJBP1.2,T_EST22T_EST55: JNBP1.2,T_EST51MOV60H,#00HMOV61H,#00HMOV62H,#00HMOV63H,#00HMOV64H,#00HMOV65H,#00HT_EST33: JNBP1.1QLY5JBP1.2,T_EST31LCALLDLY20MJBP1.2,T_EST33T_EST44: JNB P1.2,T_EST41SETBSETBET1TR1AJMPMLOOP1T_EST411:LCALLDL_PLAYAJMPT_EST11T_EST21:LCALLDL_PLAYAJMPT
24、_EST22T_EST31:LCALLDL_PLAYAJMPT_EST33T_EST41:LCALLDL_PLAYAJMPT_EST44T_EST51:LCALLDL_PLAYAJMPT_EST55INTT0: PUSH ACC;累加器入棧保護PUSHPSW;狀態(tài)字入棧保護CLRET0;關(guān)T0中斷允許CLRTR0;關(guān)閉定時器T0MOVA,#0B7H;中斷響應(yīng)時間同步修正ADDA,TL0;低8位初值修正MOVTL0,A;重裝初值(低8位修正值)MOVA,#3CH ;高8位初值修正ADDCA,TH0MOVTH0,A;重裝初值(高8位修正值)SETBTR0;開啟定時器T0DJNZR4, I_INT0
25、;20次中斷未到中斷退出A_DDS: MOVR4,#14H;20次中斷到(1秒)重賦初值CPL07H;鬧鈴時間隔嗚叫用MOVR0,#71H;指向秒計時單元(71H-72H)ACALLADD_1;調(diào)用加1程序(加1秒操作)MOVA,R3CLRCCJNEA,#60H,A_DDMA_DDM: JCI_INT0 ;小于60秒時中斷退出ACALLCLR_HMOVR0,#77H;指向分計時單元(76H-77H)ACALLADD_1;分計時單兀加1分鐘MOVA,R3;分數(shù)據(jù)放入ACLRC;清進位標志CJNEA,#60H,A_DDH ;A_DDH: JClNT0 ;小于60分時中斷退出ACALLCLR_H;大
26、于或等于60分時分計時單元清LCALLDLY20M;正點報時SETB08HMOVR0,#79H;指向小時計時單元(78H-79H)ACALLADD_1;小時計時單兀加1小時MOVA,R3;時數(shù)據(jù)放入ACLRC;清進位標志CJNEA,#24H,RSTARTJRSTART: JClNT0 ;小于24小時中斷退出ACALLCLR_H;大于或等于24小時小時計時單元清0lN T0: MOV72H,76H;中斷退出時將分、時計時單元數(shù)據(jù)移MOV73H,77H;入對應(yīng)顯示單元MOV74H,78H;MOV75H,79H;POPPSW;恢復(fù)狀態(tài)字(出棧)POPACC;恢復(fù)累加器SETBET0;開放T0中斷PU
27、SHPSWJB03H, R_ADDS ;=1時秒表MOVTL1, #0B0H;裝定時器T1定時初值MOVTH1, #3CHDJNZR2,I_INT1MOVR2,#06H;重裝0.3秒定時用初值CPL02H;0.3秒定時到對閃爍標志取反JB02H,FLASH0 ;02H位為1時顯示單兀"熄火"MOV72H,76H;02H位為0時正常顯示MOV73H,77HMOV74H,78HMOV75H,79HI_INT1: POP>PSW;恢復(fù)現(xiàn)場POPACCRETI;中斷退出FLASH0: JB01H,FLASH1 ;01H位為1時,轉(zhuǎn)小時熄火控制MOV72H,7AH;01H位為0
28、時,"熄滅符"數(shù)據(jù)放入分MOV73H,7AH;顯示單元(72H-73H ,將不顯示分數(shù)MOV74H,78HMOV75H,79HAJMPl_INT1;轉(zhuǎn)中斷退出FLASH1: MOV72H,76H;01H位為1時,"熄滅符"數(shù)據(jù)放入小時MOV73H,77HMOV74H,7AHMOV75H,7AHAJMPl_INT1;轉(zhuǎn)中斷退出;中斷返回INTT1: PUSH ACC中斷現(xiàn)場保護R_ADDS :CLRTR1RETIMOVA,#0F7H;中斷響應(yīng)時間同步修正,重裝初值(10mSADDA,TL1;低8位初值修正MOVTL1,A;重裝初值(低8位修正值)MOVA,
29、#0D8H;高8位初值修正ADDCA,TH1MOVTH1,A;重裝初值(高8位修正值)SETBTR1;開啟定時器T0MOVR0,#61H;指向秒計時單元(71H-72H)ACALLADD_1;調(diào)用加1程序(加1秒操作)CLRCMOVA,R3JZRLADDM ;加1后為00, C=0AJMPI_INT01;加1后不為00,C=1R_ADDM:ACALLCLR_HMOVR0,#63H;指向分計時單元(76H-77H)ACALLADD_1;分計時單兀加1分鐘MOVA,R3;分數(shù)據(jù)放入ACLRC;清進位標志CJNEA,#60H,R_ADDHR_ADDH: JCI_INT01 ;小于60分時中斷退出LC
30、ALLCLR_H;大于或等于60分時分計時單元清0MOVR0,#65H;指向小時計時單元(78H-79H)ACALLADD_1;小時計時單兀加1小時l_INT01: POPPSW;恢復(fù)狀態(tài)字(出棧)POPACC;恢復(fù)累加器RETI;中斷返回;ADD_1: MOV A,R0取當(dāng)前計時單元數(shù)據(jù)到A指向前一地址DEC R0SWAPAORLA,R0ADDA,#01H ;ADAAMOVR3,A;ANLA,#0FHMOVR0,A;MOVA,R3;INCR0;SWAPAANLA,#0FHMOVR0,A;RETJSUB_M: MOVA,R0DECR0;SWAPAORLA,R0JZSUB_M1DECA;ASUB
31、_M11:MOV3,A;ANLA,#0FHCLRCSUBBA,#0AHSUB_M111:JCSUB_M110MOVR0,#09H;SUB_M10:MOVA,R3;INCR0;SWAPAANLA,#0FH;A中數(shù)據(jù)高四位與低四位交換;前一地址中數(shù)據(jù)放入 A中低四位加1操作;十進制調(diào)整移入R3寄存器;高四位變0放回前一地址單元取回R3中暫存數(shù)據(jù)指向當(dāng)前地址單元;A中數(shù)據(jù)高四位與低四位交換;高四位變0數(shù)據(jù)放入當(dāng)削地址單元中子程序返回取當(dāng)前計時單元數(shù)據(jù)到A指向前一地址;A中數(shù)據(jù)高四位與低四位交換;前一地址中數(shù)據(jù)放入 A中低四位減1操作移入R3寄存器;高四位變0;清進位標志大于等于0AH為9取回R3中暫
32、存數(shù)據(jù)指向當(dāng)前地址單元;A中數(shù)據(jù)高四位與低四位交換;高四位變0MOV R0,ARET;數(shù)據(jù)放入當(dāng)削地址單元中子程序返回SUB_M1: MOV A,#59HAJMPSUB_M11SUB_M110: MOV A,R3ANLA,#0FHMOV R0,AAJMPSUB M10SUB_H: MOV A,R0DECR0SWAPORLA,R0JZSUB_H1 ;00SUBANLCLRSUBBDEC;AH11: MOV R3,AA,#0FHA,#0AHSUB_H111: JC SUB_H110MOV R0,#09H;SUB_H10: MOV A,R3INC R0 ;SWAPAANLA,#0FHMOV R0,A
33、;RET;SUB_H1: MOV A,#23HAJMPSUB_H11SUB_H110: MOV A,R3移入R3寄存器;高四位變0取當(dāng)前計時單元數(shù)據(jù)到A指向前一地址;A中數(shù)據(jù)高四位與低四位交換;前一地址中數(shù)據(jù)放入 A中低四位減1為23 (小時)減1操作移入R3寄存器;高四位變0;清進位標志;時個位大于9為9大于等于0AH為9取回R3中暫存數(shù)據(jù)指向當(dāng)前地址單元;A中數(shù)據(jù)高四位與低四位交換;高四位變0時十位數(shù)數(shù)據(jù)放入子程序返回時個位小于0A不處理ANLA,#OFH;高四位變0個位移入MOVR0,A;AJMPSUB_H10CLR_H:CLRA;清累加器MOVR0,A;清當(dāng)前地址單元DECR0;指向前
34、一地址MOVR0,A;前一地址單元清0RETJ子程序返回R_SETTIM:CLRET0CLRTR0;關(guān)閉定時器T0LCALLDL_LOOPS;調(diào)用1秒延時程序LCALLDLY20M;消抖JBP1.0,SLEEPMOVR2,#06H;進入調(diào)時狀態(tài),賦閃爍定時初值MOV70H,#00H;調(diào)時時秒單元為00秒MOV71H,#00HSETBET1;允許T1中斷SETBTR1;開啟定時器T1SET_2: JNBP1.0,SET_1;P1.0口為0 (鍵未釋放),等待SETB00H;鍵釋放,分調(diào)整閃爍標志置1SET_4: JBP1.0,SET_3 ;等待鍵按下LCALLDL05S;有鍵按下,延時0.5秒L
35、CALLDLY20M;消抖JNBP1.0,R_SETHHMOVR0,#77H;按下時間小于0.5秒加1分鐘操作LCALLADD_1;調(diào)用加1子程序MOVA,R3;取調(diào)整單元數(shù)據(jù)CLRC;清進位標志CJNEA,#60H,SET_LOOP;調(diào)整單元數(shù)據(jù)與60比較SET_LOOP:JCSET_4;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)SET_4循環(huán)LCALLCLR_H;調(diào)整單元數(shù)據(jù)大于或等于60時清0CLRC;清進位標志AJMPSET_4;跳轉(zhuǎn)到SET_4循環(huán)SLEEP: SETB ET0;省電(LED不顯示)狀態(tài)。開T0中斷SETBTR0;開啟T0定時器(開時鐘)SET_LOOP1:JBP1.O,SET_LOOP
36、1;無按鍵按下,等待。LCALLDLY20M;消抖JBP1.O,SET_LOOP1SET_LOOP2:JNBP1.O,SET_LOOP2;等待鍵釋放LJMPMLOOP1;返回主程序(LED數(shù)據(jù)顯示亮)R_SETHH:CLR00HSETB01H;小時調(diào)整標志置1SET_LOOP3:JNBP1.0,SET_5 ;等待鍵釋放SET_6: JBP1.0,SET_7 ;等待按鍵按下LCALLDL05S;有鍵按下延時0.5秒LCALLDLY20M;消抖JNBP1.0,STOP ;按下時間大于0.5秒退出時間調(diào)整MOVR0,#79H;按下時間小于0.5秒加1小時操作LCALLADD_1;調(diào)加1子程序MOVA
37、,R3CLRCCJNEA,#24H,C_YHH;計時單元數(shù)據(jù)與24比較C_YHH: JCSET_6;小于24轉(zhuǎn)SET_6循環(huán)LCALLCLR_H;大于或等于24時清0操作AJMPSET_6;跳轉(zhuǎn)到SET_6循環(huán)STOP: JNBP1.0,STOP1 ;調(diào)時退出程序。等待鍵釋放LCALLDLY20M;消抖JNBP1.0,STOP ;是抖動,返回STOP再等待CLR01H;清調(diào)小時標志CLROOH;清調(diào)分標志CLR02H;清閃爍標志CLRTR1;關(guān)閉定時器T1CLRET1;關(guān)定時器T1中斷SETBTRO;開啟定時器T0SETBETO;開定時器T0中斷(計時開始)LJMPMLOOP1;跳回主程序SET_1:LCALLD_II_PLAYAJMPSET
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度學(xué)生保險居間業(yè)務(wù)合同
- 教育培訓(xùn)行業(yè)經(jīng)驗分享指南
- 汽車汽車租賃合同
- 三農(nóng)村電商物流作業(yè)指導(dǎo)書
- 轉(zhuǎn)租房屋租賃合同
- 礦業(yè)與安全技術(shù)作業(yè)指導(dǎo)書
- 房地產(chǎn)中介銷售服務(wù)合同
- 電子電路設(shè)計與制造作業(yè)指導(dǎo)書
- 組織行為學(xué)作業(yè)指導(dǎo)書
- 雙語藝術(shù)節(jié)之迎新文藝晚會活動方案
- 鋼筋工程精細化管理指南(中建內(nèi)部)
- 小學(xué)語文中段整本書閱讀的指導(dǎo)策略研究 中期報告
- 2024年山西省高考考前適應(yīng)性測試 (一模)英語試卷(含答案詳解)
- 浙教版2023-2024學(xué)年數(shù)學(xué)八年級上冊期末復(fù)習(xí)卷(含答案)
- 2024年中國鐵路投資集團有限公司招聘筆試參考題庫含答案解析
- 運動訓(xùn)練與康復(fù)治療培訓(xùn)資料
- 干部人事檔案數(shù)字化 制度
- 經(jīng)營開發(fā)部工作目標責(zé)任書
- 小班繪本教學(xué)《藏在哪里了》課件
- 老師呀請你別生氣教學(xué)反思
- 2023年北京市平谷區(qū)中考英語二模試卷
評論
0/150
提交評論