基与89C51单片机外部中断实验

合集下载

(完整word版)传感器大作业

(完整word版)传感器大作业

洛阳理工学院《检测与转换技术》期末大作业题目:酒精测试仪专业:自动化姓名:高志远学号:B12041214日期: 2014.11.22随着中国经济的高速发展,人民生活水平的迅速提高,中国逐渐步入“汽车社会"酒后驾驶行为所造成事故越来越多,对社会的影响也越来越大,酒精正在成为越来越凶残的“马路杀手"。

越来越多的交通事故在我们的身边发生,让人心痛,经济的发展,每个人都希望人的安全意识也该发展.此外,由交通事故造成的经济损失也相当惊人.据事故调查统计,超过半数的车祸与饮酒有关。

在全国各地加强查处酒后驾驶的力度,以减少由酒后驾驶造成的恶性交通事故。

要查处就涉及到检测人体内的酒精含量和使用设备来进行检测的问题。

本文设计了一种用于公共场所具有检测及超限报警功能的酒精浓度智能测试仪.其设计方案基于89C51单片机,MQ-3酒精浓度传感器。

系统将传感器输出信号通过A/D转换电路调理后,经由单片机进行数据处理,最后由4位LCD数码管显示酒精浓度值。

并且根据不同的环境设定不同的阈值,对超过的阈值进行自动报警来提示危害。

从而让驾车的人知道自己该在什么情况下可以开车,这是一个在现代生活很实用,很负责的一个设计。

开车司机只要将嘴对着传感头使劲吹气,仪器就能发上显示出酒精浓度的高低,从而判断该司机是否酒后驾车,避免事故的发生。

当然,最好的办法是在车内安装这种测试仪,司机一进入车内检测仪就检测司机的酒精含量,如果超出允许值,系统控制引擎无法启动,这样就可从根本上解决酒后驾车问题。

酒精测试仪在生产中也有重要的应用,比如,在一些环境要求严格的生产车间,用这种酒精浓度探测仪,可随时检测车间内的酒精气体浓度,当酒精气体浓度高于允许限定值时要及时通风换气,做到安全生产。

当然,依照同样的原理也可设计检测其他气体的探测仪,与我们的生活息息相关的是检测有毒气体.1.方案设计1。

1概述:该设计方案基于89C51单片机,MQ—3酒精浓度传感器。

实验2--AT89C51单片机定时

实验2--AT89C51单片机定时

实验2 INT0中断与AT89C51单片机定时/计数器应用技术仿真实验一、实验目的1. 学习外部中断技术的基本使用方法。

2. 学习中断处理程序的编程方法。

3. 初步了解C51芯片来驱动动态数码管计数原理。

二、实验器材计算机,windows7旗舰版,keil uVision4,,所需元件清单有:AT89C51,普通电容,电解电容,晶体振荡器,电阻,数码管排阻及按键。

三、实验原理MCS-51是一个多中断源的单片机,以8051为例,有三类共五个中断源,分别是外部中断两个,定时器中断两个和串行中断一个(其中断控制字在后面实验中详细讲到)。

外部中断是由外部原因引起的,共有两个中断源,既外部中断0和外部中断1。

它们的中断请求信号分别由引脚()和()引入;外部中断请求信号有两种,既低电平有效方式和脉冲后沿负跳有效方式。

、中断开放和屏蔽-IE寄存器其作用是用来对各中断源进行开放或屏蔽的控制,各位定义如下:?EA—中断允许总控制位EA=0 中断总禁止,禁止所有中断。

EA=1 中断总允许。

EX0(EX1)-- 外部中断允许控制位EX0(EX1)=0 禁止外中断。

EX0(EX1)=1 允许外中断。

ET0(ET1)-- 定时/计数中断允许控制位ET0(ET1)=0 禁止定时/计数中断。

ET0(ET1)=1 允许定时/计数中断。

ES –串行中断允许控制位ES=0 禁止串行中断。

ES=1允许串行中断。

中断优先级控制寄存器(IP)|地址为B8H,位地址为BFH-B8H,各位定义如下:"PT0—定时中断0优先级设定位PX1--外部中断1优先级设定位PT1—定时中断1优先级设定位PS—串行中断优先级设定位为0的位优先级为低;为1的位优先级为高;中断优先级是为中断嵌套服务的,MCS-51中断优先级的控制原则是:(1)低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。

