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

📄 12-8input.asm

📁 详细介绍了C语言开发DSP嵌入式系统
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;*******************************************
;r5列扫描初值
;r6扫描列号
;r3键值
;r0系统显示参数首地址
;r2坐标计算时的键值保护寄存器
;r7显示参数字节个数
;20H页码保存单元
;r1用户参数首地址
;********************************************
D_I	EQU	P2.0				;Data or Instrument Select,H:写数据,L:写指令
R_W	EQU	P2.1				;Write or Read,H:read,L:write
E	EQU	P2.7				;读写使能
CS1	EQU	P2.2				;CS1=H,选择左半屏
CS2	EQU	P2.3
				                ;CS2=H,选择右半屏
RESET	EQU	P2.4				;Lcm reset,低有效

DISP_X	EQU	30H
DISP_Y	EQU	31H
DISP_Z	EQU	32H
LONG	EQU	33H
WIDE	EQU	34H
DATA1_WR	EQU	35H
DATA2_WR	EQU	36H
COUNTER1	EQU	37H
COUNTER2	EQU	38H
COUNTER3	EQU	39H
        ORG 0000H
        LJMP MAIN
        ORG 0003H
        LJMP KEYVAL


        ORG 0030H
MAIN:   MOV SP,#3AH
        SETB EA
        SETB EX0
        SETB IT0
	mov r0,#50h
        lcall clears
        mov r4,#40h             ;用户参数输入时的DISP_Y坐标保存单元
        ;lcall start
        MOV  20H,#00H           ;页码保存单元
	MOV  P1,#0F0H
        SJMP $


KEYVAL: MOV r5,#0F7H    ;送扫描初值
        MOV r6,#00H     ;扫描列号

LK:     MOV A,r5
        MOV P1,A        ;扫描值送入p1口
        MOV A,P1        ;读出p1口数据判断键值

        JB ACC.7,LONE   ;第一行 P1.7
        MOV A,#01H
        AJMP LKP

LONE:   JB ACC.6,LTWO    ;第二行 P1.6
        MOV A,#05H
        AJMP LKP

LTWO:   JB ACC.5,LTHR   ;第三行  P1.5
        MOV A,#09H
        AJMP LKP

LTHR:   JB ACC.4,NEXT   ;第四行  P1.4
        MOV A,#0dH

LKP:    ADD A,r6
        MOV r3,A        ;键值存入R3中
        LCALL KEYDW
        RETI

NEXT:   INC r6
        MOV A,r5
        JNB ACC.0,KND
        RR A
        MOV r5,A
        AJMP LK
KND:    MOV P1,#0F0H
        RETI

;键处理子程序
KEYDW:  MOV A,R3
        CLR C
        RLC A
        MOV DPTR,#TAB
        JMP @A+DPTR

TAB:    db   00h,01h
        AJMP NUM1
        AJMP NUM2
        AJMP NUM3
        AJMP NUM4
        AJMP NUM5
        AJMP NUM6
        AJMP NUM7
        AJMP NUM8
        AJMP NUM9
        AJMP NUM0
        AJMP FUNC1
        AJMP FUNC2
        AJMP FUNC3
        AJMP FUNC4
        AJMP FUNC5
        AJMP FUNC6

num1:	jb f0,ninput		;f0=1,进入参数输入界面
	MOV P1,#0F0H
	ret

ninput: ;lcall clears
	;lcall userpara
	mov a,r3
	mov @r0,a
	inc r0
	lcall  inpara
        ret		;输入参数显示,input parameter display

num2:	MOV P1,#0F0H
	ret
NUM3:   MOV P1,#0F0H
        RET

NUM4:   MOV P1,#0F0H
        RET

NUM5:   MOV P1,#0F0H
        RET

NUM6:   MOV P1,#0F0H
        RET

NUM7:   MOV P1,#0F0H
        RET

NUM8:   MOV P1,#0F0H
        RET

NUM9:   MOV P1,#0F0H
        RET

