单片机实验三-定时器实验
实验三 定时器实验
——循环彩灯实验
1、 实验目的
1. 学习8051内部计数器的使用和编程方法。
2. 进一步掌握中断处理程序的编写方法。
单片机实验三-定时器实验
实验三 定时器实验
——循环彩灯实验
1、 实验目的
1. 学习8051内部计数器的使用和编程方法。
2. 进一步掌握中断处理程序的编写方法。
2、 实验原理
1. 定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的
1/12。比如实验中时钟频率为12MHZ,现要采用中断方法来实现
,要在定时器1中设置一个时间常数,
产生一次中断,CPU响应中断后将RO中计数值减一,令RO=0AH,即
。
初值=65536-50000
2. 初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送
入定时器中。
3. 设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新
送入定时器中,为下一次中断做准备。主程序则用来控制发光二
极管按要求顺序燃灭。
3、 实验要求
由8051内部定时器1按方式1工作,即作为16位定时器使用,。~
光二极管的L1~L8。要求编写程序模拟一循环彩灯。彩灯变化
花样可自行设计。建议变化花样为:L1、L2、…L8依次点亮;
L1、L2、…L8依次熄灭;L1、L2、…L8全亮、全灭。各时序间
。让发光二极管按以上规律循环显示下去。
4、 实验连线
~~L8即可。
5、 程序
org 0000h
Ljmp main
org 000Bh
Ljmp INTT
org 0100h
main:
mov sp,#60h /*设置堆栈指针
mov TMOD,#01h /*设置TMOD,仅由TRx控制中断,定时器
模式,工作方式1
mov TH0,#3CH
MOV TL0,#0B0H /*设置初值x=65536-50000 (12M晶振)
SETB EA /*开中断
SETB ET0 /*开定时器中断T0
SETB TR0 /*启动定时器
MOV R1,#8 /*中断子程序工作方式1的工作次数
MOV R2,#8 /*中断子程序工作方式2的工作次数
MOV R3,#1 /*中断子程序工作方式3的工作次数
MOV R0,#0AH /*延时次数(产生中断的次数)
单片机实验三-定时器实验 来自淘豆网m.daumloan.com转载请标明出处.