單片機(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è),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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燈分另1J按2Hz, 1Hz和0.5Hz三種不同頻率閃動(dòng),各持續(xù) 10s。3. 在LED燈開(kāi)始和停止閃爍時(shí)蜂鳴器分別鳴響1次。4. 利用單片機(jī)內(nèi)部定時(shí)器定時(shí),要求采用中斷方式。提高要求:使用按鍵(KINT)控制LED燈閃爍模式的切換。設(shè)計(jì)思路C8051F310單片機(jī)片上

2、晶振為 24.5MHz,采用8分頻后為3.0625MHz,輸入時(shí)鐘信號(hào)為 48 個(gè)機(jī)器周期, 所以 T1 定時(shí)器采用定時(shí)方式1 , 單次定時(shí)最長(zhǎng)可以達(dá)到的時(shí)間為1.027s ,可以滿(mǎn)足 0.5Hz 是的定時(shí)要求?;A(chǔ)部分:給TMODIWt 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í)中斷里,重新給 TH! 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ǔ)部分

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

5、,中斷執(zhí)行完清零,并在中斷處向下繼續(xù)執(zhí)行程序。PSW.5 :為標(biāo)志位,用于判斷執(zhí)行一種中斷還是三種,在外部中斷程序中改變。流程圖1. 主程序流程圖(含提高部分)3.定時(shí)器中斷流程圖2.外部中斷流程圖定時(shí)器溢出 觸發(fā)中斷賦.TH1 R1TL1 R2標(biāo)志位PSW.1 置關(guān)定時(shí)LED(P0.0)取反返回主程序源代碼 (含文件頭說(shuō)明、資源使用說(shuō)明、語(yǔ)句行注釋?zhuān)?*;Filename: LED 燈閃爍 .asm;Decription: LED LED燈分另1J按2Hz, 1Hz和0.5Hz三種不同頻率閃動(dòng),各持續(xù) 10s。;在LED燈開(kāi)始和停止閃爍時(shí)蜂鳴器分別鳴響1次。按一次按鈕,LED以; 2Hz 頻

6、率閃動(dòng);按第二次以1Hz頻率閃動(dòng);按第二次以 0.5Hz頻率閃動(dòng);第四次時(shí)又順序執(zhí)行三種模式(可以在任何時(shí)候按按鈕,不必等上一模;式閃爍完);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 MAINORG 0003H;外部中斷0 入口LJMP T_KINTORG 001BH; 定時(shí)器1 入口LJMP TIME1MAIN: LCALL Init_Device ;初始

7、化配置MOV R0,#00HCLR LED;關(guān) led 燈CLR BEEPCLR PSW.1; 標(biāo)志位1 清零CLR PSW.5; 標(biāo)志位2 清零SETB EA; 允許總中斷SETB ET1.*SETB EX0SETB IT0MOV TMOD,#10H外部中斷 0 允許下降沿延觸發(fā)置 T1 為定時(shí)方式1定時(shí)器 T1 允許中斷; 外部中斷返回處,選擇模式.*CHOO: CJNE R0,#02H,LOOP ; 選擇模式LJMP CASE2 ;R0等于 02H, 跳轉(zhuǎn)到模式2LOOP: JC CASE1;R0小于02H,跳轉(zhuǎn)到模式1LJMP CASE3;R0大于02H,跳轉(zhuǎn)到模式 3; 模式 1 ,

8、 2Hz 閃爍 10s.*CASE1:MOV R1,#0C1HMOV R2,#0B1HMOV R7,#28HLJMP START; 模式 2, 1Hz 閃爍 10s;CASE2:MOV R1,#83HMOV R2,#63HMOV R7,#14HLJMP START; 模式 3, 0.5Hz 閃爍 10s.*CASE3:MOV R1,#06HMOV R2,#0C6HMOV R7,#0AHLJMP START; 閃爍控制程序.*START:LCALL VOICE ;MOV TH1,R1MOV TL1,R2MOV A,R7BACK: SETB TR1;LOOP1:MOV C,PSW.5 ;JNC L

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

10、s.*MOV TH1,#06HMOV TL1,#0C6HCLR PSW.5SETB TR1;開(kāi)定時(shí)器 1LOOP3:MOV C,PSW.5等待中斷SETB PSW.5J標(biāo)志位置一JNC LOOP3; 關(guān)蜂鳴CLR BEEPRET.*; 外部中斷 0.*T_KINT:SETB PSW.1 ; 標(biāo)志位 1 置一,用于判斷是否順序執(zhí)行三種模式INC R0;R0加一,用于判斷何種模式CJNE R0,#04H,K_RETCLR PSW.1;R0MOV R0,#00HK_RET: CLR TR1;POP SPPOP SP;到 04H 時(shí)清零標(biāo)志位和R0關(guān)定時(shí)器 1出棧兩次MOV DPTR,#0036H;0

11、036H 為選擇處地址PUSH DPL;DPL壓入棧頂PUSH DPH;DPH壓入棧頂RETI;返回到知道位置.*; 定時(shí)器 1 中斷.*TIME1: MOV TH1,R1MOV TL1,R2 ;重新置數(shù)關(guān)定時(shí)CLR TR1CPL LED;LED取反RETI.*; 初始化配置.*PCA_Init:關(guān)閉看門(mén)狗anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:定時(shí)器 1 初始化配置mov TMOD, #010hmov CKCON, #002hretPort_IO_Init:端口初始化配置mov XBR1, #040hretInterrupts_Init

12、:中斷初始化配置mov IE, #009h retInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Init retEND八程序測(cè)試方法與結(jié)果、軟件性能分析1、軟件調(diào)試總體界面:軟件調(diào)試時(shí)利用標(biāo)志位用 LOOP1:MOV C,PSW.5JNC LOOP1語(yǔ)句,可以在中斷返回后,在中斷處繼續(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次才能跳出2、定時(shí)器1測(cè)

