单片机试验报告——LED灯控制器_第1页
单片机试验报告——LED灯控制器_第2页
单片机试验报告——LED灯控制器_第3页
单片机试验报告——LED灯控制器_第4页
单片机试验报告——LED灯控制器_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机实验报告LED灯控制器指导教师:专业班级:姓名:学号:联系方式:任务要求实验目的:加深对定时/计数器、中断、IO端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法。实验内容:利用C8051F310单片机设计一个LED灯控制器主要功能和技术指标要求:1 .LED灯外接于P0.0端。2 .LED灯分另1J按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。3 .在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。4 .利用单片机内部定时器定时,要求采用中断方式。提高要求:使用按键(KINT)控制LED灯闪烁模式的切换。设计思路C8051F310单片机片上晶振为24.5MHz

2、,采用8分频后为3.0625MHz,输入时钟信号为48个机器周期,所以T1定时器采用定时方式1,单次定时最长可以达到的时间为1.027s,可以满足0.5Hz是的定时要求。基础部分:给TMODIWt10H,即选用T1定时器采用定时方式1,三种频率对应的半周期时间为0.25s、0.5s、1s。计算得需给TH1和TL1为C1HB1H;83H、63H;06H、C6H要使闪烁持续10s,三种模式需要各循环40、20、10次。用LOOP3:MOVC,PSW.5;PSW.5为标志位,进定时器中断后置一JNCLOOP3代替踏步程序等待中断,以便中断完后回到主程序继续向下执行。为了减少代码长度,可以采用循环结构

3、,循环主题中,将R1、R2分别赋给TH1、TL1,R7为循环次数(用DJNZ语句实现);定时中断里,重新给TH1TL1赋值时同理。这样,循环时只要把定时时间和循环次数赋给R1、R2、R7即可,达到减少代码长度的效果。蜂鸣器也采用T1定时方式1,定时一秒。提高部分:采用外部中断0,下降沿触发。外部中断程序里置标志位PSW.1和R0,PSW.5用于判断执行完一种模式后,是否跳出循环结束。R0用于判断执行何种模式,每按一次后RO加一,第四次时就将R0和PSW.5清零,这样程序就又回到了基础部分的循序执行。因为中断程序执行完后,会回到原来程序中断的地方,继续向下执行而给程序运行带来诸多不便。所以,查看

4、了RETI语句的实现形式:将栈顶压入PCHPOP后再将栈顶压入PCL,利用这个定义,只要将需要返回的地址压入PC书口PCL就能返回到指定地址。三、资源分配P0.0:为LED灯控制端口,高电平触发。P3.1:为蜂鸣器控制端口,高电平触发。P0.1:为KINT键控制端口,下降沿触发。R1、R2:用于存放计时器计时数据,R1赋给TH1R2赋给TL1。R7:存放三种模式的循环次数。R0:在外部中断程序中赋值,用于判断采用何种模式。PSW.1:为标志位,用于等待定时器中断,中断执行完清零,并在中断处向下继续执行程序。PSW.5:为标志位,用于判断执行一种中断还是三种,在外部中断程序中改变。四、流程图1.

5、主程序流程图(含提高部分)CFCASE2R1-83HR263HR7:-14H蜂鸣1sTH1一中TL1-R2AR7开定时等待中断等待外部中断YNA跳转到case3A跳转到case23.定时器中断流程图2.外部中断流程图定时器溢出触发中断重赋值TH1-|R1TL1-IR2标志位PSW.1置关定时POP出栈两次DPTR0036HDPL先压入栈顶DPH再压入栈顶返回主程序LED(P0.0)取反回主程序源代码(含文件头说明、资源使用说明、语句行注释).*;Filename:LED灯闪烁.asm;Decription:LEDLED灯分另1J按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。;在L

6、ED灯开始和停止闪烁时蜂鸣器分别鸣响1次。按一次按钮,LED以;2Hz频率闪动;按第二次以1Hz频率闪动;按第二次以0.5Hz频率闪动;第四次时又顺序执行三种模式(可以在任何时候按按钮,不必等上一模;式闪烁完);Designedby:gxy;Date:2012.10.31.*$include(C8051F310.inc)LEDBITP0.0;LED灯控制端口BEEPBITP3.1;蜂鸣器控制端口KINTBITP0.1;KINT按钮端口ORG0000H;复位入口LJMPMAINORG0003H;外部中断0入口LJMPT_KINTORG001BH;定时器1入口LJMPTIME1MAIN:LCALL

