MCS51系列單片機系統(tǒng)其應用_第1頁
MCS51系列單片機系統(tǒng)其應用_第2頁
MCS51系列單片機系統(tǒng)其應用_第3頁
MCS51系列單片機系統(tǒng)其應用_第4頁
MCS51系列單片機系統(tǒng)其應用_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

MCS-51系列單片機系統(tǒng)及其應用

實驗四:時鐘實驗實驗內容:在實驗三的基礎上,利用LED顯示字型的功能,應用單片機的定時器及定時器中斷功能編制一程序,讓LED數(shù)碼顯示器上顯示出按精確秒信號的節(jié)律變化的字型,即電子時鐘。實驗目的:1:掌握在RAM區(qū)內開辟顯示緩沖區(qū)的方法。2:進一步熟悉用LED數(shù)碼管顯示字型程序的設計方法。3:掌握定時器初始值的計算方法。4:掌握定時器的用法以及定時器中斷的控制。5:明確中斷子程序與一般子程序的區(qū)別及聯(lián)系。6:學會設計簡單的數(shù)值比較程序,學會設計根據(jù)RAM中某一單元的內容進行查表的程序。實驗要求:1:設計程序時,應在內部RAM中開辟顯示緩沖區(qū),緩沖區(qū)內首先設置時鐘的初始時間<12-00-00)。2:利用定時器的計數(shù)溢出產(chǎn)生中斷,從而產(chǎn)生秒信號。3:將LED數(shù)字顯示程序設計為子程序,將時、分、秒加“1”的溢出判斷在中斷服務子程序中進行,主程序完成初始化后一直調用顯示子程序。程序的設計思路參考如下:1:將內部的RAM中的78H—7FH這八個單元作為顯示緩沖區(qū),將時鐘要顯示的初值的數(shù)字<非字型代碼)置入這八個單元中,等待顯示子程序利用其中的數(shù)據(jù)去查出相應的字型代碼,送出顯示。2:用有寄存器間接尋址功能的工作寄存器R0作為顯示緩沖區(qū)的指示器,將顯示緩沖區(qū)內的數(shù)據(jù)與查表類指令發(fā)生聯(lián)系,以便按顯示緩沖區(qū)內的數(shù)據(jù)查表。3:主程序初始化時首先將定時器中斷的總開關關閉,選擇一個定時器,設定該定時器的工作方式,將該定時器的兩個計數(shù)單元賦一預先設好的初始數(shù)據(jù)。開啟所有與所選擇的定時器有關的中斷開關,但不啟動計數(shù)器,作好準備。4:當主程序初始化完畢之后,開始調用顯示子程序之前開啟計數(shù)器,此時主程序即進入無休止的調用顯示子程序的狀態(tài),隨時準備著被定時器所中斷。5:在中斷子程序的入口處若有必要保護主程序在中斷時主要寄存器的狀態(tài),請務必執(zhí)行堆棧以保護中斷時CPU的現(xiàn)場。并且關閉所選擇的定時器的中斷允許控制位,但不要讓定時計數(shù)器停止計數(shù),重新對定時器的定時單元進行賦值<與主程序初始化時所賦的值相同)。6:靠定時器溢出一次,不可能產(chǎn)生秒信號,所以要在定時器溢出發(fā)生中斷,程序條入中斷服務程序后,不僅要給定時器重新賦值,而且要設計一個計數(shù)器,讓定時器溢出若干次,直到定時器定時的累積值達到1秒為止,然后對顯示緩沖區(qū)的秒位加“1”,在加“1”之后還要判斷是否產(chǎn)生進位,然后加以處理,結果讓屏幕上所顯示的數(shù)字為時鐘的有效數(shù)值,即秒位與分位不能超出60,小時位則不能超出24<統(tǒng)一將時鐘設計為24小時制)。

