标题:
单片机60分钟100秒倒计时Proteus仿真程序
[打印本页]
作者:
18049278982
时间:
2020-3-30 23:01
标题:
单片机60分钟100秒倒计时Proteus仿真程序
60分钟100秒倒计时,数码管实现。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png
(19.45 KB, 下载次数: 51)
下载附件
2020-3-31 00:38 上传
单片机源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar u,j,sum,qian,bai,shi,ge;
char fen,miao;
uchar code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
sbit wei1=P2^3;
sbit wei2=P2^2;
sbit wei3=P2^1;
sbit wei4=P2^0;
sbit k5=P1^4; // 复位
sbit k6=P1^5; //暂停或继续
sbit duan=P3^2;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void dsq();//定时器
void anjian() //按键子函数
{
if(k6==0) //开始、复位
{
delay(10);
if(k6==0)
{
EA=!EA;
}
while(!k6);
delay(10);
while(!k6);
}
if(k5==0)
{
delay(10);
if(k5==0)
{
fen=60;
miao=99;
}
while(!k5);
delay(10);
while(!k5);
}
}
void display() //显示子程序
{
wei1=0;
duan=1;
P0=table[ge];
duan=0;
delay(3);
wei1=1;
wei2=0;
duan=1;
P0=table[shi];
duan=0;
delay(3);
wei2=1;
wei3=0;
duan=1;
P0=table1[bai];
duan=0;
delay(3);
wei3=1;
wei4=0;
duan=1;
P0=table[qian];
duan=0;
delay(3);
wei4=1;
}
void main()
{
dsq();
fen=60;
miao=0;
while(1)
{
anjian();
display();
if(u==20)
{
u=0;
qian=fen/10;
bai=fen%10;
shi=miao/10;
ge=miao%10;
miao--;
}
if(miao==-1)
{
miao=99;
fen--;
}
if(fen==-1)
{
fen=60;
miao=0;
}
}
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
u++;
}
void dsq()//定时器
{
TMOD=0X11;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
复制代码
所有资料51hei提供下载:
60分钟100秒倒计时仿真.rar
(119.61 KB, 下载次数: 71)
2020-3-30 23:01 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
18965647709
时间:
2020-5-2 16:49
为啥74HC573的输出电平没变化
作者:
18965647709
时间:
2020-5-2 17:00
为什么573的输出引脚的电平没有变化啊
作者:
loveak
时间:
2020-6-20 11:12
573输出引脚没有变化
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1