求助!
用两个4094分别做7个8段数码管的位选和段选,其中位选4094的Q输出接段选4094的DATA输入。位选4094并行输出接一个2003.我采用动态显示方法进行显示,程序如下:
send_data=0x0f;
send_to_4094();
send_data=0x01;
send_to_4094();
delay_n_ms(1);
send_data=0x00;
send_to_4094();
send_data=0x02;
send_to_4094();
delay_n_ms(1);
send_data=0x00;
send_to_4094();
send_data=0x04;
send_to_4094();
delay_n_ms(1);
...
send_data=0x00;
send_to_4094();
send_data=0x40;
send_to_4094();
delay_n_ms(1);
void send_to_4094(void)
{
uchar data i,j;
S_STROBE=1;
nop;
nop;
for(i=0;i <8;i++)
{
S_CLOCK=0;
j=send_data&0x80;
if(j==0x80)
S_DATA=1;
else
S_DATA=0;
nop;
nop;
nop;
S_CLOCK=1;
nop;
nop;
send_data=send_data < <1;
}
S_STROBE=0;
S_CLOCK=0;
S_DATA=0;
}
结果第一位的想显示的段是点亮了,但其它位的相应段也点亮了,只是稍为暗些。小第百思不得其解,有哪为仁兄能指点迷津,实在感激不尽!
发表时间:2004年3月21日22:12:27