AD0832數字電壓表多種應用程序案例分享
大小:0.12 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
;---------------------------------------------------
CLR_LINE:????????????????? ;清除該行 LCD 的字符
????????? MOV? R0,#24
?? CL1:?? MOV? A,#' '
????????? CALL? WDATA
????????? DJNZ? R0,CL1
????????? RET
;======================================================
; 寫指令使能子程序
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;=====================================================
WCOM:
????????? MOV? P0,A
????????? CLR? LCD_RS
????????? CLR? LCD_RW
????????? SETB LCD_EN
????????? CALL? DELAY0
????????? CLR? LCD_EN
????????? RET
非常好我支持^.^
(0) 0%
不好我反對
(1) 100%
下載地址
AD0832數字電壓表多種應用程序案例分享下載
相關電子資料下載
- 火遍童年的FC游戲是使用什么語言編寫的 330
- 匯編語言中常見的兩個指令 167
- 匯編語言的產生 匯編語言的組成 233
- 匯編語言之內存訪問(寄存器) 242
- 為什么要反匯編?反匯編文件的生成和解讀 500
- Linux內核調試:指令追蹤大法簡析 360
- 基于微控制器的數字電壓表設計方案,使用8051微控制器的數字電壓表的實現方 354
- icl7135數字電壓表制作,基于icl7107的數字電壓表 1240
- Linux的gcc編譯過程介紹 157
- 單片機匯編語言的結構/數據類型/匯編指令 743