我写了一段三位数码管的60秒倒计时程序,有点问题,谁帮忙看看

#include<regx52.h>#defineNUMP0unsignedcharcodeNUM_DIG[10]={0xc0,0xf9,0xa4,0xb0,0x99,0... #include<regx52.h>
#define NUM P0
unsigned char code NUM_DIG[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char DisplayData[3];
unsigned char ge,shi,judge,temp;

void csh()
{ TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
EX0=1;
IT0=1;
ET0=1;
PX0=1;
PT0=0;
TR0=0;
temp=60;
}
void int1() interrupt 1 //溢出中断0
{ TH0=0x3c;
TL0=0xb0;
judge++;
}
void int0() interrupt 0 //外部中断0
{
TR0=~TR0;
}
void Dig(unsigned char S,unsigned char G)
{
unsigned char i;
unsigned int j;
for(i=0;i<3;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
DisplayData[0]=NUM_DIG[0];break; //显示0
case(1):
DisplayData[1]=NUM_DIG[S];break;//显示第1位
case(2):
DisplayData[2]=NUM_DIG[G];break;//显示第2位
}
NUM=DisplayData[i];//发送段码
j=6; //扫描间隔时间设定
while(j--);
NUM=0x00;
}
}
void main()
{
csh();
while(1);
{shi=temp/10;
ge=temp%10;
Dig(shi,ge);
if(judge==20)
{judge=0;
temp--;
if(temp==-1)
temp=60;
}
}
}
展开
 我来答
闻风色变
2014-06-11 · TA获得超过214个赞
知道小有建树答主
回答量:371
采纳率:0%
帮助的人:141万
展开全部
主函数中Dig(shi,ge);和你自定义的Dig函数void Dig(unsigned char S,unsigned char G)稍有不同
追问
没差别啊
没差别啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式