共2条
1/1 1 跳转至页
SED1335 [求教]SED1335驱动大屏幕液晶的问题.
问
做毕业设计需要用到液晶显示,我拟用SED1335来驱动液晶
我看了它的使用说明书,这是自代的演示程序
----------------------------------------------------------------------
三.图形方式下汉字显示方法
在图形方式下显示汉字,其汉字库是建立在系统程序区内,由程序逐字节地向图形显示区相应单元写入,以期在显示屏上显示出相应的汉字.这种方法如同作固定图形块显示一样.显示子程序如下.子程序需要的汉字库为CCTAB 1.汉字代码是根据汉字在库中排列的先后顺序而定义的,使用该程序中可以在图形区任意位置上写入汉字.
1. 图形方式下显示子程序
OXL EQU 34H ;X坐标低8位寄存器(字节)
OY EQU 36H ;Y坐标寄存器(点行)
CODE EQU 37H ;汉字代码
AP EQU 20H ;AP值为SYSTEM SET指令参数P9
;以DMF682为例
CCTW:MOV A,CODE ;计算机汉字字模数据首地址
MOV B,#20H
MUL AB
MOV DPTR,#CCTAB1 ;汉字库入口地址
ADD A,DPL
PUSH ACC ;入栈DPL
MOV A,B
ADDC A,DPH
PUSH ACC 入栈DPH
MOV A,OY ;计算光标地址
MOV B,#AP ;在计算时假定AP值等于SYSTEM SET指令P9
MUL AB ;而P10=0
ADD A,OXL
MOV OXL,A ;存光标地址低字节
MOV A,B
ADDC A,#40H ;加入显示二区起始地址SAD2H !<---这个是什么意思?
MOV OY,A ;存光标地址高字节
MOV DPTR,#WC_ADD
MOV A,#4FH ;CSRDIR代码(下移)
MOVX @DPTR,A
MOV COUNT1,#02H ;设置计数器1=2
CCTW1:MOV DPTR,#WC_ADD
MOV A,#46H ;CSRW代码
MOVX @DPTR,A
MOV DPTR,#WD_ADD
MOV A,OXL ;设置光标地址CSR
MOVX @DPTR,A
MOV A,OY
MOVX @DPTR,A
MOV DPTR,#WC_ADD
MOV A,#42H ;MWRITE代码
MOVX @DPTR,A
MOV COUNT2,#10H ;设置计数器2=16
CCTW2:POP DPH ;出栈DPH
POP DPL ;出栈DPL
CLR A
MOVC A,@A+DPTR ;取字模数据
INC DPTR ; 指针加一
PUSH DPL ;入栈DPL
PUSH DPH ;入栈DPH
MOV DPTR,#WD_ADD
MOVX @DPTR,A ;写入数据
DJNZ COUNT2,CCTW2 ;循环
MOV A,OXL ;修正光标地址
ADD A,#01H ;(加一)
MOV OXL,A
MOV A,OY
ADDC A,#00H
MOV OY,A
DJNZ COUNT1,CCTW1 ;循环
POP ACC ;修正栈值
POP ACC
RET
2. 使用图形方式下汉字显示子程序的演示程序
MOV OXL,#10H ;设置X坐标
MOV OY,#30H ;设置Y坐标
MOV CODE,#00H ;设置汉字代码
LCALL CCTW ;调汉字写入子程序
MOV OXL,#12H ;设置X坐标
MOV OY,#3OH ;设置Y坐标
MOV CODE,#01H ;设置汉字代码
LCALL CCTW ;调汉字写入子程序
MOV OXL,#14H ;设置X坐标
MOV OY,#30H ;设置Y坐标
MOV CODE,#02H ;设置汉字代码
LCALL CCTW ;调汉字写入子程序
MOV OXL,#16H ;设置X坐标
MOV OY,#30H ;设置Y坐标
MOV CODE,#03H ;设置汉字代码
LCALL CCTW ;调汉字写入子程序
SJMP $
----------------------------------------------------------------
中间我打<---的那句是什么意思?向了解的朋友求教.
我理解的这个算法(中间的将坐标转换成ram地址的算法)可能是这样的,显示地址用行列交叉计算法得到,分别用寄存器R1和R2来控制行值和列值,对应显存地址为:R2+R1×N。N为每行的字节数,采用320×240的LCD时,N=320/8=40。
采用320×240的LCD时那每行只有40个定点是吗?我的意思是只能在(0,0)(0,8)(0,16)...等的点上插入图形?(我是以液晶屏幕上每一个点都有一个坐标的话.)
不然为什么只乘40就够?不乘320?
理解有问题,刚接触这个,请高手赐教. 谢谢了 答 1: 求教...求教... 答 2: 推荐更好用的VT1335bwww.viewtech.cn 答 3: 继续- -RT...
我看了它的使用说明书,这是自代的演示程序
----------------------------------------------------------------------
三.图形方式下汉字显示方法
在图形方式下显示汉字,其汉字库是建立在系统程序区内,由程序逐字节地向图形显示区相应单元写入,以期在显示屏上显示出相应的汉字.这种方法如同作固定图形块显示一样.显示子程序如下.子程序需要的汉字库为CCTAB 1.汉字代码是根据汉字在库中排列的先后顺序而定义的,使用该程序中可以在图形区任意位置上写入汉字.
1. 图形方式下显示子程序
OXL EQU 34H ;X坐标低8位寄存器(字节)
OY EQU 36H ;Y坐标寄存器(点行)
CODE EQU 37H ;汉字代码
AP EQU 20H ;AP值为SYSTEM SET指令参数P9
;以DMF682为例
CCTW:MOV A,CODE ;计算机汉字字模数据首地址
MOV B,#20H
MUL AB
MOV DPTR,#CCTAB1 ;汉字库入口地址
ADD A,DPL
PUSH ACC ;入栈DPL
MOV A,B
ADDC A,DPH
PUSH ACC 入栈DPH
MOV A,OY ;计算光标地址
MOV B,#AP ;在计算时假定AP值等于SYSTEM SET指令P9
MUL AB ;而P10=0
ADD A,OXL
MOV OXL,A ;存光标地址低字节
MOV A,B
ADDC A,#40H ;加入显示二区起始地址SAD2H !<---这个是什么意思?
MOV OY,A ;存光标地址高字节
MOV DPTR,#WC_ADD
MOV A,#4FH ;CSRDIR代码(下移)
MOVX @DPTR,A
MOV COUNT1,#02H ;设置计数器1=2
CCTW1:MOV DPTR,#WC_ADD
MOV A,#46H ;CSRW代码
MOVX @DPTR,A
MOV DPTR,#WD_ADD
MOV A,OXL ;设置光标地址CSR
MOVX @DPTR,A
MOV A,OY
MOVX @DPTR,A
MOV DPTR,#WC_ADD
MOV A,#42H ;MWRITE代码
MOVX @DPTR,A
MOV COUNT2,#10H ;设置计数器2=16
CCTW2:POP DPH ;出栈DPH
POP DPL ;出栈DPL
CLR A
MOVC A,@A+DPTR ;取字模数据
INC DPTR ; 指针加一
PUSH DPL ;入栈DPL
PUSH DPH ;入栈DPH
MOV DPTR,#WD_ADD
MOVX @DPTR,A ;写入数据
DJNZ COUNT2,CCTW2 ;循环
MOV A,OXL ;修正光标地址
ADD A,#01H ;(加一)
MOV OXL,A
MOV A,OY
ADDC A,#00H
MOV OY,A
DJNZ COUNT1,CCTW1 ;循环
POP ACC ;修正栈值
POP ACC
RET
2. 使用图形方式下汉字显示子程序的演示程序
MOV OXL,#10H ;设置X坐标
MOV OY,#30H ;设置Y坐标
MOV CODE,#00H ;设置汉字代码
LCALL CCTW ;调汉字写入子程序
MOV OXL,#12H ;设置X坐标
MOV OY,#3OH ;设置Y坐标
MOV CODE,#01H ;设置汉字代码
LCALL CCTW ;调汉字写入子程序
MOV OXL,#14H ;设置X坐标
MOV OY,#30H ;设置Y坐标
MOV CODE,#02H ;设置汉字代码
LCALL CCTW ;调汉字写入子程序
MOV OXL,#16H ;设置X坐标
MOV OY,#30H ;设置Y坐标
MOV CODE,#03H ;设置汉字代码
LCALL CCTW ;调汉字写入子程序
SJMP $
----------------------------------------------------------------
中间我打<---的那句是什么意思?向了解的朋友求教.
我理解的这个算法(中间的将坐标转换成ram地址的算法)可能是这样的,显示地址用行列交叉计算法得到,分别用寄存器R1和R2来控制行值和列值,对应显存地址为:R2+R1×N。N为每行的字节数,采用320×240的LCD时,N=320/8=40。
采用320×240的LCD时那每行只有40个定点是吗?我的意思是只能在(0,0)(0,8)(0,16)...等的点上插入图形?(我是以液晶屏幕上每一个点都有一个坐标的话.)
不然为什么只乘40就够?不乘320?
理解有问题,刚接触这个,请高手赐教. 谢谢了 答 1: 求教...求教... 答 2: 推荐更好用的VT1335bwww.viewtech.cn 答 3: 继续- -RT...
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |