数码管显示不了,意思是:显示的数据不正确还是根本直接就不显示东西?
(1)如果是显示不正确,那可能跟解码结果或数据传送正确与否有关,可以分别去检查:解码结果不正确,先检查硬件是否正确,有条件的话可以用示波器观察P32的波形是否和原理一致。如果没问题,那就检查解码代码,联合仿真器和经验一步一步校验。
(2)如果是数码管根本就不显示,那么我可以认为你是个新手或者经验不足。你仔细看一下代码,数码管用的是共阳的(如果你的是共阴的,是没办法显示正确的数据的),段码接在P0,位码接在P2。做动态扫描时,简单的延时一下之后直接继续赋数据值,这种做法一般不鼓励,因为人是有视觉暂留的,这样可能造成重影,使得显示的数据重叠,例如显示2之后直接显示1,那么看起来显示的就是3。所以应该在DISPLAY函数里面的延时之后加一个P0=0xFF;这样会好一点。
#包括,8个数码管/ / 01234567尝试
字符代码表[] = {
的0x3F,0X06,0x5b,0x4f
0x66,0x6d,0x7d,0X07,
到0x7f,0x6f,0x77,0x7c,
0x39,0x53,值为0x79,0x71};
无效delayms(K);
无效的主要(){
BR />(1)
{
CHAR I = 0;
(P3 = 0XFE; P3 = 0XFF; P3 = P3 * 2 + 1)/ / P3之选 BR /> {
P2 =表[I] / / P2段
delayms(2);
+ +;
}
}
}的
无效delayms(K)
{
INT I,J;
为(i = 0;
}
执行解码后,好像没跳出中断。