实在不能给源程序的给个具体一点的算法也行,就是说我该怎样实现先显示0000然后到000F,然后又到0010--001FF……一直到FFFF
/*单个数码管的动态显示*/#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit du=P2^6;
sbit we=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delayms(uint);
void main()
{
while(1)
{
uint a;
we=1; //锁存开启
P0=0xf7;
we=0; //锁存关闭
for(a=0;a<=15;a++) //从“0”显示到“F”
{
P0=table[a];
delayms(500);
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
还是有点不懂、怎么加啊?有没有详细的资料哈?
void main()
{
while(1)
{
uint a;
we=1; //锁存开启
P0=0xf7;
we=0; //锁存关闭
for(a=0;a<=15;a++) //从“0”显示到“F”
{
P0=table[a];
delayms(500);
}
}
}
void main()
{
while(1)
{
uint a;
we=1; //锁存开启
P0=0xf7;
we=0; //锁存关闭
for(a=0;a<=15;a++) //从“0”显示到“F”
{
P0=table[a];
delayms(500);
}
}
}
你看上面不是有code table表格吗,你要哪一个显示就把哪一个位选中,然后段把上面的表格值赋进去就能显示出来了
追问问题是我要一次性四个数码管全部都亮,然后慢慢的从0000-FFFF显示,单个的我知道弄哈……四个的话怎么写表格?
/*单个数码管的动态显示*/
#include
#define uint unsigned int
#define uchar unsigned char
sbit du=P2^6;
sbit we=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delayms(uint);
/*单个数码管的动态显示*/
只要单片可以扫描正常工作那就好了,你把每一个数码管的分时间显示,也注是动态显示不就完成工作啦,意思就是分四个周期每一个周期显示一个数码管,你5MS换一个数码管显示,那么人眼就看不出来啦