單片機(jī)實(shí)驗(yàn)報(bào)告LED燈控制器_第1頁
單片機(jī)實(shí)驗(yàn)報(bào)告LED燈控制器_第2頁
單片機(jī)實(shí)驗(yàn)報(bào)告LED燈控制器_第3頁
單片機(jī)實(shí)驗(yàn)報(bào)告LED燈控制器_第4頁
單片機(jī)實(shí)驗(yàn)報(bào)告LED燈控制器_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、. 微機(jī)實(shí)驗(yàn)報(bào)告 LED燈控制器 指導(dǎo)教師: 專業(yè)班級 : 姓名: 學(xué)號: 聯(lián)系方式: . . 一、 任務(wù)要求 實(shí)驗(yàn)?zāi)康模杭由顚Χ〞r/計(jì)數(shù)器、中斷、IO端口的理解,掌握定時/計(jì)數(shù)器、中斷的應(yīng)用編程技術(shù)及中斷程序的調(diào)試方法。 實(shí)驗(yàn)內(nèi)容:利用C8051F310單片機(jī)設(shè)計(jì)一個LED燈控制器 主要功能和技術(shù)指標(biāo)要求: 1. LED燈外接于P0.0端。 2. LED燈分別按2Hz,1Hz和0.5Hz三種不同頻率閃動,各持續(xù)10s。 3. 在LED燈開始和停止閃爍時蜂鳴器分別鳴響1次。 4. 利用單片機(jī)內(nèi)部定時器定時,要求采用中斷方式。 提高要求: 使用按鍵(KINT)控制LED燈閃爍模式的切換。 二、

2、設(shè)計(jì)思路 C8051F310單片機(jī)片上晶振為24.5MHz,采用8分頻后為3.0625MHz ,輸入時鐘信號為48個機(jī)器周期,所以T1定時器采用定時方式1,單次定時最長可以達(dá)到的時間為1.027s,可以滿足0.5Hz是的定時要求。 基礎(chǔ)部分: 給TMOD賦值10H,即選用T1定時器采用定時方式1,三種頻率對應(yīng)的半周期時間為0.25s、0.5s、1s。計(jì)算得需給TH1和TL1為C1H、B1H;83H、63H;06H、C6H。要使閃爍持續(xù)10s,三種模式需要各循環(huán)40、20、10次。 用LOOP3:MOV C,PSW.5 ;PSW.5為標(biāo)志位,進(jìn)定時器中斷后置一 JNC LOOP3 代替踏步程序等

3、待中斷,以便中斷完后回到主程序繼續(xù)向下執(zhí)行。 為了減少代碼長度,可以采用循環(huán)結(jié)構(gòu),循環(huán)主題中,將R1、R2分別賦給TH1、TL1,R7為循環(huán)次數(shù)(用DJNZ語句實(shí)現(xiàn));定時中斷里,重新給TH1、TL1賦值時同理。這樣,循環(huán)時只要把定時時間和循環(huán)次數(shù)賦給R1、R2、R7即可,達(dá)到減少代碼長度的效果。 蜂鳴器也采用T1定時方式1,定時一秒。 . . 提高部分: 采用外部中斷0,下降沿觸發(fā)。外部中斷程序里置標(biāo)志位PSW.1和R0,PSW.5用于判斷執(zhí)行完一種模式后,是否跳出循環(huán)結(jié)束。R0用于判斷執(zhí)行何種模式,每按一次后RO加一,第四次時就將R0和PSW.5清零,這樣程序就又回到了基礎(chǔ)部分的循序執(zhí)行。

4、 因?yàn)橹袛喑绦驁?zhí)行完后,會回到原來程序中斷的地方,繼續(xù)向下執(zhí)行而給程序運(yùn)行帶來諸多不便。所以,查看了RETI語句的實(shí)現(xiàn)形式:將棧頂壓入PCH,POP后再將棧頂壓入PCL ,利用這個定義,只要將需要返回的地址壓入PCH和PCL就能返回到指定地址。 三、 資源分配 P0.0:為LED燈控制端口,高電平觸發(fā)。 P3.1:為蜂鳴器控制端口,高電平觸發(fā)。 P0.1:為KINT鍵控制端口,下降沿觸發(fā)。 R1、R2:用于存放計(jì)時器計(jì)時數(shù)據(jù),R1賦給TH1、R2賦給TL1。 R7:存放三種模式的循環(huán)次數(shù)。 R0:在外部中斷程序中賦值,用于判斷采用何種模式。 PSW.1:為標(biāo)志位,用于等待定時器中斷,中斷執(zhí)行完

