proteus 仿真 单片机LED点阵 问题

仿真时,屏幕是由8块 16*16模块组成(每个模块由4个8*8组成),行线为P2,P3口输出数据,列线作为选择线,由一个74HC138控制八个74hc154进行每个模块的列信号选择。
问题是,仿真运行时,屏幕的汉字总是一闪而过,有明显的一列一列的感觉,而不是持续停留,将程序中的delay()改成各种数都不起作用,还请高手帮忙指明原因,不胜感激,程序如下
int i,j,k,t;
void delay(t)
{
while(t--){;}
}
void main()
{
while(1)
{
for(i=0;i<8;i++)
{
P1=tab138[i];

for(j=0;j<16;j++)
{

P2=ge1[i][j];
P3=ge2[i][j];
P1=P1+0x10;
delay(1000);

}}}}
汉字数据部分略去,汉字内容用的二维数组。

假如你的硬件连接没问题的话可做如下尝试:
1.将延时参数1000大幅减小,如1,或不用延时。
2.设置led的参数,方法是双击每块led点阵,将弹出对话框中的最小触发时间(minimun tigger time)改为0.0000000001。
3.鉴于你所用led较多,建议减少led块数,比如总点数为16×64,或者增加硬件,提高刷新频率(不少于25hz)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-12
我建议你写一个单独向点阵上写一个字的函数,每写完一个字之后延时,另外我多一句嘴,就是显示时要灯一起亮,不能一排一排亮
相似回答