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

📄 qvtetkyc.asm

📁 一个键盘扫描程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
           mov r0,#02h
           lcall thpzjfz
           clr p1.3
           mov r0,#04h
           lcall thpzjfz
           setb p1.3
           mov  r0,#03h
           lcall thpzjfz
           mov a,p1
           anl a,#00001000b
           jz sucwxfgk
           mov a,36h
           anl a,#00000001b
           lcall vzudpz
           mov a,p1
           anl a,#00001000b
           jz  sucwxfgk
           mov a,36h
           anl a,#00000010b
           lcall vzudpz
           mov a,p1
           anl a,#00001000b
           jz  sucwxfgk
           mov a,36h
           anl a,#00000100b
           lcall vzudpz    
           mov a,p1
           anl a,#00001000b
           jz  sucwxfgk
           mov a,36h
           anl a,#00001000b
           lcall vzudpz
           mov a,p1
           anl a,#00001000b
           jz  sucwxfgk
           mov a,36h
           anl a,#00010000b
           lcall vzudpz
           mov a,p1
           anl a,#00001000b
           jz  sucwxfgk
           mov a,36h
           anl a,#00100000b
           lcall vzudpz
           mov a,p1
           anl a,#00001000b
           jz  cccc
           jmp dddd  
cccc:      ljmp sucwxfgk
dddd:      mov a,36h
           anl a,#01000000b
           lcall vzudpz
           mov a,p1
           anl a,#00001000b
           jz  eeee
           jmp ffff 
eeee:      ljmp sucwxfgk
ffff:      mov a,36h
           anl a,#10000000b
           lcall vzudpz
           mov a,p1
           anl a,#00001000b
           jz  gggg
           jmp hhhh
gggg:      ljmp sucwxfgk
hhhh:      mov a,37h
           lcall vzudpz
           mov a,p1
           anl a,#00001000b
           jz  iiii
           jmp jjjj
iiii:      ljmp sucwxfgk
jjjj:      mov a,#0ffh
           lcall vzudpz
           mov r0,#05h
           lcall thpzjfz
ujpbabzxfgk:ret             ;单字节结束
vzudpz:    jz ovrn0         ;发送
           setb p1.4
           jmp ovrnxfgk
ovrn0:     clr p1.4
ovrnxfgk:  mov r0,#02h      ;数据结束
           lcall thpzjfz
           clr p1.3
           mov r0,#04h
           lcall thpzjfz
           setb p1.3
           mov r0,#02h
           lcall thpzjfz
           
           
           ret
fuuwtkyc :        
                   
ALLPLUS:           ACALL DELAY100MS
                   ACALL DELAY100MS
                   CLR ADCS2          ;选通tlc0832
                   MOV A,#03H         ;单通道ch0,起始配置位送A
                   MOV R7,#3           
                   ACALL ADC
                   SETB ADCS2
                   MOV OVERALL1,A
                   
                   CLR ADCS1          ;选通tlc0838
                   ;AJMP CH6
CH0:               MOV A,#03H        ;单通道ch0,起始配置位送A
                   ACALL SUBPLUS
                   MOV CHANNEL01,A
                   
                   CLR ADCS1
CH1:               MOV A,#07H         ;单通道ch1,起始配置位送A         
                   ACALL SUBPLUS
                   MOV CHANNEL11,A
                   
                   CLR ADCS1
CH2:               MOV A,#13H         ;单通道ch2,起始配置位送A
                   ACALL SUBPLUS
                   MOV CHANNEL21,A
                   
                   CLR ADCS1
CH3:               MOV A,#17H         ;单通道ch3,起始配置位送A
                   ACALL SUBPLUS
                   MOV CHANNEL31,A
                   
                   CLR ADCS1
CH4:               MOV A,#0BH         ;单通道ch4,起始配置位送A
                   ACALL SUBPLUS
                   MOV CHANNEL41,A
                   
                   CLR ADCS1
CH5:               MOV A,#0FH         ;单通道ch5,起始配置位送A
                   ACALL SUBPLUS
                   MOV CHANNEL51,A
                   
                   CLR ADCS1
CH6:               MOV A,#1BH         ;单通道ch6,起始配置位送A
                   ACALL SUBPLUS
                   MOV CHANNEL61,A
                   
                   CLR ADCS1
CH7:               MOV A,#1FH         ;单通道ch7,起始配置位送A
                   ACALL SUBPLUS
                   MOV CHANNEL71,A
                   
CHANGE8:           MOV A,OVERALL      ;电压变化判断
                   CLR C
                   SUBB A,OVERALL1
                   ACALL MOREORLESS
                   JZ CHANGE0
                   MOV OVERALL,OVERALL1
                   
CHANGE0:           MOV A,CHANNEL0
                   CLR C
                   SUBB A,CHANNEL01
                   ACALL MOREORLESS
                   JZ CHANGE1
                   MOV CHANNEL0,CHANNEL01 
                   
CHANGE1:           MOV A,CHANNEL1
                   CLR C
                   SUBB A,CHANNEL11
                   ACALL MOREORLESS
                   JZ CHANGE2
                   MOV CHANNEL1,CHANNEL11
                   
CHANGE2:           MOV A,CHANNEL2
                   CLR C
                   SUBB A,CHANNEL21
                   ACALL MOREORLESS
                   JZ CHANGE3
                   MOV CHANNEL2,CHANNEL21
                   
