匿名用户

1级

2014-05-07 回答

/***************************************************************************

标题: 定时器中断 精确到00.00秒表

效果: 按1键启动或按2键停止数码管做精确的秒计数

说明: 板使用12M晶振

******************************************************************************/

//头文件:

#include "reg51.h"

//变量定义:

code unsigned char table[]=

{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

//表:共阴数码管 0-9

unsigned char l_posit=0; //显示位置

unsigned int tt=0; //作为计数时间量,1个单位表示0.01秒

//引脚定义:

sbit key1 = P3^7; //定义按键1

sbit key2 = P3^6; //定义按键2

sbit SMG_q = P1^0; //定义数码管阳级控制脚(千位)

sbit SMG_b = P1^1; //定义数码管阳级控制脚(百位)

sbit SMG_s = P1^2; //定义数码管阳级控制脚(十位)

sbit SMG_g = P1^3; //定义数码管阳级控制脚(个位)

//函数声明:

void display(unsigned int da);//定义显示函数,参数为显示内容

void delay(unsigned int timer);

void init(); //初如化函数

//主函数,C语言的入口函数:

void main()

{

init(); //初始化中断控制寄存器

while(1){

if(key1==0){ //按键1按下,清0且启动计数

tt=0;

TR0=1;

}

if(key2==0){ //按键2按下,停止计数

TR0=0;

}

if(tt>=9999) //超范围停止

TR0=0;

display(tt); //显示变量内容

delay(100);

}

}

//初始化函数

void init()

{

tt=0;

TMOD=0X01; //设置定时器1为模式一,即16位计算模式

TH0=(65536-10000)/256; //给计数寄存器赋值,50毫秒时间

TL0=(65536-10000)%256;

EA=1; //开启总中断

ET0=1; //开启定时器0中断

TR0=0; //先不启动定时

}

//中断函数,关键字"interrupt" , 这是C语言的中断函数表示法,1表时定地器0

void timer() interrupt 1

{

TH0=(65536-10000)/256; //重新赋值

TL0=(65536-10000)%256;

tt++; //10毫秒加1

}

//显示函数,参数为显示内容

void display(unsigned int da)

{

P0=0XFF; //

da=da%10000;

switch(l_posit){

case 0: //选择千位数码管,关闭其它位

SMG_q=0;

SMG_b=1;

SMG_s=1;

SMG_g=1;

P0=table[da/1000]; //输出显示内容

break;

case 1: //选择百位数码管,关闭其它位

SMG_q=1;

SMG_b=0;

SMG_s=1;

SMG_g=1;

P0=table[da%1000/100]&0x7f;//加上小数点

break;

case 2: //选择十位数码管,关闭其它位

SMG_q=1;

SMG_b=1;

SMG_s=0;

SMG_g=1;

P0=table[da%100/10];

break;

case 3: //选择个位数码管,关闭其它位

SMG_q=1;

SMG_b=1;

SMG_s=1;

SMG_g=0;

P0=table[da%10];

break;

}

l_posit++; //每调用一次将轮流显示一位

if(l_posit>3)

l_posit=0;

}

//延时子函数,短暂延时

void delay(unsigned int timer){

while(timer--);

}

c语言编计分秒时的程序,用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。...相关推荐

  1. c语言共阴极数码管数字6,共阴数码管 显示数字 C语言程序

    共阴数码管显示数字C语言程序#include void Delay(unsigned char a) { unsigned char i; while( --a != 0) { for(i = 0; ...

  2. C语言数码管是共阴共阳程序,单片机程序怎么把共阴数码管程序改成共阳的

    #include #define uchar unsigned char #define uint unsigned int //数码管位端口定义 sbit w1=P2^0; sbit w2=P2^1 ...

  3. 共阳极数码时钟c语言程序,51单片机_DS1302时钟芯片_共阴数码管_时钟实例【中为电子科技工作室】_51单片机ds1302数码管时钟...

    该文档包括原理图.源代码,系统的介绍了51单片机和DS1302的应用,显示方式为4位共阴时钟数码管,具有调时功能,原理图和源代码都已验证是可用的. E:\Demo\Keil3\IS EB51M V10 ...

  4. 数码管显示1到8c语言,单片机控制八只数码管滚动显示1~8 附PROTEUS软件仿真图

    数码管显示是每一个单片机初学者都必须学的,而单片机驱动数码管的数字循环显示实验,又是单片机基础中的基础,同时也是学好C语言编程的关键,此实验在硬件上可以弄清楚单片机驱动原理和数码管的显示原理,在软件上 ...

  5. 按键自加自减的c语言数码管编程,8位共阴数码管动态扫描自增自减

    //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit duan=P2^2;//定义P2.2为段操作,爱设置哪个都行 sbit wei=P2^3;//定义P2.3为位操作 /*- ...

  6. 用计算机语言编写累加程序,如何在S7-1200PLC编写程序时实现流量累积?

    在使用s7-1200PLC编写程序的时候,如果项目上需要用到流量累积功能,但是本款PLC并没有自带流量累积功能块.这时,就需要我们组态工程师自己编写一个具有流量累积功能程序,或者将该程序封装为FB块或 ...

  7. c语言输入10个国名要求按字母顺序输出,编写程序,输入10至20个城市名,按字母顺序输出城市名清单。...

    满意答案 yinjinzhe10 2013.09.02 采纳率:49%    等级:12 已帮助:23437人 编写程序,输入10至20个城市名,按字母顺序输出城市名清单: #include #inc ...

  8. 51单片机c语言共阳断码表,单片机的共阴共阳8段码的原理及显示代码

    描述 共阴极数码管 1.共阴极数码管的结构 共阴极数码管是把所有led的阴极连接到共同接点com,而每个led的阳极分别为a.b.c.d.e.f.g及dp(小数点),如下图所示.图中的8个led分别与 ...

  9. java程序 键盘事件_java编写程序实现键盘钢琴,运用键盘事件、鼠标事件

    java编写程序实现键盘钢琴,运用键盘事件.鼠标事件 界面     实现 MouseListener,MouseMotionListener,KeyListener接口,当鼠标进入不同按钮时,会播放不 ...

最新文章

  1. 烂大街的Spring循环依赖该如何回答?
  2. linux c 内存泄漏调试工具 《valgrind用户手册》 2. 使用和理解Valgrind核心
  3. mysql给数据做排名_mysql给数据统计做排名
  4. 做一个项目,平时都用到哪些工具提高效率(上)
  5. 甲骨文正式发布Java 14(Oracle JDK 14),下载下来尝尝鲜~~~
  6. JVM调优:指定垃圾回收器组合
  7. .NET5发布了,腾讯招聘点名要求精通MySQL,而不是SQLServer!
  8. Flutter透明度渐变动画Opacity实现透明度渐变动画效果
  9. 基础正则和扩展正则的作用
  10. http协议编程java_Java与Http协议的详细介绍
  11. php算法求出一个数可以被分解成多少个_小学数学必考的34个数学重难点公式,赶紧给孩子收藏!...
  12. java web/Maven项目结构分析
  13. 关于文件的MIME类型
  14. amd显卡用黑苹果输出黑屏_黑苹果AMD NVIDIA Intel显卡咋驱动?速戳这里
  15. The bean sellergoods.FeignClientSpecification could not be registered. A bean with that name has a
  16. ProxySQL+MGR实现读写分离和主节点故障无感知切换
  17. The Things Network LoRaWAN Stack V3 学习笔记 2.2 使用 CLI 进行 OAuth 登录
  18. 使用Java打印字母菱形
  19. 迁移wordpress_WordPress迁移变得容易
  20. 欧拉系统安装与部署NextCloud与常见部署问题解决以及数据盘迁移

热门文章

  1. kali 安装netspeed 网络流量监视器
  2. 2012科技业大公司与大事件:苹果不再创新垄断(转)(二)
  3. 微服务设计指导-使用云原生微服务解决传统海量跑批时引起的系统间“级联雪崩”以及效率
  4. Excel中在方框里打钩
  5. 规范小区电瓶车充电桩的分布保障充电安全
  6. 又java基础学php多久_php自学需要多久?
  7. iphone微信用计算机隐身,苹果手机使用微信不能换行?原来隐藏键在这,网友:冷知识...
  8. DolphinScheduler征稿 —手把手教你如何使用小豚调度
  9. PostgreSQL 大会与DBA培训交流记录
  10. jzoj 4246【五校联考6day2】san