基于8051实现的倒计时器(最后3s闪烁)

发布者:古古斋最新更新时间:2021-08-04 来源: eefocus关键字:倒计时器  闪烁 手机看文章 扫描二维码
随时随地手机看文章

最后3s的闪烁是依靠变量t来实现的. 


t将倒计时的26s(0 ~ 25为26s)等分成2600个10ms区间, 当t的值小于300时, 1000ms的区间被分成 "500ms刷新数字 + 500ms不显示数字".


#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 = 25;//倒计时初始值

 

int t = 2600;//初始为2600个10ms区间段

 

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) -> 右数第一个数字点亮

if(t >= 300)//倒计时还剩3s及以上

{

P0 = DIG_CODE[sec % 10];

}

else//t < 300 -> 倒计时还剩3s以下

{

//500ms灭 500ms刷新

if((t / 50) % 2 == 1)// t: [250, 299] or [150, 199] or [50, 99]

{

P0 = 0;

}

else// t: [200, 249] or [100, 149] or [0, 49]

{

P0 = DIG_CODE[sec % 10]; 

}

}

t --;

tcount ++;

}

else if(tcount % 2 == 1)

{

//显示十位数

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

if(t >= 300)//倒计时还剩3s及以上

{

P0 = DIG_CODE[sec / 10];

}

else

{

//500ms灭 500ms刷新

if((t / 50) % 2 == 1)// t: [250, 299] or [150, 199] or [50, 99]

{

P0 = 0;

}

else// t: [200, 249] or [100, 149] or [0, 49]

{

P0 = DIG_CODE[sec / 10];

}

}

t --;

tcount ++;

}

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

{

tcount = 0;

sec --;

if(sec == -1)

{

sec = 25;

t = sec * 100 + 100;

}

}

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;

}


关键字:倒计时器  闪烁 引用地址:基于8051实现的倒计时器(最后3s闪烁)

上一篇:对8051两个定时器(timer0和timer1)的使用解析
下一篇:8051单片机(STC89C52)之蜂鸣器发声

推荐阅读最新更新时间:2024-11-03 10:22