7、Init_Device;初始化配置MOVR0,#00HCLRLED;关led灯CLRBEEPCLRPSW.1;标志位1清零CLRPSW.5;标志位2清零SETBEA;允许总中断SETBEX0SETBIT0MOVTMOD,#10H外部中断0允许下降沿延触发置T1为定时方式1定时器T1允许中断SETBET1.*;外部中断返回处,选择模式.*CHOO:CJNER0,#02H,LOOP;选择模式LJMPCASE2;R0等于02H,跳转到模式2LOOP:JCCASE1;R0小于02H,跳转到模式1LJMPCASE3;R0大于02H,跳转到模式3;模式1,2Hz闪烁10s.*CASE1:MOVR1,#0C

8、1HMOVR2,#0B1HMOVR7,#28HLJMPSTART;模式2,1Hz闪烁10s;CASE2:MOVR1,#83HMOVR2,#63HMOVR7,#14HLJMPSTART;模式3,0.5Hz闪烁10s.*CASE3:MOVR1,#06HMOVR2,#0C6HMOVR7,#0AHLJMPSTART.*;闪烁控制程序.*START:LCALLVOICE;MOVTH1,R1MOVTL1,R2MOVA,R7BACK:SETBTR1;LOOP1:MOVC,PSW.5;JNCLOOP1;CLRPSW.5;DJNZR7,BACK;MOVC,PSW.1JCTHERE;PSW.1CJNEA,#14H

9、,LOOP2;LJMPCASE3;A=14HLOOP2:JCTHERELJMPCASE2;A<14H蜂鸣1s开定时等待中断,中断会置一标志位PSW.5中断结束,继续向下运行清零标志位循环,使闪烁达到10s为1则只执行一种模式跳转到;部中断顺序执行时,判断下一模式则跳转到模式3则跳转到模式2THEREW寺外THERE:LCALLVOICE蜂鸣1sSJMP$踏步,等待外部中断.*;蜂鸣器响1s.*VOICE:SETBBEEP开蜂鸣MOVTH1,#06HMOVTL1,#0C6HCLRPSW.5SETBTR1;开定时器1LOOP3:MOVC,PSW.5等待中断;关蜂鸣JNCLOOP3CLRBEE

10、PRET.*;外部中断0.*T_KINT:SETBPSW.1;标志位1置一,用于判断是否顺序执行三种模式INCR0;R0加一,用于判断何种模式CJNER0,#04H,K_RETCLRPSW.1;R0MOVR0,#00HK_RET:CLRTR1;POPSPPOPSP;到04H时清零标志位和R0关定时器1出栈两次MOVDPTR,#0036H;0036H为选择处地址PUSHDPL;DPL压入栈顶PUSHDPH;DPH压入栈顶RETI;返回到知道位置.*;定时器1中断.*TIME1:MOVTH1,R1MOVTL1,R2;重新置数关定时SETBPSW.5CLRTR1CPLLED;LED取反RETI.*;

11、初始化配置.*PCAInit:关闭看门狗anlPCA0MD,#0BFhmovPCA0MD,#000hretTimerInit:定时器1初始化配置movTMOD,#010hmovCKCON,#002hretPortIOInit:端口初始化配置movXBR1,#040hretInterrupts_Init:中断初始化配置movIE,#009hretInit_Device:lcallPCA_InitlcallTimer_InitlcallPort_IO_InitlcallInterrupts_InitretEND程序测试方法与结果、软件性能分析1、软件调试总体界面:ValueEErprD口施rLMH

12、rZEMUr3MOriq蒯r5。棚力QxW打口柳RSyi*口棚I跖口疝fT口即T际hr04000TC$CCkOOOO0SBCoranooooQpsi0x002LJHP2L:OTLGODD3B.1r外部的:g:0时020DIELJHFMMff(C:001E)22:LJMPTKEO后"凶JledJdm-iaHfl-rr0HA<rvHl闪忌控制程序Hi17cglinter1这1,匕癖附设i3PTdjEri:SRtgvrifrsN2、定时器1测试SuWT:LCALLTOICEHOTIEIIhRIHOVm.R2NOVArR7BAK:S£TB1RLLOOP工:期。泮冢,5JHCL

