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

📄 s19-2.asm

📁 手把手教你学单片机实验程序
💻 ASM
字号:
;********89C51引脚定义********
	RS BIT P3.3
	R_W BIT P3.4
	E BIT P3.5
	DB0_DB7 EQU P1
;*******程序开始********
	ORG 0000H
	LJMP MAIN
;*******主程序*******
	ORG 0030H
MAIN:	MOV SP,#60H
	LCALL INITIAL
	LCALL CLS
;*******程序启动********
START:	MOV A,#10000000B
	LCALL WRITE_COM
	MOV A,P2
	CPL A
	JNB ACC.1,DONE2
	LCALL DEL
	JNB ACC.1,DONE2
	MOV DPTR,#LINE1
	LCALL DISP
	LJMP START
DONE2:	JNB ACC.2,DONE3
	LCALL DEL
	JNB ACC.2,DONE3
	MOV DPTR,#LINE2
	LCALL DISP
	LJMP START
DONE3:	JNB ACC.3,DONE4
	LCALL DEL
	JNB ACC.3,DONE4
	MOV DPTR,#LINE3
	LCALL DISP
	LJMP START
DONE4:	JNB ACC.4,DONE0
	LCALL DEL
	JNB ACC.4,DONE0
	MOV DPTR,#LINE4
	LCALL DISP
	LJMP START
DONE0:	MOV DPTR,#LINE0
	LCALL DISP
	LJMP START
;*******显示字符串到LCM子程序********
DISP:	PUSH ACC
DISP_LOOP:CLR A
	MOVC A,@A+DPTR
	JZ END_DISP
	LCALL WRITE_DATA
	INC DPTR
	SJMP DISP_LOOP
END_DISP:POP ACC
	RET
;****** 启动LCM子程序******
INITIAL:MOV A,#00111000B
	LCALL WRITE_COM
	MOV A,#00001100B  
	LCALL WRITE_COM 
	MOV A,#00000110B 
	LCALL WRITE_COM 
	RET
;******查询忙碌标志信号子程序******
CHECK_BUSY:	PUSH ACC
BUSY_LOOP:	CLR E
	SETB R_W
	CLR RS
	SETB E
	MOV A, DB0_DB7
	CLR E
	JB ACC.7,BUSY_LOOP
	POP ACC
	LCALL DEL
	RET
;****** 写指令到LCM子程序******
WRITE_COM:	LCALL CHECK_BUSY
	CLR E
	CLR RS 
	CLR R_W
	SETB E
	MOV DB0_DB7,A
	CLR E
	RET
;****** 写数据到LCM子程序******
WRITE_DATA:	LCALL CHECK_BUSY
	CLR E
	SETB RS 
	CLR R_W
	SETB E
	MOV  DB0_DB7,A
	CLR E
	RET
;*******清除LCM子程序*******
CLS:	MOV A,#00000001B
	LCALL WRITE_COM
	RET
;****延时子程序****
DEL:	MOV R6,#5
L1:	MOV R7,#248
	DJNZ R7,$
	DJNZ R6,L1
	RET
;*******显示内容********
LINE0:	DB " Hello-Normal !!!",00H
LINE1:	DB " Over temp. ?????",00H
LINE2:	DB " Over speed ?????",00H
LINE3:	DB " Not water ??????",00H
LINE4:	DB " Not oil ????????",00H
;************************
	END

⌨️ 快捷键说明

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