數(shù)字時(shí)鐘課程設(shè)計(jì)_第1頁
數(shù)字時(shí)鐘課程設(shè)計(jì)_第2頁
數(shù)字時(shí)鐘課程設(shè)計(jì)_第3頁
數(shù)字時(shí)鐘課程設(shè)計(jì)_第4頁
數(shù)字時(shí)鐘課程設(shè)計(jì)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余24頁可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、機(jī)電工程系課程設(shè)計(jì)報(bào)告題目:數(shù)字時(shí)鐘課程設(shè)計(jì)專 業(yè):班 級(jí):學(xué) 號(hào):姓 名:指導(dǎo)老師:時(shí) 間:目錄1、 設(shè)計(jì)目的、設(shè)計(jì)題目32、 設(shè)計(jì)任務(wù)、功能描述 33、 硬件原理分析.3四、軟件設(shè)計(jì).71地址空間分配.72軟件整體架構(gòu)分析.82.1 總體架構(gòu)說明:設(shè)計(jì)思路 .82.2 主程序功能描述及分析、主程序流程圖 .92.3 各子程序功能描述及子程序入口出口、各程序流程圖 .9五、 程序清單.1229設(shè)計(jì)題目:數(shù)字時(shí)鐘。設(shè)計(jì)的時(shí)鐘能夠?qū)崿F(xiàn)日常的時(shí)鐘顯示,同時(shí)具有時(shí)鐘調(diào)整、兩個(gè)鬧鐘及正點(diǎn)報(bào)時(shí)功能。IP單片機(jī):設(shè)計(jì)任務(wù)、功能描述整體設(shè)計(jì)任務(wù):本電子時(shí)鐘設(shè)計(jì)首要的工作是結(jié)合以往所學(xué)的單片機(jī)程序編寫理論和編

2、寫規(guī)則來編寫電子時(shí)鐘的軟件部分,編寫時(shí)要結(jié)合所配的AT89S52芯片的管腳功能和其他硬件電路, 該部分運(yùn)用keil單片機(jī)軟件來完 成。在編寫完軟件并檢測(cè)完正確后再編譯成.hex載入用Isis仿真軟件布好的 仿真硬件中運(yùn)行檢測(cè)程序是否正確,并調(diào)試。待這一切工作做好后再利用已焊接好的小系統(tǒng)板硬件電路來實(shí)踐實(shí)現(xiàn)軟件功能與硬件的結(jié)合。此步驟要用progisp單片機(jī)燒寫軟件來實(shí)現(xiàn)。在硬件設(shè)計(jì)上:( 1)用四個(gè)電位按鍵來實(shí)現(xiàn)對(duì)電子時(shí)鐘的調(diào)試工作,當(dāng)按第一下總控鍵時(shí)進(jìn)入時(shí)鐘的調(diào)整狀態(tài),有兩個(gè)電位按鍵分別來調(diào)整時(shí)鐘的分和時(shí),在調(diào)整時(shí)秒正常運(yùn)行;當(dāng)按第二下總控鍵時(shí)時(shí)鐘進(jìn)入鬧鐘一設(shè)置,有兩個(gè)電位按鍵分別來調(diào)整時(shí)鐘

3、的分和時(shí)的設(shè)定,另外有一個(gè)時(shí)鐘控鍵來實(shí)現(xiàn)鬧鐘是否開啟; 當(dāng)按第三下總控鍵時(shí)時(shí)鐘進(jìn)入鬧鐘二設(shè)置,其余操作同鬧鐘一設(shè)置操作,當(dāng)按第四下總控鍵時(shí)時(shí)鐘退出調(diào)整模式進(jìn)入正常時(shí)鐘走勢(shì)。( 2)用兩個(gè)四位數(shù)碼管來實(shí)現(xiàn)設(shè)計(jì)的顯示部分,其演示模式是:時(shí)時(shí)-分分-秒秒該數(shù)碼管組合的功能管腳是八個(gè)位選擇連接芯片的p2 引腳,八個(gè)顯示管位并聯(lián)再接入到芯片p0 引腳。從而在功能上區(qū)分開,實(shí)現(xiàn)數(shù)碼管的顯示功能。( 3)用一個(gè)led 燈和電阻組成的簡(jiǎn)易電路結(jié)合設(shè)計(jì)來實(shí)現(xiàn)正點(diǎn)報(bào)時(shí)的功能,當(dāng)時(shí)鐘走到正點(diǎn)時(shí),該led 燈便能夠閃爍五秒剛好是五下,之后進(jìn)入暗的狀態(tài),等到下一個(gè)整點(diǎn)到來。( 4)用一個(gè)喇叭和三極管等配件組成一個(gè)鬧鐘電

