【C51单片机】数码管实现99秒倒计时

发布者:平和宽容最新更新时间:2021-11-26 来源: eefocus关键字:C51  单片机  数码管 手机看文章 扫描二维码
随时随地手机看文章

C51单片机之数码管实现99秒倒计时(结合定时器)—STC89C52单片机


代码如下:

#include

typedef unsigned char u8;

typedef unsigned int u16;


sbit b1 = P2^2;

sbit b2 = P2^3;

sbit b3 = P2^4;

u8 duan[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};

u16 count = 99;

u16 digit = 0;


//延时函数

void delay(u16 a){

 while(a--);

}


//数码管实现函数

void timeSub(){

  u8 j;

 for( j=0; j<2; j++){    //只有两个数码管

switch(j){

case(0):

b1 = 0, b2 = 0, b3 = 0 ,P0 = duan[count%10];break; //取得十位上的数字

case(1):

b1 = 1, b2 = 0, b3 = 0, P0 = duan[count/10];break; //取得个位上的数字

}

delay(100); //数码管显示相应的数字

}

}


void  Tim0() interrupt 1    //定时器函数,选择方式一,实现定时器0中断

{

TH0 = 0xfc;   

  TL0 = 0x18;  //再次赋初值

digit++;        //全局变量,累加中断的次数

if(digit >= 1000){     //精准的实现定时1s

digit = 0; //置0,重新开始

if(count>=0){

count--;   //定时器实现1s时,数码管显示的值实现递减

}

}

}

void main(){

  TMOD |= 0x01;  //门开了,定时器,方式一,16位计数

  TH0 = 0xfc;

  TL0 = 0x18; //通过计算得到定时器的初值2^16 - 1000

ET0 = 1; //定时器0开关打开

TR0 = 1; //定时器运行开关打开

EA = 1; //打开总开关

 while(1){

 timeSub(); //数码管实现倒计时

}

}

关键字:C51  单片机  数码管 引用地址:【C51单片机】数码管实现99秒倒计时

上一篇:关于两块51单片机之间的串口通信(排队叫号系统)
下一篇:【单片机】实战篇:Keil+Proteus数码管计数99

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

