求单片机C语言程序:0~59秒计数器;1个独立按键控制,,2个数码管显示,第一次按按键,实现暂停,第二次按按键,实现复位,复位后自动继续走动。仿真图已上,任务完成另加200分
以下是1个数码管实现的类似程序,可用可不用,仅供参考:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit KEY=P3^0;
uchar aa,num,flag;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint ms)
{
uchar t;
while(ms--)
for(t=0;t<123;t++);
}
void main()
{
num=0;
aa=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P2=table[0];
while(1)
{
while(!KEY)
{
delay(10);
if(KEY)
{
flag++;
if(flag==1)
TR0=0;
if(flag==2)
{
P2=0x3f;
flag=0;
}
}
}
if(aa==20)
{
aa=0;
num++;
if(num==10)
num=0;
P2=table[num];
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
仿真图片
第二次按的时候那个键没有复位作用,还有就是复位后要继续自动走动,我自己搞定吧
追答不是吧,怎么会这样的?我的都可以。
追问你能帮帮我吗,因为我们老师把作业题给改掉了,之前我们写的程序都不算,麻烦你帮忙看下咯http://zhidao.baidu.com/question/285553099.html
本回答被提问者采纳