CHANGE3:           MOV A,CHANNEL3
                   CLR C
                   SUBB A,CHANNEL31
                   ACALL MOREORLESS
                   JZ CHANGE4
                   MOV CHANNEL3,CHANNEL31
                   
CHANGE4:           MOV A,CHANNEL4
                   CLR C
                   SUBB A,CHANNEL41
                   ACALL MOREORLESS
                   JZ CHANGE5
                   MOV CHANNEL4,CHANNEL41
                   
CHANGE5:           MOV A,CHANNEL5
                   CLR C
                   SUBB A,CHANNEL51
                   ACALL MOREORLESS
                   JZ CHANGE6
                   MOV CHANNEL5,CHANNEL51
                   
CHANGE6:           MOV A,CHANNEL6
                   CLR C
                   SUBB A,CHANNEL61
                   ACALL MOREORLESS
                   JZ CHANGE7
                   MOV CHANNEL6,CHANNEL61
                   
                   
CHANGE7:           MOV A,CHANNEL7
                   CLR C
                   SUBB A,CHANNEL71
                   ACALL MOREORLESS
                   JZ NOCHANGE
                   MOV CHANNEL7,CHANNEL71
                   
                   MOV A,79H             ;有无变化判断
                   JZ NOCHANGE
                   LCALL CHANGE
                   RET
                                     
NOCHANGE:          RET

CHANGE:            MOV 79H,#00H
                   MOV R7,#09H
                   MOV R1,#70H
LOOP:              CLR A
                   MOV A,@R1
                   MOV C,PSW.0
                   MOV TB8,C   
                   MOV SBUF,A
SR1:               JNB TI,SR1
                   CLR TI
                   INC R1
                   DJNZ R7,LOOP
                RET                  


MOREORLESS:        JC LESS
                   ACALL MORETHAN
                   AJMP SIGNBYTE
LESS:              ACALL LESSTHAN
SIGNBYTE:          MOV A,79H
                   RET

LESSTHAN:          INC A              ;降低幅度判断子程序
                   JZ IGNORELESS
                   INC A
                   JZ IGNORELESS
                   INC A
                   JZ IGNORELESS
                   INC A
                   JZ IGNORELESS
                   INC A
                   JZ IGNORELESS
                   MOV 79H,#01
IGNORELESS:        RET

MORETHAN:          JZ IGNOREMORE      ;升高幅度判断子程序
                   DEC A
                   JZ IGNOREMORE
                   DEC A
                   JZ IGNOREMORE
                   DEC A
                   JZ IGNOREMORE
                   DEC A
                   JZ IGNOREMORE
                   DEC A
                   JZ IGNOREMORE
                   MOV 79H,#01
IGNOREMORE:        RET



SUBPLUS:           MOV R7,#5
                   ACALL ADC 
                   SETB ADCS1
                   RET
                   
ADC:               CLR ADCLK           ;模数采集
                   RRC A
                   MOV ADDI,C
                   SETB ADCLK
                   ;NOP
                   DJNZ R7,ADC
                   CLR ADCLK
                   NOP
                   SETB ADCLK
                   MOV R7,#8
EIGHTBIT:          CLR ADCLK
                   MOV C,ADDO
                   RLC A
                   SETB ADCLK
                   DJNZ R7,EIGHTBIT
                   ;ACALL DELAY50MS
                   RET

                   
DELAY100MS:        MOV 53H, #250            ;50ms延时  
LOOPDELAY2:        MOV 54H, #200
LOOPDELAY3:        DJNZ 54H, LOOPDELAY3
                   DJNZ 53H, LOOPDELAY2
                   RET

ret             ;增益程序 
thpzjfz:                   ;延时
delay1:	  mov	r2, #9d
delay2:	  djnz	r2, delay2
	  
	  djnz	r0, thpzjfz
	  ret


thpzjfz1:  mov	40h, #08fh
delay11:   mov	r2, #00h
delay21:  djnz	r2, delay21
	  djnz	40h, delay11



	  djnz	r0, thpzjfz
	  ret
aaaaa:     
          mov r0,#0FFh
          setb p1.5
          lcall thpzjfz1
          mov r0,#0ffh
          lcall thpzjfz1
          
            
          clr p1.5
          ret
pbxggez :   db 00h,05h,00h,06h,00h,04h,00h,0ch,00h,03h,00h,0bh,00h,83h,00h,0ah,00h,01h,00h,09h,00h,78h
            db 00h,1ch,00h,32h,00h,21h,00h,23h,00h,24h,00h,2bh,00h,34h,00h,33h,00h,43h,00h,3bh,00h,07h
            db 00h,42h,00h,4bh,00h,3ah,00h,31h,00h,44h,00h,4dh,00h,15h,00h,2dh,00h,1bh,00h,2ch,00h,5ah
            db 00h,3ch,00h,2ah,00h,1dh,00h,22h,00h,35h,00h,1ah,00h,54h,00h,5bh,00h,4ch,00h,5ah,00h,5ah
            db 00h,29h,00h,29h,00h,41h,00h,49h,00h,4ah,00h,52h,00h,4eh,00h,55h,00h,3dh,00h,3eh,00h,46h
            db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,25h,00h,2eh,00h,36h
            db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,16h,00h,1eh,00h,26h
            db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,45h,00h,66h,00h,66h
            end         
          
          
          
          

⌨️ 快捷键说明

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