资源描述:
《单片机实验6__定时器控制循环彩灯实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、华南农业大学实验报告专业班次08电信1组别200831120102题目实验六定时器控制循环彩灯姓名陈建泽日期2010.11.4一、实验目的1.学习89C51内部定时器的使用和编程方法。2.进一步掌握中断处理程序的编写方法。二、实验设备:STC89C52单片机实验板、串口下载线、USB连接线、电脑三、实验原理1.定时常数的确定定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。本实验中时钟频率为12.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒产生一次中
2、断,CPU响应中断后将R0中计数值减一,令R0=0AH,即可实现0.5秒延时。时间常数可按下述方法确定:机器周期=12÷晶振频率=12/(12×106)=1us设计数初值为X,则(216-x)×1×10-6=0.05,可求得X=15536化为十六进制则X=3CB0H,故初始值为TH1=3CH,TL1=B0H2.初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP不必设置。3.设计中断服务程序和主程序中断服务程序除了
3、要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。四、实验步骤1.分析实验所用到的电路原理图,根据需要连接跳线帽。2.89C51内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。P1口的P1.0~P1.7分别接发光二极管的LED1~LED8。要求编写程序模拟一循环彩灯。彩灯变化花样为:①LED1、LED2、…LED8依次点亮;②LED1、LED2、…LED8依次熄灭;③LED1、LED2、…LED8全亮、全灭。各时序间隔为0.5成绩:教师:日期:秒。让发光二极管
4、按以上规律循环显示下去。3.根据流程图,编写实验程序,并完成调试。五、实验流程图中断产生各灯依次点亮各灯依次熄灭全亮、全灭给A重装初值中断返回开始定时器初始化,50ms一次中断R0做中断次数寄存器A控制P1口等待中断定时器控制循环彩灯流程图六、实验程序根据实验流程图,编写出一下实验程序,并完成调试。//*******************实验6定时器控制循环彩灯实验**************;实验名称:定时器控制循环彩灯实验;功能:彩灯变化花样为:①LED1、LED2、…LED8依次点亮;;②LED1、LED2、
5、…LED8依次熄灭;③LED1…LED8全亮、全灭。;各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。;编写人:08电信1陈建泽;编写时间:2010年11月4日//***********************程序代码如下*****************************ORG0000HAJMPSTARTORG000BH;定时器0中断服务子程序入口AJMPT0INTORG0030HSTART:MOVTMOD,#01H;定时0工作模式1MOVTH0,#(65536-50000)/256;定时器0高八位
6、初值MOVTL0,#(65536-50000)MOD256;定时器0低八位初值SETBEA;开总中断SETBET0;开定时器0中断SETBTR0;启动定时器0MOVA,#0FEH;先点亮第一盏灯MOVP1,AMOVR0,#00H;R0为中断次数寄存器AJMP$//*******************定时器0中断服务子程序**********************T0INT:MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD256INCR0CJNER0,#10,TEN
7、D;每中断一次为50ms,R0增1MOVR0,#00H;中断10次后,为0.5S,R0清零CJNEA,#0FFH,LOOP0;若A为FFH,则循环了一次,应转去使其全亮AJMPLOOP2LOOP0:JNBACC.7,LOOP1;若A最高位为0了,则全部都亮完,转去依次灭CLRACC.7;若A最高位为1,则清零循环左移,依次点亮各灯RLAMOVP1,AAJMPTENDLOOP1:SETBACC.7;置位,循环左移,依次熄灭各灯RLAMOVP1,AAJMPTENDLOOP2:MOVP1,#00H;循环依次后,使全部亮AC
8、ALLD05S;延时0.5SMOVP1,#0FFH;使全部等灭ACALLD05S;延时0.5SMOVA,#0FEH;赋值A为FEHMOVP1,ATEND:RETI//*********************0.5S延时子程序****************************D05S:MOVR3,#5L1:MOVR2,#200L2:MOV