中断系统与定时/计数计时器
1. 外部中断
1.1统计 INT0 的脉冲触发的个数,满10个,则停止统计将P1.0清0
ORG 0000H
LJMP START
ORG 0003H
LJMP EXINT0
ORG 0100H
START: SETB IT0; set TCONSETB EA; set IESETB EX0;MOV R0,#10SETB P1.0
HERE:SJMP HEREEXINT0:DJNZ R0,QUITCLR P1.0CLR EX0 ;关闭INT0中断
QUIT:RETI
END
ORG 0000H
LJMP START
ORG 0003H
LJMP EXINT0
ORG 0100H
START: MOV A,#0SETB IT0; set TCONSETB EA; set IESETB EX0;SETB P1.0
SJMP $EXINT0:INC ACJNE A,#10,QUITCLR P1.0CLR EX0 ;关闭INT0中断
QUIT:RETI
END
1.2 某大楼内设置了4个监测点,2个监测点安装了2个烟雾检测器,另2个监测点安装了2个煤气检测器,监控室由4个指示灯分别显示每个检测点的状态。当有意外发生时,相应的指示灯亮,发出报警。设计一个以89C51单片机为核心的检测系统实现上述检测功能。
ORG 0000H
LJMP START
ORG 0003H
LJMP EXINT0
ORG 0013H
LJMP EXINT1
ORG 0100H
START: SETB EASETB ET0SETB ET1SETB EX0SETB EX1MOV P1,#0FFH
SJMP $EXINT0:JB P1.0,NEXT1CLR P1.4NEXT1:JB P1.1,QUITCLR P1.5LJMP QUIT
EXINT1:JB P1.2,NEXT2CLR P1.6NEXT2:JB P1.3,QUITCLR P1.7LJMP QUIT
QUIT:RETIEND
2.定时/计数功能
对机器周期进行计数,每个机器周期计数器+1,直到计数器溢出
写入控制字的次序:
- 把工作方式控制字写入TMOD寄存器;TMOD 不能位选
- 把定时/计数初值装入TL0、TH0(或TL1、TH1);
- 置位ET0(或ET1),允许定时器/计数器中断;
- 置位EA开放总中断;
- 置位TR0(或TR1)以启动计数
2.0 工作方式0
2.1 工作方式1
2.1.0 设单片机的晶振频率为11.0592MHz,使用T1以方式1产生频率为131Hz的方波型音频信号(低音的Do),并由P1.0输出给与其相连的喇叭。
ORG 0000H
LJMP START
ORG 001BH
LJMP INTT1
ORG 0100H
START: MOV TMOD,#00010000BSETB EASETB ET1MOV TH1,#0F2HMOV TL1,#42HSETB TR1
SJMP $INTT1:CPL P1.0MOV TH1,#0F2HMOV TL1,#42HRETI END
2.2 工作方式2 p160
2.2.1 设系统时钟频率为12MHz,用定时器/计数器T0编程实现从P1.0输出周期为500μs的方波。
解:由于时钟频率为12MHZ,机器周期为1µs。 P1.0输出周期为500μs的方波,只需P1.0每250μs取反1次即可。定时/计数器T0选择工作方式2。首先求出定时器T0初值。
因为:t =(2^8-T0初值)× 机器周期
所以,当t = 250μs时,
则:(2^8-T0初值)× 1 × 10^(-6) = 2.5 × 10^(-4)
解得:T0初值 = 6,TH0 = TL0 = 6。
ORG 0000H
LJMP START
ORG 000BH
LJMP INTT0
ORG 0100H
START: MOV TMOD,#00000010BMOV TH0,#06HMOV TL0,#06HSETB ET0SETB EASETB TR0
SJMP $INTT0:CPL P1.0MOV TH0,#06HMOV TL0,#06HRETI END
2.2.2 有一自动罐装药粒系统,每瓶罐装药粒50片,每片药粒灌装时产生一个负脉冲送T0计数;每满一瓶,累加器A加1,若满100瓶,则由与P1.0口相连的LED给出一个装箱信号,然后停止计数。要求用T0以工作方式2计数。
解:(1)计算计数初值
设待求的计数初值为X,则:
X =2^8-50
得: X=206
则: TH0=206,TL0=206。
(2)TMOD寄存器初始化
ORG 0000H
LJMP START
ORG 000BH
LJMP INTT0
ORG 0100H
START: MOV TMOD,#00000110BSETB EASETB ET0MOV TH0,#206MOV TL0,#206MOV R0,#100SETB TR0
SJMP $INTT0:DJNZ R0,QUITCLR P1.0CLR TR0
QUIT:RETI END
ORG 0000H ;主程序
LJMP START
ORG 000BH
LJMP T0INT
ORG 0100H ;初始化
START:MOV TMOD,#6HMOV TH0,#206HMOV TL0,#206HSETB P1.0SETB EASETB ET0MOV A,#0SETB TR0
;循环判断
LOOP: CJNE A, #100, NEXTCLR P1.0 ;亮灯CLR TR0 ; 停止计数NEXT:SJMP LOOP
;中断程序
T0INT: INC A ;计数+1RETI
END
中断系统与定时/计数计时器相关推荐
- 【Keil5 C51】AT89C52 中断系统与定时/计数器的介绍
80C51中断系统 结构 80C51有5个中断源(89C52有6个),2个优先级,可实现二级中断嵌套 TCON中断标志 IT0(TCON.0),外部中断0触发方式控制位 IE0(TCON.1),外部中 ...
- 51单片机—详细(存储器RAM/ROM、引脚、中断系统、定时/计数器、串行口通信)
目录 一.数据存储器RAM 1.拓展RAM 2.片内256字节 1.高128位(80H~FFH) 2.低128位(00H~7FH) 二.程序存储器ROM 三.引脚 1.4组8位并行I/O口 2.其他引 ...
- 80C51的中断系统 - 定时/计数器
中断系统--80C51单片机学习笔记 中断的概念 中断系统的结构 中断请求标志 1.TCON的中断标志 2.SCON的中断标志位 80C51中断的控制 中断允许控制--IE 中断优先级控制--IP 中 ...
- QueryPerformanceFrequency用法--Windows高精度定时计数
在多核心或多处理器的计算机上,特别是在支持CPU频率动态调整的计算机上,windows系统下的QueryPerformanceFrequency()获取HPET(如果存在)的频率,而QueryPerf ...
- 51单片机学习笔记(郭天祥版)(3)——引脚讲解、数码管静态显示、中断系统(外部中断,定时器中断)...
学习引脚的功能 9引脚 复位管脚,当给2个机器周期(24个时钟振荡周期)的高电平时会复位,单片机正常工作时会给0.5v的低电平 VPD备用电源的输入端,当主电源VCC发生故障降低到某一规定的低电平时, ...
- QueryPerformanceFrequency使用方法--Windows高精度定时计数
在多核心或多处理器的计算机上.特别是在支持CPU频率动态调整的计算机上,windows系统下的QueryPerformanceFrequency()获取HPET(假设存在)的频率,而QueryPerf ...
- MCS-51的中断系统
[说明]本文学习自<单片机原理及应用(张毅刚)> 目录 1 中断的概念 2 MCS-51中断系统的结构 3 中断请求源 4 中断控制 4.1 中断允许寄存器IE 4.2 中断优先级寄存 ...
- STC89C52单片机定时器及中断系统的介绍以及代码示例
目录 一,定时器介绍 二,STC89C52定时器资源 三,定时器框图 四,定时器工作模式 五,中断系统及其流程 六,STC89C52中断资源 七,定时器与中断系统 八,相关寄存器的认识与配置 首先是定 ...
- 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理
上节我们讲了中断的外部中断,基本的了解了一下中断,这一节我们继续来学习中断系统的定时器中断基本原理,本节很重要无论是在比赛中还是在单片机.嵌入式等的学习上都有着很重要的地位.如对本作者有兴趣可以去我主 ...
最新文章
- Sql Server2005 Transact-SQL 新兵器学习总结之-数据类型
- 操作系统原理:连续的内存分配
- 计算机有关的文献检索题目,文献检索第二次计算机检索实习题目(2016.4.10).doc
- windeployqt.exe的使用与避坑(windows平台)
- 什么是商业智能(BI),以及其与数据分析的区别?
- 【经验分享】在研究中,你是否踩过这些工程的“坑”?
- MATLAB 检验矩阵中是否有某些元素 对元素统计
- getFields和getDeclaredFields
- python绘制缓和曲线_CAD绘制缓和曲线说明
- ad怎么批量改元器件封装_ad中如何批量修改封装
- 朗迪碳酸钙D3颗粒告诉你,为什么补钙要从娃娃抓起
- win8改win7 bios设置方法
- cpan mysql dbd_安装PERL cpan DBD::mysql错误笔记
- C#读取RFID卡号源码
- 使用jol如何判断一个对象当前处于哪种锁
- JavaScript 精选:哪些能提高开发效率的es6 新语法糖
- vue高德地图搜索功能
- jsf的初步使用(包括jsf框架的引入、用户登录、自定义表单验证、valueChangeEvent值变更事件处理做的级联下拉框)
- 【天光学术】研究生“憋论文”实况:别问,问就是在写论文
- 下载安装及编写第一个C语言程序Visual Studio 2019