两块不同厂家08接口的单色屏,从板上的元件来看也基本上一样。用同一个控制卡驱动,一块屏可以正常显示,另一块屏出现的好像是隔扫描的效果,问题会出现在哪儿呢?
/***********************************************************************************
取模软件名称:HZDotReader
取模方式:横向8点左高位,上到下左到右
晶体:12M
编写日期:2011.2.21
speed为速度值,改变此值可改变移动速度
***********************************************************************************/
#include <STC10.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//74HC595管脚定义
sbit STR=P2^6; //锁存信号
sbit CLK=P2^7; //时钟信号
sbit RData= P3^3; //红色数据
sbit E= P3^4; //使能信号
unsigned char j,jj,speed;
unsigned char flag;
unsigned char code shuzi[][16]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//以上为空白显示,保证汉字从最右面开始滚出
/*煮 CD6F3 */
0x01,0x01,0x3F,0x01,0xFF,0x03,0x0F,0x38,0xCF,0x08,0x0F,0x00,0x24,0x22,0x42,0x00,
0x00,0x08,0xD8,0x24,0xFE,0x00,0xF0,0x10,0xF0,0x10,0xF0,0x10,0x88,0x44,0x62,0x00,
/*豆 CB6B9 */
0x00,0x7F,0x00,0x00,0x1F,0x10,0x10,0x10,0x1F,0x00,0x10,0x08,0x04,0xFF,0x00,0x00,
0x00,0xFE,0x00,0x00,0xF0,0x10,0x10,0x10,0xF0,0x20,0x30,0x20,0x40,0xFE,0x00,0x00,
/*燃 CC8BC */
0x22,0x22,0x23,0x2C,0xB4,0xAA,0xA5,0xA2,0x22,0x24,0x29,0x52,0x4D,0x45,0x88,0x00,
0x10,0x10,0xD8,0x54,0x90,0xFE,0x10,0x28,0x48,0x84,0x06,0x48,0x24,0xB6,0x92,0x00,
/*豆 CB6B9 */
0x00,0x7F,0x00,0x00,0x1F,0x10,0x10,0x10,0x1F,0x00,0x10,0x08,0x04,0xFF,0x00,0x00,
0x00,0xFE,0x00,0x00,0xF0,0x10,0x10,0x10,0xF0,0x20,0x30,0x20,0x40,0xFE,0x00,0x00,
/*箕 CBBFE */
0x20,0x3F,0x28,0x45,0x8A,0x7F,0x08,0x0F,0x08,0x0F,0x08,0x08,0xFF,0x04,0x18,0x60,
0x40,0x7E,0x90,0x08,0x20,0xFC,0x20,0xE0,0x20,0xE0,0x20,0x20,0xFE,0x40,0x30,0x0C,
/*, CA3AC */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x10,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*豆 CB6B9 */
0x00,0x7F,0x00,0x00,0x1F,0x10,0x10,0x10,0x1F,0x00,0x10,0x08,0x04,0xFF,0x00,0x00,
0x00,0xFE,0x00,0x00,0xF0,0x10,0x10,0x10,0xF0,0x20,0x30,0x20,0x40,0xFE,0x00,0x00,
/*在 CD4DA */
0x02,0x02,0x7F,0x04,0x04,0x08,0x18,0x17,0x30,0x50,0x90,0x10,0x10,0x17,0x10,0x00,
0x00,0x00,0xFE,0x00,0x00,0x40,0x40,0xFC,0x40,0x40,0x40,0x40,0x40,0xFE,0x00,0x00,
/*斧 CB8AB */
0x04,0x18,0x66,0x01,0x06,0x78,0x00,0x0F,0x08,0x0F,0x08,0x10,0x10,0x20,0xC0,0x00,
0x20,0x18,0x64,0x80,0x60,0x1E,0x68,0x80,0x00,0xFC,0x40,0x40,0x40,0x40,0x40,0x40,
/*中 CD6D0 */
0x01,0x01,0x21,0x3F,0x21,0x21,0x21,0x21,0x21,0x3F,0x21,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x08,0xFC,0x08,0x08,0x08,0x08,0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,
/*泣 CC6FC */
0x20,0x10,0x10,0x07,0x88,0x48,0x50,0x12,0x22,0x21,0xE1,0x21,0x20,0x20,0x3F,0x20,
0x80,0x40,0x40,0xFC,0x00,0x08,0x08,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0xFE,0x00,
/*; CA3BB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x10,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*本 CB1BE */
0x01,0x01,0x01,0xFF,0x03,0x03,0x05,0x05,0x09,0x11,0x2F,0xC1,0x01,0x01,0x01,0x00,
0x00,0x00,0x00,0xFE,0x80,0x40,0x40,0x20,0x10,0x18,0xEE,0x04,0x00,0x00,0x00,0x00,
/*是 CCAC7 */
0x00,0x0F,0x08,0x0F,0x08,0x0F,0x00,0xFF,0x01,0x09,0x09,0x09,0x15,0x23,0x40,0x00,
0x00,0xF0,0x10,0xF0,0x10,0xF0,0x00,0xFE,0x00,0x00,0xF8,0x00,0x00,0x00,0xFE,0x00,
/*同 CCDAC */
0x00,0x7F,0x40,0x40,0x5F,0x40,0x40,0x4F,0x48,0x48,0x48,0x4F,0x48,0x40,0x40,0x40,
0x00,0xFC,0x04,0x04,0xF4,0x04,0x04,0xE4,0x24,0x24,0x24,0xE4,0x24,0x04,0x14,0x08,
/*根 CB8F9 */
0x10,0x11,0x11,0xFD,0x11,0x11,0x39,0x35,0x51,0x51,0x91,0x11,0x11,0x11,0x11,0x10,
0x00,0xF8,0x08,0x08,0xF8,0x08,0x08,0xF8,0x84,0x4C,0x30,0x10,0x48,0x8E,0x04,0x00,
/*生 CC9FA */
0x00,0x10,0x10,0x10,0x1F,0x20,0x20,0x40,0x9F,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,
0x80,0xC0,0x80,0x88,0xFC,0x80,0x80,0x88,0xFC,0x80,0x80,0x80,0x80,0x84,0xFE,0x00,
/*, CA3AC */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x10,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*相 CCFE0 */
0x10,0x10,0x10,0x10,0xFE,0x18,0x34,0x32,0x52,0x50,0x90,0x10,0x10,0x10,0x10,0x10,
0x00,0xFC,0x84,0x84,0x84,0xFC,0x84,0x84,0x84,0xFC,0x84,0x84,0x84,0x84,0xFC,0x84,
/*煎 CBCE5 */
0x08,0x04,0xFF,0x00,0x3E,0x22,0x3E,0x22,0x3E,0x22,0x2A,0x24,0x48,0x44,0xC6,0x82,
0x20,0x40,0xFE,0x00,0x08,0x48,0x48,0x48,0x48,0x48,0x28,0x10,0x88,0x44,0x66,0x22,
/*何 CBACE */
0x08,0x0C,0x1B,0x10,0x30,0x27,0x64,0xA4,0x24,0x27,0x24,0x20,0x20,0x20,0x20,0x00,
0x00,0x00,0xFE,0x08,0x08,0xC8,0x48,0x48,0x48,0xC8,0x48,0x08,0x08,0x28,0x10,0x00,
/*太 CCCAB */
0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x02,0x02,0x04,0x05,0x08,0x10,0x20,0x40,
0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x98,0xCC,0x86,0x04,
/*急 CBCB1 */
0x04,0x04,0x0F,0x08,0x10,0x2F,0x00,0x0F,0x00,0x0F,0x01,0x28,0x28,0x68,0x07,0x00,
0x00,0x00,0xE0,0x40,0x80,0xF0,0x10,0xF0,0x10,0xF0,0x00,0x84,0x92,0x12,0xF0,0x00,
/*。 CA1A3 */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x48,0x48,0x30,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void sendRbyte(unsigned char bbyte1) //发送红色数据
{
unsigned char i;
for(i=0;i<8;i++)
{
RData=~bbyte1&0x80; //取出最高位
CLK=0; CLK=1;
//E=1;
bbyte1<<=1; //左移
}
}
/*void sendR2byte(unsigned char bbyte1,unsigned char n) //发送红色数据2
{
unsigned char i;
for(i=0;i<n;i++)
{
RData=~bbyte1&0x80; //取出最高位
CLK=0; CLK=1;
//E=1;
bbyte1<<=1; //左移
}
} */
void moveRdisp(void)
{
uchar i=0,k=0,z;
speed=10;//移动速度
for(z=0;z<speed;z++)
{
for(i=0;i<16;i++)
{
E=0;
k=j;
sendRbyte(shuzi[k+0][i]);
sendRbyte(shuzi[k+1][i]);
sendRbyte(shuzi[k+2][i]);
sendRbyte(shuzi[k+3][i]);
sendRbyte(shuzi[k+4][i]);
sendRbyte(shuzi[k+5][i]);
sendRbyte(shuzi[k+6][i]); s
sendRbyte(shuzi[k+7][i]);
//sendR2byte(shuzi[k+8][i],jj);
if(jj==8)
{
jj=0;
j++;
if(j>55)
{
j=0;flag=1;
}
}
P2=(P2&0xf0)|(i&0x0f);
STR=0;STR=1;
}
}
jj++;
}
void main(void) //主程序
{
flag=0;
while(1) //循环
{
moveRdisp(); //调用子程序
}
}
程序贴出来了,请大家帮助分析一下。 |