📄 pcf566lcd.txt
字号:
;.....................................
pcf566 LCD驱动子程序
;................................
;写pcf566内容供显示到液晶板,z:cpu ram起始地址 ,
;占用R16=i2cdelay ,R17= i2cdata ;R26.2=1,写入错误;=0,写入正常
WRITEW:
cbi ddrc,sclp
rcall delay3
sbi ddrc,sdap
andi r26,0b11111011
;.............
ldi zh,0
ldi zl,$b0
ldi i2cdata,$7c ; Set device address and write
st z+,i2cdata
ldi i2cdata,$e0 ; C=1,1110 0000,A2A1A0=000,器件选择命令
st z+,i2cdata
ldi i2cdata,$c8 ; C=1,1100 1000,功耗控制:0=正常;允许显示;偏置电压:0=1/3bias;驱动方式:00=1/4duty
sbrc r26,0
ldi i2cdata,$d8 ; C=1,1101 1000,功耗控制:1=节电模式;允许显示;偏置电压:0=1/3bias;驱动方式:00=1/4duty
st z+,i2cdata
ldi i2cdata,$f0 ; C=1,1111 0000 ,,不闪烁
;sbrc r26,0
;ldi i2cdata,$f7 ;C=1,1111 0111 ,,闪烁 ,2hz
st z+,i2cdata
ldi i2cdata,$00 ;C=0,0000 0000,最后一条命令数据指针选择命令,从00开始
st z+,i2cdata
;.............................................
ldi zl,$b0
xhx:
ld i2cdata,z+
rcall sw
cbi ddrc,sdap
rcall delay3
cbi ddrc,sclp
rcall delay3
xxoW:
sbrc r26,0
rjmp yym
cpi zl,$bc ;2007,3,16
brlo xhx ;2007,5,22
rjmp yyn
;.......
yym:
cpi zl,$b5 ;掉电后,lcd 处于节电模式
brlo xhx
;..........................
yyn:
;.............
rcall delay3
sbi ddrc,sclp
rcall delay3
hmgW:
cbi ddrc,sclp
rcall delay4
cbi ddrc,sdap
ret
;......查找要显示的数据R17的显示模型码,并送入Y指定的显示缓冲区。占用zh,zl,yh,yl,r17,r16,r0
zaoguan:
ldi zh ,high(seg*2) ;;显示高位管(左边管)
ldi zl ,low (seg*2)
mov r16,r17
andi r16,$f0
swap r16
add zl,r16
lpm
st y+,r0
;...............
ldi zh ,high(seg*2)
ldi zl ,low (seg*2) ;;显示低位管(右边管)
mov r16,r17
andi r16,$0f
add zl,r16
lpm
st y+,r0
ret
;......................数字显示模型码
seg:
; 显示模型码的八位与码段对应关系:(亮则该对应位为1)
; D7->f ,D6->g,D5->e,D4->d,D3->A,D2->B,D1->C,D0->p
; -> : 表示对应关系
;.db $be,$06,$7c,$5e,$c6,$da,$fa,$0e,$fe,$ce,$ee,$f2,$b8,$76,$f8,$e8
.db $de,$06,$7a,$3e,$a6,$bc,$fc,$0e,$fe,$ae,$ee,$f4,$d8,$76,$f8,$e8 ;2006,6,9
;.DB $bE ;0
;.db $06 ;1
;.db $7c ;2
;.db $5e ;3
;.db $c6 ;4
;.db $da ;5
;.db $fa ;6
;.db $0E ;7
;.db $fe ;8
;.db $cE ;9
;.db $eE ;a
;.db $f4 ;b
;.db $d8 ;c
;.db $76 ;d
;.db $f8 ;e
;.db $e8 ;f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -