专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

芯海自带笔段式LCD

作者:佚名   来源:本站原创   点击数:  更新时间:2013年02月25日   【字体:
;============================================
; filename: 自带笔段式lcd.asm
; chip    : csu1181b
; author  :
; date    : 2012-07-27
;============================================
include csu1181b.inc
;============================================
; program start
;============================================
 
  org   000h
  goto  A1
  ORG   05H
;*******************************************
;   主程序段
;*******************************************  
A1:  BCF   LCDCH,5 ;设置SEG口位LCD输出口
  MOVLW  10110111B ;设置LCDENR
  MOVWF  LCDENR
A2: 
  BSF   NETF,0 ;开模拟电源
  
  MOVLW  LCD2 ;位
  MOVWF  FSR0 ;间接寻址地址
  
  MOVLW  4 ;位数
  MOVWF  90H ; 位数寄存器
  
  MOVLW  0 ;显示内容默认值
  MOVWF  95H ; 显示内容控制寄存器
  
  MOVLW  10 ;加1循环次数
  MOVWF  9AH ;加1循环次数寄存器
  
A3: 
  MOVLW  Q1 ;数据表地址
  ADDWF  95H,0 ;显示内容
  MOVWF  EADRL ;选定后数据表地址
  MOVP ;查表并将数据存到(W)及(EDATH )中
  MOVWF  IND0 ;将W中的数存到间接寻址内的寄存器中
  INCF  FSR0,1 ;间接寻址地址位加1
 
  MOVFW  EDATH ;将EDATH中的数存w中
  MOVWF  IND0 ;将W中的数存到间接寻址内的寄存器中
  INCF  FSR0,1 ;间接寻址地址位加1
  
  DECFSZ  90H,1 ;判断是否显示完4位
  GOTO  A3 ;没显示完则继续显示
  
  MOVLW  LCD2 ;LCD显示位
  MOVWF  FSR0 ;间接寻址地址
  
  MOVLW  4 ;位数
  MOVWF  90H ; 位数寄存器
  
  INCF  95H,1 ;显示内容加1
  CALL  M001  ;延时
  DECFSZ  9AH,1 ;判断是否将内容显示完
  GOTO  A3 ;没显示完则继续显示
  GOTO  A1 ;返回反复执行
;*****************************************************
;   延时子程序段
;***************************************************** 
 
M001: MOVLW  1
  MOVWF  80H
M002: MOVLW  248
  MOVWF  81H
M003: MOVLW  250
  MOVWF  82H
M004: DECFSZ  82H,1
  GOTO  M004 
  DECFSZ  81H,1
  GOTO  M003
  DECFSZ  80H,1
  GOTO  M002
  RETURN
;******************************************* 
;   数据表
;******************************************* 
Q1:
  DW  070DH ;0
  DW  0600H ;1
  DW  030EH ;2
  DW  070AH ;3
  DW  0603H ;4
  DW  050BH ;5
  DW  050FH ;6
  DW  0700H ;7
  DW  070FH ;8
  DW  070BH ;9
  end
关闭窗口

相关文章