程序如下
#include <reg51.h>
#include <intrins.h>
void delay(unsigned int i); //函数声名
//此表为 LED 的字模, 共阴数码管 0-9 -
unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段码控制
//此表为8个数码管位选控制, 共阴数码管 1-8个 -
unsigned char code dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; //位选控制 查表的方法控制
/************主函数**********************/
main()
{
unsigned int j,i,shi=0,fen=0,miao=0 ; //变量定义
unsigned long shijian[10]; //变量定义
while(1)
{
for (j=0;j>10;j++)
{
j=0;
miao++;
}
if (miao==59)
{ fen++;miao==0; }
if (fen==59)
{shi++;fen==0;}
if (shi==23)
{ if (fen==59)
{if (miao==59)
{
miao==0;
fen==0;
shi==0;
}
}
}
unsigned long shijian[0]=Disp_Tab[miao%10];
unsigned long shijian[1]=Disp_Tab[miao%100/10];
unsigned long shijian[2]=Disp_Tab[fen%10];
unsigned long shijian[3]=Disp_Tab[fen%100/10];
unsigned long shijian[4]=Disp_Tab[shi%10];
unsigned long shijian[5]=Disp_Tab[shi%100/10];
for( i=0; i<6; i++)
{
P0 = shijian[i];
P1 = dispbit[i]; //使用查表法进行位选
delay(500); //扫描间隔时间 太长会数码管会有闪烁感
}
}
}
void delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}
这个程序中提示
unsigned long shijian[3]=Disp_Tab[fen%100/10];
unsigned long shijian[4]=Disp_Tab[shi%10];
unsigned long shijian[5]=Disp_Tab[shi%100/10];
这三行有错误,实在是找不出 还望大侠指点 |