NUM0:   MOV P1,#0F0H
        RET

func1:  setb f0
        lcall clears
        lcall userpara
        MOV P1,#0F0H
        RET
func2:
func3:
func4:
func5:
func6:


;**********************清屏***********************


clears:         MOV	DISP_Z,#0C0H
                SETB	CS1
		CLR	CS2
		MOV	DISP_X,#0B8H
		MOV	DISP_Y,#40H
		MOV	LONG,#40H
		MOV	WIDE,#02H
		MOV	DPTR,#clear
		LCALL	para_DISP
		MOV	DISP_X,#0BAH
		MOV	DPTR,#clear
		LCALL	para_DISP
		MOV	DISP_X,#0BCH
		MOV	DPTR,#clear
		LCALL	para_DISP
		MOV	DISP_X,#0BEH
		MOV	DPTR,#clear
		LCALL	para_DISP

		CLR	CS1
		SETB	CS2
		MOV	DISP_X,#0B8H
		MOV	DISP_Y,#40H
		MOV	LONG,#40H
		MOV	WIDE,#02H
		MOV	DPTR,#clear
		LCALL	para_DISP
		MOV	DISP_X,#0BAH
		MOV	DPTR,#clear
		LCALL	para_DISP
		MOV	DISP_X,#0BCH
		MOV	DPTR,#clear
		LCALL	para_DISP
		MOV	DISP_X,#0BEH
		MOV	DPTR,#clear
		LCALL	para_DISP

		ret


ipd:            clr cs1
                setb cs2
                ;mov     r7,#06h
                ;mov     r0,#50h
loopif:         mov     a,@r0


numif0:         cjne    a,#0,numif1
                mov     dptr,#numtab0
                lcall   para_disp
;*************************

		lcall	parazbif

;***********************
                ;inc     r0
                ;djnz    r7,loopif
                ret

numif1:         cjne    a,#1,numif2
                mov     dptr,#numtab1
                lcall   para_disp
;*********************

		lcall	parazbif

;*********************
                ;inc     r0
                ;djnz    r7,loopif
                ret

numif2:         cjne    a,#2,numif3
                mov     dptr,#numtab2
                lcall   para_disp
;*******************

		lcall	parazbif

;********************
                ;inc     r0
                ;djnz    r7,loopif
                ret

numif3:         cjne    a,#3,numif4
                mov     dptr,#numtab3
                lcall   para_disp
;********************

		lcall	parazbif

;********************
                ;inc     r0
                ;djnz    r7,loopif
                ret

numif4:         cjne    a,#4,numif5
                mov     dptr,#numtab4
                lcall   para_disp
;********************

		lcall	parazbif

;********************
                ;inc     r0
                ;djnz    r7,loopif1
                ret
loopif1:        ljmp    loopif

numif5:         cjne    a,#5,numif6
                mov     dptr,#numtab5
                lcall   para_disp
;**********************

		lcall	parazbif

;******************
                ;inc     r0
                ;djnz    r7,loopif2
               ret
loopif2:        ljmp    loopif

numif6:         cjne    a,#6,numif7
                mov     dptr,#numtab6
                lcall   para_disp
;*******************

		lcall	parazbif

;*****************
                ;inc     r0
                ;djnz    r7,loopif3
                ret
loopif3:        ljmp    loopif

numif7:         cjne    a,#7,numif8
                mov     dptr,#numtab7
                lcall   para_disp
;**********************

		lcall	parazbif

;************************
                ;inc     r0
                ;djnz    r7,loopif4
                ret
loopif4:         ljmp    loopif

numif8:          cjne    a,#8,numif9
                mov     dptr,#numtab8
                lcall   para_disp
;***********************

		lcall	parazbif

;**********************
                ;inc     r0
                ;djnz    r7,loopif5
                ret
loopif5:         ljmp    loopif

numif9:          cjne    a,#9,loopif1
                mov     dptr,#numtab9
                lcall   para_disp
;*******************

⌨️ 快捷键说明

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