4、路,再與芯片的p1.0引腳連接。當(dāng)時(shí)鐘到設(shè)定的報(bào)時(shí)點(diǎn)時(shí)便會(huì)發(fā)出“嘟嘟嘟嘟.的聲音來實(shí)現(xiàn)鬧鐘功能。( 5)用一個(gè)按鍵和其他部件組成的復(fù)位電路與芯片連接來實(shí)現(xiàn)整個(gè)程序及硬件的重新復(fù)位功能。硬件原理分析電路設(shè)計(jì)分析電路原理設(shè)計(jì)是基于小系統(tǒng)包括電源電路、復(fù)位電路、按鍵電路、時(shí)鐘電路、數(shù)碼管顯示驅(qū)動(dòng)電路、輸出控制電路。電源部分是用電池來提供的3v-5v,晶體振蕩器采用的是12MHz勺石英晶體振蕩器??傮w硬件設(shè)計(jì)框圖如下:1.1 復(fù)位電路本次設(shè)計(jì)采用按鍵電平復(fù)位,按鍵電平復(fù)位相當(dāng)于按復(fù)位鍵后,復(fù)位端通 過電阻與Vcc電源接通;1.2 振蕩器和時(shí)鐘電路設(shè)計(jì)1.21 振蕩器和時(shí)鐘電路工作原理80C51系列單片

5、機(jī)內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器,但要形成時(shí)鐘,外部還需附加電路。XTAL1引腳為反相放大器和時(shí)鐘發(fā)生電路的 輸入端,XTAL2引腳為反相放大器的輸出端。片內(nèi)時(shí)鐘發(fā)生器實(shí)質(zhì)是個(gè)2分頻的觸發(fā)其輸入來自振蕩器的fosc,輸出為2相時(shí)鐘信號(hào),即節(jié)拍信號(hào)P1、P2, 器頻率為fosc2。2個(gè)節(jié)拍為1個(gè)狀態(tài)時(shí)鐘S。狀態(tài)時(shí)鐘再3分頻后為ALE信 號(hào),其頻率為fosc6,狀態(tài)時(shí)鐘6分頻后為機(jī)器周期信號(hào),器頻率為fosc12。 特殊功能寄存器PCON勺PD位可以控制振蕩器的工作,當(dāng) PD=0時(shí),振蕩器停 止工作,單片機(jī)進(jìn)入低功耗工作狀態(tài),復(fù)位后, PD=0振蕩器正常工作。1.22 本次設(shè)計(jì)采用常用

6、的內(nèi)部時(shí)鐘方式接法:通過在引腳XTAL1和XTAL2兩端跨接晶體或陶瓷諧振器,再利用芯片內(nèi)部的振蕩電路,就構(gòu)成了穩(wěn)定的自 激振蕩器,具發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路,如圖所示,外接晶振時(shí),C5和C6的值通常選擇為20-30pf。CS C6對(duì)頻率有微調(diào)作用,影響振蕩的穩(wěn)定性和起振速度。所采用的晶體或陶瓷諧振器得頻率選擇0-2433MHz。為了減小寄生電容,更好的保證振蕩器穩(wěn)定、可靠的工作,諧振器和電容贏盡可能與單片機(jī)芯片靠近安裝。1.3電源:,LT71C1 -TF4u7 < TEX,C2''1L4u7<TEXT>X1 :CRYSTALp-,<TEXT>

