我在用51单片机控制SED1335控制320×240的液晶,显示出的字符不能重合,比如显示“枫”字,液晶屏在显示“枫”字的同时,“枫”的左边还多了一个“木”,右边还多一个“风”,就是“枫”字显示两次而且不能重合,这是怎么回事啊? 代码: void wri_cr(uchar ccode,uint o_x,uint o_y) // 写字符(文本模式)40×40点阵 cgtab { uint lcd_ram_adr=0x0000; //光标内存起始地址 uchar csr_down; uchar csr_up; //光标指针低8位,高8位
uchar i=0,j=0; uint k=0; k=ccode*200;
lcd_ram_adr=o_y*0x28+o_x; //计算偏移地址 if(CY==1) lcd_ram_adr=lcd_ram_adr+0x4000+1; //加上起始地址 else lcd_ram_adr=lcd_ram_adr+0x4000;
csr_down=lcd_ram_adr; //光标指针低8位 X坐标 csr_up=(lcd_ram_adr>>8); //光标指针高8位 Y坐标 */
/*lcd_ram_adr=o_y*0x28+o_x+0x4000; csr_down=(uchar)(lcd_ram_adr&0x00ff); csr_up=(uchar)((lcd_ram_adr&0xff00)>>8); */
wc_add=CSR_DIR_down; //光标下移 for(i=0;i<5;i++) { wc_add=CSR_W; //设定光标起始地址 wp_add=csr_down; wp_add=csr_up;
wc_add=M_WRITE; //开始写数据
for(j=0;j<40;j++) { wp_add=cgtab[k]; k++; }
csr_down=csr_down+1; csr_up=csr_up+0; } }
|