7:為了使所設計的程序簡短,建議將程序中相同的部分都設計成子程序。參考程序二例:<CJC7.ASM、CJC8.ASM)參考程序<CJC7,ASM與CJC8.ASM)的有關說明:程序一<CJC7.ASM)中編制了多個子程序,在程序的長度上與參考程序二<CJC8.ASM)相當。主程序略有不同,中斷服務程序則大有差別,但都能實現(xiàn)同一個目的<電子時鐘)。參考程序一:CJC7.ASMORG0000HAJMP0030HORG000BH ;定時器中斷入口地址AJMPINTT0 ;跳入中斷服務子程序MAIN: MOV78H,#00HMOV79H,#00HMOV7AH,#0AHMOV7BH,#00HMOV7CH,#00HMOV7DH,#0AHMOV7EH,#02HMOV7FH,#01H;顯示緩沖區(qū)初始化; MOVSP,#50HMOVR0,MOVSP,#50HMOVR0,#78HMOVTMOD,#01HMOVTH0,#17HMOVTL0,#0B8HSETB8CHSETB0AFHSETB0A9HMOVR6,#08HLOOP0: LCALLDISPSJMPLOOP0; DISP: MOVR1,#01HLOOP1: MOVA,@R0MOVCA,@A+DPTRMOVP0,AMOVP1,R1ACALLDELAYINCR0MOVA,R1CJNEA,#01H,LOOP1MOVR0,#78H;修改堆棧指針;給定顯示緩沖區(qū)首地址;設置定時器的定時方式;預置定時初值;開中斷、啟動定時器;調用顯示子程序顯示1個數(shù)字;顯示8個數(shù)字RET。DELAY: MOVR3,#0FFH;中斷服務程序;定時器再次預置初值;中斷服務程序;定時器再次預置初值;保護現(xiàn)場;到1秒否?;秒加“1”;到60秒否?;秒位清零;分加“1”;到60分否?;分位清零;小時加“1”;到24小時否?;小時位清零中斷返回DJNZR3,$MOVR4,#0FFHDJNZR4,$RET;0.5毫秒延時。 DATA: DB0C0H,0F9H,0A4HDB0B0H,99H,92HDB82H,0F8H,80HDB90H,0BFH ;顯示字型代碼表INTT0:MOVTH0,#17HMOVTL0,#0B8HPUSHACCPUSHPSWSETBPSW.3MOVA,30HDECAMOV30H,AJNZRETOMOV30H,#08HMOVR0,#79HACALLADD1MOVA,R2XRLA,#60JNZRETOACALLCLR0MOVR0,#7CHACALLADD1MOVA,R2XRLA,#60JNZRETOACALLCLR0MOVR0,#7FHACALLADD1MOVA,R2XRLA,#24JNZRETOACALLCLR0RETO: POPPSWPOPACC;恢復現(xiàn)場RETI

。 ADD1:MOVA,@R0;加“1”子程序DECR0SWAPAORLA,@R0;合并字節(jié)ADDA,#01H;加“1”DAAMOVR2,AANLA,#0FH;坼分字節(jié)MOV@R0,A;放入顯示緩沖區(qū)MOVA,R2INCR0ANLA,#0F0HSWAPAMOV@R0,A;放入顯示緩沖區(qū)。 CLR0:RET CLRAMOV@R0,ADECR0MOV@R0,ARET ;清零子程序參考程序二:CJC8.ASMORG0000HAJMP000EH ;主程序入口ORG000BH ;定時器中斷程序入口AJMPINTT0 ;跳入中斷服務程序ORG000EHMAIN: MOV78H,#00HMOV79H,#00HMOV7AH,#0AHMOV7BH,#00HMOV7CH,#00HMOV7DH,#0AHMOV7EH,#02HMOV7FH,#01H;顯示緩沖區(qū)初始化MOVR0,#78HMOVTMOD,#01HMOVTH0,#17HMOVTL0,#0B8HSETBTR0SETBET0SETBEA ;定時器的控制MOVR6,#08HLOOP0:LCALLDISP ;調用顯示程序SJMPLOOP0; DISP:MOVR1,#01H ;顯示子程序LOOP1: MOVA,@R0MOVCA,@A+DPTRMOVP0,AMOVP1,R1ACALLDELAYINCR0MOVA,R1RLAMOVR1,ACJNEA,#01H,LOOP1MOVR0,#78HRETDELAY: MOVR3,#0FFHDJNZR3,$MOVR4,#0FFHDJNZR4,$RET ;顯示用延時程序DATA: DB0C0H,0F9H,0A4HDB0B0H,99H,92HDB82H,0F8H,80HDB90H,0BFH ;顯示字型代碼表INTT0:MOVTH0,#17H;中斷服務程序MOVTL0,#0B8HPUSHACCDJNZR6,RETOINC78HMOVA,78HCJNEA,#0AH,RETOMOV78H,#00HINC79HMOVA,79HCJNEA,#06H,RETOMOV79H,#00HINC7BHMOVA,7BHCJNEA,#0AH,RETOINC7CHMOVA,7CHCJNEA,#06H,RETOMOV7CH,#00HINC77HINC7EHMOVA,77HCJNEA,#24,TEETRETO:MOV77H,#00HMOV7EH,#00HMOV7F

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論