/***********************************************************************************************
16X64点阵。
p0,p2口接行,p0接前几行,p2接后几行,第一行在上面,最后一行在下面。
p3口接8个74hc595移位寄存器,连接到列中,第一列在左边,最后一例在右边。
通过移位寄存器一列一列的扫描,同时送行代码,以显示图形
出现的问题:就是显示闪烁问题,不知道为什么??我无论怎么修改延时时间还是闪烁,
但是如果我只扫描32列就没闪烁问题,就是把循环语句中的64改成32.
是不是扫描64列时仿真软件反应不过来??在实际中会不会有问题呢??
哪位高手能指点一下呀,帮我修改一下程序,感激不尽了。。。。。。。。。。。。。
************************************************************************************************/
#include <AT89X52.H>
/********************************行代码**********************************************************/
unsigned char code graph[]={
0x00,0x00,0x00,0x01,0xE0,0x0F,0xF0,0x1F,0xF0,0x1F,0x18,0x30,0x08,0x20,0x08,0x20,
0x08,0x20,0x08,0x20,0x08,0x20,0x38,0x38,0xF0,0x1F,0xE0,0x0F,0xC0,0x07,0x00,0x00,
//0
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x20,0x10,0x20,0x10,0x20,0xF8,0x3F,
0xF8,0x3F,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00 ,
//1
0x00,0x00,0x00,0x00,0x20,0x30,0x70,0x30,0x78,0x38,0x08,0x3C,0x08,0x34,0x08,0x36,
0x08,0x32,0x08,0x33,0x88,0x31,0xF8,0x31,0xF8,0x30,0x70,0x38,0x00,0x08,0x00,0x00,
//2
0x00,0x00,0x00,0x00,0x30,0x18,0x30,0x18,0x38,0x38,0x08,0x20,0x88,0x21,0x88,0x21,
0x88,0x21,0x88,0x21,0xD8,0x21,0xF8,0x3B,0x70,0x1E,0x20,0x1E,0x00,0x04,0x00,0x00,
//3
};
/**********************************************************************************************/
sbit ds=P3^5; //data
sbit shcp=P3^6; // 移位,数据从ds进入移位寄存器
sbit stcp=P3^7; //移出,数据从移位寄存器输出到i,o口。
void delay(unsigned char c) //delay 1 ms
{
unsigned char i,j;
for(i=0;i<c;i++)
for(j=0;j<120;j++);
}
void datain(void) //data in
{
shcp=0;
shcp=1;
}
void dataout(void) //data out
{
stcp=0;
stcp=1;
}
void main(void)
{
int i;
while(1)
{
ds=0; //送数据0,低电平有效,点阵第一列点亮。
for(i=0;i<=64;i++)
{
datain(); //送数据
dataout(); //输出显示
P0=graph[2*i]; //行代码,高电平有效
P2=graph[1+2*i]; //行代码,高电平有效
delay(3);
ds=1; //移位数据,下一列点亮,其它列熄灭。
}
}
}
电子屏.rar
(2008-09-27 00:38:40, Size: 82.1 KB, Downloads: 9)


最新回复
tkgg1086 (2008-9-27 13:17:50)
tkgg1086 (2008-9-27 13:21:05)
qhh78 (2008-9-27 16:05:10)
我猜想是软件仿真的问题,在实际中应该时间是可以调的。。。。。。。。
victoire (2008-9-27 18:46:01)
陈正509 (2008-9-27 20:58:45)
没有办法啊
想办法加大频率啊
nbbao (2008-10-04 18:09:57)