导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[sosemi]24064液晶显示(T6963芯片)



No.89450
作者:sosemi
邮件:sosemi@126.com
ID:45985
登陆:2次
文章数:3篇
最后登陆IP:219.133.150.64
最后登陆:2006/2/27 13:51:39
注册:2006/1/12 11:08:29
财富:116
发帖时间:2006/2/27 13:15:50
发贴者IP:219.133.150.64
标题:sosemi:24064液晶显示(T6963芯片)
摘要:No.8945024064液晶显示(T6963芯片) ;这是一款并口扩展内置T6963C控制器的LCD实用显示子程序
;本程序可直接嵌入内藏T6963C控制器的LCD模块应用系统软件使用

;------------------------------------------
ORG 0000H
LJMP RETUN
ORG 0050H
RETUN:  ;ACALL  DL10MS
ACALL DISP  ;执行本子程序
AJMP $
;------------------------------------------
DISP:; LCALL  CDSET  ;LCD初始化
; MOV  DPTR,#HZTAB ;取字码表
; LCALL  HZXSR  ;送显
  MOV  DPTR,#ASCTB ;取字码表
  LCALL  HZXSR  ;送显
         ACALL   CDSET           ;清屏
         MOV  DPTR,#DIANYA ;取字码表
  LCALL  HZXSR  ;送显
         MOV  DPTR,#XIAXIAN ;取字码表
  LCALL  HZXSR  ;送显
         MOV  DPTR,#DIANLIOUS
         LCALL   HZXSR
         MOV  DPTR,#DIANLIOUX
         LCALL   HZXSR
          MOV  DPTR,#BAOHU
         LCALL   HZXSR
         MOV  DPTR,#QIDONG
         LCALL   HZXSR
         MOV  DPTR,#ZHONGS
         LCALL   HZXSR
         MOV  DPTR,#ZHONGX
        LCALL   HZXSR
        
        ACALL   XSASC1
RET
;---------------------------------------------------------------------
;---------------------------------------------------------
XSASC1: MOV     A,#10H  ;ASC字符显示
;CLR  C  ;ASC字符显示
;SUBB  A,#20H
; MOV  B,#10H
MOV  DPTR,#ASCDD
LCALL  HADNX  ;计算当前字码的字模表首址→DPTR
MOV  A,#50H
PUSH  ACC
MOV  A,#30H
PUSH  ACC
MOV  R6,#10H
XSDLP1: LCALL  XSDCN  ;送出一个数据显示
MOV  B,#1EH
LCALL  HADRX  ;计算显示坐标(R2,R3)
DJNZ  R6,XSDLP1 ;发送完一组(16行*8列一个字符)
POP  ACC
MOV  R3,A
POP  ACC
MOV  R2,A
MOV  B,#01H
LCALL  HADRX  ;计算显示首址坐标(R2,R3)
RET
;---------------------------------------------------------------------
DL1S:   MOV     R2,#10H
DL_1:   LCALL   DL10MS
        DJNZ    R2,DL_1
        RET
DL10MS: MOV  R0,#0FFH
ZJ: MOV  R1,#0FFH
    DJNZ  R1,$
DJNZ  R0,ZJ
        RET
;------------------------------------------
CDSET: ACALL  CDCLR  ;清屏  // LCD初始化
MOV  R2,#00H
MOV  R3,#00H
MOV  R4,#42H
ACALL  CDCM1  ;图形区首址(0000H)
MOV  R2,#30
MOV  R3,#00H
MOV  R4,#43H
ACALL  CDCM1  ;图形区宽度(30字节/行)
MOV  R2,#00H
MOV  R3,#10H
MOV  R4,#40H
ACALL  CDCM1  ;文本区首址(1000H)
MOV  R2,#1EH
MOV  R3,#00H
MOV  R4,#41H
ACALL  CDCM1  ;文本区宽度(30字节/行)
MOV  R4,#0A7H
ACALL  CDCM3  ;光标形状(8列*7行)
MOV  R2,#00H
MOV  R3,#00H
MOV  R4,#24H
ACALL CDCM1  ;置地址指针位置(显示缓冲区RAM 0000H)
MOV  R4,#80H
ACALL  CDCM3  ;字符发生器为CGRAM,显示方式为逻辑“或”
MOV  R4,#9BH
ACALL  CDCM3  ;启用图形显示,光标闪烁
MOV  R2,#00H
MOV  R3,#00H
MOV  R4,#21H
ACALL  CDCM1  ;光标指针(00,00)
RET
;---------------------------------------------------------
CDCLR: PUSH  ACC  ;清屏子程序
MOV  R2,#00H
MOV  R3,#00H
MOV  R4,#24H
ACALL  CDCM1  ;置地址指针位置(显示缓冲区RAM 0000H)
MOV  R4,#0B0H
ACALL  CDCM3  ;设置LCD为自动写入状态
MOV  R2,#20H
CDCR1: MOV  R3,#00H
CDCR2: ACALL  LCDS3  ;连续写过程每次写都要确认STA3=1
CLR  A
ACALL  CDWDT  ;将(A)写入LCD状态字=清屏
DJNZ  R3,CDCR2
DJNZ  R2,CDCR1
MOV  R4,#0B2H
ACALL  CDCM3  ;结束自动写状态
POP  ACC
RET
;---------------------------------------------------------
CDCM1: MOV  A,R2  ;将R2/R3/R4依此写入LCD状态字
ACALL  CDWDT  ;将(A)写入LCD状态字
MOV  A,R3
ACALL  CDWDT  ;将(A)写入LCD状态字
ACALL  CDCM3  ;将(R4)写入LCD状态字
RET
;---------------------------------------------------------
CDCM3: PUSH  DPH  ;将(R4)写入LCD状态字
PUSH  DPL
ACALL  CDTTS  ;判STA0/STA1
MOV  A,R4
MOV  DPTR,#0100H
MOVX  @DPTR,A
POP  DPL
POP  DPH
RET
;---------------------------------------------------------
CDWDT: PUSH  DPH  ;将(A)写入LCD状态字
PUSH  DPL
PUSH  ACC
ACALL  CDTTS  ;判STA0/STA1
MOV  DPTR,#0000H
POP  ACC
MOVX  @DPTR,A
POP  DPL
POP  DPH
RET
;---------------------------------------------------------
CDTTS: MOV  B,#40H  ;判别STA0\STA1状态位子程序
CDDEP: MOV  DPTR,#0100H ;读标志字
MOVX  A,@DPTR ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:2625毫秒 查询6次