8051单片机(STC89C52)以定时器中断模式实现倒计时器

发布者:SerendipityLove最新更新时间:2021-08-10 来源: eefocus关键字:单片机  STC89C52  定时器  中断模式  倒计时器 手机看文章 扫描二维码
随时随地手机看文章

之前用轮询方式实现了定时器精准定时, 这里用前后台系统架构实现倒计时器.  


每10ms都会触发一次中断处理程序T0_INT(), 根据tcount的值, 决定显示个位数字还是十位数字: 当tcount = 100时, 将tcount置回初始值0, 并将sec的值减1. 当sec的值减到-1时, 将sec重新置回15.


#include <STC89C5xRC.H>

 

unsigned char code DIG_CODE[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};//对应数码管显示0~9

 

int tcount = 0;//记录经过的10ms区间段个数

 

int sec = 15;//倒计时初始值

 

void T0_INT() interrupt 1 //timer0中断, 每10ms触发一次

{

TR0 = 0;//关闭timer0

TH0 = 0xD8;

TL0 = 0xF0;//65536 - 10000 = 55536

if(tcount % 2 == 0)

{

//显示个位数

P2 = 0;// P2 = 0 -> (P24, P23, P22) = (0, 0, 0) -> 右数第一个数字点亮

P0 = DIG_CODE[sec % 10];

tcount ++;

}

else if(tcount % 2 == 1)

{

//显示十位数

P2 = 1 << 2;//P2 = 0000 0100 -> (P24, P23, P22) = (0, 0, 1) -> 右数第二个数字点亮

P0 = DIG_CODE[sec / 10];

tcount ++;

}

if(tcount == 100) //10ms * 100 = 1000ms = 1s -> 1s时间到

{

tcount = 0;

sec --;

if(sec == -1)

{

sec = 15;

}

}

TR0 = 1;//重新开启timer0

}

 

int main()

{

TMOD = 0x01;

TH0 = 0xD8;

TL0 = 0xF0;//65536 - 10000 = 55536

IE = 0x82;//EA + ET0 -> 1000 0010

TR0 = 1;//开启timer0

while(1)

{

;

}

return 0;

}

关键字:单片机  STC89C52  定时器  中断模式  倒计时器 引用地址:8051单片机(STC89C52)以定时器中断模式实现倒计时器

上一篇:8051单片机(STC89C52)八灯流动转向
下一篇:8051单片机(STC89C52)以轮询方式实现串行通信

推荐阅读最新更新时间:2024-11-02 10:46

单片机多机通信之变量初始化的重要…
单片机多机通信之变量初始化的重要性 博文题目之所以要加上变量初始化的重要性,是因为我在调试单片机多机通信程序时,也就是下面将给出的程序,花了一整个晚上才发出,原来是有一个变量没有初始化,从而导致,多机通信不成功。主机程序中为红色的注释的变量一定要初始化,否则将失败。 仿真图如下: 主机程序: 单片机多机通讯 说明:该程序为多机通讯程序,最多可以挂255个从机。 该程序主机发送端与多个从机的接收端相接,主机的接收端与多个从机的发送端相接。 该程序主要的目的为给从机发送作为命令的数据。 该程序调试成功,从机可正确接收。 */ //===============
[单片机]
基于51单片机实现简易密码锁功能
具体功能的实现: 按下不同的按键,在LCD1602显示屏中可以出现不同的数字密码,如果输入错误,会显示ERR,反之显示ON;如果密码输错3次,则蜂鸣器报警30s同时在此期间无法输入密码。按键的功能有重置密码,取消,确认三种功能。 器件:AT89C51,排阻,LCD1602,若干电阻,电源,按键,蜂鸣器,三极管 Proteus仿真原理图: 知识介绍: ①存储器介绍: 存储器主要芯片AT24C02: AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一
[单片机]
MCU与车用半导体新霸主“瑞萨电子”诞生
  NEC电子(NECElectronics)与瑞萨科技(RenesasTechnology)暨相关主要股东于2009年9月16日正式宣布业务整合最终协议,预定合并生效日期为2010年4月1日,并将公司名称暂定变更为瑞萨电子(RenesasElectronics)。DIGITIMESResearch表示,NEC电子与瑞萨科技合并后,将一举跃升为全球第三大半导体业者,预期合并后的瑞萨电子在微控制器(MCU)与车用半导体两大领域取得全球领导地位。   微控制器是瑞萨科技与NEC电子的强项,2008年的销售额分别达到27。7亿、13。3亿美元,全球市场占有率分别高达20。1%、9。7%,排名居第一、第三位,若依2008年销售实绩估算,
