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

下載本文檔

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

文檔簡(jiǎn)介

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

2、設(shè)計(jì)思路 C8051F310單片機(jī)片上晶振為24.5MHz,采用8分頻后為3.0625MHz ,輸入時(shí)鐘信號(hào)為48個(gè)機(jī)器周期,所以T1定時(shí)器采用定時(shí)方式1,單次定時(shí)最長(zhǎng)可以達(dá)到的時(shí)間為1.027s,可以滿足0.5Hz是的定時(shí)要求。 基礎(chǔ)部分: 給TMOD賦值10H,即選用T1定時(shí)器采用定時(shí)方式1,三種頻率對(duì)應(yīng)的半周期時(shí)間為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)定時(shí)器中斷后置一 JNC LOOP3 代替踏步程序等

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

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

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

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

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 ;定時(shí)器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為定時(shí)方式 1 MOV TMOD,#10H SETB ET1 ;定時(shí)器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 ;開(kāi)定時(shí) LOOP1:MOV C,PSW.5 ;

10、等待中斷,中斷會(huì)置一標(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í)行時(shí),判斷下一模式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 開(kāi)蜂鳴 ; . . MOV TH1,#06H MOV TL1,#0C6H CLR PSW.5 SETB TR1 ;開(kāi)定時(shí)器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 時(shí)清零標(biāo)志位和R0 MOV R0,#00H K_RET: CLR TR1 ;關(guān)定時(shí)器1 POP SP POP SP ;出棧兩次

12、 MOV DPTR,#0036H ;0036H 為選擇處地址 PUSH DPL ;DPL壓入棧頂 PUSH DPH ;DPH壓入棧頂 RETI ;返回到知道位置 ;* ;定時(shí)器1中斷 ;* TIME1: MOV TH1,R1 MOV TL1,R2 ;重新置數(shù) SETB PSW.5 ;標(biāo)志位置一 關(guān)定時(shí) CLR TR1 ;. . CPL LED ;LED取反 RETI ;* ;初始化配置 ;* PCA_Init: ;關(guān)閉看門(mén)狗 anl PCA0MD, #0BFh mov PCA0MD, #000h ret Timer_Init: ;定時(shí)器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 . . 六、 程序測(cè)試方法與結(jié)果、軟件性能分析 1 、軟件調(diào)試總體界面: 2 、定時(shí)器1測(cè)試 軟件調(diào)試時(shí) 利用標(biāo)志位用LOOP1:MOV C,PSW.5 JNC LOOP1 語(yǔ)句,可以在中斷返回后,在中斷處

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

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

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

溫馨提示

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