7、; .U1>XTAL1XTAL2RST因?yàn)樵撾娐匪桦妷簽?-5v,可直接用電池供應(yīng)或也可以用直流電源供應(yīng),但需經(jīng)過變壓才行。1.4數(shù)碼管顯示電路采用LED共陽極數(shù)碼管的發(fā)光二極管接到高電平(電壓為5V ,用LED動(dòng)態(tài)掃描顯示方式,在單片機(jī)電路里,芯片的驅(qū)動(dòng)電流很小,般為微安級(jí)別的,要通過三極管(可驅(qū)動(dòng)電流為毫安級(jí)別,甚至更大)來驅(qū)動(dòng)LED (正常工作電流為幾十毫安)發(fā)光,本設(shè)計(jì)由 P2端口掃描數(shù)碼管的選通,P0 口送數(shù)據(jù)顯示。0 I-DO-DSn n«crsgNRixzI 口 7八 M 'OSTAPS 口日反而 B-T/MWF2.1/A9 PZ-2fAT3 PZZVA

8、11 F2.4WJIZ PZS'A-QzajurRX。tj KIH ILJTWTT P:3.1&Tn FJArTipt t.TTF'U2 A :'乒.1.5 按鍵電路S1按鍵接在P3.0 口,用于切換正常走時(shí)、調(diào)時(shí)間、設(shè)定鬧鐘;S2按鍵接在 P3.1 口,用于調(diào)整時(shí)鐘分加一和調(diào)鬧鐘時(shí)間分加一的功能; S3按鍵接在P3.2 口,用于調(diào)整時(shí)鐘時(shí)加一和調(diào)鬧鐘時(shí)加一的功能; S4按鍵接在P3.3 口,用于設(shè) 定是否開啟鬧鐘。3-4- 5-6-7 8ATS9C52P1.0'H2P1.1/T2EXP1.2P1.3P1.4P1.5P1.BP1.7P3G/RXE>

9、 P3.1/TXE) P32/LNT0 P31NT1F3.47TOP3.5/T1 P3.B/WR-P3.7/R&10五 l7 苞-1415正17;:4:L4 Ili4 IkJII L 4北:rtz-r >1.6 輸出控制電路在P1.1和P1.0端口分別接一個(gè)發(fā)光二極管,用于整點(diǎn)報(bào)時(shí),和一個(gè)蜂鳴器, 用于響鬧鈴。1a 1RSTP2.1 ZAQiF2.3/Ai1 田P2j5/A-13 PS .P2/Z/A-1SFO.OADO FO. IjGAlD I F0.2/A02 尸口.3Z> 3 F>Q,邛A X PO.S/ADi5 RO a/AC® PO.7/AD-7尸

10、力.OZT2Pil . 1 /T2E,戶1NP1 -3R j 3 dOOR.El.O/RX£>PS . 1 / TXJ&F3:.s7ilNTOiF'3.3/T!NTTPSEN ALE EA- ' -!V'llrnM戶(=4卜.EHUIR.M4OOR>-i -1- - nDILI=DxR|r30311.7整體布局圖一 Os3iLS1 1 n1£:心”.四、軟件設(shè)計(jì)分析R14 . 回唐. eTEKTSWT凡1PiQJVAfiO P 口HMHlXT皿陽五AMPD HAD.FI lSVADSP。嬴gP.STPNU梏PZW船F(xiàn)ZJXA.Cp

11、旨印PZIW11ialeaw “a隹pihtz p iFZJ&AOFZfiM* FZ.rrAspPl JHITOF13戶1gFlTWTTF3.*nuPISP3ST1PUSPl.&W:PITFl TiTO仔I值R13 .JER twh20FNZ3瑞,ID iTF 2J1 i* 16 TF _1、地址空間及端口分配30h37h 地址空間分別分配給 ledl、led2、led3、led7、led4、led8、led5、 led6.用于數(shù)碼管顯示 38h地址空間分配給gn,定義38h空間為按鍵次數(shù)讀取的緩存空間。3bh地址空間分配給nk1,定義3bh空間是鬧鐘開啟開關(guān)按鍵次數(shù)讀取緩存空

