基与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 总原理图...................................................................... 错误!未定义书签。

单片机实验教案

单片机实验教案

实验一Keil C51的使用一、实验目的1、使用C51创建工程项目文件,为工程项目选择目标器件,为工程项目设置软硬件环境。

2、创建源程序文件并输入源程序代码,保存创建源程序项目文件,并对所编写的程序进行调试、运行。

二、实验内容ORG 0000HAJMP MAINORG 0030HMAIN: MOV R4,#08MOV A,#0FEHMOV DPTR,#1000HROUNDLED:MOVX @DPTR,ARL AINC DPTRMOV R5,#50LCALL DELAYDJNZ R4,ROUNDLEDLJMP MAINDELAY:MOV R6,#50TT2:MOV R7,#100DJNZ R7,$DJNZ R6,TT2DJNZ R5,DELAYRETEND三、实验步骤及图像截屏结果1、在“我的文档”里面新建一个文件夹,命名为:LEI。

2、进入Keil C51系统的操作环境。

3、建立一个新的工程。

单击菜单命令:Project→New Project,如图1-1:图1-1 选中新工程然后选择要保存的路径,输入工程文件的名字:lei,如图1-2图1-2 给新工程取名点击“保存”按钮,会弹出一对话框,选择单片机型号为Atmel的89C51,如图1-3 :图1-3 选择单片机型号此时工程文件已经建立。

4、单击菜单命令:File→New,将实验程序编入后保存,单击菜单命令:File →Save as,注意一定要加扩展名.asm,然后单击“保存”,如图1-4:图1-4编辑程序并保存5、回到编辑界面后,单击工程窗口中“Target1”,点击“+”号展开,右键单击“Source group1”选择Add File to Group ‘source Group1’ 如图1-5:图1-5选中添加文件界面此时弹出窗口,注意选择文件类型Sam 源文件,如图所示,点击Add,如图1-6:图1-6选中要添加的文件名5、对文件进行编译、链接。

中职教育-《89C51单片机实用教程》课件:第7章 89C51单片机中断系统和定时器(4).ppt

中职教育-《89C51单片机实用教程》课件:第7章  89C51单片机中断系统和定时器(4).ppt

SJMP LOOP
END
例7.9 工作模式1的应用 利用定时器 T1 工作模式1, 在引脚 P1.1 上输出
7.4 89C51单片机中定时器/计数器的应用
在定时器/计数器应用时,进行如下工作: 1. 设定TMOD来选择定时器T0,T1的工作方式:
按照实际需要,选择定时方式还是计数方式; 按照定时长短,选择工作模式0、1、2或 3 ; 按照具体要求,选择是否受INT0 (INT1) 控制。 2.根据定时时间长短和工作模式计算计数初值: 根据工作模式,计算出定时时间的计数初值 ;
将计数初值送入定时器中(TH1,TL1,TH0、TL0) 3. 对TCON的设定来启动定时器/计数器工作。 4. 正确选择用程序查询方法或程序中断方式来进
行定时时间到(计数溢出)后的处理操作。
7.4.1 定时器工作方式的设置和计数初值计算
对定时器的工作模式寄存器TMOD进行设定:
l. 定时方式和计数方式选择。
解: ⑴ 如图在引脚 P1.0 上输出周期为 2ms 连续方波,
需要定时器 T0 产生 1ms 的定时。 每隔1ms时间 P1.0 引脚的输出取反即可。
解:
⑵. T0工作于模式0,计数器为13位的加1计数器, fosc=6MHz,则1个振荡周期为1/6μs 定时时间为1ms,根据公式: t =(213-T0初值)×振荡周期×12 1×10-3=(213-T0初值) ×( 1/6×10-6 ) ×12 T0初值= 7692 = 1111000001100B
多为:213=8192个。
例7.5 定时器T0工作在模式0, CPU主频 fosc=6MHz 定时1ms, T0的初值为多少?计算最长定时时间?
解:T0工作于模式0时, 为13位的加1计数器 ①. 定时1ms,根据公式:

