要求:60S倒计时
个位每1S变一次,从0~9
十位,个位为0的下一秒十位发生变化

(1)实际上数码管状态变化为01~00~60,只不过00存在的时间过短,无法被人眼识别。

( 2)在切换数码管前先让 P0=0xff 避免了前一个数码管留下的余辉。

上面程序较为繁琐,以下为更新程序:

/*60倒计时*/#include<reg52.h>sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;unsigned char code LedChar[]=
{
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90
};unsigned int cnt=0;     //记录中断次数
unsigned char flag=0;   //中断标志位
unsigned char i=0;     //遍历
unsigned char g=0xff;   //初始化个位数码管
unsigned char s=0xff;   //初始化十位数码管
unsigned int sec=61;    //秒数void main()
{EA=1;             //定时器总中断ENLED=0;         //使能U3ADDR3=1;          //T0模式为1TMOD=0x01;        //定时1msTH0=0xfc; TL0=0x67;ET0=1;TR0=1;               //启动T0while(1){if(flag==1)            //中断标志{      g=sec%10; s=sec/10;flag=0;            //标志清0if(sec==0)         //重新倒计时sec=61;}}
}
void InterruptTimer0() interrupt 1
{TH0=0xfc;                //重新赋值TL0=0x67;cnt++;if(cnt>=1000)               //中断累计1000 1s{cnt=0;                 //清0flag=1;sec--;                  //秒数自减 }P0=0xff;switch(i){case 0:ADDR0=0;ADDR1=0;ADDR2=0;P0=LedChar[g];i++;break;   //选中个位数码管case 1:ADDR0=1;ADDR1=0;ADDR2=0;P0=LedChar[s];i=0;break;   //选中十位数码管default:break;}
}

改进后,程序更为简洁直观。采用中断+switch遍历优化程序。

注意:遍历中,为了使几个数码管看起来像是同时亮,故大大缩短了定时时间,由20ms变为1ms。

KST-51单片机:c语言编程实现数码管动态显示秒表的倒计时相关推荐

  1. 51单片机c语言编程100,51单片机C语言编程100例.doc

    51单片机C语言编程100例.doc 目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0.P2.P3口认识I/O口的引脚功能4实例6 ...

  2. c语言从入门到精通 当当,51单片机C语言编程从入门到精通

    本书立足于单片机的各类型应用技术,采用大量实例和程序逐行解说的方式,详细介绍51单片机和C语言编程开发与应用技术. 内容特点: 1 立足于单片机工程应用:由浅入深,结合丰富的开发实例,介绍51单片机C ...

  3. 51单片机c语言工作手册,51单片机C语言编程手册

    51单片机C语言编程手册 1 第一章 介绍 这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些 新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不 ...

  4. 51单片机c语言内存使用,51单片机C语言编程之内存优化

    原标题:51单片机C语言编程之内存优化 最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128 ...

  5. 51单片机c语言程序控制,51单片机C语言编程基础及实例.pdf

    基础知识: 51 单片机编程基础 第一节:单数码管按键显示 第二节:双数码管可调秒表 第三节:十字路口交通灯 第四节:数码管驱动 第五节:键盘驱动 第六节:低频频率计 第七节:电子表 第八节:串行口应 ...

  6. 单片机如何使用?51单片机C语言编程实例有哪些?

    大家好,我是无际单片机编程的徐明,今天和大家一起探讨一下"单片机如何使用?" 单片机如何使用,我们要知道单片机在哪里使用? 单片机是很多电子产品的核心器件,它具有一定的逻辑判断和事 ...

  7. 51单片机c语言编程函数,单片机C语言教程:C51函数

    其实一直出现在例子中的 main()也算是一个函数,只不过它比较特殊,编译时以它做为程序的开始段.有了函数C 语言就有了模块化的优点,一般功能较多的程序,会在编写程序时把每项单独的功能分成数个子程序模 ...

  8. 51单片机c语言编程的头文件,51单片机编程的头文件reg51.h详解

    我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面内容不多,像飞思卡尔.ARM系列的单片机头文件往往内容就非常多,尽管如此,对 ...

  9. 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...

    描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...

最新文章

  1. 只是扫个地而已,怎么连A超都用上了
  2. hostent结构体图解
  3. 【Apache POI】Java写入Excel文件
  4. android如何编译出带符号表的.so库
  5. vector占用内存的释放
  6. Java性能调优:利用VisualVM进行性能分析
  7. 10.N个整数中查找是否相加为K[深度搜索]
  8. 关于值类型和引用 类型
  9. 4 读写文件_WEB安全之SQL注入(4)——读写文件
  10. 关于对网络学习方法的一点见解
  11. UWB超高精度定位系统架构图
  12. 2021华科计算机考研专业课,2021考研 华中科技大学计算机考研科目
  13. oracle rac 仲裁盘_11G ORACLE OCR和仲裁盘恢复
  14. python的内置数据结构_Python基础知识2-内置数据结构(上)
  15. GIS基础(5)空间拓扑
  16. 接口和接口实现类,接口与抽象类
  17. Word中嵌入型图片不能完全显示的解决办法
  18. 字典序及1-n之间的数按字典序排列
  19. 为dev c++配置图形开发环境easyx之mingw32
  20. androidstudio使用Svn忽略文件

热门文章

  1. 打一句英文句子,找出其中最长的单词
  2. Spark MLlib学习笔记:构建一个机器学习工作流
  3. 在线考试系统计时方法
  4. Flink之watermark 处理延迟数据 详解
  5. 机器学习——模型误差分析
  6. 过度忙碌,过度清闲,都是不好的
  7. 4. java使用easyexcel导入excel-多个sheet页、每个sheet页存在多个表头导入的情况、踩坑记录、可在线拉取成品demo、也可参详详细演示流程、贴心手把手操作
  8. 青泽:期货交易靠什么取胜?
  9. C语言学习—结构体的定义与使用
  10. QQ云控引流 为您定制营销推广方案