12、間39h地址空間分配給naolf,3ah地址空間分配給 naols,3dh地址空間分配給nao2f,3eh地址空間分配給nao2s,用于存儲(chǔ)調(diào)整鬧鐘一分加一按鍵次數(shù)讀取緩存。 用于存儲(chǔ)調(diào)整鬧鐘一時(shí)加一按鍵次數(shù)讀取緩存。用于存儲(chǔ)調(diào)整鬧鐘二分加一按鍵次數(shù)讀取緩存。 用于存儲(chǔ)調(diào)整鬧鐘二時(shí)加一按鍵次數(shù)讀取緩存。50h地址空間用于存放50ms中斷寄存。51h地址空間用與存放秒的十位和個(gè)位。52h地址空間用與存放分的十位和個(gè)位。53h地址空間用與存放時(shí)的十位和個(gè)位。p1.1端口分配給zdled ,定義燈接到p1.1.利用setb和clr zdled控制燈的亮 暗起到整點(diǎn)報(bào)時(shí)顯示作用。p1.0端口分配給nb

13、,定義蜂鳴器接到p1.0利來實(shí)現(xiàn)鬧月中p0 端口分配給數(shù)碼管顯示控制p2 端口分配給數(shù)碼管選擇顯示控制。2、總體架構(gòu)說明該時(shí)鐘程序設(shè)計(jì)思路如下:( 1) 、在程序頭將設(shè)計(jì)中的一些固定空間進(jìn)行分配并注釋。( 2) 、初始化程序,如設(shè)定時(shí)鐘初始顯示00 59 56 以便一開始就能進(jìn)入整點(diǎn)報(bào)時(shí)狀態(tài),顯示該功能;設(shè)定使用定時(shí)器1; 將一些未到時(shí)鐘設(shè)計(jì)功能的功能端口關(guān)閉等。( 3)開始主程序進(jìn)行程序掃描,先掃描拆字子程序,將分配好的時(shí)分秒等高地位的數(shù)字調(diào)入到顯示子程序中。顯示子程序通過分配的空間對(duì)應(yīng)口將拆字子程序的內(nèi)容在七段數(shù)碼管上顯示相應(yīng)的時(shí)分秒,再調(diào)用走時(shí)程序使時(shí)鐘進(jìn)行讀秒等工作。進(jìn)入按鍵掃描,判斷

14、按鍵是否有變動(dòng),若有就根據(jù)設(shè)計(jì)程序?qū)ο鄳?yīng)的按鍵按入次數(shù)而進(jìn)行實(shí)現(xiàn)相應(yīng)的功能。如進(jìn)入時(shí)間調(diào)整、鬧鐘一設(shè)置、鬧鐘開啟與否等。進(jìn)入鬧鐘一、二的判斷,在時(shí)分上與設(shè)置的鬧鈴時(shí)間吻合的話就做相對(duì)應(yīng)的判斷,再依據(jù)是否有開啟鬧鐘而進(jìn)行響鈴與否,如果有響鈴則設(shè)置其一直響鈴知道有人為按取消按鍵取消鬧鈴。進(jìn)入整點(diǎn)報(bào)時(shí)掃描,判斷是否在時(shí)分上都進(jìn)入了整點(diǎn),如果是就報(bào)時(shí)顯示燈閃爍五下(5s) ,然后就退出整點(diǎn)報(bào)時(shí),等到下一個(gè)整點(diǎn)的到來。 最后返回主程序頭重新依次掃描。顯示過程設(shè)有消隱,按鍵設(shè)有去斗。( 4) 、 子程序部分。在主程序的調(diào)用下依據(jù)不同的子程序工能而編寫子程序,有多級(jí)嵌套。這些子程序包括顯示子程序、拆字子程序

15、、延時(shí)子程序、走時(shí)間子程序、整點(diǎn)報(bào)時(shí)子程序、按鍵處理子程序、調(diào)時(shí)間子程序、鬧鐘設(shè)置子程序、鬧鐘子程序、鬧鐘開啟子程序。3、各子程序功能及出入口地址( 1)各子程序功能:顯示子程序:將拆分好的高低位時(shí)分秒拆分碼放入相對(duì)應(yīng)的數(shù)碼管,調(diào)用tab 選通相應(yīng)的七段數(shù)碼顯示時(shí)分秒當(dāng)前數(shù)字。拆字子程序:將空間 51h、 52h、 53h 內(nèi)的秒時(shí)分拆成高低字節(jié)分配到,30h、31h、 33h、 34h、 36h、 37h 實(shí)現(xiàn)時(shí)分秒的顯示。延時(shí)子程序:該子程序是為了實(shí)現(xiàn)八個(gè)七段數(shù)碼管顯示的順序顯示選通時(shí)問,2ms的顯示時(shí)間頻率是的顯示效果穩(wěn)定,同時(shí)作為按鍵開關(guān)掃描判斷去抖走時(shí)間子程序:該程序功能是使得秒程序

