nullnull硬件组成硬件组成共阴极点阵驱动
行低电平点亮1.1取模软件的使用1.1取模软件的使用设置字体字号
设置取字摸方式
选择语言unsigned char code Matrix000[]
{
; 源文件 / 文字: 字
; 宽×高(像素) : 16×15
; 字模格式/大小: 单色点阵液晶字模,横向取模,字节正序
; 数据转换日期 : 2011-5-2 10:54:48
------------------------------------------------------------------------------*/
0x00,0x00,0x02,0x00,0x01,0x00,0x3F,0xF8,
0x20,0x08,0x5F,0xF0,0x00,0x40,0x01,0x80,
0x01,0x08,0xFF,0xFC,0x01,0x00,0x01,0x00,
0x01,0x00,0x05,0x00,0x02,0x00,0x00,0x00
};1.2汉字扫描过程扫描周期的确定
16*30hz=480hz
2.确定当前扫描行
if(++line>15)
line=0;
if(line<8)
P1=~(1<
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
解决
P1=P2=0xff;//消隐
void SendData(unsigned char *q)
{
unsigned char i,t;
t=*q;
for(i=0;i<16;i++)
{
if(i==8)
t=*(q+1);
if(t&1)
DAT=1;
else
DAT=0;
CLK=0;
CLK=1;
t>>=1;
}
LOCK=0;
LOCK=1;
}nullvoid t0() interrupt 1
{
TH0=-1000>>8;//计算扫描周期
TL0=-1000;
if(++cnt>speed)
{
if(++line>15)
line=0;
P1=P2=0xff;//消隐
SendData(p+(line<<1));
if(line<8)
P1=~(1<=&end)
p=Matrix001;
}3.文字上移效果3.文字上移效果通过定时产生切换字标志,在主函数中通过查询方式实现
汉字每行相差2个字节,因此上移只需定时改变指针两个字节if(sec)
{
sec=0;
p+=2;
if(p>=&end)
p=Matrix001;
}4.文字上移缓冲效果4.文字上移缓冲效果当文字移动到整字可以全部显示时,停顿500ms,便于观察。
增加old指针变量,判断当前指针p与old之间的关系,确定是否需要暂停切换字
if(sec)
{
sec=0;
p+=2;
if(p>=old+32)
{
old=p;
delay500ms();
}
if(p>=&end)
p=Matrix001;
}延时500ms的实现延时500ms的实现void delay500ms()
{
char n;
IE=0X88; //停止定时器T0中断,通过查询定时
for(n=0;n<10;n++)
{
TH0=-50000>>8;
TL0=-50000;
while(!TF0);
TF0=0;
}
IE=0X8A;
}5.文字左移效果5.文字左移效果确定移位量shift
if(sec)
{
sec=0;
shift++;
if(shift>=16) //移动1字
{
shift=0;
p+=32;
if(p>=&end-32)
p=Matrix001;
delay500ms();
}
}
确定列数据
t[0]=*(p+(line<<1));
t[1]=*(p+1+(line<<1));
t[2]=*(p+32+(line<<1));
t[3]=*(p+33+(line<<1));
if(shift<=7)
{
t[0]=(t[0]<>(8-shift));
t[1]=(t[1]<>(8-shift));
}
else
{
t[0]=(t[1]<<(shift-8))|(t[2]>>(16-shift));
t[1]=(t[2]<<(shift-8))|(t[3]>>(16-shift));
}
SendData(t);