1) 设置SPI;
2) 设置TIMER1(可以启动TIMER);
3) 设扫描行指针n=0;
4) 设DMA传输数据格式(8位/次,400个数据);
5) 启动DMA。
以上过程在完成一行空扫描后, 进入连续的 LCD 扫描过程。
4.3 程序举例
以下列出了16x16方阵汉字显示的部分程序代码:
wm = *(s + i + 1); //计算位码
ISN = qm<<8;
ISN += wm; //机内码
ii=0; //先定位在第一个汉字
while((ISN!=DDSHZTable[ii][0]) && (DDSHZTable[ii][0] !=0xffff) )
ii++; //寻找与ISN相同的机内码,即寻找要显示的汉字
for( j = 0; j < 16; j ++ )
hzbuf[j] = DDSHZTable[ii][j+1];//取字模
for( y = 0; y < 16; y++ ){
for( x = 0; x < 16; x++,Hk++ ){
Hk = Hk % 16;
if( hzbuf[y] & (0x8000 >> Hk) ){
//确定y行x列是否有笔画
xx = x0 + x + ChiWords * 16;
LCDRam[y+y0][xx] = ForeColor;//显示像素
}
}
}
显示英文字符的原理及程序代码与汉字的类似,就不再赘述。
5 结束语
建立非完整汉字库最大的特点是可以按照现实需要柔性地显示汉字、软件编程容易、可混合显示汉字和英文字符。作为人机交互界面的重要部分它可被广泛应用于工业控制、医疗、科研以及教学等领域。