16、走動(dòng),走到59 后進(jìn)位分,后變00 從新開始計(jì)時(shí),分走到59 后進(jìn)位時(shí),分從新開始00 計(jì)時(shí),時(shí)走到23,分走到 59,秒走到59 后進(jìn)入從新日期周期計(jì)時(shí)。整點(diǎn)報(bào)時(shí)子程序:在達(dá)到整點(diǎn)時(shí)該程序的功能實(shí)現(xiàn)報(bào)時(shí),報(bào)時(shí)以led 燈閃爍顯示為報(bào)時(shí)信號(hào)。按鍵處理子程序:該程序進(jìn)行按鍵處理的功能判斷分別是有調(diào)試按鍵處理,鬧鐘設(shè)置按鍵處理,鬧鐘開啟與否按鍵處理。調(diào)時(shí)間子程序:該程序功能實(shí)現(xiàn)時(shí)間的調(diào)整。調(diào)鬧鐘子程序:該程序鬧鐘程序設(shè)計(jì)與按鍵結(jié)合實(shí)現(xiàn)鬧鐘設(shè)置調(diào)整的功能。鬧鐘開啟子程序:該功能實(shí)現(xiàn)鬧鐘開啟與否而達(dá)到鬧鐘響鈴功能。4、程序流程圖#20>50h,重新賦值,再定時(shí)1sreti(四)走時(shí)間子程序程序清

17、單J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J;初始化J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J Jled1 equ30h;定義30h =第 8 個(gè)數(shù)碼管(最右邊第1 個(gè)數(shù)碼管)的顯示內(nèi)容=LED1書'的個(gè)位led2 equ 31h;定義31h

18、= 第7個(gè)數(shù)碼管顯示內(nèi)容=LED2=#的十位led3 equ32h;定義32h =第6個(gè)數(shù)碼管顯示內(nèi)容=LED3=f分秒中間的一個(gè)橫桿led7 equ33h;定義33h =第5個(gè)數(shù)碼管顯示內(nèi)容=LED7步的個(gè)位led4 equ34h;定義34h =第4個(gè)數(shù)碼管顯示內(nèi)容=LED4步的十位led8 equ35h;定義35h =第3個(gè)數(shù)碼管顯示內(nèi)容=LED8=f分秒中間的一個(gè)橫桿led5 equ36h;定義36h =第2個(gè)數(shù)碼管顯示內(nèi)容=LED5=f的個(gè)位led6 equ37h;定義37h =第1個(gè)數(shù)碼管顯示內(nèi)容=LED6=f的十位gn equ 38h;定義38h 空間為按鍵次數(shù)讀取的緩存空間bss

19、j equ3fh;zdled bit p1.1; 定義燈接到p1.1. 利用setb 和 clr zdled 控制燈的亮暗nb bit p1.0;定義蜂鳴器接到p1.0 利來實(shí)現(xiàn)鬧鈴響nk1 equ 3bhnao1f equ 39hnao1s equ 3ahnao2f equ 3dhnao2s equ 3ehorg 00h;這句話把下面那條指令定位到( 燒寫到)00h 這個(gè)地址去sjmp main ;這里是單片機(jī)復(fù)位后運(yùn)行的第一條指令, 這句話使單片機(jī)跳到main 那里繼續(xù)執(zhí)行程序org 001bh;這句話把下面那條指令定位到( 燒寫到 )001b 這個(gè)地址去.ljmp zoushijian;