89c51单片机教学实验内容与答案

89c51单片机教学实验内容与答案

1.数据传送实验要求:将片内从30H开始连续7个单元的内容送入从40H开始的地址单元中。

(先在30H~36H中送初值)#include<reg52.h>void main(){unsigned char data i,*d1,*d2;d1=0x30;d2=0x40;{*d1=0x10;*(d1+1)=0x11;*(d1+2)=0x22;*(d1+3)=0x45;*(d1+4)=0x30;*(d1+5)=0x32;*(d1+6)=0x21;}for(i=0;i<7;i++){*(d2+i)=*(d1+i);}}2.排序实验要求:将片内从30H单元开始的10个无符号数,按由小到大的顺序排列。

(先在30H~39H中送排序初值)#include<reg52.h>void main(){unsigned char data *p,i,j,d;p=0x30;*(p+0)=0x21;*(p+1)=0x11;*(p+2)=0x31;*(p+3)=0x02;*(p+4)=0x22;*(p+5)=0x42;*(p+6)=0x32;*(p+7)=0x41;*(p+8)=0x05;*(p+9)=0x22;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(*(p+j)>*(p+j+1)){d=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=d ;}}3.并行接口实验要求:使用P1口控制LED1~LED8进行花样显示。

显示顺序规律为:(1)8个LED依次左移单个点亮。

(2)8个LED依次左移逐个点亮。

(3)8个LED依次左移逐个熄灭,然后再从(1)进行循环,中间延迟时间1s。

#include<reg51.h>#define uchar unsigned char //在程序中用uchar替代unsigned char//目的在于减少代码输入量#define uint unsigned intvoid delay(uint); //定义延时函数void LeftMovLED(void); //定义向左移运点亮LED的函数//*******主函数********void main(void){while(1) //死循环{LeftMovLED(); //调用LeftMovLED实现左移点亮LED功能}}void LeftMovLED(void){uchar i,temp; //定义两个变量temp=0x01; //temp赋初值for(i=0;i<8;i++) //下面的代码循环8次{P1=temp; //将temp内的值赋给PORTD点亮LED temp=temp<<1&0xfe; //将temp左移一位后将最后一位清零。

标准125kHz正弦波发生器的设计实现

标准125kHz正弦波发生器的设计实现

标准125kHz正弦波发生器的设计实现姓名:刘星宇班级:20100434学号:20100434082013年4月12日摘要:在标准的RFID(无线射频识别卡)中,按频率可分为几个等级,其中125kHz 是一个比较常用的频率,由于制作方便、通信可靠,因此得到了广泛的应用,其中最重要的一部分就是产生一个125KHz的正弦波信号加载到调制线圈中,但是常规的方法产生正弦波造价较高。

本实验采用方案为:用石英晶体振荡器和计数器(CD4060)实现十六进制分频器,将2MHz分频为125kHz;再通过施密特触发器(CD4049)进行整波;利用电阻、电容和电感设计振荡频率为125kHz的RLC串联谐振电路;利用OTL 缓冲器提高电路的带负载能力;利用比较器(74LS85)改变矩形波形信号的占空比来实现正弦波幅度可控。

本方案可以实现一个精确地125KHz正弦波发生器,稳定度<0.5*10^-2,精度<0.5*10^-6,且幅值大于1V可调;而且成本较低。

一、设计选题及设计任务要求:1、设计题目:标准125kHZ 正弦波发生器的设计实现 2、任务与要求:实现一个精确的125kHz 正弦波发生器,稳定度<0.5*10^-2,精度<0.5*10^-6,且幅度大于1v 可调二、正文1、方案设计与论证① 号方案:基于89C51单片机的正弦波发生器② 号方案:基于CD4060和分频器电路的正弦波发生器2MHz 自激振荡器十六进制分频器RLC 串联电路OTL 缓冲器(1)(2)(3)(4)(5)正弦波正弦波正弦波产生频率为2MHz 的矩形波分频并实现占空比可调整形保留125KHz 正弦波提高带负载能力方案论证比较:方案一是利用89C51单片机编程实现125KHZ矩形波的输出,并利用单片机的外部中断来实现占空比可调,输出的矩形波经过整形后,送入RLC串联谐振电路产生125KHZ的正弦波,最后经过OTL功放电路提高负载能力。