[半导体设计/制造]
<font color='red'>MCU</font>与车用半导体新霸主“瑞萨电子”诞生
博通重磅产品发布,引领PCI-e交换机和重定时器市场
如果我们有两年甚至四年更长的时间暂停向机器添加更快的计算引擎,那么服务器设计的情况将会好得多。 这样,我们就可以让内存子系统和 I/O 子系统赶上并更好地利用这些计算引擎,并且还需要更少的内存组和 I/O 卡来满足这些计算引擎的需求。 事实上,从 8 Gb/秒 PCI-Express 3.0(其规范于 2010 年发布)到 16 Gb/秒 PCI-Express 4.0 互连(本应在 2013 年发布)的转变延迟了四年,直到 2017 年才进入该领域。主要原因是计算引擎真正需要的 I/O 带宽与 PCI-Express 互连可以提供的带宽之间造成了阻抗不匹配。 这种不匹配一直延续下去,导致 PCI-Express 永远落后
[嵌入式]
博通重磅产品发布,引领PCI-e交换机和重<font color='red'>定时器</font>市场
PICl6LF874单片机在电容测量模块中的应用
摘要:为提高电容测量精度,针对电容式传感器的工作原理设计了基于PICl6LF874单片机电容测量模块。简单阐述了电容测量电路的应用背景和国内外研究现状,介绍了美国Microchip公司PICl6LF874单片机的特性。电容式传感器输出的动态微弱电容信号通过PS02l型电容数字转换器把模拟量数据转换成数字量数据,所测数据由PICl6LF874单片机应用程序进行处理、显示和保存。实验结果表明,固定电容标称值为lO~20 pF的测量值相对误差在l%以内,同时也可知被测电容容值越大,测量值和标称值相对误差越小。 关键词:PICl6LF874;电容传感器;PS02l;测试 电容式传感器已广泛应用于工业、医学、军事等领城。但目前大部
[工业控制]
PICl6LF874<font color='red'>单片机</font>在电容测量模块中的应用
基于PIC12C508单片机对灯光系统的控制
以下程序使用PIC12C508 单片机 ,内部4MHz时钟,4脚输入50HZ脉冲信号,7,6,3脚(GP0,GP1,GP4端口)为输出口。其中渐变部分是让灯慢慢的变亮(或灭)。 ;程序如下: GPI0EQU6 COUNT1EQU11 COUNT2EQU12 COUNT3EQU13 COUNT4EQU14 COUNT5EQU15 POIN TE REQU16 POINTER1EQU17 ORG00H MOV LW07H;设定时钟参数1:256分频 OP TI ON MOV LW2CH;输出端口设定0,1,4输出,3输入50HZ TRIS6 ;------------------------------- START: ;对3端口
[单片机]
基于PIC12C508<font color='red'>单片机</font>对灯光系统的控制
基于CYGNAL单片机和FPGA的舞台吊杆控制器的设计
摘要:介绍了舞台吊杆控制系统的体系结构,并对组成该系统的舞台吊杆控制器进行了研究,论述了其工作原理,提出了用CYGNAL单片机和FPGA设计该控制器的方法。基于SOC的设计思想,完成了该控制器的硬件和软件两方面的设计,提出了控制系统中的位移测量方法,并对电机惯性引起的误差提出 了补偿方法;同时针对该系统采取了相应的抗干扰措施,提高了系统的抗干扰能力,实际应用证明,此控制器抗干扰能力强,吊杆位置控制精确,且安全可靠。 关键词:舞台吊杆控制器FPGA 误差补偿 位置控制 在舞台机械设备中,吊杆起着重要的伤脑筋。在大型的影剧院,一场演出往往需要调动大量的舞台背景,有时要控制多达64路的吊杆同时动作。操作人员要在现场不断变换舞台背景
[应用]
STM32单片机有哪几种常见的开发环境?
STM32单片机是一款广泛应用于嵌入式系统开发的单片机,针对其开发,有以下几种常见的方式: STM32单片机有哪几种常见的开发环境? Keil MDK是一款广泛使用的单片机集成开发环境,支持多种单片机系列,包括STM32系列。它提供了强大的编辑、编译、调试和仿真工具,适合于嵌入式系统的开发。Keil MDK支持使用C语言和汇编语言进行开发,同时也提供了丰富的库函数和示例代码。 STM32CubeIDE是STMicroelectronics官方推出的一款集成开发环境(IDE),专门用于STM32系列单片机的开发。它基于Eclipse平台,集成了STM32CubeMX配置工具和STM32Cube HAL库,提供了丰富的功能
[单片机]
STM32<font color='red'>单片机</font>有哪几种常见的开发环境?
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved