- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验6外部中断
实验六 外部中断
实验目的
了解外部中断的原理,功能,熟悉外部中断的两种方式;
了解计数器计数原理,学会灵活运用计数器。
实验设备
2.1 硬件 PC 机 一台 ,实验开发板 一套
2.2 软件 Windows98/XP系统,KEIL集成开发环境 ,ISP 下载软件
实验内容
3.1 对脉冲输入模块输入脉冲时,触发外部中断1发生中断,对脉冲计数,将结果显示到数码管的前四位;
3.2 对脉冲输入模块输入脉冲时,用计数器1对输入的脉冲计数,每隔10秒钟显示一次计数值在数码管的后四位上。
硬件连接
本实验涉及到脉冲输入模块与数码管显示模块两部分,请确保该模块中的跳线器连接正确,以打开数码管的连接。特别是红外发送-接收对管 所对应的三个跳线中,INT1与TIMER0的跳线要接上。
实验原理
实验硬件原理
脉冲输入模块中的红外线发送-接收对管用作脉冲输入,其原理图如下
在正常状态下,发送管发送??外线,接收管接收,信号输出端输出为低电平;若发送管和接收管之间插入一件对红外线有遮挡的物体,接收管不能接收到红外线,此时信号输出端输出高电平。如果遮挡物是循环连续运动的话,该装置就是一个非常好的无触点信号源。
K1,K2,K3接 红外发送-接收对管 的信号输出端,A1,A2,A3分别与AT89S52的P3_3(INT1 外部中断1),P3_4(T0计数器的脉冲输入引脚),P3_5。
实验软件原理
输入/输出设备的中断请求,掉电、设备故障的中断请求等都可以作为
外部中断源,此实验中是用红外发送-接收对管 的信号为中断源从引脚INT1输入。 定时器/计数器做为计数器用时,加法计数器对芯片引脚T0(P3_4)或T1(P3_5)上输入的脉冲计数,此时验中是用红外发送-接收对管 的信号为输入脉冲(接到引脚P3_4上)。
所以本实验主要是对外部中断及计数器的运用,通过设定其相应的寄存器来实验所要实验的功能。
实验预习要求
6.1 预习《单片微机原理及应用》中的第二章第四节和第七节,对外部中断和计数器要有一定的了解;
6.2 了解脉冲输入模块中红外线发送-接收对管的原理及应用。
6.3 画出本次实验内容中涉及的程序的流程图。
实验步骤
1. 确保脉冲输入模块和数码显示模块中跳线器的正确连接
2. 启动keil集成开发环境,建立一个新工程,选择ATMEL公司的AT89S52芯片,同时选择对象输出的Creat HEX file复选框。
3. 建立汇编源文件,同时将汇编源文件添加到新的工程下。
4. 根据实验内容要求,编写程序代码。
5. 编译,调试程序,通过初步检测正确之后,将程序编译成hex文件,下载到实验板上,检测其正确性。
参考程序流程图
思考题
在对脉冲计数时,所输出的数字有可能跟你手动制造的脉冲次数不相符合,这是为什么呢?作出解释。
参考代码
文件中的led.h文件在做数码管扫描实验时已创建,只需拿来调用即可
/**********************************Copyright(c)**********************
**
** 西南科技大学计算机学院
**
**
**
** 日期: 2007.9.19
** 描述:外部中断与计数器 ,本程序已通过调试,仅供参考。
** 实验内容: 通过红外发送-接收对管来产生外部中断1的中断源及定时器/计数器0的计数输入脉冲,并将外部中断的中断个数显示在前4个数码管上,计数器10秒内的计数个数显示在后4个数码管上.
** 适用机型:AT89S52
**
********************************************************************/
/******************************************************
红外对管联接到 INT1(P3_3) 和 TIME0(P3_4)的计数脉冲输入端
以下程序中 T0计数 T1定时(做此设定的原因与硬件电路的连接有关)
******************************************************/
#include at89x52.h
#include LED.h
#define uchar unsigned char
long temp = 0;
unsigned int count = 0x0000;
unsigned int count_
文档评论(0)