外部中断实验

外部中断实验

外部中断实验外部中断实验⼀、实验⽬的1掌握外部中断技术的基本使⽤⽅法2掌握中断处理程序的编写⽅法⼆、实验说明1、外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断⽅式设置。

中断⽅式设置⼀般有两种⽅式:电平⽅式和脉冲⽅式,本实验选⽤后者,其前⼀次为⾼电平后⼀次为低电平时为有效中断请求。

因此⾼电平状态和低电平状态⾄少维持⼀个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.1)引⼊,本实验由INT0(P3.2)引⼊。

2、中断服务的关键:a、保护进⼊中断时的状态。

堆栈有保护断点和保护现场的功能使⽤PUSH指令,在转中断服务程序之前把单⽚机中有关寄存单元的内容保护起来。

b、必须在中断服务程序中设定是否允许中断重⼊,即设置EX0位。

c、⽤POP指令恢复中断时的现场。

3、中断控制原理:中断控制是提供给⽤户使⽤的中断控制⼿段。

实际上就是控制⼀些寄存器,51系列⽤于此⽬的的控制寄存器有四个:TCON 、IE 、SCON 及IP。

4、中断响应的过程:⾸先中断采样然后中断查询最后中断响应。

采样是中断处理的第⼀步,对于本实验的脉冲⽅式的中断请求,若在两个相邻周期采样先⾼电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。

所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发⽣以及是那⼀个中断请求。

中断响应就是对中断请求的接受,是在中断查询之后进⾏的,当查询到有效的中断请求后就响应⼀次中断。

INT0端接单次脉冲发⽣器。

P1.0接LED灯,以查看信号反转。

三、实验内容及步骤1、使⽤单⽚机最⼩应⽤系统1模块,P1.0接发光⼆极管,INTO接单次脉冲输出端。

2、安装好仿真器,⽤串⾏数据通信线连接计算机与仿真器,把仿真头插到模块的单⽚机插座中,打开模块电源,打开仿真器电源。

3、启动计算机,打开Keil仿真软件,进⼊仿真环境。

定时器实验报告

定时器实验报告
MOV TMOD,#0001H
MOV TH0,#0001
MOV TL0,#0001
SETB TR0
SETB ET0
SETB EA
MOV R2,#10
SJMP $
T0ISR:
CLR TR0
MOV TH0,#0001
MOV TL0,#0001
SETB TR0
DJNZ R2,T0E
CPL P1.0
MOV R2,#10
山西工程技术学院
实验报告
课程名称:单片机基础实验
实验项目:定时器实验
实验地点:实训2#楼GE实验室
专业班级:14电本二班学号:*********
*******
实验成绩:
2017年5月2日
一、实验目的
掌握单片机定时器、计数器定时模式的使用及编程。
二、实验内容
利用片内定时器/计数器来定时,定时时间间隔为1秒。单片机的P1.0脚接1个发光二极管,控制发光二极管闪烁,时间间隔1秒。当按下某一I/O口线上的按键操作是,发光二极管按设定的时间1秒定时闪烁。
T0E:
RETI
END
实验结果:
三、实验心得
在实验程序的编写过程中,我和合作的同学错将跳转指令LJMP写成了JMP,导致无法显示实验结果,并且反复检查后仍未发现错误,最后经老师指出,同时改正了多处语法的不规范。这次实验让我加深的汇编语言的语法,熟悉了如何使用编程控制定时,来实现二极管的间隔闪烁。
首先根据外部中断实验的原理图在protues软件上找到相应器件并连接好线路;然后在软件上编写外部中断的源程序;再把hex文件加载到89C51单片机上,调试仿真,直到达到实验要求为止。
电路图:
实验程序:
ORG 0000H

