AD0832數(shù)字電壓表多種應(yīng)用程序案例分享
大小:0.12 MB 人氣: 2017-09-05 需要積分:0
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
1、AD0832數(shù)字電壓表1602液晶
? ? ? ? ? AD_CLK? EQU? P1.0????? ;ADC0832 時(shí)鐘端????????? AD_DAT? EQU? P1.1????? ;ADC0832 數(shù)據(jù)端
????????? AD_CS?? EQU? P3.4????? ;ADC0832 片選信號(hào)
????????? LCD_RS? EQU? P2.0????? ;LCD 數(shù)據(jù)/命令選擇端
????????? LCD_RW? EQU? P2.1????? ;LCD 讀/寫選擇端
????????? LCD_EN? EQU? P2.2????? ;LCD 使能信號(hào)
????????? 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轉(zhuǎn)換
??????????? CALL? AD_CHULI?????? ;數(shù)據(jù)處理
??????????? CALL? LCD_CONV?????? ;數(shù)據(jù)顯示
??????????? JMP?? START1
;====================================================
;? LCD 初始化設(shè)置
;====================================================
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點(diǎn)陣
????????? CALL? WCOM
????????? CALL? DELAY1
????????? MOV? A,#38H???? ;雙列顯示,字形5*7點(diǎn)陣
????????? CALL? WCOM
????????? CALL? DELAY1
????????? MOV? A,#38H???? ;雙列顯示,字形5*7點(diǎn)陣
????????? CALL? WCOM
????????? CALL? DELAY1
????????? MOV? A,#0CH???? ;開顯示,關(guān)光標(biāo),
????????? CALL? WCOM
????????? CALL? DELAY1
????????? MOV? A,#01H???? ;清除 LCD 顯示屏
????????? CALL? WCOM
????????? CALL? DELAY1
????????? RET
;-------------------------------------------------
DELAY1:??????????????????? ;延時(shí)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?????? ;設(shè)置 LCD 的第一行地址
????????? CALL? WCOM??????? ;寫入命令
????????? CALL? CLR_LINE??? ;清除該行字符數(shù)據(jù)
????????? MOV? A,#80H?????? ;設(shè)置 LCD 的第一行地址
????????? CALL? WCOM??????? ;寫入命令
????????? JMP? FILL
? LINE2:? MOV? A,#0C0H????? ;設(shè)置 LCD 的第二行地址
????????? CALL? WCOM??????? ;寫入命令
????????? CALL? CLR_LINE??? ;清除該行字符數(shù)據(jù)
????????? MOV? A,#0C0H????? ;設(shè)置 LCD 的第二行地址
????????? CALL? WCOM
? FILL:?? CLR? A??????????? ;填入字符
????????? MOVC? A,@A+DPTR?? ;由消息區(qū)取出字符
????????? CJNE? A,#0,LC1??? ;判斷是否為結(jié)束碼
????????? RET
? LC1:??? CALL? WDATA?????? ;寫入數(shù)據(jù)
????????? INC? DPTR???????? ;指針加1
????????? JMP? FILL???????? ;繼續(xù)填入字符
????????? 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%
不好我反對(duì)
(1) 100%
下載地址
AD0832數(shù)字電壓表多種應(yīng)用程序案例分享下載
相關(guān)電子資料下載
- 火遍童年的FC游戲是使用什么語言編寫的 330
- 匯編語言中常見的兩個(gè)指令 167
- 匯編語言的產(chǎn)生 匯編語言的組成 233
- 匯編語言之內(nèi)存訪問(寄存器) 242
- 為什么要反匯編?反匯編文件的生成和解讀 500
- Linux內(nèi)核調(diào)試:指令追蹤大法簡(jiǎn)析 360
- 基于微控制器的數(shù)字電壓表設(shè)計(jì)方案,使用8051微控制器的數(shù)字電壓表的實(shí)現(xiàn)方 354
- icl7135數(shù)字電壓表制作,基于icl7107的數(shù)字電壓表 1240
- Linux的gcc編譯過程介紹 157
- 單片機(jī)匯編語言的結(jié)構(gòu)/數(shù)據(jù)類型/匯編指令 743