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 ......
>>返回讨论的主题
|