第5章89C51的中断系统

第5章89C51的中断系统


当系统复位时,IP寄存器被清0,将5个中 断源均设置为低优先级中断。 如果同一级的几个中断源同时向CPU申请 中断,CPU便通过内部硬件查询逻辑按自 然优先级决定响应顺序。

SETB EA ; 总中断允许 SETB EX1 ;INT1允许 SETB ET1 ;T1允许 SETB ES ;TI 和RI允许 SETB PS ; TI 和RI高优先级别 SETB PT1 ;T1高优先级别 SETB PX0 ;INT0高优先级别 则: ______________________可以被响应. A. CPU 正在执行INT1中断,T1请求. B. CPU正在执行TF1中断, TI请求. C. CPU正在执行INT1中断, INT0请求 . D. CPU正执行主程序, T1出现请求
对事件整个处理过程称为中断处理(或中断 服务)。 能够实现中断处理的功能部件称为中断系统。 产生中断请求的源称为中断请求源。 中断源向CPU提出的处理请求称为中断请求 (或中断申请)。 CPU完成中断服务程序,继续执行被中断的 主程序称为中断返回。
5.2 MCS-51中断系统的结构
外部输入中断源INT1(P3.3),中断请求标志为IE1 定时器T0的溢出,中断请求标志为TF0 定时器T1的溢出,中断请求标志为TF1 串行口发送或接收中断源,中断请求标志为发送中断
TI或接收中断RI
5.2.2 中断控制
1.中断请求标志寄存器 •分别由TCON和SCON的相应位锁定 TCON为定时器/计数器的控制寄存器,字节地址为88H
第5章 MCS-51的中断系统
5.1 概述

所谓中断,是指CPU正在处理某些事务的 时候,外部又发生了某一事件,请求CPU 及时处理。于是,CPU暂时中断当前的工 作,转而处理所发生的事件。处理完毕, 再回到原来被中断的地方,继续原来的工 作。这样的过程,称为中断。

【毕业设计】基于AT89C51单片机的电子时钟

【毕业设计】基于AT89C51单片机的电子时钟

昆明工业职业技术学院系统软件设计内容提要单片计算机即单片微型计算机。

由RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

而51系列单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

本设计主要设计了一个基于AT89C51单片机的电子时钟。

应用定时器实现秒定时,在此基础上实现时钟的计时功能,并通过数码管输出时分秒信息,并设计按键调时功能。

关键字:单片机;电子时钟;键盘控制目录1绪论单片机在多功能数字钟中的应用已是非常普遍的,人们对电子时钟的功能及工作顺序都非常熟悉。

但是却很少知道它的内部结构以及工作原理。

由单片机作为电子时钟的核心控制器,可以通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行校时、定时等功能。

输出设备显示器可以用液晶显示技术或数码管来显示技术。

本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89S51为核心元件同时采用LED数码管显示器动态显示“时”,“分”,“秒”的现代计时装置。

与传统机械表相比,它具有走时精确,显示直观等特点。

另外具有校时功能,秒表功能,和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。

1.1所做题目的意义:数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。

在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。

工作报告之单片机数码管实验报告

工作报告之单片机数码管实验报告

单片机数码管实验报告【篇一:单片机实验报告——led数码管显示实验】《微机实验》报告led数码管显示实验指导教师:专业班级:姓名:学号:联系方式:一、任务要求实验目的:理解led七段数码管的显示控制原理,掌握数码管与mcu的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。

实验内容:利用c8051f310单片机控制数码管显示器基本要求:利用末位数码管循环显示数字0-9,显示切换频率为1hz。

