如何用C51单片机做出以下程序 “秒表是倒计时,从100秒开始倒计时 用数码管实时显示当前计时值”

如何用C51单片机做出以下程序 “秒表是倒计时,从100秒开始倒计时 用数码管实时显示当前计时值”,第1张

假设P0 P2接数码管,静态驱动,程序如下:

include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

uchar num=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>0i--)

{

for(j=0j<164j++)

{}

}

}

void main(void )//主程序

{

TMOD=0X01

ET0=1

EA=1

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

TL0=(65536-50000)%256

TR0=1

while(1)

{

P0=table[num/10]

Delay1ms(2)

P2=table[num%10]

Delay1ms(2)

}

}

void TIMER0()interrupt 1//中断程序

{

TH0=(65536-50000)/256

TL0=(65536-50000)%256

time++

if(time==20)

{

time=0

num--

}

if(num==0)

{

num=100

}

}

用单片机的定时器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

}

}

仿真图如下

1、打开VB6.0,新建一个工程,在窗体中添加三个命令按钮,caption分别改为“设置倒计时”、“启动倒计时”、“继续”,将窗体Form1的caption属性改为“倒计时”,添加一个计时器控件,添加一个文本框。

2、将文本框的Text属性清空,将字体Font属性调整为小四,便于观察,将背景色属性Backcolor调为浅黄色。

3、双击“设置倒计时”命令按钮,进入代码编辑窗口。

4、双击“启动倒计时”命令按钮,进入代码编辑窗口。

5、双击“计时器”控件,进入代码编辑窗口。

6、在代码编辑窗口的通用段进行变量定义:Dim h As Integer, m As Integer, s As Integer '分别存储时分秒Dim a As Integer。

7、双击窗体,进入代码编辑器,在 Form_Load事件中写入代码:Timer1.Enabled = False '先关闭计时器。

8、关闭代码窗口,按下F5运行程序,单击“设置倒计时”命令按钮,d出输入对话框,此时输入分钟数为1,确定。

9、单击“启动倒计时”命令按钮,文本框显示倒计时时间,并时刻变动,至此实现了倒计时功能。


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

原文地址: http://outofmemory.cn/yw/11170781.html

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

发表评论

登录后才能评论

评论列表(0条)

保存