用80C31和SED1335控制三星LCD模块

[09-13 16:32:39]   来源:http://www.88dzw.com  信息显示与光电技术   阅读:8552

文章摘要:MOV DPTR,#XXXXH;XXXXH为命令口或数据口地址MOV A,#XXH;XXH为指令代码、代码参数、数据MOVX @DPTR,A软件初始化就是根据表1中提供的指令集设置一些有关LCD的参数,以便LCD能正确显示图文信息。对80C31而言,所有对LCD操作的指令均为访外部 I/O指令MOVX。例如,要显示320×240的黑白位图,先将位图反色,把bmp.hex和程序一起烧录到27256中,位图存放在1000H开始的地址。针对320×240LCD点阵三层图形叠加显示初始化程序如下。INIT:MOV DPTR,#0101H;命令40H参数设置,#0101H为命令口地址MOV A,#40H

用80C31和SED1335控制三星LCD模块,标签:显示及光电,光电显示技术,http://www.88dzw.com

  MOV DPTR,#XXXXH;XXXXH为命令口或数据口地址
  MOV A,#XXH;XXH为指令代码、代码参数、数据
  MOVX @DPTR,A

  软件初始化就是根据表1中提供的指令集设置一些有关LCD的参数,以便LCD能正确显示图文信息。对80C31而言,所有对LCD操作的指令均为访外部 I/O指令MOVX。例如,要显示320×240的黑白位图,先将位图反色,把bmp.hex和程序一起烧录到27256中,位图存放在1000H开始的地址。针对320×240LCD点阵三层图形叠加显示初始化程序如下。

  INIT:
  MOV DPTR,#0101H;命令40H参数设置,#0101H为命令口地址
  MOV A,#40H
  MOVX @DPTR,A;把命令代码送给命令口地址
  MOV A,#30H
  MOV DPTR,#0000H;#0000H为数据口地址
  MOVX @DPTR,A;把参数送给数据口地址
  MOV A,#07H;设置光标宽度为8
  MOVX @DPTR,A
  MOV A,#07H;设置光标高度为8
  MOVX @DPTR,A
  MOV A,#27H;设置LCD每行需要的字节数,每行320个点,行数为320/8-1=39
  MOVX @DPTR,A
  MOV A,#36H;设置液晶的扫描频率约为70HZ
  MOVX @DPTR,A
  MOV A,#239D;设置LCD的列数为239
  MOVX @DPTR,A
  ……
  MOV DPTR,#0101H;命令5AH,设置点单元卷动位置参数
  MOV A,#5AH
  MOVX @DPTR,A
  MOV DPTR,#0000H
  MOV A,#00H;送水平方向移动位数参数0
  MOVX @DPTR,A;无须移动
  MOV DPTR,#0101H;命令4CH,设置光标移动方向参数
  MOV A,#4CH
  MOVX @DPTR,A
  MOV DPTR,#0101H;命令5BH,设置合成显示方式参数
  MOV A,#5BH
  MOVX @DPTR,A
  MOV DPTR,#0000H
  MOV A,#1CH;送显示方式为三屏图形叠加方式
  ……
  MOV DPTR,#0101H;下面为清屏程序
  MOV A,#42H;给SED1335显缓写操作命令
  MOVX @DPTR,A
  MOV R7,#81H;下面程序将32K显缓全部清零
  MOV DPTR,#0000H
  LOOP: MOV R6,#0FFH

LOOP1: MOV A,#00H
  MOVX @DPTR,A
  DJNZ R6,LOOP1
  DJNZ R7,LOOP
  RET

  以上初始化程序只列出了部分命令代码和参数设置。

  主程序是把图片数据送给SED1335让液晶显示。

  DAT EQU #0000H;SED1335控制器数据口地址
  COM EQU #0101H;SED1335控制器命令口地址
  SD1L EQU #00H;第一屏开始显示的显缓首地址的低八位
  SD1H EQU #00H;第一屏开始显示的显缓首地址的高八位
  ……
  PIC EQU #1000H;图片数据存放起始地址
  ORG 0000H
  AJMP START
  ORG 0080H
  START:
  MOV SP,#60H
  LCALL INIT;初始化LCD
  MOV DPTR,COM
  MOV A,#46H
  MOVX @DPTR,A
  MOV DPTR,DAT
  MOV A,SD1L
  MOVX @DPTR,A
  MOV DPTR,COM
  MOV A,#42H;数据写入显示缓冲区指令42H
  MOVX @DPTR,A
  MOV DPTR,PIC
  MOV R7,#240D;送外循环次数240行
  BMP:MOV R6,#40D;每行320点需要40个字节数据
  BMP1:MOV A,#3EH;位图数据相对于bmp文件头的地址
  MOVC A,@A+DPTR;查取位图数据
  INC DPTR
  PUSH DPL
  PUSH DPH
  MOV DPTR,DAT
  MOVX @DPTR,A;将位图数据送入显缓区
  POP DPH
  POP DPL
  DJNZ R6,BMP1;直到将一屏位图数据全部送完
  DJNZ R7,BMP
  ……

  实际试验中可以看到非常清晰的图像显示,如果看不到或者看不到深蓝色,调节对比度就可以看到图案。注意上电之后,SED控制板要能正确复位,否则将导致错误,不能正确显示,这个时候LCD一般显示明亮的扫描线。还可以通过MPU写入新参数让显示的图像闪烁、翻转、移动来满足不同的要求。对于一般系统的显示前端,也可以通过相同的方法实时显示处理过的数据。

  上面的设计过程是相对于显示一副图像时采用的,这种方法将耗费许多空间。对于一般存储空间较小的系统,如果只要显示汉字字符,可以将需要显示的字模提取出来存储,在进行显示的时候再调用,也同样容易实现而且更节省存储空间。


上一页  [1] [2] 


Tag:信息显示与光电技术显示及光电,光电显示技术信息显示与光电技术

《用80C31和SED1335控制三星LCD模块》相关文章

分类导航
最新更新
热门排行