首页 理论教育 定时循环彩灯实验

定时循环彩灯实验

时间:2023-06-25 理论教育 版权反馈
【摘要】:本实验中时钟频率为6MHz,现要采用中断方法来实现0.5s延时,要在定时器1中设置一个时间常数,使其每隔0.1s产生一次中断,CPU响应中断后将R0中计数值减1,令R0=05H,即可实现0.5s延时。由于只有定时器中断,因此IP不必设置。要求编写程序模拟一循环彩灯。图6.29循环彩灯定时实验主程序流程图图6.30循环彩灯定时实验中断程序流程图

定时循环彩灯实验

1.实验目的

(1)学习8031内部计数器的使用和编程方法。

(2)进一步掌握中断处理程序的编写方法。

2.实验设备

CPU挂箱、8031CPU模块等。

3.实验原理

1)定时常数的确定

定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。本实验中时钟频率为6MHz,现要采用中断方法来实现0.5s延时,要在定时器1中设置一个时间常数,使其每隔0.1s产生一次中断,CPU响应中断后将R0中计数值减1,令R0=05H,即可实现0.5s延时。时间常数可按下述方法确定:

机器周期=12÷晶振频率=12/(6×106)=2(μs)

设计数初值为X,则(216-X)×2×10-6=0.1,可求得X≈15 535,转化为十六进制,则X=3CAFH,故初始值为TH1=3CH,TL1=AFH。

2)初始化程序

初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确设置,并将时间常数送入定时器中。由于只有定时器中断,因此IP不必设置。

3)设计中断服务程序和主程序

中断服务程序除了要完成计数减1工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制LED按要求顺序亮灭。其实验原理图同6.2.1节中的图6.13。(www.xing528.com)

4.实验内容

8031内部定时器T1按方式1工作,即作为16位定时器使用,每0.1s T1溢出中断一次。P1口的P1.0~P1.7分别接LED1~LED8。要求编写程序模拟一循环彩灯。彩灯变化顺序可自行设计。本实验给出的变化顺序如下:

(1)LED1、LED2、…、LED8依次点亮;

(2)LED1、LED2、…、LED8依次熄灭;

(3)LED1、LED2、…、LED8全亮、全灭。

各时序间隔为0.5s。使LED按以上规律循环显示。

5.实验步骤

P1.0~P1.7分别接LED1~LED8即可。编写程序,完成实验。

循环彩灯定时实验程序流程图如图6.29和图6.30所示。

图6.29 循环彩灯定时实验主程序流程图

图6.30 循环彩灯定时实验中断程序流程图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