单片机八路抢答器实验报告

单片机八路抢答器实验报告

初始化
显示 FFF 开始键
加一键
减一键
Y
去抖动 Y
Y
调整 抢 答时 间
非法 抢 答处 理
显示 犯规
正 常 抢 答
显示抢答 号并倒计 时
回 答 时 间
图 4.2.1 程序设计流程图
INT0 用于调整抢答时间,设计流程图如下:
图 4.2.2 抢答时间调整流程图
INT1 用于调整答题时间,设计流程图如下:
人设定(如 30 秒)。当节目主持人启动“开始”键后,要求定时器立即减 计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间 0.5 秒左右。 2. 参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显 示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。 3. 如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂 报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示 00。
图 3.2.3 显示与显示驱动电路 3.3.4 蜂鸣器音频输出电路
通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要一 些简单的提示声音和稍微显眼的灯控,有抢答违规,开始抢答,抢答时间结束和 回答时间到得提示声和亮灯提醒。如图 3.2.4 所示:
图 3.2.4 蜂鸣器音频输出电路
四、 系统软件设计
如图 3-1 所示,P3.0 为开始抢答,P3.1 为停止,P1.0-P1.7 为八路抢答输 入,数码管段选 P0 口,位选 P2 口低 3 位,蜂鸣器(用绿灯代替)输出为 P3.6 口。P3.4 为时间加 1 调整,P3.5 为时间减 1 调整,P3.2 抢答时间调整键,P3.3 答题时间调整键。
本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用 AT89C51 单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时 和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同 时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系 统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效; 抢答限定时间和回答问题的时间可在 1-99s 设定;可以显示是哪位选手有效抢答 和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满 时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非 法。

基于STC-89C51的流水灯的设计与实现

基于STC-89C51的流水灯的设计与实现

开放与创新实验设计报告设计题目:基于STC-89C51的流水灯的设计与实现指导老师:设计时间:开放与创新实验任务书一、设计任务设计题目:按键式流水灯设计。

设计内容:本设计是按键式流水灯设计,给出如下需求:整个流水灯系统由按键控制,实现各种状态(4种状态)之间的转换,即按键第一次压下,流水灯进入到第一种状态;按键第二次压下,流水灯进入到第二种状态;以此类推。

二、系统需求基本要求:利用STC-89C51单片机作为系统核心控制部分,用16个发光二极管模拟流水灯的显示部分,自己设计电路和程序完成流水灯设计。

发挥部分:1.使用外部中断作为对按键的控制。

2.用硬件定时器完成流水灯状态转换间的延时,延时误差小于20×10-6s.开放与创新实验_流水灯设计报告流水灯控制系统设计摘要:本系统由单片机系统、数码显现管、LED 显示等部分组成。

系统能够实现以下功能:往南和往北的信号一致,即红灯(绿灯或黄灯)同时亮或同时熄灭。

用两个数码管来显示被点绿亮的指示灯还将点亮多久。

往东和往西方向的信号一致,其工作方式与南北方向一样,也采用两个数码管来倒计时。

当南北方向为绿灯或黄灯时,东西方向的红灯点亮禁止通行;而东西方向为绿灯或黄闪灯时,南北向的红灯点亮禁止通行。

交通信号灯控制方式很多。

本设计采用MSC-51系列单片机STC89C51和可编程并行I/O接口芯片8255,8155为中心器件来设计交通灯控制器,实现了用,8155芯片控制数码显现管,PC口进行段选,PB进行位选,来设置红、绿灯点亮倒计时的功能;由8255芯片控制12个LED 灯来实现红绿黄灯状态,红绿灯循环点亮,倒计时结束后黄灯闪烁警示。

在设计中采用了硬件技术与软件技术相结合的方法,用STC-89C51的定时器T0,设定30秒倒计时时间,然后再利用软件进行技术,从而产生秒信号。

定时器T0用了中断方式,当定时时间到时,在T0断服务程序中实现秒的倒计数,从而控制LED显示器倒计数显示准行或禁行时间。

