好文档 - 专业文书写作范文服务资料分享网站

单片机定时器中断实验

天下 分享 时间: 加入收藏 我要投稿 点赞

实验3 定时器中断实验

一、 实验目的

掌握MCS-51定时器的使用方法

二、 实验设备

AT89c51基本实验单元、计算机设备系统

三、 实验原理

(一) 实验说明

(1) 利用定时器中断方式,做一个显示0~9的秒钟。

(2) 利用定时器中断方式,做一个显示00~99的秒钟,每一秒增加1.

(二) 程序流程图

(i)

运行程序 显示 计数清零 开启中断 设置中断间隔 Y N 计数小于9 判定中断次 计数加1

(ii)

Y 中断20次 N

运行程序 十位加1 开启中断 个位清零 设置中断间隔 显示 Y N 个位小于9 判定中断次 个位数加1 Y 中断20次 N

(三) 参考程序

内容(1):只需要将内容2的代码中十位显示那一部分删除,并令D24=0即可。

内容(2):

#include

unsigned char sum1=0,sum2=0; sbit D24=P2^4; sbit D25=P2^5;

static unsigned char t; unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(unsigned int); void main() { TMOD=0x10; TL1=0xf0; TH1=0xd8; EA=1; ET1=1; TR1=1; while(1) { P0=0xff; D24=1; D25=0; P0=table[sum2]; //十 位 delay(50); P0=0xff; D24=0; D25=1; P0=table[sum1]; //个 位 delay(50); } }

void delay(unsigned int m) { unsigned int i,j; for(i=0;i

void timer0() interrupt 3 { TL1=0xf0; TH1=0xd8; t++;

}

if(t==100) { t=0; sum1++; if(sum1>9) { sum1=0; sum2++; if(sum2>9) sum2=0; } }

四、 实验步骤:

1. 根据实验原理图编写程序,用“Keil uVision4”编译软件进行编译,如未通过,修改

程序,直至通过。

2. 用STC-ISP.EXE软件将所编程序的“hex”码下载到试验板子的STC89C52芯片

中。

3. 运行程序,观察实验板上LED数码管是否是每个1秒出现0~9的显示变化。如果不

符合要求,修改程序,按照步骤1开始重新做实验,直至成功。 4. 按同样的方法调试编写实验内容2中的程序,直至调试成功。

五、 思考题

写出用LED完成实验内容2的程序,并进行调试。

代码见前面参考程序

六、 实验原理图

单片机定时器中断实验

实验3定时器中断实验一、实验目的掌握MCS-51定时器的使用方法二、实验设备AT89c51基本实验单元、计算机设备系统三、实验原理(一)实验说明(1)利用定时器中断方式,做一个显示0~9的秒钟。(2)利用定时器中断方式,做一个显示00~99的秒钟,每一
推荐度:
点击下载文档文档为doc格式
7d3hd76y269pg7z7hdvh6c4rp7oyx100soe
领取福利

微信扫码领取福利

微信扫码分享