下面程序只能实现数码管0~9的循环以及暂停,却无法清零。
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define A P0
sbit t=P1^0;
sbit k=P3^0;
uint flag=0;
void delay(uint i)
{
while(i--);
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=100;j>0;j--);
}
void main()
{ char *ps;
char smg[70]={0xC0,0xF9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x00};
ps=smg;
while(1)
{ A=*ps;
delayms(200);
ps++;
if(*ps==0x00)
ps-=10;
if(k==0)
{
delay(200);
if(k==0)
{
flag++;
if(flag==2)flag=0;
}
} while(!k);
if(flag==0)
{t=1;}
if(flag==1)
{ t=0;}
}
}