5、清零,并在中斷處向下繼續(xù)執(zhí)行程序。 PSW.5:為標(biāo)志位,用于判斷執(zhí)行一種中斷還是三種,在外部中斷程序中改變。 四、 流程圖 : 1.主程序流程圖(含提高部分). . 始開化始初發(fā)沿觸0,下降許允外部中斷1方式,定時器允許定時1中斷YR0=02HNYR002HNCASE2CASE1CASE33H806H R1R10C1H?R1?3H? R2 R2?0C6H0B1H6 R214HR7R7?0AH8HR7?2?1?TH?TL?7-R?R7=caseA=14PSW.1=caseA141中. . 外部中斷流程圖2.3.定時器中斷流程圖 定時器溢出下鍵按KINT觸發(fā)中斷1置PSW.1重新賦值?R1H1T

6、TL1?R20+1R0?R標(biāo)志位PSW.1置一NR0=04H關(guān)定時Y零PSW.1清零清R0LED(P0.0)取PO036DPT?DPDP主 . . 五、 源代碼 (含文件頭說明、資源使用說明、語句行注釋) ;* ;Filename: LED燈閃爍.asm ;Decription: LED LED燈分別按2Hz,1Hz和0.5Hz三種不同頻率閃動,各持續(xù)10s。 ; 在LED燈開始和停止閃爍時蜂鳴器分別鳴響1次。按一次按鈕,LED以 ; 2Hz 頻率閃動;按第二次以1Hz頻率閃動;按第二次以0.5Hz頻率閃動; ; 第四次時又順序執(zhí)行三種模式(可以在任何時候按按鈕,不必等上一模 ; 式閃爍完)

7、;Designed by: gxy ;Date: 2012.10.31 ;* $include (C8051F310.inc) LED BIT P0.0 ;LED燈控制端口 BEEP BIT P3.1 ;蜂鳴器控制端口 KINT BIT P0.1 ;KINT按鈕端口 ORG 0000H ;復(fù)位入口 LJMP MAIN ;外部中斷0ORG 0003H 入口 LJMP T_KINT ;定時器ORG 001BH 1入口 LJMP TIME1 初始化配置MAIN: LCALL Init_Device ; MOV R0,#00H CLR LED ;led燈關(guān) CLR BEEP CLR PSW.1 ; 標(biāo)

8、志位1清零 ;標(biāo)志位 CLR PSW.5 2 清零 允許總中斷 ; SETB EA . . SETB EX0 ;外部中斷0允許 ; 下降沿延觸發(fā) SETB IT0 ;置T1為定時方式 1 MOV TMOD,#10H SETB ET1 ;定時器T1允許中斷;* ;外部中斷返回處,選擇模式 ;* CHOO: CJNE R0,#02H,LOOP ;選擇模式 LJMP CASE2 ;R0等于02H,跳轉(zhuǎn)到模式2 LOOP: JC CASE1 ;R0小于02H,跳轉(zhuǎn)到模式1 LJMP CASE3 ;R0大于02H,跳轉(zhuǎn)到模式3 ;* ;模式1,2Hz閃爍10s ;* CASE1:MOV R1,#0C1H

9、 MOV R2,#0B1H MOV R7,#28H LJMP START ;* ; 模式2,1Hz閃爍10s ;* CASE2:MOV R1,#83H MOV R2,#63H MOV R7,#14H LJMP START ;* ; 模式3,0.5Hz閃爍10s ;* CASE3:MOV R1,#06H MOV R2,#0C6H . . MOV R7,#0AH LJMP START ;* ;閃爍控制程序 ;* START:LCALL VOICE ;蜂鳴1s MOV TH1,R1 MOV TL1,R2 MOV A,R7 BACK: SETB TR1 ;開定時 LOOP1:MOV C,PSW.5 ;

10、等待中斷,中斷會置一標(biāo)志位PSW.5 JNC LOOP1 ;中斷結(jié)束,繼續(xù)向下運(yùn)行 CLR PSW.5 ;清零標(biāo)志位 DJNZ R7,BACK ; 循環(huán),使閃爍達(dá)到10s MOV C,PSW.1 等待外THERE為1則只執(zhí)行一種模式跳轉(zhuǎn)到 JC THERE ; PSW.1 部中斷; CJNE A,#14H,LOOP2 ;順序執(zhí)行時,判斷下一模式3 LJMP CASE3 ;A=14H則跳轉(zhuǎn)到模式LOOP2:JC THERE LJMP CASE2 ;A14H則跳轉(zhuǎn)到模式2 1s 蜂鳴THERE:LCALL VOICE ; 踏步,等待外部中斷 SJMP $ ;* 1s ;蜂鳴器響;* VOICE:S

