导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→源程序》

* 39383: 请教LCM(液晶显示控制模块)128*64的问题

   xdkjason 
xdkjason发表的帖子 

 源程序》
;************************************************************************
;名称:LCD12864
;作者:XUDENGKE 
;版权:
;用途:直接访问方式驱动子程序
;程序功能:
;地址分配:
;所用资源:A11 = /CSB, A10 = /CSA, A9 = R/W, A8 = D/I
;备注:
;************************************************************************
 COM  EQU 20H  ; 指令寄存器
 DAT  EQU 21H  ; 数据寄存器
 CWADD1  EQU 0000H  ; 写指令代码地址(左)
 CRADD1  EQU 0200H  ; 读状态字地址(左)
 DWADD1  EQU 0100H  ; 写显示数据地址(左)
 DRADD1  EQU 0300H  ; 读显示数据地址(左)
 CWADD2  EQU 0800H  ; 写指令代码地址(中)
 CRADD2  EQU 0A00H  ; 读状态字地址(中)
 DWADD2  EQU 0900H  ; 写显示数据地址(中)
 DRADD2  EQU 0B00H  ; 读显示数据地址(中)
 CWADD3  EQU 0400H  ; 写指令代码地址(右)
 CRADD3  EQU 0600H  ; 读状态字地址(右)
 DWADD3  EQU 0500H  ; 写显示数据地址(右)
 DRADD3  EQU 0700H  ; 读显示数据地址(右)

;***************************************************左区驱动子程序 
;===================================================
;函数名称:
;功能:写指令代码子程序(左)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;=================================================== 
PRL0: 
 PUSH DPL ; 片选设置为"00"
 PUSH DPH
 MOV DPTR,#CRADD1 ; 设置读状态字地址
PRL01:  MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRL01 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#CWADD1 ; 设置写指令代码地址
 MOV A,COM ; 取指令代码
 MOVX @DPTR,A ; 写指令代码
 POP DPH
 POP DPL
 RET

;===================================================
;函数名称:
;功能:写显示数据子程序(左)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;===================================================
PRL1: 
 PUSH DPL ; 片选设置为"00"
 PUSH DPH
 MOV DPTR,#CRADD1 ; 设置读状态字地址
PRL11:  MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRL11 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#DWADD1 ; 设置写显示数据地址
 MOV A,DAT ; 取数据
 MOVX @DPTR,A ; 写数据
 POP DPH
 POP DPL
 RET

;===================================================
;函数名称:
;功能:读显示数据子程序(左)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;===================================================
PRL2: 
 PUSH DPL ; 片选设置为"00"
 PUSH DPH
 MOV DPTR,#CRADD1 ; 设置读状态字地址
PRL21:  MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRL21 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#DRADD1 ; 设置读显示数据地址
 MOVX A,@DPTR ; 读数据
 MOV DAT,A ; 存数据
 POP DPH
 POP DPL
 RET

;**************************************************中区驱动子程序(12864的左区)
;===================================================
;函数名称:
;功能:写指令代码子程序(中)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;===================================================
PRM0: 
 PUSH DPL ; 片选设置为"01"
 PUSH DPH
 MOV DPTR,#CRADD2 ; 设置读状态字地址
PRM01: MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRM01 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#CWADD2 ; 设置写指令代码地址
 MOV A,COM ; 取指令代码
 MOVX @DPTR,A ; 写指令代码
 POP DPH
 POP DPL
 RET
;===================================================
;函数名称:
;功能:写显示数据子程序(中)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;===================================================
PRM1: 
 PUSH DPL ; 片选设置为"01"
 PUSH DPH
 MOV DPTR,#CRADD2 ; 设置读状态字地址
PRM11:  MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRM11 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#DWADD2 ; 设置写显示数据地址
 MOV A,DAT ; 取数据
 MOVX @DPTR,A ; 写数据
 POP DPH
 POP DPL
 RET

;===================================================
;函数名称:
;功能:读显示数据子程序(中)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;===================================================
PRM2: 
 PUSH DPL ; 片选设置为"01"
 PUSH DPH
 MOV DPTR,#CRADD2 ; 设置读状态字地址
PRM21:  MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRM21 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#DRADD2 ; 设置读显示数据地址
 MOVX A,@DPTR ; 读数据
 MOV DAT,A ; 存数据
 POP DPH
 POP DPL
 RET

;**************************************************右区驱动子程序(12864的右区)
;===================================================
;函数名称:
;功能:写指令代码子程序(右)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;===================================================
PRR0: 
 PUSH DPL ; 片选设置为"10"
 PUSH DPH
 MOV DPTR,#CRADD3 ; 设置读状态字地址
PRR01:  MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRR01 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#CWADD3 ; 设置写指令代码地址
 MOV A,COM ; 取指令代码
 MOVX @DPTR,A ; 写指令代码
 POP DPH
 POP DPL
 RET

;===================================================
;函数名称:
;功能:写显示数据子程序(右)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;===================================================
PRR1: 
 PUSH DPL ; 片选设置为"10"
 PUSH DPH
 MOV DPTR,#CRADD3 ; 设置读状态字地址
PRR11:  MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRR11 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#DWADD3 ; 设置写显示数据地址
 MOV A,DAT ; 取数据
 MOVX @DPTR,A ; 写数据
 POP DPH
 POP DPL
 RET

;===================================================
;函数名称:
;功能:读显示数据子程序(右)
;调用函数:
;入口参数:
;出口参数:
;影响资源:
;其他:
;===================================================
PRR2: 
 PUSH DPL ; 片选设置为"10"
 PUSH DPH
 MOV DPTR,#CRADD3 ; 设置读状态字地址
PRR21:  MOVX A,@DPTR ; 读状态字
 JB ACC.7,PRR21 ; 判"忙"标志为"0"否,否再读
 MOV DPTR,#DRADD3 ; 设置读显示数据地址
 MOVX A,@DPTR ; 读数据
 MOV DAT,A ; 存数据
 POP DPH
 POP DPL
 RET


发表时间:2003年8月5日18:10:04

  
回复该帖

本主题共有 13 帖,分页:>>>>>该主题的所有内容[13]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  90667.[详细]HD61202
摘要:关于 HD61202的资料谁有啊,请大家帮帮忙......(38字)
- [shenjun831008][1270次] 2006年3月27日

  39423.[详细]首先谢谢您!大虾!!
摘要:......(无内容)
- [chan_yo][1266次] 2003年8月6日

  39401.[详细]跟hd44780差不多
摘要:......(无内容)
- [baolqkun][1208次] 2003年8月5日

[上一篇帖子]:测试游客也可以在此发帖吗?我试一下。
[下一篇帖子]:华恒的三款ARM7开发套件之价格,内容,服务!华恒的三款ARM7开发套件都是800元,华恒的技术支持