芯海自带笔段式LCD
;============================================
; filename: 自带笔段式lcd.asm
; chip : csu1181b
; author :
; date : 2012-07-27
;============================================
include csu1181b.inc
;============================================
; program start
;============================================
org000h
gotoA1
ORG05H
;*******************************************
;主程序段
;*******************************************
A1:BCFLCDCH,5 ;设置SEG口位LCD输出口
; filename: 自带笔段式lcd.asm
; chip : csu1181b
; author :
; date : 2012-07-27
;============================================
include csu1181b.inc
;============================================
; program start
;============================================
org000h
gotoA1
ORG05H
;*******************************************
;主程序段
;*******************************************
A1:BCFLCDCH,5 ;设置SEG口位LCD输出口
MOVLW10110111B ;设置LCDENR
MOVWFLCDENR
A2:
BSFNETF,0 ;开模拟电源
MOVLWLCD2 ;位
MOVWFFSR0 ;间接寻址地址
MOVLW4 ;位数
MOVWF90H ; 位数寄存器
MOVLW0 ;显示内容默认值
MOVWF95H ; 显示内容控制寄存器
MOVLW10 ;加1循环次数
MOVWF9AH ;加1循环次数寄存器
A3:
MOVLWQ1 ;数据表地址
ADDWF95H,0 ;显示内容
MOVWFEADRL ;选定后数据表地址
MOVP ;查表并将数据存到(W)及(EDATH )中
MOVWFLCDENR
A2:
BSFNETF,0 ;开模拟电源
MOVLWLCD2 ;位
MOVWFFSR0 ;间接寻址地址
MOVLW4 ;位数
MOVWF90H ; 位数寄存器
MOVLW0 ;显示内容默认值
MOVWF95H ; 显示内容控制寄存器
MOVLW10 ;加1循环次数
MOVWF9AH ;加1循环次数寄存器
A3:
MOVLWQ1 ;数据表地址
ADDWF95H,0 ;显示内容
MOVWFEADRL ;选定后数据表地址
MOVP ;查表并将数据存到(W)及(EDATH )中
MOVWFIND0 ;将W中的数存到间接寻址内的寄存器中
INCFFSR0,1 ;间接寻址地址位加1
MOVFWEDATH ;将EDATH中的数存w中
MOVWFIND0 ;将W中的数存到间接寻址内的寄存器中
INCFFSR0,1 ;间接寻址地址位加1
DECFSZ90H,1 ;判断是否显示完4位
GOTOA3 ;没显示完则继续显示
MOVLWLCD2 ;LCD显示位
MOVWFFSR0 ;间接寻址地址
MOVLW4 ;位数
MOVWF90H ; 位数寄存器
INCF95H,1 ;显示内容加1
CALLM001 ;延时
DECFSZ9AH,1 ;判断是否将内容显示完
GOTOA3 ;没显示完则继续显示
GOTOA1 ;返回反复执行
;*****************************************************
;延时子程序段
;*****************************************************
M001:MOVLW1
MOVWF80H
M002:MOVLW248
MOVWF81H
M003:MOVLW250
MOVWF82H
M004:DECFSZ82H,1
GOTOM004
DECFSZ81H,1
GOTOM003
DECFSZ80H,1
GOTOM002
RETURN
;*******************************************
;数据表
;*******************************************
Q1:
DW070DH ;0
DW0600H ;1
DW030EH ;2
DW070AH ;3
DW0603H ;4
DW050BH ;5
DW050FH ;6
DW0700H ;7
DW070FH ;8
DW070BH ;9
INCFFSR0,1 ;间接寻址地址位加1
MOVFWEDATH ;将EDATH中的数存w中
MOVWFIND0 ;将W中的数存到间接寻址内的寄存器中
INCFFSR0,1 ;间接寻址地址位加1
DECFSZ90H,1 ;判断是否显示完4位
GOTOA3 ;没显示完则继续显示
MOVLWLCD2 ;LCD显示位
MOVWFFSR0 ;间接寻址地址
MOVLW4 ;位数
MOVWF90H ; 位数寄存器
INCF95H,1 ;显示内容加1
CALLM001 ;延时
DECFSZ9AH,1 ;判断是否将内容显示完
GOTOA3 ;没显示完则继续显示
GOTOA1 ;返回反复执行
;*****************************************************
;延时子程序段
;*****************************************************
M001:MOVLW1
MOVWF80H
M002:MOVLW248
MOVWF81H
M003:MOVLW250
MOVWF82H
M004:DECFSZ82H,1
GOTOM004
DECFSZ81H,1
GOTOM003
DECFSZ80H,1
GOTOM002
RETURN
;*******************************************
;数据表
;*******************************************
Q1:
DW070DH ;0
DW0600H ;1
DW030EH ;2
DW070AH ;3
DW0603H ;4
DW050BH ;5
DW050FH ;6
DW0700H ;7
DW070FH ;8
DW070BH ;9
end
LCD显示屏相关文章:lcd显示屏原理
lcd相关文章:lcd原理
评论