13、COP1CLRP酬DJW£MPBAO!NOVCrPSW.lgTHEREUJHEAFfHHPLOCP2LJMPOL5E3LOOP2:JC3HE&ELJMPCASE?软件调试时利用标志位用LOOP1:MOVC,PSW.5JNCLOOP1Ttotr心1NkdcLU.P.-1ddIL型_naww¥P3srncq_皿hi|0:1381Tmcr.Cffljnlcr二|D003H0。口TmerOOOOBHD:DhlD0I3HD0DDTmer10D1BH口DDS?aiRcv.ODC23HDDD5e闰如LODC23HDDDTmer上电h002BH。0DTmr2LDw002BH0。口5

14、PIHHnftDQ33H0口D卯1卅teQtaikim内H0D0SPIDwCO33HD005PIRKweOwwjfiWJ3HODDTins-tICON:MOTNQD|bCCIHL.M0111EeTackrTimriirtfiStaticIStnrIE1rGATH?INI11Trearno包班际.T!ParallelPertQ二7觞QP|bFF7ppp7ppP3WDFW:SfFPBMDOUT:|OT|PDSK1P:|HIIIFWi>南丽FR叩口用语句,可以在中断返回后,在中断处继续向下执行代码硬件调试时,可以顺序以2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s,并且蜂鸣器鸣叫1s

15、正常3、定时循环代码测试:例如执行模式1定时0.25s,要循环40次才能跳出开始时,R7为28H一次循环后R7为27HIVsIm一Regsr0(MHrlOxctr2Osbl130x00r4OxOCr5OxOCr60x00r70x2SValueOkDIOxclOkS6OsQQOk900x00(hcOO0x27Kegister|3ueJ-RegsrQ0»01rlOxclOxfifir30x00r40x90r5DkOOr60x00Ok。-Sysh-a0s28b0x00SP0x01spjnaxOxObdptr0x0036FC$C:口戈OOSEEtat«E33061858sec10.

16、79670B73±1pswOxS2跳出循环时,R7为0所以,定时循环程序正常WV«AAWVJ/b一c>C:0xOO6EA2D1MOVC,Fl(OxDO.l81:JCTHERE02:J/I古Sled.asm|069;*-*-07QSTARTiLCALLVOICEHonMOV工Hl,RIHd?2MOVTL1,R2Hq?3MOVA,R7.074BAC?C:SETSTRI1075LOOP二tMOVc,FSW.5HutejncloofiHo77CLPPSW.5|07DJNZR7,BACK079中。城|MOVC,PSW.l口由JCTHERE4、外部中断测试rouxuurSOmOO

17、rT0k2TEiJ'y=a。侬b0x00Sp0x03sp_maxOtsObdptr0x0036PC$C:OxOOA£st&tes3062T1TsecL000070861piw0x821051061071期l091110|l11112113Ill4Il15111bIl171118Ins舟20*充*;外部中断0*青*去*哀也哀哀玄哀去曹为*哀*曹*京/T_KINT:SETEPSW.LINCROCJNER0fKRETCLBMOVRET:CLRPOPPOPMOVPSW.lRO,#OOHTRISPSPDPTR,#0033FUSEDFLPUSHDPHRETT如图,软件调试时,进入

18、中断程序执行到RETIB,DPT瞰赋为0036H,pc在00ACM再执行ih.少rl0x27aOisebOmOOspQxO1OxOldptr0x0036FC$C:0x0035stat电53062722sec100007249psw0x62567890123456一030303030304040404040404MCfVTMOEfSETEET1:置T工为定时方三;定时器T1允许4|ZHOC:CJNER0f*02H,LOOFLOOP:LJMPCASE;JCCASE1LJMFCASE31+-:hiI!:模式工:2HZCASE-C:0x0053*RIr+301R2,*7三工已R7,#23三START2

19、A5E1:1«5VMOVMOVLJHPPc在0036H处,返回到了指定位置。所以,这说明不管程序运行到了哪里,只要按下KINT键,就会返回到指定位置,选择下一种模式运行。ProgramSize:data=8.0xdata=0code=219代码利用合理空行和注释,不仅在视觉上美化了,而且让各个子段程序的功能一目了然,方便调试和检错硬件调试时,在C8051F310单片机开发板上跑代码:不按KINT键时,LED灯以2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s,在开始、结束和切换模式时,蜂鸣器都响1s,按下一次时,LED灯以2Hz闪烁10s后结束;按下两次时,LED灯以1Hz闪烁10s后结束;按下三次时,LED灯以0.5Hz闪烁10s后结束;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论