基于单片机89C51的报警器与旋转灯

基于单片机89C51的报警器与旋转灯

课程设计设计题目:基于单片机的报警器与旋转灯设计学生姓名:周颖指导教师:高峰二级学院:机电工程学院专业:电气工程及其自动化班级: 11电气(一)班学号: **********目录摘要........................................................... I I 摘要.................................................................................................................................................................... I I 2 系统设计. (2)2.1 设计方案论证 (2)2.2 系统硬件设计 (2)2.2.1 控制模块 (2)2.2.2 开关报警器模块 (5)2.2.3 旋转灯模块 (5)2.2.4 硬件电路中器件选择 (5)3 系统调试 (10)3.1 软件调试 (10)参考文献 (14)参考文献 (14)基于单片机的报警器与旋转灯设计摘要报警器与旋转灯,是一种为防止或预防某事件发生所造成的后果,以声、光两种形式来提醒或警示我们应当采取某种行动的电子产品。

随着科技的进步,机械式报警器越来越多地被先进的电子报警器代替,经常应用于系统故障、安全防范、交通运输、医疗救护、应急救灾、感应检测等领域,与社会生产密不可分。

其通常具有以下几个优点:1)光效节能:光效高、寿命长、节能环保;优良的芯电路设计,声音和声光两种工作模式任意转换,声音报警声强高达115分贝以上,穿透能力强。

2)充电组,充放电性能稳定、容量高、自放电率低、节能环保。

3)安全可靠:采用先进的光学软件和优化的结构密封设计,具有很强的环境适应性,转动安静平稳,经受强力的碰撞和冲击,确保元件可在恶劣的环境中长期稳定可靠的工作。

第5章 89C51的中断系统---部分习题解答

第5章 89C51的中断系统---部分习题解答
先级中断服务程序的条件 下。中断响应等待时间最少需要几个机周?最长需要几个机 周?
答:在CPU未执行同级或更高优先级中断服务程序的条 件下,中断响应等待时间最少需要3个机周,最长需要8个 机周。
19.简述89C51外中断的触发方式,电平触发方式时,如何防 止CPU重复响应外中断? 答:80C51外中INT0/INTl有两种触发方式:电平触发和边 沿触发方式。采用电平触发方式时,CPU响应中断后,虽用硬件 自动清除了相应中断请求标志IE0/IEl,但相应引脚(P3.2/P3.3) 的低电平信号若继续保持下去(一般可能保持时间较长),中断 请求标志IE0/IEl就无法清零,就会发生重复响应中断情况, 引起出错。需要采取软硬件结合的方法撤消引起重复中断相应 引脚的低电平信号。 硬件电路如教材书图5-4所示。当外部设备有中断请求时, 中断请求信号经反相,加到锁存器CP端,作为CP脉冲。由于 D端接地为0,Q端输出低点平,触发INT0产生中断。当CPU 响应中断后,应在该中断服务程序中按排两条指令: CLR P1.0; SETB P1.0; 使P1.0输出一个负脉冲信号,加到锁存器Sp端(强迫置“1” 端),Q端输出高点平,从而撤消引起重复中断的INT0低电平 信号。因此一般来说,对外中断INT0、INT1,应尽量采用边 沿触发方式,以简化硬件电路和软件程序。
14.89C51中断处理过程包括哪四个步骤?简述中断处理过程。 答:中断处理过程大致可分为四步:中断请求、中断响应、中 断服务和中断返回。 ①中断请求:由中断源向CPU发出中断请求信号。 ②中断响应:在满足中断响应条件下,响应中断,保存断点地 址,将相应中断的入口地址送入PC。 ③中断服务:执行中断服务程序,完成中断源要求的相应操作。 ④中断返回:恢复断点地址,开放同级中断。 15.89C51响应中断有什么条件? 答:中断响应条件: ①该中断已经“开中”; ②CPU此时没有响应同级或更高优先级的中断; ③当前正处于所执行指令的最后一个机器周期; ④正在执行的指令不是RETI或者是访向IE、IP的指令;否则必 须再另外执行一条指令后才能响应。

基于89C51单片机的秒表课程设计

基于89C51单片机的秒表课程设计