20、 這句話是定時(shí)器50 毫秒定時(shí)到之后,TH0,TL0記數(shù)到FFFFH時(shí)單片機(jī)自動(dòng)跳到這里運(yùn)行,我們?cè)侔阉絲oushijian 繼續(xù)執(zhí)行, 因?yàn)檫@個(gè)時(shí)候主程序已經(jīng)暫停運(yùn)行, 我們稱主程序發(fā)生了中斷 , 而 zuoshijian 就是中斷服務(wù)主程序.org 40h;把主程序main 定位到 40h 這個(gè)地址main: mov sp,#5FH;設(shè)置堆棧指針,存放進(jìn)入50ms中斷時(shí)的PCmov 50h,#0150ms中斷一次,所以;是 1 秒到了mov 51h,#55十進(jìn)制的50, 相當(dāng)于一開始讓;達(dá)整點(diǎn) , 利于調(diào)試整點(diǎn)報(bào)時(shí).mov 52h,#59十進(jìn)制的59, 相當(dāng)于一開始讓;50h 存放定時(shí)

21、器中斷的次數(shù), 現(xiàn)在定時(shí)器每賦初值 20, 利用 djnz 減 , 減到 0時(shí)自然就;51h 存放秒的十位和個(gè)位, 現(xiàn)在給32h 等于第 7個(gè) , 第 8個(gè)數(shù)碼管顯示50秒 , 盡快到;52h 存放分的十位和個(gè)位, 現(xiàn)在給3bh 等于第 4個(gè) , 第 5個(gè)數(shù)碼管顯示59分 , 盡快到達(dá)整點(diǎn),利于調(diào)試整點(diǎn)報(bào)時(shí).mov 53h,#00;53h存放小時(shí)的十位和個(gè)位,現(xiàn)在給00h等于十進(jìn)制的00, 相當(dāng)于一開始讓; 第 1 個(gè) , 第 2 個(gè)數(shù)碼管顯示00小時(shí) ,mov tmod,#10h ; 使定時(shí)器1 工作在工作模式1, 即 16 位定時(shí)器工作模式mov th1,#3ch;65536us-5000

22、0us=15536 微秒 , 剛好是 3cb0h,這樣定時(shí)器1每50ms進(jìn)入中斷一次mov tl1,#0afhsetb zdled; 還沒到整點(diǎn), 先讓燈暗mov a,#0mov r1,amov bssj,#10clr rs0clr rs1clr gnclr nao1fclr nao1sclr nk1setb nbsetb tr1 ;開啟定時(shí)器1, 使 TH1,TL1 不斷加 1setb et1 ;開啟定時(shí)器1中斷,使TH1,TL1力口至ij FFFF時(shí)讓單片機(jī)自動(dòng)跳到001bh 去執(zhí)行 , 如果不開啟這個(gè)中斷標(biāo)志,那么即使單片機(jī)TH1,TL1記數(shù)到FFFF,單片機(jī)也不會(huì)跳到001bh去 的.

23、setb ea ;開啟總中斷J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J 主程序J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J Jl5:noplcall chaizi; 把當(dāng)前的時(shí)分秒的值(即 53h51h 的內(nèi)容)按照十

24、位, 個(gè)位拆到35h30h 中l(wèi)call display; 把拆好的時(shí)分秒的十位, 個(gè)位分別顯示到相應(yīng)的數(shù)碼管上面.lcall anjian;理按鍵lcall xiang1;判斷鬧鐘lcall xiang2lcall nk;設(shè)置鬧鐘是否開lcall zdbs;整點(diǎn)報(bào)時(shí)sjmp l5; 主循環(huán)結(jié)束, 又跳到主循環(huán)開始處J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J顯示子程序, 把拆好

25、的時(shí)分秒的十位, 個(gè)位分別顯示到相應(yīng)的數(shù)碼管上面J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J入口地址:r2 、 r3出口地址:p0、 p2display:mov r0,#led1;從LED1開始顯示,即從第8個(gè)數(shù)碼管秒的個(gè)位開始mov dptr,#tabmov r2,#08mov r3,#0fehdisp_1: mov a,r0movc a,a+dptrmov p2,#0ffh數(shù)