基于C8051F020单片机实现多波段光谱辐射计采集系统的设计
引言 我国于2001年发射了自己的水色卫星,为适应水色遥感发展的需要,我们研制了我国近海海洋光学浮标。锚链式水下多光谱辐射计是计划装备在其中的一台主要观测设备。数据采集系统是该设备的工作控制中心。 总体设计思想及工作原理 鉴于锚链式水下多光谱辐射计的特定工作环境和工作周期,在设计过程中,对数据采集卡的设计必须遵循高精度、低功耗等原则。首先,由于浮标在海中采用自主供电方式连续工作三个月以上,必须合理利用供电电池的能量以确保电池有足够的电量供给仪器正常工作。为此,必须采取有效的措施提高电源的利用率。其次,海水深处的光信号都比较弱,对于微弱光信号的探测,一方面要采用高灵敏度自带前置放大的光电探测器(其内部前置放大器采用载波自稳零运算
[单片机]
基于C<font color='red'>8051</font>F020单片机实现多波段光谱辐射计采集系统的设计
基于C8051F313单片机的一种无刷直流电机调速控制系统
前 言 随着环境的污染和能源的紧张,电动自行车以无废气污染,无噪音,利用电能和使用方便等优点,越来越受到人们的喜爱,成为生活中的代步交通工具。本文介绍采用美国公司SILICon laboratories(Silabs)的高速SoC型C8051F313单片机设计的一种无刷直流电机调速控制系统。该系统充分利用C8051F313的片上资源,设计方案电路简单,需要的外围元件少,控制器的整体成本低,性能好。 C8051F313 C8051F313属于Silabs的高速SOC型单片机C8051F系列。C8051F系列单片机集成度高,完全兼容传统的8051单片机内核和指令系统,但其各方面的性能都远远超越了传统的8051单片机
[单片机]
基于C<font color='red'>8051</font>F313单片机的一种无刷直流电机调速控制系统
8051单片机的中断响应过程解析
8051的CPU在每个机器周期期间,顺序采样每个中断源,CPU在下一个机器周期按优先级顺序查询中断标志,如查询到某个中断标志为1,将在下一个机器周期期间按优先级来进行中断处理。在下列任一种情况存在时,中断申请将被封锁。 1、CPU正在执一个同级或高级的中断服务程序2、当前机器周期不是当前指令周期的最后一个机器周期,即要保证把当前指令执行完。 CPU响应中断, 由硬件自动将相应的中断矢量地址装入程序程序计数器PC,转入该中断服务程序进行处理。 对于有些中断源,CPU在响应中断后会自动清除中断标志,如定时器溢出标志TF0,TF1,以及部中断标志IE0,IE1。 而有些中断标志,不会自动清除,只能由用户用户软件清除,如串
[单片机]
基于C8051F061的高速采集系统设计
1 引言 C8051F系列单片机是美国Silabs公司生产的系统级芯片(SOC),它具有与8051兼容的高速CIP-51内核,指令系统与MCS-51指令集完全兼容,并可使用标准803×805X汇编器和编译器进行软件开发 。C8051F061片内除了具有标准8051数字外设之外,还集成了数据采集和控制系统中常用的模拟部件和数字外设或功能部件。这些外设或功能部件包括256Byte的SRAM、4K的DRAM、64K的FLASH、2个16位ADC、1个10位ADC、2个12位DAC、3个模拟输入电压比较器、温度传感器、SMBUS、UART、SPI、定时器、可编程计数器、定时器阵列、数字I/O端口、电源监视器、看门狗和时钟振荡器等。
[单片机]
基于C<font color='red'>8051</font>F061的高速采集系统设计
二极管(STC89C52): 编写程序控制第一个二极管按时间闪烁
一. 硬件设计 二. 软件设计 1. 程序功能 编写程序控制第一个二极管按时间闪烁. 比如每隔150ms闪烁. 2. 程序源码 #include reg52.h #define uchar unsigned char #define uint unsigned int sbit led0 = P1 ^ 0; void delayms(uint xms); void main() { while (1) { led0 = ~led0; delayms(150); } } void delayms(uint xms) {
[单片机]
二极管(STC89C52): 编写程序控制第一个二极管按时间<font color='red'>闪烁</font>
基于C8051F040的CAN总线与RS-232通信设计
  为了实现对CAN总线和RS-232串口双向通信需求,提出了一种基于C8051F040单片机的数据通信方案,并完成系统设计。分析了CAN总线和RS-232串口的通信特点,介绍了单片机硬件,并对软件的设计思路与流程做了详尽描述,完成功能检测。实验结果表明,该设计达到了要求。   目前工业设备之间的通信很多采用RS-232接口,但由于RS-232通信距离短、接口易损,而且只能进行点到点通信,不能直接组成多点通信网络。而CAN通信速率高、容易实现、且性价比高等诸多特点,本文介绍一种可以实现RS-232与CAN总线通信的方法,以更好地适应现代工业发展的需要。   控制器局域网CAN(Controller Area Network)是德国
[单片机]
基于C<font color='red'>8051</font>F040的CAN总线与RS-232通信设计
简述8051单片机结构与原理
单片机的基本结构包括中央处理器(CPU) 、存储器、定时/计数器、输入输出接口、中断控制系统和时钟电路六部分。 一、基本组成 中央处理器(CPU) 包括运算器和控制器两部分,是单片机的核心。运算器可用于各种运算,控制器用于控制单片机各部分协调工作。 存储器 用于存放程序和原始数据。 时钟电路 时钟电路产生单片机运行的控制信号,控制单片机严格按时序执行指令。 定时/计数器:实现定时或计数功能。 输入输出接口(I/O)实现单片与其他设备之间的数据传送。 中断控制系统: 用于响应中断源的中断请求; 二、单片机引脚 双列直插式封装(DIP,Dual Inline Package) 方形封装(PLCC,Plastic
[单片机]
简述<font color='red'>8051</font>单片机结构与原理
基于C8051F020芯片的总磷在线自动分析仪
   1 概述   C8051F0XX系列单片机是Cygnal公司新推出的一种混合信号系统级单片机。该系列单片机片内含CIP-51的CPU内核,它的指令系统与MCS-51完全兼容。其中的C8051F020单片机含有64kB片内Flash程序存储器,4352B的RAM、8个I/O端口共64根I/O口线、一个12位A/D转换器和一个8位A/D转换器以及一个双12位D/A转换器、2个比较器、5个16位通用定时器、5个捕捉/比较模块的可编程计数/定时器阵列、看门狗定时器、VDD监视器和温度传感器等部分。C8051F020单片机支持双时钟,其工作电压范围为2.7~3.6V(端口I/O,RST和JTAG引脚的耐压为5V)。与以前的51系列单
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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