摘要随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人对它的认识也逐步加深。

秒表计时器秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。

其中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。

而复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时应立即终止,并对计时器清零。

本设计就是利用所学到的电子元器件将脉冲源用数码管显示出来,以制承诺简易的秒表。

以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止、时间显示。

采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。

目录一、设计任务 (2)二、设计题目 (2)三、功能分析 (2)四、总体设计 (3)4.1硬件设计 (3)4.1.189C51单片机 (3)4.1.2晶体振荡电路 (5)4.1.3复位电路 (6)4.1.4按键电路 (7)4.2引脚控制 (9)五、电路原理图 (10)六、程序流程图及程序设计 (11)6.1程序流程图 (11)6.2程序设计 (12)七、程序仿真 (22)八、心得体会 (23)九、致谢 (24)十、参考文献 (25)一、设计任务以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止、时间显示。

二、设计题目秒表的设计三、功能分析采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。

单片机课程设计_基于89C51的温度报警器设计

单片机课程设计_基于89C51的温度报警器设计

单片机系统课程设计成绩评定表设计课题:基于89C51的温度报警器设计学院名称:电气工程学院专业班级:学生姓名:学号:指导教师:设计地点:设计时间:指导教师意见:成绩:签名:年月日单片机系统课程设计课程设计名称:基于89C51的温度报警器设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间:单片机系统课程设计任务书学生姓名专业班级学号题目课题性质工程设计课题来源选题指导教师主要内容(参数)利用89C51设计温度报警器实现以下功能:1.实现对环境温度的测量和显示;2.温度超过设定值时,蜂鸣器报警;3.报警同时系统发出中断命令停止工作;任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。

第3-4天:按照确定的方案设计单元电路。

要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。

第5-8天:软件设计,编写程序,要求内容完整、图表清晰。

第9-10天:撰写课程设计报告。

要求文理流畅、格式规范、方案合理、设计正确。

主要参考资料[1] 张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:国防工业出版社,2004[2]伟福LAB6000系列单片机仿真实验系统使用说明书[3] 阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006审查意见系(教研室)主任签字:年月日目录1 引言 (4)2 总体方案设计 (4)2.1总体方案 (4)2.2 方案论证 (4)2.3 硬件组成 (6)3 硬件电路设计 (7)3.1 时钟电路 (7)3.2 复位电路 (7)3.3 A/D转换设计 (8)3. 4放大电路设计 (9)3.5 显示电路设计 (10)3.6 报警电路 (11)4 系统软件设计 (12)4.1 主程序设计 (12)4.2 显示子程序的设计 (13)4.3 AD转换设计 (14)5 总结 (15)附录A 总原理图...................................................................... 错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六外部中断实验一
一、实验要求
1.在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路
2.P1口上拉接8个LED;
3.在Keil软件中编写程序,对LED显示进行控制,显示方式有两种:(1)0、7亮,1、
6亮,2、5亮,3、4亮,0、7亮循环;(2))3、4亮,2、5亮,1、6亮,0、7亮,
3、4亮循环。

4.在P3.2连接一个按键,当按键弹起时引脚为高电平,当按键按下时引脚为低时平
5.编写程序:系统对LED显示进行控制,一开始显示方式为(1),当按下P3.2连接
的按键时,系统在(1)和(2)之间切换显示方式
二、实验目的
1.学习端口输入输出的高级应用
2.掌握LED查表显示法
3.掌握外部中断的工作原理
4.掌握外部中断程序设计
三.实验说明
(条理清晰,含程序的一些功能分析计算)
1.程序中void my_int(void) interrupt 0 using 1
{ flag=!flag;} //中断子程序是中断子程序,就是按键按下中断一次。

2.以下是灯亮的方式改变,即flag取反一次就改变一次。

通过i++或i—实现
变化。

