点阵显示汉字原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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;
}
void t0() interrupt 1 {
TH0=-1000>>8;//计算扫描周期 TL0=-1000;

for(n=0;n<10;n++)

{

TH0=-50000>>8;

TL0=-50000;

while(!TF0);

TF0=0;

}

IE=0X8A;
•}
5.文字左移效果
• 确定移位量shift if(sec)
{ sec=0;
shift++; if(shift>=16) //移动1 字 {
shift=0; p+=32;
if(sec) { sec=0; p+=2;
if(p>=old+32) {
old=p; delay500ms(); } if(p>=&end) p=Matrix001;
}
延时500ms的实现
• void delay500ms()
•{
• char n;


IE=0X88; //停止定时器T0中断,通过查询定时
P1=~(1<<line); else
Line=15 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
P2=~(1<<(line-8));
3.确定扫描列信息
4.消隐问题解决 P1=P2=0xff;//消隐
void SendData(unsigned char *q) {
unsigned char i,t;
硬件组成
共阴极点阵驱动 行低电平点亮
1.1取模软件的使用
• 设置字体字号
• 设置取字摸方式
• 选择语言
unsigned char code Matrix000[] { ; 源文件 / 文字: 字 ; 宽×高(像素) : 16×15 ; 字模格式/大小: 单色点阵液晶字模,横向取模,字节正序 ; 数据转换日期 : 2011-5-2 10:54:48 ------------------------------------------------------------------------------*/
delay500ms(); } }
SendData(t);
Baidu Nhomakorabea
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汉字扫描过程
1.扫描周期的确定 16*30hz=480hz
2.确定当前扫描行 if(++line>15)
Line=0
00 00000000000001 00 00000000000010 00 00000000000100 00 00000000001000
line=0;
if(line<8)
if(p>=&end-32) p=Matrix001;
• 确定列数据 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]<<shift)|(t[1]>>(8-shift)); t[1]=(t[1]<<shift)|(t[2]>>(8-shift)); } else { t[0]=(t[1]<<(shift-8))|(t[2]>>(16-shift)); t[1]=(t[2]<<(shift-8))|(t[3]>>(16-shift)); }
if(++cnt>speed) {
if(++line>15) line=0;
P1=P2=0xff;//消隐 SendData(p+(line<<1));
if(line<8) P1=~(1<<line);
else P2=~(1<<(line-8));
} }
2.文字切换效果实现
• 通过定时产生切换字 标志,在主函数中通 过查询方式实。
sec=0;
• 汉字每行相差2个字节, 因此上移只需定时改 变指针两个字节
p+=2; if(p>=&end)
p=Matrix001;
}
4.文字上移缓冲效果
• 当文字移动到整字可以 全部显示时,停顿 500ms,便于观察。
• 增加old指针变量,判 断当前指针p与old之间 的关系,确定是否需要 暂停切换字
• 由于每个汉字需要32 个字节存储,因此变 换字需要指针后移32 个字节。
• 加入end判断汉字显示 是否结束。
if(sec) {
sec=0; p+=32; if(p>=&end)
p=Matrix001;
}
3.文字上移效果
• 通过定时产生切换字 if(sec)
标志,在主函数中通 {
过查询方式实现
相关文档
最新文档