- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一定时器及外部中断实验
实验一 定时器及外部中断实验
——有急救车的交通灯控制实验
一、实验目的
1、熟练在单片机系统中扩展简单I/O接口的方法。
2、熟练C51语言数据输出程序的设计方法。
3、学习模拟交通灯控制的C51实现方法。
4、学习外部中断技术及定时器中断的C51基本使用方法。
5、学习中断处理程序C51编程方法。
二、实验设备
硬件:PC机
软件:uVision2 keil c51
三、实验内容
本实验的原理图如下:
编写程序,完成以下功能:
模拟交通灯管理:允许急救车优先通过的要求
具体要求为: 当有急救车到达时,东西和南北方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本实验以单脉冲为中断申请,表示有急救车通过。
四、实验原理
1、实验方案
本实验的设计可以有两种设计方案:
方案一:用十二个发光二极管分别表示南面路口的绿灯、黄灯、红灯,东面路口的绿灯、黄灯、红灯,北面路口的绿灯、黄灯、红灯,西面路口的绿灯、黄灯、红灯。
方案二:虽然实际交通灯的数量是十二个,但是因为南北路口的两个红灯、绿灯以及黄灯的亮灭 规律相同,其它路口的灯也满足同样的规律,所以用六个发光二极管也能模拟交通灯。由原理图可定义如下:
LED1、LED2、LED3 → 南北方向的绿灯、黄灯、红灯
LED4、LED5、LED6 → 东西方向的绿灯、黄灯、红灯
要完成本实验,首先必须了解交通路灯的亮灭规律,本实验的亮灭规律如下:
1、初始态是两个方向路口的红灯全亮。
2、东西路口的绿灯亮,南北路口的红灯亮,东西方向通车。
3、延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
4、闪烁若干次后,东西路口红灯亮,同时南北路口绿灯亮,南北方向开始通车。
5、延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,如此反复下去。
本实验以单脉冲为中断申请,表示有急救车通过。特别注意的是中断现场的保护。
要求用软件或者定时器来完成延时。
2、实验说明
因此交通灯(发光二极管)的显示数据可以赋给OUTPORT变量,实现结果的输出。本实验中还要注意的是,交通灯的每一种状态的显示,都需要延时一段时间再切换到另一种状态,从而实现每一种状态的稳定显示。其C51语言的实现方法如下:
OUTPORT=x;//显示交通灯某一状态数据x
Delay(1);//延时1ms
OUTPORT=y; //显示交通灯另一状态数据y
Delay(1); //延时1ms
……
实验中涉及到急救车通过,要求使用外部中断的方式实现。在本实验中我们可以利用单片机的外部中断INT0实现。也就是说,急救车通过时,首先利用INT0外部中断给单片机发脉冲,告知单片机,急救车要求通过,然后单片机接收到脉冲,并做出判断并使东西和南北方向上的红灯亮,同时延时10秒,10秒后表明急救车已经通过,此时单片机恢复原状态。利用C51语言可定义外部中断如下:
void Rescure_bus() interrupt 0
{
EA=0;//关闭中断,即不允许其它中断
OUTPORT=0x11;// 0x11为东西和南北方向上红灯亮的状态数据
Delay(10000);//延时10s
……
EA=1;//开启中断
}
在调用外部中断0时,一定要注意的是中断现场的保护,要就是说,中断完成后,一定能够恢复中断前的状态,那么在中断程序中使用的变量、外部端口、内部资源,如果在中断前正在使用,那么在中断开始前一定要保护,中断后一定要恢复。
同时,注意的是由于在实验中使用到单片机资源外部中断0,需要对对应的特殊寄存器作一定的配置。首先需要定义特殊寄存器变量:
sfr IE=0xA8;
sbit EA=IE^7;
sbit EX0=IE^0;
当然,这些特殊寄存器的定义实际上在reg51.h库中定义了,因此在C51编程时,只要包含上reg51.h即可,如下所示:
#include reg51.h
本实验需要使用到这些特殊寄存器,就是在程序初始化时需要对这些寄存器赋初值,才可保证对应的INT0中断正常工作。本实验赋初值如下:
IT0=1;
EX0=1;
EA=1;
本实验可以根据实际实验箱的配置来选择以上方案中的任意一种。本实验按照方案二来设计,选用实验箱上八个发光二极管中的六个,即红、黄、绿各两个。例如将L1(红)、L2(绿)、L3(黄)作为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)作为南北方向的指示灯,同学们还可以用别的设计方法。各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电
您可能关注的文档
最近下载
- 人教版数学一年级上册 前后上下左右专项练习题(试题) .docx VIP
- Unit 3 Same or Different Section A Grammar Focus—3c课件(共21张PPT)人教版英语八年级上册.pptx VIP
- 液化石油气安全技术说明书.doc VIP
- “希沃易+”融合小学英语教学的应用与研究 论文.pdf VIP
- 建筑业税收政策培训课件.pptx VIP
- 2025山东济南市工会社会工作专业人才联合招聘47人笔试模拟试题及答案解析.docx VIP
- 2023年青海省成考(专升本)大学政治考试真题含解析.doc VIP
- 部编版八上语文名著《红岩》章节练习.docx VIP
- 公差分析标准模板.xlsx VIP
- 世界咖啡介绍.ppt VIP
文档评论(0)