while(1)
{ P1=LED[i]; //在P1口显示灯亮的方式
delay_ms(500); //延时0.05s
if(flag) //判断P3^2开关是否按下
{i++;
if(i>=4) //如果灯显示从两边到中间要在回到两边
i=0;}
else{i--;
if(i<0)//同上
i=3;}
四、硬件原理图及程序设计
(一)硬件原理图设计
(二)程序流程图设计

开始
定义变量
i=0;flag=1;
P0=LED[i];
Flag ?
i++; 否 i--;
P3.3按下时进行中

Flag=flag!;
(三)程序设源代码
#include<reg51.h>
#define led P0
//1MS延时子程序
void delay_ms(int x){ //延时程序
int i,j;
for(i=0;i<x;i++){
for(j=0;j<120;j++);}
}
char i=0,flag=1; //设定整体变量
char LED[4]={0X7E,0XBD,0XDB,0XE7}; //查表显示的LED代码
void delay_ms(int i);
main(){
EA=1; //开总开关
EX0=1;//开中断小开关
IT0=1;
while(1)
{ P1=LED[i]; //在P1口显示灯亮的方式
delay_ms(500); //延时0.05s
if(flag) //判断P3^2开关是否按下
{i++;
if(i>=4) //如果灯显示从两边到中间要在回到两边
i=0;}
else{i--;
if(i<0)//同上
i=3;}
}
}
void my_int(void) interrupt 0 using 1
{ flag=!flag;} //中断子程序
五.实验总结
3.当我们没用外部中断实现灯亮方式变化时,要判断P3.3口是否按下。

这种
方法比较不好,按键要按就点才可以改变。

4.我们仿真图中灯管脚要与程序中的对应。

5.灯亮的间隔时间要设置合适。

实验七外部中断实验二
一、实验要求
1.在数码管动态显示实验中的电路图基础上,绘制两个按钮K1和K2,一端分别与单
片机P3.2和P3.3引脚,当按键弹起时引脚为高电平,当按键按下时引脚为低时平
2.在Keil软件中编写程序, 采用动态显示法,主程序让实现数码管分别显示数字1,
2,3,4,当K1按下时数字顺序向右移一位显示,当K2按下时数字顺序向左移一
位显示
二、实验目的
1.掌握7段数码管的连接方式和动态显示法
2.巩固中断的知识,学会外部中断的使用
3.掌握查表程序、中断服务子程序和延时等子程序的设计
三.实验说明
1.对程序的用查表法显示1234.当要移位时用中断对j++,就是每按下按键就
加一,而另外一个中断j--。

2.查表时我们的表数据是1,2,3,4,1,2,3,4这样就可以实现移位,这
种方法比较简单。

四、硬件原理图及程序设计
(一)硬件原理图设计
(二)程序流程图设计
(三)程序设源代码
#include<reg51.h>
sbit P3_2=P3^2;
sbit P3_3=P3^3;
//1MS延时子程序
void delay_ms(int x){ //延时子程序(x)ms
int i,j;
for(i=0;i<x;i++){
for(j=0;j<120;j++);}
}
char TAB[8]={0XF9,0Xa4,0Xb0,0X99,0XF9,0Xa4,0Xb0,0X99}; void delay_ms(int i);
char j=0,a=0,b=0,c=0;
main(){
EA=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
a=j+1;
b=j+2;
c=j+3;
while(1)
{
a=j+1;
b=j+2;
c=j+3;
P2=TAB[j];//P2口显示数据1
P0=0X01; //P0口选择显示第一个数码管
delay_ms(5);//延时0.005s
P0=0X00;
P2=TAB[a];//P2口显示数据2
P0=0X02; //P0口选择显示第一个数码管
delay_ms(5);//延时0.005s
P0=0X00;
P2=TAB[b]; //P2口显示数据3
P0=0X04; //P0口选择显示第一个数码管
delay_ms(5);//延时0.005s
P0=0X00;
P2=TAB[c]; //P2口显示数据4
P0=0X08; //P0口选择显示第一个数码管
delay_ms(5);//延时0.005s
P0=0X00;
if(j>3)j=0;
if(j<0)j=3;
}
}
void zd0() interrupt 0 using 1
{ j++;}
void zd1() interrupt 2 using 1
{ j--;}
五.实验总结
1.在写程序时我是用了查表法,这样比静态显示1234程序比较简单。

2.而我的两个按键刚好放在P3_2和P3_3,这样我们就可以用到两个中断判断
按键是否按下。

中断比按键去抖动好。

相关文档
最新文档