编程实现倒计时的秒表,2位LED数码管显示,延时采用硬件延时的方法

如题所述

编程实现倒计时的秒表,2位LED数码管显示,延时采用硬件延时的方法
单片机的定时器T0定时,计时1秒,实现倒计时的秒表的功能。
程序如下
#include<reg51.h>
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管段码表
unsigned char second;//秒倒计时变量
unsigned char t0n;//T0中断次数计数
sbit k1=P3^2;//定义按键
void delay()
{
unsigned int j;
for(j=400;j>0;j--);
}
void display()//显示子程序
{
P2=0x01;
P0=tab[second/10];//显示十位
delay();
P2=0x02;
P0=tab[second%10];//显示个位
delay();
}
void main()
{
TMOD=0x01;//用T0定时,中断方式
TH0 =0x3C;//晶振12M,定时50ms
TL0 =0xB0;
IE =0x82;
while(1)
{
display();//调显示子程序
if(k1==0)//按键按下
{
if(TR0==0)
{
TR0=1;//启动开始计时
second=60;//从60秒开始倒计时
}
else
TR0=0;
while(k1==0);//等待按键释放
}
}
}
//T0中断程序
void T0_int() interrupt 1
{
TH0 =0x3C;
TL0 =0xB0;
t0n++;
if(t0n>=20)//1秒到
{
t0n=0;
second--;//减1秒
if(second==0)TR0=0;
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

编程实现倒计时的秒表,2位LED数码管显示,延时采用硬件延时的方法
unsigned char second;\/\/秒倒计时变量 unsigned char t0n;\/\/T0中断次数计数 sbit k1=P3^2;\/\/定义按键 void delay(){ unsigned int j;for(j=400;j>0;j--);} void display()\/\/显示子程序 { P2=0x01;P0=tab[second\/10];\/\/显示十位 delay();P2=0x02;P0=tab[second%10];\/\/显示个位...

...延时方式实现秒计时通过两个数码管动态显示秒表时间,时间范围0-60...
简单啊,用定时器就可以了

...延时方式实现秒计时通过两个数码管动态显示秒表时间,时间范围0-60...
sbit dula = P2^6;sbit wela = P2^7;sbit led1 = P1^3;define uint unsigned int define uchar unsigned char uint a,c,g;uint b = 5;long int num;uchar num1,num2,shi,ge;void display(uchar,uchar);void delayms(b){ for(a=b;a>0;a--)for(g=110;g>0;g--);}const unsi...

...设计电子秒表系统 ,用2位LED数码显示,显示时间为00~99秒,每秒自动...
\/\/12M晶振。2位共阳数码管,P0为段码,P2.2、P2.3位控 \/\/2011 05 07 三个按键:开始 P2.0 暂停 P2.1 清零 P2.2 include <reg51.h> define uchar unsigned char sbit P20=P2^0;sbit P21=P2^1;sbit KS=P2^5;sbit KP=P2^6;sbit KC=P2^7;int ge,shi;uchar code tab[...

数字秒表\/定时器(倒计时)功能verilog代码ego1开发板vivado
使用VIVADO软件及Verilog编程语言,实现数字秒表与定时器功能。功能包括启动、暂停、复位、设置时、分、秒等操作。秒表功能具有计时精度10ms(0.01秒),并以数码管显示分、秒、毫秒。定时功能可通过按键设置,设置时间后按下开始按键开始倒计时,直至为零,LED提示结束。代码已在ego1开发板上验证,适用于...

设计一个单片机编程,两位的简易秒表,记时单位60-50s,用两位的数码管
1 { static unsigend int t = 0;TH0 = 0xFC;TL0 = 0x18;t++;if(t >= 1000){ t = 0;sec++;if(sec >= 60){ sec = 0;} } } 我这个是共阳极编码 P0接一个数码管, P2接一个数码管, 你把Ledchar 那个数组里面的数,换成共阴极编码就可以了, 在网上搜索下就有的 ...

...一个51单片机实现秒表的程序,要求:2位数码管显示00-99秒,每秒自动...
include <reg51.h> define uchar unsigned char define uint unsigned int sbit KS=P1^1;sbit KP=P1^2;sbit KC=P1^3;uchar ge,shi;uchar code tab[ ]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};void delay(uint ms){ uchar a;while(ms--)for(a=123;a>0;a--...

分别用汇编语言,定时器T0方式二,制作LED数码管显示的秒表,计数范围0.1...
分别用汇编语言,定时器T0方式二,制作LED数码管显示的秒表,计数范围 0.1~0.9。2位数码管,只有一个键。第一次按下计时功能键,开始计数,并显示;第二次按下计时功能键,停止计时,并计算两次按下计时功能键的时间并显示,第三次按下,清零,如果计时到9.9,停止计时,再按计时功能键清零。类...

...秒表是倒计时,从100秒开始倒计时 用数码管实时显示当前计时值...
uchar time=0;\/\/共阴数码管七段码 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};void Delay1ms(uint i) \/\/1ms延时程序 { uint j;for(;i>0;i--){ for(j=0;j<164;j++){;} } } void main(void )\/\/主程序 { TMOD=0X01;ET0=1;EA...

汇编语言 秒表程序设计
irq7:call disp ;调用disp子程序,用来在数码管显示数据 mov si,4000 cmp [si+04],00 ;判断是否按了第2次回车键 je A4 call addn ;调用addn子程序,用来计数 A4:mov al,20 out 20,al cli ;关中断 iret ;返回 addn程序:addn:mov si,4000 add [si+03]...

相似回答