您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>C/C++语言编程>

AD0832数字电压表在面板和LED灯上的实验案例

大小:0.2 MB 人气: 2017-09-05 需要积分:0

1、AD0832数字电压表1602液晶

          AD_CLK  EQU  P1.0      ;ADC0832 时钟
          AD_DAT  EQU  P1.1      ;ADC0832 数据端
          AD_CS   EQU  P3.4      ;ADC0832 片选信号
          LCD_RS  EQU  P2.0      ;LCD 数据/命令选择端
          LCD_RW  EQU  P2.1      ;LCD 读/写选择端
          LCD_EN  EQU  P2.2      ;LCD 使能信号
          LCD_X   EQU  20H       ;LCD 地址变量
            ORG  0000H
            JMP  START
;===================================================
START:      MOV  SP,#60H
            MOV  P0,#0FFH
            MOV  P2,#0FFH
            CALL  SET_LCD
START1:     CALL  AD_CONV        ;AD转换
            CALL  AD_CHULI       ;数据处理
            CALL  LCD_CONV       ;数据显示
            JMP   START1
;====================================================
;  LCD 初始化设置
;====================================================
SET_LCD:
          CLR  LCD_EN
          CALL  INIT_LCD     ;初始化 LCD
          CALL  DELAY1
          MOV  DPTR,#INFO1   ;指针指到显示信息1
          MOV  A,#1          ;显示在第一行
          CALL  LCD_SHOW
          MOV  DPTR,#INFO2   ;指针指到显示信息2
          MOV  A,#2          ;显示在第二行
          CALL  LCD_SHOW
          RET
;-----------------------------------------------------
INFO1:  DB  "DIGITALVOLTMETER",0  ;LCD 第一行显示信息
INFO2:  DB  " VOLTAGE:     V ",0  ;LCD 第二行显示信息
;-----------------------------------------------------
;-----------------------------------------------------
; LCD 接口初始化
;-----------------------------------------------------
INIT_LCD:
          MOV  A,#38H     ;双列显示,字形5*7点阵
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#38H     ;双列显示,字形5*7点阵
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#38H     ;双列显示,字形5*7点阵
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#0CH     ;开显示,关光标,
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#01H     ;清除 LCD 显示屏
          CALL  WCOM
          CALL  DELAY1
          RET
;-------------------------------------------------
DELAY1:                    ;延时5MS
          MOV  R6,#25
  DEL1:   MOV  R7,#100
          DJNZ  R7,$
          DJNZ  R6,DEL1
          RET
;==================================================
;在LCD的第一行或第二行显示信息字符
;==================================================
LCD_SHOW:
          CJNE  A,#1,LINE2  ;判断是否为第一行
  LINE1:  MOV  A,#80H       ;设置 LCD 的第一行地址
          CALL  WCOM        ;写入命令
          CALL  CLR_LINE    ;清除该行字符数据
          MOV  A,#80H       ;设置 LCD 的第一行地址
          CALL  WCOM        ;写入命令
          JMP  FILL
  LINE2:  MOV  A,#0C0H      ;设置 LCD 的第二行地址
          CALL  WCOM        ;写入命令
          CALL  CLR_LINE    ;清除该行字符数据
          MOV  A,#0C0H      ;设置 LCD 的第二行地址
          CALL  WCOM
  FILL:   CLR  A            ;填入字符
          MOVC  A,@A+DPTR   ;由消息区取出字符
          CJNE  A,#0,LC1    ;判断是否为结束码
          RET
  LC1:    CALL  WDATA       ;写入数据
          INC  DPTR         ;指针加1
          JMP  FILL         ;继续填入字符
          RET

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!