第一范文网 - 专业文章范例文档资料分享平台

单片机定时器中断实验

来源:用户分享 时间:2025/5/17 4:35:18 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验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的程序,并进行调试。

代码见前面参考程序

六、 实验原理图

搜索更多关于: 单片机定时器中断实验 的文档
单片机定时器中断实验.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7d3hd76y269pg7z7hdvh6c4rp7oyx100soe_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top