说一下 要几个数码管显示,是共阴极还是共阳极?要几个按键?
倒计时时间 要多长?
我写了一个 程序在我的板子编译过了 不晓得你的硬件是怎样接的
有时间 交流一下 qq 1054640353 邮箱 shy_he0701@163.com
//======================10秒倒计时程序======================
//功能: 倒计时10秒
//按键: 1号按键 开始倒计时,2 号按键 停止 3号按键 复位
// 硬件简介:采用4个共阳极数码管,用单片机p2_2--P2_5控制
//采用 行列式按键 P1接口
//设计人:何永发
//qq 1054640353 邮箱 shy_he0701@163.com
//欢迎与大家交流
//==========================================================
#include
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
bit flag=1;
uchar data m=9,s=60,count=0; //分,秒,0.1秒级
//=========延时函数============
void delay(uint i)
{
uchar j=125;
while(i--)while(j--);
}
//========显示函数===========
void display(void)
{
uchar k=0xfb;
if(flag==0)
{
P0=tab[count/2];P2=k;delay(1);k=(k<<1)|0x01;
P0=tab[s%10]&0x7f;P2=k;delay(1);k=(k<<1)|0x01;
P0=tab[s/10];P2=k;delay(1);k=(k<<1)|0x01;
P0=tab[m%10]&0x7f;P2=k;delay(1);k=(k<<1)|0x01;
}
if(flag==1)
{
P0=0xbf;P2=k;delay(1);k=(k<<1)|0x01;
P0=0xbf;P2=k;delay(1);k=(k<<1)|0x01;
P0=0xbf;P2=k;delay(1);k=(k<<1)|0x01;
P0=0xbf;P2=k;delay(1);
}
}
//=========按键函数=============
uchar key(void)
{
P1=0xff;
P1=0xf0;if(P1!=0xf0){delay(1);if(P1!=0xf0)
P1_0=0;
if(P1_4==0){while(~P1_4)display();return 0;}
if(P1_5==0){while(~P1_5)display();return 1;}
if(P1_6==0){while(~P1_6)display();return 2;}
if(P1_7==0){while(~P1_7)display();return 3;}
}
return 0xff;
}
//=========按键处理函数=============
void key_clock(void)
{ uchar k=0;
k=key();
if(k!=0xff)
{
if(k==0) {TR0=1;flag=0;}
if(k==1) {TR0=0;}
if(k==2) {m=9;s=60;count=0;flag=1;}
}
}
//=========主函数=============
void main(void)
{
TMOD=0x01;
TH1=(65536-60000)/256;TL0=(65536-60000)%256;
EA=1;ET0=1;
while(1)
{ key_clock();
display();
}
}
//=========中断函数=============
void clock(void)interrupt 1 using 1
{
TH1=(65536-50000)/256;TL0=(65536-50000)%256;
if((count==19)&&(m==0)&&(s==0)){flag=1;m=9;s=60;count=0;TR0=0;}
else if((count==19)&&(s==0)){m--;s=59;count=0;}
else if(count==19){s--;count=0;}
else count ++;
}
//要简单点 ? 你的接口电路告诉我 ,我帮你搞简单一点啊
//比如说P1口 接了什么,P2口接了什么么?
//
这个倒是不难,有一个小时足够调试完的,可是不值,100分帮你搞
电路图发上来