#include<AT89X52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code SMG[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*要显示的0~9数字*/
uchar code CTR[]={0xF8,0xF9,0xFA,0xFB};/*控制显示哪位数码管*/
uchar Data1[4]={0x00,0x00,0x00,0x00};/*定义一个四位的数组,初始为0*/
uint i;
void delay(uint t)
{
uint k;
for(k=0;k<=t;k++);
}
void Change(uint i)
{
Data1[3]=i/1000;
Data1[2]=i%1000/100;
Data1[1]=i%1000%100/10;
Data1[0]=i%1000%100%10;
}
void Display(void)
{
uchar k;
for(k=0;k<=3;k++)
{
P2=0;
P0=Data1[k];
P2=CTR[k];
delay(50);
}
}
void main()
{
i=6329;
Change(i);
while(1)
{
Display();
}
}
为什么变量跟踪要显示的数组Data1的值没问题,但实际数码管显示的却是乱码??
求指教!
此帖出自
小平头技术问答
你要传给IO口的是字库,而不是计算出来各个位的数值
一周热门 更多>