26、碼管上面的亂碼消去mov p0,a看到顯示內(nèi)容;8 個(gè)數(shù)碼管同時(shí)顯示; 選通第 8 個(gè)數(shù)碼管, 關(guān)閉其他的數(shù)碼管;把當(dāng)前要顯示的數(shù)放到A里面; 得到當(dāng)前要顯示數(shù)的7 段碼; 關(guān)掉所有數(shù)碼管顯示, 消隱,把殘留在; 顯示當(dāng)前的數(shù), 運(yùn)行到這里, 人的眼睛應(yīng)該tab:mov a,r3 mov p2,a rl a inc r0 mov r3,alcall delay djnz r2,disp_1; 位選給 A; 選通相應(yīng)的數(shù)碼管; 得到新的位選碼; 指針指向下一個(gè)要顯示的內(nèi)容; 保存下一個(gè)位選碼, 以便選通下一個(gè)數(shù)碼; 延時(shí) 4 毫秒顯示當(dāng)前的數(shù)碼管; 跳回去 , 進(jìn)入下一個(gè)數(shù)碼管的顯示retdb0

27、c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0bfh,0ffh,8ch,3fh,7fhJ J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J; 采用除法指令實(shí)現(xiàn)的拆字程序; 入口地址:38h、; 出口地址:30h38h、3bhchaizi: mov a,gn ;顯示鬧鐘二cjnea,#3,chaizi2mova,nao2fmovb,#10di

28、vabmovled2,amovled1,bmova,nao2smovb,#10divabmovled4,amovled7,bmovled5,#02hmovled6,#0chretchaizi2:mov a,gn;顯示鬧鐘一cjnea,#2,chaizi1mova,nao1fmovb,#10divabmovled2,amovled1,bmova,nao1smovb,#10divabmovled4,amovled7,bmovled5,#01hmovled6,#0chlcallbcdretchaizi1:mov a,51h把 51h 這個(gè)秒的數(shù)值拆成個(gè)位和十位movb,#10divabmovled2

29、,a秒的十位進(jìn)入LED2保存movled1,b秒的個(gè)位進(jìn)入LED1保存mova,52h把 52h 這個(gè)分的數(shù)值拆成個(gè)位和十位movb,#10divabmovled4,a分的十位進(jìn)入LED4保存movled7,b分的個(gè)位進(jìn)入LED7保存mova,53h把 53h 這個(gè)時(shí)的數(shù)值拆成個(gè)位和十位movb,#10div abmov led6,a; 時(shí)的十位進(jìn)入LED6保存mov led5,b; 時(shí)的個(gè)位進(jìn)入LED5保存lcall bcd1lcall bcd2; 處理第 3 個(gè)和第 6 個(gè)數(shù)碼管的顯示retbcd1: mov a,gncjne a,#0,l3cjne r1,#0,l3mov a,50h的中

30、斷cjne a,#09,l1l1: jc l3mov a,nk1cjne a,#1,k_1mov led3,#0dh retk_1: mov led3,#0bh ret斷)l3: mov a,nk1cjne a,#1,k_2mov led3,#0eh retk_2: mov led3,#0ah 成兩個(gè)橫桿一閃一閃效果;讀取50ms中斷的次數(shù),看看經(jīng)過了幾次 50ms; 沒到 0.5 秒 , 顯示橫桿;是否經(jīng)過了 0.5秒(即是否經(jīng)過了 10次的50ms中; 已經(jīng)到了0.5 秒 , 讓兩個(gè)橫桿消失, 這樣造retbcd2: mov a,gn cjne a,#0,l13 cjne r1,#0,l1

31、3 mov a,50h的中斷cjne a,#09,l11l11: jc l13 mov a,nk1 cjne a,#1,k_11 mov led8,#0dh retk_11: mov led8,#0bh ret斷);讀取50ms中斷的次數(shù),看看經(jīng)過了幾次 50ms; 沒到 0.5 秒 , 顯示橫桿是否經(jīng)過了 0.5秒(即是否過了 10次50ms中l(wèi)13: mov a,nk1 cjne a,#1,k_21mov led8,#0eh ret; 已經(jīng)到了0.5 秒 , 讓兩個(gè)橫桿消失, 這樣造成兩k_21: mov led8,#0ah 個(gè)橫桿一閃一閃效果retJ J J J J J J J J J

32、J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J; 延時(shí)程序;入口地址:r6、 r7;出口地址:r6delay: mov r6,#5;秒的延時(shí)程序dl2: mov r7,#100dl1: nop;1nop;1djnz r7,dl1 ;2 djnz r6,dl2 ;2 retJ J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J

