在MCS-51的中断系统中,除了有外部中断以外,还有定时器/计数器中断、串行中断,本章节将会说明定时器/计数器中断,以及它的四种方式
MCS-51单片机中,内部有两个16位的可以选择的定时器/计数器,称为定时器0(T0)或者定时器1(T1),它们用来做定时器或者计数器。
定时器/计数器工作原理:
作为定时器使用时,输入的时钟脉冲是由晶体振荡器的输出12分频后得到的,所以定时器是对机器周期的计数器,每一个机器周期+1,因此它的定时频率为晶振频率的1/12;当设置了定时器工作方式并启动定时器后,定时器就会按照被设定的工作方式独立工作,不再占用CPU时间。当计数器计满时溢出时向CPU请求中断。
作为计数器工作使用时,计数器对来自输入引脚T0(P3^4)和T1(P3^5)的外部信号计数,外部脉冲下降沿将会触发计数,在这种情况下,当检测到输入引脚的电平由高跳变到低的时,计数器+1(它在每个机器周期的S5P2时采样外部输入,当采样值在这个机器周期为高,下个机器周期为低时,则计数器+1),+1操作发生在检测到这种跳变后的一个机器周期中的S3P1。
注:两个机器周期识别一个从“1”到“0”的跳变,最高计数频率=1/机器周期=1*晶振频率/24
定时器/计数器内部逻辑结构图如下:
从上图可以看出,使用定时器0或者定时器1时,除了满足中断控制允许(中断总允许与中断源允许),还需设置定时器的工作方式(由TMOD寄存器控制);设置T0或者T1的初始值;最后启动定时器(由TCON机器寄存器控制进行计数。当计数溢出时,产生定时器中断(TF0 = 1或者 TF1=1)。CUP响应中断后,硬件清除定时器标志(TF0 = 0或者 TF1=0),进入定时器服务函数。
使用定时器/计数器中断,需要将满足以下的条件。
1)中断总允许打开 EA = 1;
2)中断源允许打开 ET0 = 1或者 ET1= 1;
3)设置定时器计/计数器的工作方式(设置TMOD)
4)装载定时器,设置计数器的初始计算值。
5)开启定时器(TCON中的TR0 = 1或者TR1 = 1)
6)中断服务函数
关键字:C51 编程 中断 定时器中断
引用地址:
C51编程14-中断篇(定时器中断1)
推荐阅读最新更新时间:2024-11-02 11:09
贸泽电子开售Qorvo 两款可多次编程电源管理IC
贸泽电子开售Qorvo ACT88329和ACT88321可多次编程电源管理IC 2021年4月19日 – 专注于引入新品并提供海量库存的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开售Qorvo®的ACT88329和ACT88321可多次编程恒定导通时间 (COT) 电源管理IC (PMIC)。这两款PMIC均属于ActiveCiPS™产品系列,针对高性能和紧凑外形设计进行了优化。 贸泽电子供应的Qorvo ACT88329和ACT88321 PMIC能够为多种应用提供设计灵活性,从而帮助加快产品上市速度,包括SSD卡、计算机视觉(如安防摄像头)和路由器、家居控制、语音辅助设备以及LP
[电源管理]
DS18B20构成的多点温度测量系统
引 言 在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向「1」。美国Dallas半导体公司推出的数字温度传感器DSl8820,具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与微处理器的通信;在-10~+85℃温度范围内具有±0.5℃精度;用户可编程设定9~12位的分辨率。以上特性使得DSl8820非常适用于构建高精度、多点温度测量系统。 1 DSl8B20简
[测试测量]
可编程逻辑器件在高准确度A/D转换器中的应用
1 引 言 可编程逻辑器件(PLD)是当今国际上流行的新一代数字系统逻辑器件。它主要是一种“与-或”两级式结构器件,除了具有高速度、高集成度性能之外,其最大的特点就是用户可定义其逻辑功能。因此PLD能够适应各种需求,大大简化系统设计,缩小系统规模,提高系统可靠性,受到广大工程技术人员的青睐。 可编程逻辑器件种类繁多,性能各异,主要有以下几种基本类型:可编程只读存储器(PROM),现场可编程逻辑阵列(FPLA),编程阵列逻辑(PAL),通用阵列逻辑(GAL)。通用阵列逻辑GAL(Generic ArrayLogic)是新一代的可编程逻辑器件,是采用先进的E2CMOS工艺制造的大规模集成电路,是新产品设计的理想器件
[应用]
stm32之PVD可编程电压监测器(掉电保存数据)
前言:stm32系列提供了可编程电压检测器PVD,它是实时检测VDD的电压,当检测到电压低于或者高于PVD设置的阈值时,会想内核产生一个PVD中断(EXTI线中断)以使内核在复位前进行紧急处理。该电压阈值可通过PWR_CSR设置。 PVD可配置8个等级: 代码设计: #include stm32f10x.h #include stdio.h static void EXTI_Configuration(void); static void PVD_NVIC_Configuration(void); static void USART1_Config(void); static void Delay(__IO u
[单片机]
定时器0中断控制LED秒闪
使用定时器0中断控制LED亮0.5秒,灭0.5秒。 #include reg52.h sbit LED=P2^0; unsigned int time; void timer0init() { TMOD=0x01; ET0=1; EA=1; TR0=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; } void main() { timer0init(); while(1); } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50
[单片机]
智能温度传感器DS18B20的原理与应用
DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 1DS18
[传感技术]
Keil C51中对双数据指针的支持情况及代码生成
在8051体系中,数据指针DPTR作为一个特殊的16位寄存器,用于寻址64 KB的XDATA或CODE空间,通常它被当作一个16位指针,指向一个常数表。双数据指针可以改善同时有两个16位指针使用时的性能。作为一种增强特性,有许多8051派生型器件支持双数据指针。以宏晶科技STC89系列的产品为例,DPTR被增强为DPTR0和DPTR1两个,仍然使用原来的地址,用另外一个SFR AUXR1的0位DPS来切换。当DPS位为0时,所有对DPTR的操作使用DPTR0;当DPS位为1时,所有对DPTR的操作使用DPTR1。这样,通过一个简单的INC AUXR1指令,就可以来回切换两个数据指针。 1 Keil C51对双数据指针的支
[单片机]
西门子STEP7编程软件的功能及使用
STEP7—Micro/WIN32的基本功能是协助用户完成开发应用软件的任务,如创建用户程序、修改和编辑原有的用户程序,编辑过程中编辑器具有简单语法检查功能。同时它还有一边工具性的功能,如用户程序的文档管理和加密等。此外,还可直接用软件设置plc的工作方式、参数和运行监控等。
一、基本功能
1、程序编辑中的语法检查功能可以提前避免一些语法和数据类型方面的错误。梯形图和语句表的错误检查结果如图1所示。
图1 错误检查结果
2、软件功能的实现可以在联机工作方式(在线方式)下进行,部分功能的实现也可以在离线工作方式下进行。
◆ 联机方式:有编程软件的计算机或
[嵌入式]