單片機實驗報告——LED數(shù)碼管顯示實驗(共20頁)_第1頁
單片機實驗報告——LED數(shù)碼管顯示實驗(共20頁)_第2頁
單片機實驗報告——LED數(shù)碼管顯示實驗(共20頁)_第3頁
單片機實驗報告——LED數(shù)碼管顯示實驗(共20頁)_第4頁
單片機實驗報告——LED數(shù)碼管顯示實驗(共20頁)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機實驗(shyn)報告 LED數(shù)碼管顯示(xinsh)實驗 指導(dǎo)(zhdo)教師: 專業(yè)班級: 姓名 : 學(xué)號 : 聯(lián)系方式 : 任務(wù)(rn wu)要求 實驗?zāi)康模豪斫釲ED七段數(shù)碼管的顯示控制原理,掌握數(shù)碼管與MCU的接口技術(shù),能夠編寫數(shù)碼管顯示驅(qū)動程序;熟悉(shx)接口程序調(diào)試方法。實驗內(nèi)容:利用C8051F310單片機控制(kngzh)數(shù)碼管顯示器基本要求:利用末位數(shù)碼管循環(huán)顯示數(shù)字0-9,顯示切換頻率為1Hz。提高要求:在4位數(shù)碼管顯示器上依次顯示當(dāng)天時期和時間,顯示格式如下:yyyy (年份)mm.dd(月份.日)hh.mm(小時.分鐘)思考題:數(shù)碼管采用動態(tài)驅(qū)動方式時刷新頻率應(yīng)

2、如何選擇?為什么?設(shè)計思路C8051F310單片機片上晶振為24.5MHz,采用8分頻后為3.0625MHz ,輸入時鐘信號采用48個機器周期。0到9對應(yīng)的斷碼為:FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H基礎(chǔ)部分: 由于只需要用末位數(shù)碼管顯示,不需要改變位碼,所以只需要采用LED的靜態(tài)顯示。采用查表的方法,通過循環(huán)結(jié)構(gòu),每次循環(huán)查找數(shù)據(jù)表下一地址,循環(huán)十次后重新開始循環(huán)。每次循環(huán)延時1s,采用定時器0定時方式1。提高(t go)部分: 四個數(shù)碼管都要顯示,所以采用(ciyng)LED的動態(tài)顯示。由于數(shù)碼管的位選由P0.7、P0.6控制,P0端口的其他引腳都

3、沒用到,所以對P0端口初始化賦00H,每次循環(huán)加40H、選中下一位,四次后十六進制(sh li jn zh)溢出,P0端口變又為00H回到第一個數(shù)碼管。 每位數(shù)碼管顯示一個段碼后都延時1ms(否則數(shù)碼管太亮,刺眼)采用定時器0定時方式1,依然采用查表法改變段碼值。通過循環(huán):DJNZ R5,BACK MOV R5,#250 DJNZ R4,BACK MOV R4,#8 來控制每種模式的切換時間,我采用2s切換一次(8*250*1ms=2s)。切換模式,可以采用改變查表法的偏移量來實現(xiàn),沒切換一次模式,偏移量加04H,三次后回到初始偏移量,來實現(xiàn)三種模式的循環(huán)顯示。資源分配基礎(chǔ)部分:P0.7、P0

4、.6:控制數(shù)碼管的位選P1:控制數(shù)碼管段碼的顯示R0:控制段選提高部分:P0.7、P0.6:控制數(shù)碼管的位選P1:控制(kngzh)數(shù)碼管段碼的顯示R0:控制(kngzh)位選R1:控制(kngzh)段選R3:用于改變偏移量來切換模式R4、R5:控制循環(huán)次數(shù),控制模式切換時間流程圖基礎(chǔ)部分:提高(t go)部分五、源代碼 (含文件頭說明(shumng)、資源使用說明、語句行注釋)基礎(chǔ)(jch)部分: ;*;Filename:shumaguan.asm;Description: 利用末位數(shù)碼管循環(huán)顯示(xinsh)數(shù)字0-9,顯示切換頻率為1Hz。;Designed by:gxy;Date:20

5、12/11/7;*$include (C8051F310.inc)ORG 0000H ;復(fù)位入口AJMP MAINORG 000BH ;定時器0中斷入口AJMP TIME0MAIN: ACALL Init_Device ;初始化配置 MOV P0,#00H ;位選中第一個數(shù)碼管 MOV R0,#00H ;偏移指針初值 CLR PSW.1 ;標(biāo)志位清零 SETB EA ;允許總中斷 SETB ET0 ;允許定時器0中斷 MOV TMOD,#01H ;定時器0選工作方式1 MOV TH0,#06H MOV TL0,#0C6H ;賦初值,定時1sLOOP: MOV A,R0 ADD A,#0BH ;

6、加偏移量 MOVC A,A+PC ;查表取,段碼 MOV P1,A ;段碼給P1顯示 SETB TR0 ;開定時LOOP1: JNB PSW.1,LOOP1 ;等待(dngdi)中斷 CLR PSW.1 INC R0 ;偏移(pin y)指針加一 CJNE R0,#0AH,LOOP3 MOV R0,#00H ;偏移(pin y)指針滿10清零 AJMP LOOP ;返回 DB 0FCH,60H,0DAH,0F2H,66H ;段碼數(shù)據(jù)表:0、1、2、3、4 DB 0B6H,0BEH,0E0H,0FEH,0F6H; 5、6、7、8、9;*; 定時器0中斷;*TIME0: SETB PSW.1 ;標(biāo)

7、志位置一 MOV TH0,#06H ;定時器重新賦值 MOV TL0,#0C6HLOOP3: CLR TR0 ;關(guān)定時 RETI;*;初始化配置;*PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h retTimer_Init: mov TMOD, #001h mov CKCON, #002h retPort_IO_Init: ; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Open-Drain,

