单片机实验三-定时器实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三 定时器实验

——循环彩灯实验

1、 实验目的

1. 学习8051内部计数器的使用和编程方法。

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

2、 实验原理

1. 定时常数的确定

定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的

1/12。比如实验中时钟频率为12MHZ,现要采用中断方法来实现

0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒

产生一次中断,CPU响应中断后将RO中计数值减一,令RO=0AH,即

可实现0.5秒延时。

初值=65536-50000

2. 初始化程序

包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送

入定时器中。

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

中断服务程序除了要完成计数减一工作外,还要将时间常数重新

送入定时器中,为下一次中断做准备。主程序则用来控制发光二

极管按要求顺序燃灭。

3、 实验要求

由8051内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。P1口的P1.0~P1.7分别接发

光二极管的L1~L8。要求编写程序模拟一循环彩灯。彩灯变化

花样可自行设计。建议变化花样为:L1、L2、…L8依次点亮;

L1、L2、…L8依次熄灭;L1、L2、…L8全亮、全灭。各时序间

隔为0.5秒。让发光二极管按以上规律循环显示下去。

4、 实验连线

P1.0~P1.7分别接发光二极管L1~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 /*延时次数(产生中断的次数)

MOV A,#0FFH

WAIT1:AJMP WAIT1

INTT:

MOV TH0,#3CH

MOV TL0,#0B0H /*计数器赋初值

DJNZ R0,RETT /*R0减1后判断延时的次数是否足够,足够顺序执

行,不足够跳中断返回

CJNE R1,#0,INTT1 /*判断彩灯工作方式1工作是否完毕,完毕顺序执行

下一种方式,未完毕跳转继续执行此种方式

CJNE R2,#0,INTT2 /*判断彩灯工作方式2工作是否完毕,完毕顺序执行

下一种方式,未完毕跳转继续执行此种方式

CJNE R3,#0,INTT3 /*判断彩灯工作方式3工作是否完毕,完毕顺序执行

下一种方式,未完毕跳转继续执行此种方式 JMP INTT4 /*跳转执行第4种方式

INTT1:MOV R0,#0AH /*重新向延时次数计数器赋初值

CLR C /*C清零

RLC A /*带进位左循环移位,低位移入0,即LED

相继点亮(低电平亮)

DEC R1 /*工作次数减1

JMP RETT /*跳中断返回

INTT2:MOV R0,#0AH

SETB C /*C置1

RRC A /*带进位右循环移位,高位移入1,即LED

相继熄灭(低电平灭)

DEC R2

JMP RETT

INTT3:MOV R0,#0AH

MOV A,#0 /*8位LED灯全部点亮

DEC R3

JMP RETT

INTT4:MOV R0,#0AH

MOV P1,#0FFH /*8位LED灯全部熄灭

MOV R1,#8

MOV R2,#8

MOV R3,#1

MOV R0,#0AH

MOV A,#0FFH /*重新装入相应初值,循环执行彩灯的四种工作方式

JMP INTT

RETT:

MOV P1,A /*输出彩灯的各种状态

RETI

END

6、 结论

通过本次试验掌握了8051内部计数器的使用和编程方法。而且进一步掌握中断处理程序的编写方法。

相关文档
最新文档