51单片机控制步进电机硬件连接部分
1、概要: 本案例讲解的内容是51单片机控制步进电机硬件连接部分。后续会分别讲解单片机程序,S曲线加减速方法,上位机等相关内容 2、功能原理图: 2.1、51单片机: ①输出脉冲到TB6600驱动器PUL端口,从而控制步进电机转动 ②控制TB6600驱动器ENA端口,从而控制步进电机使能 ③控制TB6600驱动器DIR端口,从而控制步进电机转动方向 2.2、步进电机: ①提供机械动力 2.3、稳压电源: ①为步进电机提供电源 2.4、TB6600驱动器: ①二相四线步进电机专用驱动器 3、实物图: ** ①** 、51****单片机控制板一个 ** ②** 、二相四线步进电机一个 ** ③** 、稳压电源一个 ** ④** 、
[单片机]
51<font color='red'>单片机</font>控制步进电机硬件连接部分
51单片机RAM数据存储器学习笔记
1.RAM keil C语言编程 RAM是程序运行中存放随机变量的数据空间。在keil中编写程序,如果当前模式为small模式,如果总的变量大小未超过128B,则未初始化的变量的初值默认为0.如果所有的变量超过单片机small模式下的128B大小,则必须对变量进行初始化,否则超过RAM大小变量的值是不确定的,在small模式下超过128B大小的变量也必须在编译器中重新设定存储器的存储模式。 在keil中,可选择small,compact,large三种方式存储数据变量: 在keil中可以用“Target Options”来配置这一项: 2.片内数据存储区 (1) 工作寄存器区 工作寄存器区位于片内数据存储器
[单片机]
51<font color='red'>单片机</font>RAM数据存储器学习笔记
单片机控制步进电机的正反转
写这篇网文之前,在此先祝福我的朋友和同学,在新的一年里能够学有所成!新年新气象!也祝福我的家人身体健康!心想事成!时间过得好快。转眼间一年过去了,回想起来,在这一年里自己有失去也有收获,总的来说,还是一个值得回忆而又美好的一年。希望接下来的一年里能够有更大的进步,让人生发生质的变化。当然,想要明天的改变是建立在今天的努力的。所以希望自己能够在有限的时间里多多地利用好时间。岁月不留人,这句话每当过年或生日的时候,总会想起。但希望每次过年和生日的时候,回想过去的一年,总会有很多让自己比之前改变的事物发生。当然改变是好的方面(*^__^*) 嘻嘻 . 呵呵,这次弄这个程序用了我两年的时间,终于把我们正反转程序写成功并调试成功了,新年收到很
[单片机]
一个超级实用的单片机调试组件!
DWT跟踪组件 跟踪组件:数据观察点与跟踪(DWT) DWT 中有剩余的计数器,它们典型地用于程序代码的“性能速写”(profiling)。通过编程它们,就可以让它们在计数器溢出时发出事件(以跟踪数据包的形式)。 最典型地,就是使用 CYCCNT寄存器来测量执行某个任务所花的周期数,这也可以用作时间基准相关的目的(操作系统中统计 CPU使用率可以用到它)。 Cortex-M中的DWT 在Cortex-M里面有一个外设叫DWT(Data Watchpoint and Trace),是用于系统调试及跟踪。 它有一个32位的寄存器叫CYCCNT,它是一个向上的计数器,记录的是内核时钟运行的个数,内核时钟跳动一次,该计数器就加1,
[单片机]
第27节:整除求商的运算
从业十年,教你单片机入门 第27讲: C语言中,乘法符号不是 而是 * ,除法求商的符号不是 而是 / 。乘除法符号跟我们日常用的数学符号有点不一样,我个人猜测C语言这样规定的原因是因为 容易跟大写字母 X 搞混,而 这个符号在电脑键盘上不方便直接输入,故分别用 * 和 / 替代。 何谓 整除 ?请看以下两个对比例子: 10除以4,商等于2.5。------(带小数点) 10除以4,商等于2,余数是2。------(这就叫做整除) 什么时候带小数点,什么时候是整除?取决于参与运算的变量类型。标准的C语言中,其实远远不止我前面所说的unsigned char ,unsigned int ,unsigned long这三
[单片机]
C51 keil v4 流水灯简单代码的编写
#include reg52.h #include intrins.h typedef unsigned char u8;/*char 为1字节,8位 */ typedef unsigned int u16; /*一般情况下用int,因为unsigned char取值范围为0~255;而int为65535; 用u16,u8使代码的可移植性高 */ #define led P0 //sbit led=P0^0; //两种表示方式 void delay(u16 i) { while(i--); }//运用延时函数达到使led灯闪烁的目的 void main() { /* while(1) { led=1; delay
[单片机]
25美分获得25项功能:如何使用MCU进行简单的功能增强
如果有一个25美分的MCU,可以用0.5KB的内存做些什么? 您现在可能已经使用固定功能的集成电路 (IC)很长一段时间了,并且在某些情况下,已经适应了它们有限的灵活性。一个简单的通用异步收发器(UART)到串行外设接口(SPI)桥接器、一个复位控制器或一个带有后备存储器的外部实时控制器(RTC)在自身功能方面拥有良好的表现,但却仅限于设定的功能。 但是如果可以通过智能化或功能定制来更好地满足您的需求呢?如果可以使用独立的低成本MCU来实现这些独立功能呢? 新型 MSP430™ 超值传感系列MCU可以通过多种集成混合信号功能帮助部署简单的传感解决方案。为扩展这些低成本MCU的功能,TI为25个常见系统级功能创建了一个代
[嵌入式]
25美分获得25项功能:如何使用<font color='red'>MCU</font>进行简单的功能增强
MCS-51单片机汇编语言:算数运算指令有哪些?
加法指令(Addtion) ADD A, Rn ; A←(A)+(Rn) ADD A, @Ri ;A←(A)+((Ri)) ADD A, direct ;A←(A)+(direct) ADD A, #data ;A←(A)+#data 带进位加法指令 ADDC A, Rn ; A←(A)+(Rn)+(Cy) ADDC A, @Ri ;A←(A)+((Ri )) +(Cy) ADDC A, direct ;A←(A)+(direct) +(Cy) ADDC A, #data ;A←(A)+#data +(Cy) 加1指令 INC A
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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