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

📄 jianpanxianshi.bak

📁 WAVE6000编写的常用的程序 包括键盘 通信 数据转换
💻 BAK
字号:
org 0000h
ajmp main
org  0030h
main:
             mov r2,#45
             mov r3,#0
             mov r4,#2
             mov r5,0
keyscan:                                ;键盘扫描程序
             MOV    P1, #0FFH           ; 置P1口为输入状态
             CLR    P1.3       		;扫描第一行(第一行为0)
             mov    r0,#00h             ;ro为行号
             MOV    A,P1       		;读入P1口值
             ANL    A,#0F0H       	;低四位为0
             CJNE   A,#0F0H,KEYCON      ;高四位不为全1(有键按下)转KEYCOON
             SETB   P1.3       		; 扫描第二行(第二行为0)
             CLR    P1.2       		;
             mov    r0,#01h
             MOV    A,P1       		; 读入P1口值
             ANL    A,#0F0H       	; 低四位为0
             CJNE   A,#0F0H,KEYCON      ; 高四位不为全1(有键按下)转KEYCOON
             SETB   P1.2       		; 扫描第三行(第三行为0)
             CLR    P1.1
             mov   r0,#02h
             MOV    A,P1       		; 读入P1口值
             ANL    A,#0F0H       	; 低四位为0
             CJNE   A,#0F0H,KEYCON      ; 高四位不为全1(有键按下)转KEYCOON
             SETB   P1.1       		; 扫描第四行(第四行为0)
             CLR    P1.0      		;
             mov    r0,#03h
             MOV    A,P1       		; 读入P1口值
             ANL    A,#0F0H       	; 低四位为0
             CJNE   A,#0F0H,KEYCON      ; 高四位不为全1(有键按下)转KEYCOON
             SETB   P1.3       		;结束行扫描
             ajmp   keyscan             ;子程序返回
KEYCON:      LCALL  delay              ;消抖处理
             MOV    A,P1       		;再读入P1口值
             ANL    A,#0F0H       	; 低四位为0
             CJNE   A,#0F0H,KEYCHE      ; 高四位不为全1,确有键按下,转KEYCHE
             ajmp   keyscan       	;干扰,子程序返回
KEYCHE:      MOV    A,P1       		;读P1口值
             anl    a,#0f0h
             cjne   a,#70h,l1
             mov    a,r0
             mov    b,#04h
             mul    ab
             mov    31h,a
             ajmp   keyfuntab
l1:          cjne   a,#0b0h,l2
             mov    a,r0
             mov    b,#04h
             mul    ab
             inc    a
             mov    31h,a
             ajmp   keyfuntab
l2:          cjne   a,#0d0h,l3
             mov    a,r0
             mov    b,#04h
             mul    ab
             inc    a
             inc    a
             mov    31h,a
             ajmp   keyfuntab
l3:          cjne   a,#0c0h,l4
             mov    a,r0
             mov    b,#04h
             mul    ab
             inc    a
             inc    a
             inc    a
             mov    31h,a
             ajmp   keyfuntab
l4:          ajmp   keyscan


KEYFUNTAB:
            mov a,31h
            cjne  a,#00h,ll1
  	    ljmp  KEYFUN00
ll1:        cjne  a,#01h,ll2
            ljmp  KEYFUN01
ll2:        cjne  a,#02,ll3
    	    ljmp  KEYFUN02
ll3:        cjne  a,#03h,ll4
  	    ljmp  KEYFUN03
ll4:        cjne  a,#04h,ll5
  	    ljmp  KEYFUN04
ll5:        cjne  a,#05h,ll6
  	    ljmp  KEYFUN05
ll6:        cjne  a,#06h,ll7
  	    ljmp  KEYFUN06
ll7:        cjne  a,#07h,ll8
  	    ljmp  KEYFUN07
ll8:        cjne  a,#08h,ll9
           ljmp  KEYFUN08

ll9:        cjne  a,#09,ll10
    	    ljmp  KEYFUN09
ll10:        cjne  a,#0ah,ll11
  	    ljmp  KEYFUN10
ll11:        cjne  a,#0bh,ll12
  	    ljmp  KEYFUN11
 ll12:        cjne  a,#0ch,ll13
    	    ljmp  KEYFUN12
ll13:        cjne  a,#0dh,ll14
  	    ljmp  KEYFUN13
ll14:        cjne  a,#0eh,ll15
  	    ljmp  KEYFUN14
ll15:        cjne  a,#0fh,ll16
  	    ljmp  KEYFUN15
 ll16:         ajmp  keyscan


KEYFUN00:   mov a,#00h
    lcall send
     sjmp goon
KEYFUN01:    mov a,#01h
    lcall send
     sjmp goon
KEYFUN02:    mov a,#02h
    lcall send
     sjmp goon
KEYFUN03:  
     sjmp goon
KEYFUN04:  mov a,#03h
    lcall send  
     sjmp goon
 KEYFUN05:   mov a,#04h
    lcall send
     sjmp goon
 KEYFUN06:   mov a,#05h
    lcall send
     sjmp goon
 KEYFUN07:   
     sjmp goon
KEYFUN08: mov a,#06h
    lcall send 
     sjmp goon
KEYFUN09:   mov a,#07h
    lcall send
     sjmp goon

KEYFUN10:   mov a,#08h
    lcall send
     sjmp goon
KEYFUN11:  mov a,#09h
    lcall send
     sjmp goon
KEYFUN12:
     sjmp goon


KEYFUN13:
     sjmp goon
 KEYFUN14:
     sjmp goon
 KEYFUN15:
     sjmp goon
goon: ljmp  keyscan




delay: mov      r7,    #18h
d1:    mov      r6,    #0ffh

       djnz     r6,   $
       djnz     r7,   d1
       ret


 send:   mov scon,#00h
   mov dptr,#tab
   mov r2,#04h
   sendloop: push acc
     movc a,@a+dptr
     mov sbuf ,a
     pop acc
     jnb  ti,$
     clr ti

     djnz r2,sendloop
     ret
  tab :db 03h,9fh,25h,0dh,99h,49h
       db 41h,1fh,01h,09h,0ffh

⌨️ 快捷键说明

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