⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 003.asm

📁 用单片机汇编写的电压表及温度显示程序,希望对大家有用!
💻 ASM
字号:
RS EQU P2.0
RW EQU P2.1
E EQU P2.2

;-----------------------------------------------
LCD_X EQU 30H
LCD_Y EQU 31H
COUNT EQU 32H
COUNT1 EQU 33H
COUNT2 EQU 34H
COUNT3 EQU 35H
;-----------------------------------------------
LCD_DATA EQU 36H
LCD_DATA1 EQU 37H
LCD_DATA2 EQU 38H
STORE EQU 39H
;-----------------------------------------------

;ad输出口
out	equ	p0
;-----------------------------------------------

;-----------------------------------------------
ORG 0000H
LJMP MAIN
ORG 0030H
;-----------------------------------------------
MAIN:
MOV SP,#5FH

LCALL DELAY4

;通讯方式为8位数据并口

;********************初始化**********************
LGS0: MOV A,#34H ;34H--扩充指令操作
LCALL SEND_I
MOV A,#30H ;30H--基本指令操作
LCALL SEND_I
MOV A,#01H ;清除显示
LCALL SEND_I
MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
LCALL SEND_I ;DDRAM 的地址计数器(AC)加1
MOV A,#0CH ;开显示,关光标,不闪烁
LCALL SEND_I
;===============================================
TU_PLAY1:
MOV DPTR,#TU_TAB1 ;显示图形
LCALL PHO_DISP
han1:
mov	dptr ,#zz1	  ;显示"液体"
mov	count,#04h
mov a ,#86h
lcall	send_i
lcall   qushu
han2:
mov	dptr ,#zz2	 ;显示"电压"
mov	count,#04h
mov a ,#96h
lcall	send_i
lcall   qushu
han3:
mov	dptr ,#zz3	 ;显示"程序"
mov	count,#04h
mov a ,#8eh
lcall	send_i
lcall   qushu
han4:
mov	dptr ,#zz4	 ;显示"现在的电压是 . V"
mov	count,#10h
mov a ,#98h
lcall	send_i
lcall   qushu

;AD转换 程序
start:
LCALL	STARTAD	;假程序
LCALL	DELAY3	
LCALL	READAD
;取结果乘C4约得50000(5V)
MOV		B,#0C4H
MUL		AB
MOV		50H,B	   ;高位
MOV		51H,A		;低位
LCALL	BCDMA		 ;取BCD码
;显个位多少V
MOV		DPTR,#BM
MOV		COUNT,#01H
MOV		A,#9EH
LCALL	SEND_I
MOV		A,48H
ANL		A,#0FH
LCALL	ADSHU
;显示小数一位,0.几V
MOV		DPTR,#BM
MOV		COUNT,#01H
MOV		A,#9FH
LCALL	SEND_I
MOV		A,47H
ANL		A,#0F0H
SWAP	A
LCALL	ADSHU
		

ajmp START

;-----------------------------------------------
;BCD转换程序	IN:50,51H OUT:48,47,46H
;-----------------------------------------------
BCDMA: 
MOV		R0,#44H
MOV 	A,51H
MOV		@R0,A
INC		R0

MOV 	A,50H
MOV		@R0,A
INC		R0
MOV		@R0,#00H
INC		R0
MOV		@R0,#00H
INC		R0
MOV		@R0,#00H
INC		R0
MOV		@R0,#00H
MOV		49H,#16
S1:
MOV		R0,#44H
MOV		R2,#02H
CLR		C
S2:
MOV		A,@R0
RLC		A
MOV		@R0,A
INC		R0
DJNZ	R2,S2
MOV		R2,#03H
S3:
MOV		A,@R0
MOV		B,A 
ADDC	A,B
DA		A
MOV		@R0,A
INC		R0
DJNZ	R2,S3
DJNZ	49H,S1

MOV		R2,48H
MOV		R3,47H
MOV		R4,46H

RET


;-----------------------------------------------
;开始转换AD程序	;假程序
;-----------------------------------------------
startad:
nop
;clr WRAD
nop
;setb WRAD
nop
ret

