本帖最后由 cnhjb_16 于 2013-11-20 00:15 编辑
lrhsx33 发表于 2013-11-15 16:30
电路正常。
要先调通164。
建议你先选择多IO直接IO驱动,那样显示COM SEG加电压正反扫(跟LED一样扫,当不 ...
LCD_GUANBI:
CLRBIT LED_SC
CLRBIT FG_SC
CLRBIT FK_SC
CLRBIT KJ_SC
LD P2CONL,#01010101B ;关闭LCD
LD T0CON, #01001000B
JP MAIN
LCD_XS: ;取LCD段码值R12,R11,R10 高,中,低 ,R14,R13中为实际温度值,R14高中位值,R13小数 位 (低位)
LD R2,#0BH ;显示段码值表格首地址 高位
CP SZAJ,#01H
JP NE,L1 ;判断显示和设置状态
LD R2,#0AH ;设置段码值表格首地址 高位
LD R14,SV ;设置值
CLR R13
JP L2
L1: LD R3,R14
L2: PUSH R3
AND R3,#0F0H
RCF
RL R3
RL R3
RL R3
RL R3
RCF
LDC R12,@RR2
POP R3
AND R3,#0FH
LD R2,#0AH ;显示段码值表格首地址 中位
CP SZAJ,#01H
JP NE,L3
LD R2,#0BH ;设置段码值表格首地址 中位
L3: LDC R11,@RR2
LD R2,#0CH ;低位地址
LD R3,R13
LDC R10,@RR2
LD AMA,R12
LD BMA,R11
LD CMA,R10
LD DMA,#00000001B
LD P2CONL,#10010101B ;开COM1
LD R6,#08H
SENDTO164:
CLRBIT SCL1 ;164clock
NOP
NOP
CLRBIT SDA1 ;164data
SEND1_164A:
RLC AMA
SETBIT SDA1
CLRBIT COM1
JP C,SEND2_164A
CLRBIT SDA1
CLRBIT COM1
SEND2_164A:
NOP
SETBIT SCL1 ;SCL 上升沿LCD段码输出
NOP
NOP
NOP
CLRBIT SCL1
DEC R6
JP NZ,SEND1_164A
NOP
NOP
CLRBIT SDA1
LD P2CONL,#01100101B ;开COM2
LD R6,#08H
SEND3_164B:
RLC BMA
SETBIT SDA1
CLRBIT COM2
JP C,SEND4_164B
CLRBIT SDA1
CLRBIT COM2
SEND4_164B:
NOP
SETBIT SCL1
NOP
NOP
NOP
CLRBIT SCL1
DEC R6
JP NZ,SEND3_164B
NOP
NOP
CLRBIT SDA1
LD P2CONL,#01011001B ;开COM3
LD R6,#08H
SEND5_164C:
RLC CMA
SETBIT SDA1
CLRBIT COM3
JP C,SEND6_164C
CLRBIT SDA1
CLRBIT COM3
SEND6_164C:
NOP
SETBIT SCL1
NOP
NOP
NOP
CLRBIT SCL1
DEC R6
JP NZ,SEND5_164C
NOP
NOP
CLRBIT SDA1
LD R6,#08H
LD P2CONL,#01010110B ;开COM4
SEND7_164D:
RLC DMA
SETBIT SDA1
CLRBIT COM4
JP C,SEND8_164D
CLRBIT SDA1
CLRBIT COM4
SEND8_164D:
NOP
SETBIT SCL1
NOP
NOP
NOP
CLRBIT SCL1
DEC R6
JP NZ,SEND7_164D
NOP
NOP
CLRBIT SDA1
RET
你好,这个是我编的LCD显示的程序,请问问题出在哪里?
不显示.是不是没有考虑COM端与笔段端时序同步的问题?
采用的是20ms定时中断,调用LCD显示程序 |