33、J J J J J J J J J J J J J J J J J J J J J J J J J J J J這是一個(gè)(1+1+2)*100+2+1)*5=2015 微秒 =2毫;1 微秒微秒微秒微秒微秒J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J;走時(shí)間;;入口地址:acc、 psw;出口地址:acczoushijian:PUSH acc ;0E0H就是 A,見課本44頁,因?yàn)檫@個(gè)時(shí)候SP=5fh,故把A的值保存

34、在5fh里面去PUSH psw ;因?yàn)?D0H就是PSW(1課本44頁),止匕時(shí)SP=60H所以這句話是把PSW勺值保存到60h中去mov th1,#3ch ;重新給定時(shí)器賦初值, 讓它再定時(shí)50msmov tl1,#0afhdjnz 50h,l2;判斷是否到了1 秒沒有 ,50h 減到0表示已經(jīng)進(jìn)行了 20次的50ms,剛好1秒mov 50h,#20; 已經(jīng)到 1 秒 , 重新賦次數(shù), 再定時(shí)記數(shù)一秒inc 51hmov a,51h; 從 51h 讀取秒的值(包含十位, 個(gè)位 )cjne a,#60,l2;判斷是否到60秒 , 沒到 60 秒 , 中斷返回退到主程序mov 51h,#0;到

35、60秒 , 重新從 0秒加起 , 分鐘加 1inc 52hmov a,52h;讀取分鐘cjne a,#60,l2;判斷是否到了60 分鐘 , 沒到 60 分鐘 , 中斷返回退到主程序mov 52h,#0inc 53hmov a,53h;cjne a,#24,l2;禱贗說街鞒絳?mov 53h,#0開始新一天定時(shí)l2:POP psw;個(gè)時(shí)候 SP=60h,0D0K是 PSWPOP acc;個(gè)時(shí)候SP=5fh,0E0H就是Areti;PC到 60 分鐘 , 重新從 0 分鐘加 , 小時(shí)加 1讀取小時(shí)值判斷是否到了24小時(shí) , 沒到 24小時(shí)街卸戲到了 24 小時(shí) , 重新清零小時(shí), 從 00 小時(shí)

36、又把放在60h的東西放回到PSW1面,因?yàn)檫@把放在60h的東西放回到PSW1面,因?yàn)檫@指針變回進(jìn)入中斷時(shí)的下一條指令的值J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J;整點(diǎn)報(bào)時(shí)子程序?報(bào)時(shí)時(shí)間為5 秒;;入口地址:51h、 52h;出口地址:p1.1zdbs: mov a,52hcjne a,#0,zdbs_1mov a,50hcjne a,#10,zdbs_2zdbs_2: jc zdbs_

37、3mov a,51hcjne a,#5,zdbs_4zdbs_4: jnc zdbs_1clr p1.1retzdbs_3: mov a,51hcjne a,#5,zdbs_5zdbs_5: jnc zdbs_1setb p1.1ret; 打開整點(diǎn)報(bào)時(shí)的指示燈zdbs_1: setb zdledret;按鍵處理;;入口地址:38h、 p3;出口地址:p3.0anjian:mov a,#0ffhmovjblcalljbp3,a ;0000p3.0,js_1delayp3.0,js_1給 P1 口上拉高電頻a_1: jnblcall jnb incmov cjne mov retp3.0,a_1

38、delay p3.0,a_1 gna,gn a,#4,js_1gn,#0fanhui: retJ J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J調(diào)時(shí)間J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J

39、 J J;入口地址:38h、 52h、 53h;出口地址:38h、 p3.1 、 p3.2js_1: mov a,gncjne a,#1,jn1_1js1_2: jb p3.1,js2_2lcall delayjb p3.1,js2_2js1_1: jnb p3.1,js1_1lcall delayjnb p3.1,js1_1inc 52hmov a,52hcjne a,#60,anjianmov 52h,#0 retjs2_2: jb p3.2,jn1_1lcall delayjb p3.2,jn1_1js2_1: jnb p3.2,js2_1lcall delayjnb p3.2,js2_1inc 53hmov a,53hcjne a,#24,anjianmov 53h,#0 retJ J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論