11、ETB BEEP 開蜂鳴 ; . . MOV TH1,#06H MOV TL1,#0C6H CLR PSW.5 SETB TR1 ;開定時器1 LOOP3:MOV C,PSW.5 ;等待中斷 JNC LOOP3 CLR BEEP ;關(guān)蜂鳴 RET ;* ;外部中斷0 ;* T_KINT:SETB PSW.1 ;標(biāo)志位1置一,用于判斷是否順序執(zhí)行三種模式 INC R0 ;R0加一,用于判斷何種模式 CJNE R0,#04H,K_RET CLR PSW.1 ;R0到04H 時清零標(biāo)志位和R0 MOV R0,#00H K_RET: CLR TR1 ;關(guān)定時器1 POP SP POP SP ;出棧兩次

12、 MOV DPTR,#0036H ;0036H 為選擇處地址 PUSH DPL ;DPL壓入棧頂 PUSH DPH ;DPH壓入棧頂 RETI ;返回到知道位置 ;* ;定時器1中斷 ;* TIME1: MOV TH1,R1 MOV TL1,R2 ;重新置數(shù) SETB PSW.5 ;標(biāo)志位置一 關(guān)定時 CLR TR1 ;. . CPL LED ;LED取反 RETI ;* ;初始化配置 ;* PCA_Init: ;關(guān)閉看門狗 anl PCA0MD, #0BFh mov PCA0MD, #000h ret Timer_Init: ;定時器1初始化配置 mov TMOD, #010h mov CK

13、CON, #002h ret 端口初始化配置 Port_IO_Init: ; mov XBR1, #040h ret Interrupts_Init: ;中斷初始化配置 mov IE, #009h ret Init_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init ret END . . 六、 程序測試方法與結(jié)果、軟件性能分析 1 、軟件調(diào)試總體界面: 2 、定時器1測試 軟件調(diào)試時 利用標(biāo)志位用LOOP1:MOV C,PSW.5 JNC LOOP1 語句,可以在中斷返回后,在中斷處

14、繼續(xù)向下執(zhí)行代碼 硬件調(diào)試時,可以順序以2Hz,1Hz和0.5Hz三種不同頻率閃動,各持續(xù)10s,并且蜂鳴器鳴叫1s正常 3、定時循環(huán)代碼測試: 例如執(zhí)行模式1定時0.25s,要循環(huán)40次才能跳出 開始時,R7為28H 一次循環(huán)后R7為27H . . 跳出循環(huán)時,R7為0 所以,定時循環(huán)程序正常 4、外部中斷測試 如圖,軟件調(diào)試時,進(jìn)入中斷程序執(zhí)行到RETI后,DPTR被賦為0036H,pc在00ACH處 再執(zhí)行一步 . . KINT處,返回到了指定位置。所以,這說明不管程序運(yùn)行到了哪里,只要按下在0036HPc 鍵,就會返回到指定位置,選擇下一種模式運(yùn)行。 Program Size: dat

15、a=8.0 xdata=0 code=219 方而且讓各個子段程序的功能一目了然,代碼利用合理空行和注釋,不僅在視覺上美化了, 便調(diào)試和檢錯 C8051F310單片機(jī)開發(fā)板上跑代碼:硬件調(diào)試時,在,在開始、結(jié)10s0.5Hz1Hz和三種不同頻率閃動,各持續(xù)KINT不按鍵時,LED燈以2Hz, ,束和切換模式時,蜂鳴器都響1s 后結(jié)束;閃爍10s按下一次時,LED燈以2Hz 10s后結(jié)束;LED燈以1Hz閃爍按下兩次時, 后結(jié)束;0.5Hz閃爍10s按下三次時,LED燈以 當(dāng)按下第四次時,又切換回順序執(zhí)行三種模式, 在上述過程,蜂鳴器君鳴叫正常。 綜上:此次程序,運(yùn)行正常,很好的完成了要求的基礎(chǔ)

16、部分和提高部分 . . 七、 思考題 .若想實(shí)現(xiàn)3種閃耀方式的持續(xù)時間在5s-20s范圍內(nèi)可調(diào),且每種方式的持續(xù)時間各不相同,應(yīng)如何設(shè)計(jì)程序? 答: 三種閃爍方式利用定時器執(zhí)行,定時時間為0.25s、0.5s、1s 通過循環(huán)次數(shù)來控制持續(xù)時間,所以只要改變循環(huán)次數(shù),就能改變持續(xù)時間(初始持續(xù)時間可設(shè)為10s) 可以利用矩陣鍵盤來實(shí)現(xiàn),通過鍵值掃描程序來判斷按下了什么鍵,再通過鍵值處理來執(zhí)行按鍵的功能 可以設(shè)置 +鍵、-鍵、和輸入鍵 按下+鍵,寄存器如R5加一;按下-鍵,寄存器如R5減一 再按輸入鍵后,模式1循環(huán)次數(shù)加4* R5;模式1循環(huán)次數(shù)加2* R5;模式1循環(huán)次數(shù)加1* R5,再執(zhí)行程序來達(dá)到改變持續(xù)時間的功能。 八、

溫馨提示

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

最新文檔

評論

0/150

提交評論