定时器循环彩灯实验c语言,单片机实验6__定时器控制循环彩灯实验.doc

华 南 农 业 大 学 实 验 报 告

专业班次 08电信1 组别 200831120102

题目 实验六 定时器控制循环彩灯 姓 名 陈 建 泽 日期 2010.11.4

一、实验目的

1.学习89C51内部定时器的使用和编程方法。

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

二、实验设备:

STC89C52单片机实验板、串口下载线、USB连接线、电脑

实验原理

1.定时常数的确定

定时器/计数器的输入脉冲周期与机器周期一样, 为振荡频率的1/12。本实验中时钟频率为12.0 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒产生一次中断,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=B0H

2.初始化程序

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

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

成绩: 教师: 日期:

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

3.根据流程图,编写实验程序,并完成调试。

五、实验流程图

中断产生各灯依次点亮

中断产生

各灯依次点亮

各灯依次熄灭

全亮、全灭

给A重装初值

中断返回

开始

定时器初始化,50ms一次中断

R0做中断次数寄存器

A控制P1口

等待中断

定时器控制循环彩灯流程图

实验程序

根据实验流程图,编写出一下实验程序,并完成调试。

//*******************实验6 定时器控制循环彩灯实验**************

;实验名称:定时器控制循环彩灯实验

;功 能:彩灯变化花样为:①LED1、LED2、…LED8依次点亮;

; ②LED1、LED2、…LED8依次熄灭;③LED1…LED8全亮、全 灭。

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

;编 写 人:08电信1 陈建泽

;编写时间:2010年11月4日

//***********************程序代码如下*****************************

ORG 0000H

AJMP START

ORG 000BH ;定时器0中断服务子程序入口

AJMP T0INT

ORG 0030H

START:MOV TMOD,#01H ;定时0工作模式1

MOV TH0,#(65536-50000)/256 ;定时器0高八位初值

MOV TL0,#(65536-50000)MOD 256 ;定时器0低八位初值

SETB EA ;开总中断

SETB ET0 ;开定时器0中断

SETB TR0 ;启动定时器0

MOV A,#0FEH ;先点亮第一盏灯

MOV P1,A

MOV R0,#00H ;R0为中断次数寄存器

AJMP $

//*******************定时器0中断服务子程序***************

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值