8、Digital ; P0.3 - Unassigned, Open-Drain, Digital ; P0.4 - Unassigned, Open-Drain, Digital ; P0.5 - Unassigned, Open-Drain, Digital ; P0.6 - Unassigned, Open-Drain, Digital ; P0.7 - Unassigned, Open-Drain, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.

9、2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 - Unassigne

10、d, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040h retInterrupts_Init: mov IE, #002h retInit_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init retend提高(t go)部分:;*;Filename: shumaguan2.asm;Description

11、:在4位數(shù)碼管顯示器上依次顯示當(dāng)天時期和時間,顯示格式(g shi)如下:; 2012 (年份(ninfn); 12.07(月份.日); 12.34(小時.分鐘);Designed by:gxy;Date:2012/11/7;*$include (C8051F310.inc)ORG 0000HAJMP MAINORG 000BHAJMP TIME0MAIN: ACALL Init_Device MOV R0,#00H ;用于位選 MOV R1,#00H ;用于段選 MOV R2,#22H ;置偏移量,用于控制模式 MOV R4,#8 MOV R5,#250 CLR PSW.1 ;標(biāo)志(bioz

12、h)位清零SETB EA ;允許(ynx)總中斷 SETB ET0 ;允許(ynx)定時器0中斷 MOV TMOD,#01H ;定時器0選工作方式1 MOV TH0,#0FFH MOV TL0,#0C0H ;定時器賦初值1msBACK: MOV P0,R0 ;位選 MOV A,R0 ADD A,#40H ;選下一位 MOV R0,A MOV A,R1 ADD A,R2 ;加偏移量 MOVC A,A+PC ;查表取段碼 MOV P1,A ;段碼給P1顯示LOOP: SETB TR0 ;開定時HERE: JNB PSW.1,HERE ;等待中斷 CLR PSW.1 DJNZ R5,BACK MOV

13、 R5,#250 DJNZ R4,BACK MOV R4,#8 ;循環(huán)2000次(2s) MOV A,R2 ADD A,#04H;偏移量加04H,到下一模式段碼初值地址 MOV R2,A CJNE R2,#2EH,LOOP2 MOV R2,#22H ;加三次(sn c)后偏移量回到初值LOOP2: AJMP BACK ;返回進入(jnr)下一模式;段碼數(shù)據(jù)表: DB 0DAH,60H,0FCH,0DAH ; 2102 DB 0E0H,0FCH,61H,60H; 701. 1 DB 66H,0F2H,0DBH,60H; 432. 1;*; 定時器0中斷(zhngdun);*TIME0: MOV

14、TH0,#0FFH MOV TL0,#0C0H CLR TR0SETB PSW.1 INC R1 ;偏移指針加一 CJNE R1,#04H,LOOP MOV R1,#00H ;偏移指針滿04H清零RETI;*; 初始化配置;*PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h retTimer_Init: mov TMOD, #001h mov CKCON, #002h retPort_IO_Init: ; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Di

15、gital ; P0.2 - Unassigned, Open-Drain, Digital ; P0.3 - Unassigned, Open-Drain, Digital ; P0.4 - Unassigned, Open-Drain, Digital ; P0.5 - Unassigned, Open-Drain, Digital ; P0.6 - Unassigned, Open-Drain, Digital ; P0.7 - Unassigned, Open-Drain, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1

16、- Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned,

17、 Open-Drain, Digital ; P2.1 - Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040h retInterrupts_Init: mov IE, #002h retInit_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init retend六、程序測試方法與結(jié)果

18、(ji gu)、軟件性能分析 軟件(run jin)調(diào)試總體截圖:基礎(chǔ)(jch)部分:軟件(run jin)運行時,我們發(fā)現(xiàn)P0端口為00H,P1端口以依次為FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H。說明第一個數(shù)碼管依次顯示0、1、2、3、4、5、6、7、8、9 如圖,這是程序運行時的一個(y )截圖,P0端口為00H,位選第一個數(shù)碼管,P1端口為BEH,表示第一個數(shù)碼管顯示(xinsh)數(shù)字“6” 0到9顯示如下: 所以(suy),軟件(run jin)調(diào)試時,運行正常。Program Size: data=8.0 xdata=0 code=112硬件(

19、yn jin)調(diào)試時C8051F310單片機開發(fā)板上第一個數(shù)碼管循環(huán)顯示數(shù)字0-9,顯示切換頻率為1Hz。運行正常,數(shù)碼管亮度適中,如圖:綜上:基礎(chǔ)部分代碼,無論是在軟件上還是(hi shi)硬件上都運行正常,達到了實驗的要求。提高(t go)部分:軟件(run jin)調(diào)試時,P0端口不斷在00H、40H、80H、C0H中循環(huán)跳動,說明每1ms換一個位碼,即每1ms亮下一個數(shù)碼管,軟件截圖如下:P1端口也不斷(bdun)在0DAH,60H,0FCH,0DAH(2102 )間跳動(tiodng) ;過2s后切換(qi hun)到在0E0H,0FCH,61H,60H(701. 1)間跳動;在過2s在66H,0F2H,0DBH,60H(432. 1)間跳動;再過2s后又切換到第一種模式所以,軟件調(diào)試時,運行正常。Program Size: data=8.0 xdata=0 code=141硬件調(diào)試時C8051F310單片機開發(fā)板上4位數(shù)碼管顯示器上依次顯示年份、月日和時分,亮度適中每2s切換一次,切換正常,截圖如下:分別顯示2012年、11月07日、12點34分。綜上:提高部分代碼,無論是在軟件上還是(hi shi)硬件上都運行正常,達到了實驗的要求。七、思考題

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論