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

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

用单片机判漏含的定时器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=400j>0j--)

}

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

}

}

仿真图如下

#include "STC12C54.H"

#define uchar unsigned char

#define uint unsigned int

#define dataport P1//P1直接驱如缓动数码管的渣正模8个阳极

sbit wei1=P3^3//再有三个管脚接3个三极管驱动数码管的阴清嫌极

sbit wei2=P3^4

sbit wei3=P3^5

uint a=0//中断次数计数,一次50ms,20次为1 秒

//共阴数码管七段码

uchar TABLE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}

//延时子程序

void delay1ms(uint t)

{

uint i,j,k

for(i=ti>0i--)

for(j=15j>0j--)

for(k=27k>0k--)

}

//显示子程序

void display(uint n)

{

uchar a1,a2,a3

a1=n/100%10

a2=n/10%10

a3=n%10

wei1=1

dataport=TABLE[a1]

delay1ms(1)

wei1=0

dataport=0x80|TABLE[a2]//这里多个小数点

delay1ms(1)

wei3=1

dataport=TABLE[a3]

delay1ms(1)

wei3=0

}

void init(void)

{

TMOD=0X01

TH0=(655536-50000)/256//定时50ms

TL0=(655536-50000)%256

EA=1

ET0=1

TR0=1

P1M0=0

P1M1=0xff//P1口设为推挽输出,驱动能力强

P3M0=0

P3M1=0x38//P3.3P3.4 P3.5口设为推挽输出

}

void main(void)//主程序

{

init()//初始状态设定

while(1)

{

display(a/2)//显示计数值,以十分之一秒为单位

}

}

void timer0(void)interrupt 1//中断子程序

{

TH0=(655536-50000)/256

TL0=(655536-50000)%256

a++;

if(a==1980)a=0//1980次是99秒

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12314457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存