13、試一次循環(huán)后R7為27H開(kāi)始時(shí),R7為28HRagi st.er0x01 OxcL 0x65 OxOO Q儂 OxOO OkOO 紅-E巨近gr0 rlOirOlOxclOxoa0x000x000x00TirisrXtJL-'Cer 1CdPiullr PtKtS-777V77加PWCCUT如打TJPr tri r GATH 7 廿CS.3t3 ERFURTOW.i- TW3U |MCTH1 金了 TLt 際D: BreTnrCftjffltCJW LJWbJ®I 43Pl pF印舊印P*aN:pr 川田P3HQQUT 網(wǎng)-Hill IV,屈二gFgfUT;IXAU VOIC

14、E MPtf THLjJU 3C7J rLLrK2 M星g:nt are rat LOCrirMOM a作 理 LOOPt CLB F35T.5 DJS2 WMF0xE3K1取 vLk-VJ»E Lift!用IW-rliinifOdDr3(W-rlQioa£CteO)r&rTCbrDO卜EjlbIW耳MT“w出ITTbu皿-tc t匚IMO其fi.tl.Ltli01C£0 DCtOOQ,陽(yáng)J - . : . | 三 ReJfek 1DxC DM)D3DD:s LJMFHUK - C :ODlEj12 ::二加 T m 七L 口X Smkn| 'Ji

15、rw" /Wi_| Ri|.即 *Mtom 0D «tfmffiH7 c rEl«1H0 C C Ti lD91BHQ Q V型+Q C DUM a1 C D隴 FHQ Q 1Tw 工 3C 3: CSU HbrytDOB滬廂 SkKFmAD C C汕片«33HD Q 9sn rmue 口 ei 的h3 o i-L 1dmA? iP- B再百i一出 r n廠區(qū) 廠皿 中:一PmHIt 2 0«rI Valut-長(zhǎng)電群rDOsOlrlOxcl0x68r300r4。汨0二 5OkOO r600OmOO-SysaOn2abOxODspOsOlsj_m

16、axOxQbdptr03(0036FC $C.OwOO&Est ate Si33061S58se c10. 79570373l+J pc0w82跳出循環(huán)時(shí),R7為。所以,定時(shí)循環(huán)程序正常w «T* , 4 -FT 曾中匚;QxOOEA2D1MOVmOxDO.l)31:JC THEREB2:,口/ 國(guó)3 led .uni069>8* *宜* *#*1*宣或 *|/0START 1 LCALL VOICE.u”MOV THlfRlMOV TLlrft2MOV A.|074SACK: SETE TRILOCP1:MOV C r F3W.5.LbJUC LOOP1GLB P5W

17、.5DJNS S7rSAGKD79<>050MOV C r FSW . 1喇JO THEttE4、外部中斷測(cè)試匚Sys±1mukuur6000rT0k£7b OkOOspnaMQQb加tr。甚??诨C JC:OxOCACstates30G2717sec1. 00(»?08£psw0jti&2105 106107108 |l09 Hl1Ci ,111112113 |114 Ill5 Il lbIl17 小怕 mi3;外部中斷口 鼻頭肉育育而*云*兩青 離去* * *畤荷* 聲* 育* * *離* /*m.I 芟工KT:SETE PSW

18、.2 INC RO CJNE RO,租住 K_RET CLR PSW . 1 MOV ROztOOHK RET : CLR TRI POE BP POE SP HOfV DPTR,#O03fiE PUSH DPL PU" DF4&12O !RETI如圖,軟件調(diào)試時(shí),進(jìn)入中斷程序執(zhí)行到RETIB, DPT瞰賦為0036H, pc在00ACM再執(zhí)行一步-Sy*r70x270x28bOxOD- -一MOV TMOEf tlOH;置工1方定時(shí)方三036 iSETE ET1;定時(shí)器T 3允許嚀fVj-Tr :;:;?; ifi f v V 9 ¥ V 9 V f 代£

19、; )!" V f P W V P V !F V V v1 5P0x01|039OsOb dptr0s003&PC $C:0x0036stales306Z722州1.000OT249psw0x82LPJOf r iff r r f r r jf v r r f rrrrrjp'F frf Frr-rrrrJFf f040 j.HOCi CJNE RCl/靠。,二OOP1Ml |LJMP CASE2(M2 L8F: JC CASE1043LJMP CASE3U44:- -1*b;膜式工二 2制 CA5曰=CQMQO53MS i ' *k*k*k*k*kLwCAS

20、EL : MOVKlr#CjClH詡MOVtOBlfi(MB|MO?R7Pf2aH050LJHPSTARTPc在0036H處,返回到了指定位置。所以,這說(shuō)明不管程序運(yùn)行到了哪里,只要按下KINT鍵,就會(huì)返回到指定位置,選擇下一種模式運(yùn)行。Program Size: data=8.0 xdata=0 code=219代碼利用合理空行和注釋?zhuān)粌H在視覺(jué)上美化了,而且讓各個(gè)子段程序的功能一目了然,方便調(diào)試和檢錯(cuò)硬件調(diào)試時(shí),在 C8051F310單片機(jī)開(kāi)發(fā)板上跑代碼:不按KINT鍵時(shí),LED燈以2Hz, 1Hz和0.5Hz三種不同頻率閃動(dòng),各持續(xù) 10s,在開(kāi)始、結(jié)束和切換模式時(shí),蜂鳴器都響1s,按下一次時(shí),LED燈以2Hz閃爍10s后結(jié)束;按下兩次時(shí),LED燈以1Hz閃爍10s后結(jié)束;按下三次時(shí),LED燈

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論