;-----------------------------------------------
;读取AD程序
;-----------------------------------------------
readad:
mov	out,#0ffh
nop
;clr RDAD ;假
nop
CLR A
mov	a,out
nop
;setb RDAD	 ;假
ret

;-----------------------------------------------
;显示点阵
;-----------------------------------------------
LATPLAY1:
MOV A,#01H ;清屏
LCALL SEND_I
MOV LCD_DATA1,#0CCH ;显示点阵
MOV LCD_DATA2,#0CCH
LCALL LAT_DISP
LCALL DELAY3
LCALL CLEAR_P

KU_PLAY2:

LJMP TU_PLAY1

;===============================================
;全屏显示图形子程序
;===============================================
PHO_DISP:
MOV COUNT3,#02H
MOV LCD_X,#80H
PHO_DISP1:
MOV LCD_Y,#80H
MOV COUNT2,#20H
PHO_DISP2:
MOV COUNT1,#10H
LCALL WR_ZB
PHO_DISP3:
CLR A
MOVC A,@A+DPTR
LCALL SEND_D
INC DPTR
DJNZ COUNT1,PHO_DISP3
INC LCD_Y
DJNZ COUNT2,PHO_DISP2
MOV LCD_X,#88H
DJNZ COUNT3,PHO_DISP1

MOV A,#36H
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET


 
;----------------------------------------------
CLRRAM:
MOV LCD_DATA1,#00H ;GDRAM写0子程序
MOV LCD_DATA2,#00H
LCALL LAT_DISP
RET
;==============================================
;显示点阵子程序
;==============================================
LAT_DISP:
MOV COUNT3,#02H
MOV LCD_X,#80H
LAT_DISP1:
MOV LCD_Y,#80H
CLR f0
MOV COUNT2,#20H
LAT_DISP2:
MOV COUNT1,#10H
LCALL WR_ZB
LAT_DISP3:
JB F0,LAT_DISP32
MOV LCD_DATA,LCD_DATA1
AJMP LAT_DISP31
LAT_DISP32:
MOV LCD_DATA,LCD_DATA2
LAT_DISP31:
MOV A,LCD_DATA
LCALL SEND_D
DJNZ COUNT1,LAT_DISP31
INC LCD_Y
CPL F0
DJNZ COUNT2,LAT_DISP2
MOV LCD_X,#88H
DJNZ COUNT3,LAT_DISP1

MOV A,#36H
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET
;---------------------------------------------
WR_ZB:
MOV A,#34H
LCALL SEND_I
MOV A,LCD_Y
LCALL SEND_I
MOV A,LCD_X
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET

;===============================================
FLASH:
MOV A,#08H ;关闭显示
LCALL SEND_I
LCALL DELAY5
MOV A,#0CH ;开显示,关光标,不闪烁
LCALL SEND_I
LCALL DELAY5
MOV A,#08H ;关闭显示
LCALL SEND_I
LCALL DELAY5
MOV A,#0CH ;开显示,关光标,不闪烁
LCALL SEND_I
LCALL DELAY5
MOV A,#08H ;关闭显示
LCALL SEND_I
LCALL DELAY5
RET
;==================================================
;清屏
;==================================================
CLEAR_P:
MOV A,#01H ;清屏
LCALL SEND_I
MOV A,#34H
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET
;==================================================
;查表取数据送显示
;==================================================
QUSHU:
CLR A
MOVC A,@A+DPTR ;查表取数据
LCALL SEND_D ;送显示
INC DPTR
 ;延时80ms,
DJNZ COUNT,QUSHU
RET
;==================================================
;查表取AD数据送显示
;==================================================
ADSHU:

MOVC A,@A+DPTR ;查表取数据
LCALL SEND_D ;送显示

DJNZ COUNT,ADSHU
RET