提高要求:在4位数码管显示器上依次显示当天时期和时间,显示格式如下: yyyy (年份)mm.dd(月份.日)hh.mm(小时.分钟)思考题:数码管采用动态驱动方式时刷新频率应如何选择?为什么?二、设计思路c8051f310单片机片上晶振为24.5mhz,采用8分频后为3.0625mhz ,输入时钟信号采用48个机器周期。

0到9对应的断码为:fch、60h、dah、f2h、66h、b6h、beh、e0h、feh、f6h 基础部分:由于只需要用末位数码管显示,不需要改变位码,所以只需要采用led的静态显示。

采用查表的方法,通过循环结构,每次循环查找数据表下一地址,循环十次后重新开始循环。

每次循环延时1s,采用定时器0定时方式1。

提高部分:四个数码管都要显示,所以采用led的动态显示。

由于数码管的位选由p0.7、p0.6控制,p0端口的其他引脚都没用到,所以对p0端口初始化赋00h,每次循环加40h、选中下一位,四次后十六进制溢出,p0端口变又为00h回到第一个数码管。

每位数码管显示一个段码后都延时1ms(否则数码管太亮,刺眼)采用定时器0定时方式1,依然采用查表法改变段码值。

通过循环: djnz r5,backmovr5,#250 djnz r4,back movr4,#8来控制每种模式的切换时间,我采用2s切换一次(8*250*1ms=2s)。

切换模式,可以采用改变查表法的偏移量来实现,没切换一次模式,偏移量加04h,三次后回到初始偏移量,来实现三种模式的循环显示。

51单片机(STC89C52)的中断和定时器

51单片机(STC89C52)的中断和定时器

51单⽚机(STC89C52)的中断和定时器STC89C51/STC89C52 Timer内部不带振荡源, 必须外接晶振采⽤11.0592MHz,或22.1184MHz,可⽅便得到串⼝通讯的标准时钟.STC89和STC90系列为12T, STC11/STC12系列为1T, 也就是⼀个指令⼀个机器周期, 这些都需要外置晶振; STC15系列有内置晶振.中断中断允许控制寄存器 IE字节地址A8H, CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的D7D6D5D4D3D2D1D0EA—ET2ES ET1EX1ET0EX0EA (IE.7): 整体中断允许位, 1:允许ET2(IE.5): T2中断允许位, 1:允许(for C52)ES (IE.4): 串⼝中断允许位, 1:允许ET1(IE.3): T1中断允许位, 1:允许EX1(IE.2): 外部中断INT1允许位, 1:允许ET0(IE.1): T0中断允许位, 1:允许EX0(IE.0): 外部中断INT0允许位, 1:允许52单⽚机⼀共有6个中断源, 它们的符号, 名称以及各产⽣的条件分别如下1. INT0 - 外部中断0, 由P3.2端⼝线引⼊, 低电平或下降沿引起2. INT1 - 外部中断1, 由P3.3端⼝线引⼊, 低电平或下降沿引起3. T0 - 定时器/计数器0中断, 由T0计数器计满回零引起4. T1 - 定时器/计数器1中断, 由T1计数器计满回零引起5. T2 - 定时器/计数器2中断, 由T2计数器计满回零引起 <--这个是52特有的6. TI/RI - 串⾏⼝中断, 串⾏端⼝完成⼀帧字符发送/接收后引起定时器中断51单⽚机内部共有两个16位可编程的定时器,即定时器T0和定时器T1, 52单⽚机内部多⼀个T2定时器. 它们既有定时功能,也有计数功能。

可通过设置与它们相关的特殊功能寄存器选择启⽤定时功能还是计数功能. 这个定时器系统是单⽚机内部⼀个独⽴的硬件部分,它与CPU和晶振通过内部某些控制线连接并相互作⽤,CPU⼀旦设置开启定时功能后,定时器便在晶振的作⽤下⾃动开始计时,但定时器的计数器计满后,会产⽣中断。

  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,这样我们就可以用到两个中断判断
按键是否按下。

中断比按键去抖动好。

相关文档
最新文档