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

📄 key_jmp.asm

📁 周立功开发板源代码,里面包含了各种关于周立功dp51开发板的源代码
💻 ASM
字号:
;*******************************Copyright (c)********************************
;**                 广州周立功单片机发展有限公司研究所
;**                        http://www.zlgmcu.com
;********************************文件信息*************************************
;文件名:Key_Jmp.asm
;功能:使用DP-51S实验仪学习散转指令和散转程序的设计方法
;说明:
;1.检测键盘KL1~KL8并判断其键值
;2.根据键值的不同,使用散转程序执行相应的服务子程序
;3.正确设置跳线JP1使P1.0~P1.7分别与LKBIT1~KBIT7\KEY_REC相连,即把跳线置于下端
;5.注意领会散转程序的编写方法和软件实现的键盘去抖动的方法
;最后修改时间:2003年3月21
;*************************************************************************
LED_ADDR	EQU	2000H			;定义键盘、数码管操作地址	
DATA_BUF	DATA	30H			;定义显示缓冲区首地址
DATA_SL		DATA	37H

		ORG	8000H			;伪指令,指定程序从8000H开始存放
		AJMP	MAIN			;跳转指令,程序跳转到MAIN处

		ORG	8100H			;伪指令,指定以下程序从8100H开始存放
MAIN:
		MOV	SP,#60			;给堆栈指针赋初值
		MOV	DATA_BUF,#0DH		;数据“d“
		MOV	DATA_BUF+1,#12H		;数据“P”
		MOV	DATA_BUF+2,#10H		;数据“-”	
		MOV	DATA_BUF+3,#05H		;数据“5”
		MOV	DATA_BUF+4,#01H		;数据“1”
		MOV	DATA_BUF+5,#05H		;数据“S”
ON_PROG:

		ACALL	DISPLAY
		ACALL	GET_KEY
	
		AJMP	ON_PROG

GET_KEY:
		MOV	P1,#0FFH
		JB	P1.7,KEY_NEXT
		ACALL	DISPLAY
		MOV	DPTR,#LED_ADDR
		MOV	R7,#08H
		MOV	DATA_SL,#0FEH
		MOV	R1,#00H
KEY_UP:
		MOV	A,DATA_SL
		MOVX	@DPTR,A
		JNB	P1.7,KEY_NEXT
		INC	R1
		RL	A
		MOV	DATA_SL,A
		DJNZ	R7,KEY_UP
KEY_NEXT:
		MOV	R1,#0FFH
		RET
		
	


;***********************
;蜂鸣器输出声响子程序
;**********************
MUSIC:
		MOV	R5,#40H			;控制音长
MIC:
		CPL	P1.3
		ACALL	DELAY100US		;控制音调
		DJNZ	R5,MIC
		RET

DELAY100US:
		MOV	R7,#0FFH
		DJNZ	R7,$
		RET


DISPLAY:
		MOV	R7,#06H			;给R7赋初值,存放数码管的个数
		MOV	R0,#DATA_BUF		;把显示缓冲区首地址送R0
		MOV	DATA_SL,#0FEH
LOOP:
		MOV	A,@R0			;取若显示的数据
		ACALL	TABLE			;查段码表,得出该数据对应的段码
		MOV	DPTR,#LED_ADDR		;LED数码管地址送DPTR
		MOVX	@DPTR,A
		MOV	A,DATA_SL		;位码送A
		MOV	P1,A			;输出位码
		ACALL	DELAY			;调延时子程序
		MOV	P1,#0FFH		;输出位码
		Rl	A			;取下一个数码管
		MOV	DATA_SL,A		;保存该位码值
		INC	R0			;取下一个数据显示	
		DJNZ	R7,LOOP			;6位数据显示完否?	
		RET

;**************
;延时子程序
;**************
DELAY:	
		MOV	R6,#10H
DELAY0:		MOV	R5,#40H
DELAY1:		DJNZ	R5,DELAY1
		DJNZ	R6,DELAY0
		RET

;查表子程序
TABLE:  	INC     A	          ;基地址加一
        	MOVC    A,       @A+PC    ;查段码表,取其相应的段码
        	RET

DB     		0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,80H,090H	;0-9的段码
DB		088H,083H,0c6H,0a1H,86H,8eH,0bfH,89H,8cH		;A-F、-、P的段码
		;
		END

⌨️ 快捷键说明

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