;===============================================
;写数据子程序
;RS=1,RW=0,E=高脉冲,D0-D7=数据
;===============================================
SEND_D:
LCALL CHK_BUSY ;写数据子程序
SETB RS
CLR RW
MOV P1,A
SETB E
NOP
NOP
CLR E
RET
;===============================================
;写指令子程序
;RS=0,RW=0,E=高脉冲,D0-D7=指令码
;===============================================
SEND_I:
LCALL CHK_BUSY
CLR RS
CLR RW
MOV P1,A
SETB E
NOP
NOP
CLR E
RET
;================================================
;读数据子程序
;RS=1,RW=1,E=H,D0-D7=数据
;================================================
READ_D:
LCALL CHK_BUSY ;读数据子程序
SETB RS
SETB RW
SETB E
NOP
MOV A,P1
CLR E
MOV STORE,A
RET
;================================================
;;测忙碌子程序
;RS=0,RW=1,E=H,D0-D7=状态字
;================================================
CHK_BUSY:
MOV P1,#0FFH ;测忙碌子程序
CLR RS
SETB RW
SETB E
JB P1.7,$
CLR E
RET
;================================================
;延时子程序

DELAY3:
MOV R5,#16H
DEL31: MOV R6,#100
DEL32: MOV R7,#0FFH
DEL33: DJNZ R7,DEL33
DJNZ R6,DEL32
DJNZ R5,DEL31
RET

DELAY2:
MOV R6,#0CH
DEL21: MOV R7,#18H
DEL22: DJNZ R7,DEL22
DJNZ R6,DEL21
RET

DELAY1:
MOV R6,#06H
DEL11: MOV R7,#08H
DEL12: DJNZ R7,DEL12
DJNZ R6,DEL11
RET

DELAY4:
MOV R6,#100
DEL41: MOV R7,#200
DEL42: DJNZ R7,DEL42
DJNZ R6,DEL41
RET

DELAY5:
MOV R5,#05H
DEL51: MOV R6,#100
DEL52: MOV R7,#0FFH
DEL53: DJNZ R7,DEL53
DJNZ R6,DEL52
DJNZ R5,DEL51
RET
;***********************************************
TAB1:
  
zz1: db '液晶'
zz2: db	'电压'
zz3: db	'程序'
zz4: db	  '现在的电压是 . V'

BM:  DB '0123456789'






;*-------------------------------------------------------------------- *
;* Bitmap点阵数据表 *
;* 图片: E:\图形8.bmp,横向取模左高位,数据排列:从左到右从上到下 *
;* 图片尺寸: 128 * 64 *
;*-------------------------------------------------------------------- *
TU_TAB1: ; 数据表

DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,14H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  06H,30H,01H,0E0H,00H,00H,2AH,00H,00H,0D8H,00H,00H,00H,00H,00H,00H
DB  0FH,7BH,63H,0E0H,00H,00H,22H,00H,01H,24H,00H,00H,00H,00H,00H,00H
DB  0FH,0FBH,63H,07H,34H,00H,14H,00H,01H,04H,00H,00H,00H,00H,00H,00H
DB  0DH,0DBH,63H,01H,0BCH,00H,08H,00H,00H,88H,00H,00H,00H,00H,00H,00H
DB  0CH,1BH,63H,07H,0B0H,00H,00H,00H,00H,50H,00H,00H,00H,00H,00H,00H
DB  0CH,1BH,63H,0EDH,0B0H,0DBH,00H,01H,00H,20H,00H,00H,00H,00H,00H,00H
DB  0CH,19H,0E1H,0E7H,0B0H,0DBH,00H,02H,00H,00H,00H,00H,00H,00H,00H,00H
DB  0CH,19H,0E1H,0E7H,0B0H,0DBH,00H,02H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,60H,00H,00H,00H,00H,04H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,03H,0C0H,00H,00H,00H,00H,08H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,08H,05H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,10H,0AH,80H,00H,00H,00H,00H,00H,00H
DB  00H,00H,0AH,00H,00H,0FFH,0F8H,0E0H,05H,00H,00H,00H,00H,00H,00H,00H
DB  06H,0C0H,15H,00H,1FH,0FFH,0FFH,0C0H,02H,00H,00H,00H,00H,00H,00H,00H
DB  09H,20H,11H,00H,0FBH,0FFH,0E1H,0F8H,00H,00H,00H,00H,00H,00H,00H,00H
DB  08H,20H,0AH,03H,9FH,00H,9EH,3EH,00H,00H,00H,00H,00H,00H,00H,00H
DB  04H,40H,04H,0EH,70H,00H,81H,0C7H,80H,01H,40H,00H,00H,00H,00H,00H
DB  02H,80H,00H,1DH,80H,00H,0E0H,61H,0E0H,02H,0A0H,00H,00H,00H,00H,00H
DB  01H,00H,00H,77H,9FH,0FCH,0F0H,18H,0F8H,02H,20H,00H,00H,00H,00H,00H
DB  00H,00H,01H,0DFH,00H,00H,0F3H,0CH,3CH,01H,40H,00H,00H,00H,00H,00H
DB  00H,00H,03H,9EH,00H,00H,0F8H,06H,1EH,00H,80H,00H,00H,00H,00H,00H
DB  00H,00H,07H,0EH,30H,01H,0FCH,7FH,07H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,07H,0EH,30H,01H,0FCH,7FH,07H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,7EH,0FFH,0FFH,0FFH,0FFH,0FFH,83H,0C0H,00H,00H,00H,00H,00H,00H
DB  00H,0FH,0FDH,0FFH,0FFH,0FFH,0FFH,0FCH,01H,0F0H,00H,00H,00H,00H,00H,00H
DB  00H,3FH,81H,0FFH,00H,00H,00H,00H,1FH,0F0H,00H,00H,00H,00H,00H,00H
DB  00H,0FEH,0F0H,00H,00H,01H,00H,00H,0C0H,1CH,00H,00H,00H,00H,00H,00H
DB  03H,0C0H,07H,80H,00H,03H,0E0H,07H,00H,1CH,00H,00H,00H,00H,00H,00H
DB  03H,80H,03H,40H,00H,03H,0E0H,0CH,00H,0EH,00H,00H,00H,00H,00H,00H
DB  07H,00H,00H,0C0H,00H,00H,20H,18H,00H,07H,00H,00H,00H,00H,00H,00H
DB  09H,01H,80H,60H,00H,00H,20H,73H,9FH,03H,80H,00H,00H,00H,00H,00H
DB  1EH,0FH,0F2H,20H,00H,00H,20H,67H,0FFH,0C1H,0C0H,00H,00H,00H,00H,00H
DB  1EH,1FH,0F9H,30H,00H,00H,20H,0EFH,0FFH,0E0H,0E0H,00H,00H,00H,00H,00H
DB  38H,3FH,0FCH,90H,00H,00H,20H,0CBH,0FFH,0F9H,0F0H,00H,00H,00H,00H,00H
DB  7FH,7FH,0FEH,10H,00H,00H,20H,0DBH,0FFH,0FFH,0F0H,00H,00H,00H,00H,00H
DB  6EH,0F9H,0BFH,10H,00H,00H,20H,0F7H,0EDH,0FFH,0F0H,00H,00H,00H,00H,00H
DB  7CH,0FCH,3FH,10H,00H,00H,20H,67H,0E1H,0FDH,0E0H,00H,00H,00H,00H,00H
DB  7CH,0FCH,3FH,10H,00H,00H,20H,67H,0E1H,0FDH,0E0H,00H,00H,00H,00H,00H
DB  38H,0FCH,3FH,18H,00H,00H,20H,87H,0E0H,0FDH,0C0H,00H,00H,00H,00H,00H
DB  38H,0F1H,8FH,18H,00H,1FH,0E7H,87H,9CH,7DH,0C0H,00H,00H,00H,00H,00H
DB  1CH,0FEH,1FH,81H,0FFH,0FFH,0C0H,0FH,0E0H,0FFH,80H,00H,00H,00H,00H,00H
DB  0CH,0FCH,3FH,80H,00H,00H,00H,0FH,0E1H,0F8H,00H,00H,00H,00H,00H,00H
DB  00H,0F9H,0BFH,0FFH,0FFH,0FFH,0FFH,0FFH,0ECH,0FEH,00H,00H,00H,00H,00H,00H
DB  03H,0F9H,0BFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0C0H,00H,00H,00H,00H,00H
DB  0FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0C0H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H





;*-------------------------------------------------------------------- *
;* Bitmap点阵数据表 *
;* 图片: E:\图形12.bmp,横向取模左高位,数据排列:从左到右从上到下 *
;* 图片尺寸: 128 * 64 *
;*-------------------------------------------------------------------- *
 

end


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -