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

📄 remote_key.asm

📁 电视遥控器软解码程序
💻 ASM
字号:
s_in equ p3.3
key_num equ 40h
key_dat equ 41h
key_en bit 00h

org 0000h
ajmp main
org 0013h
ajmp key_scan


org 0030h
main:mov sp,#53h
     setb ex1
     setb it1
     clr ie1
     setb ea
   dd:;jb key_en,next
     jmp dd
next:mov p2,key_dat
     jmp dd

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;程序名称:电视遥控器软解码程序                ;;
;;占用资源:A,R1,C                            ;;
;;硬件接口:int0 or int1   (s_in)               ;;
;;软件接口:key_num-数据缓存、key_dat-返回键值 ;;
;;          key_en-键有效标志,1有效            ;;
;;注    意:程序在执行时不能被中断,否则会出错!;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
key_scan:push a
         mov a,r1
         push a
         mov dptr,#0000h
     asd:inc dptr            ;low level
         mov a,dph
         clr c
         subb a,#2
         jnc out
         jnb s_in,asd
         mov a,dph
         jz out

         mov dptr,#0000h
     asf:inc dptr            ;high level
         mov a,dph
         clr c
         subb a,#2
         jnc out
         jb s_in,asf
         mov a,dph
         jz out

         mov r1,#10h
     asg:jnb s_in,$
         jb s_in,$
         djnz r1,asg

         mov r1,#09h
    kkkk:jnb s_in,$
         mov dptr,#0000h
     ass:inc dptr            ;low level
         jb s_in,ass
         mov a,dph
         jz ask
         setb c              ;1
         mov a,key_num
         rrc a
         mov key_num,a
         jmp ook

     ask:clr c               ;0
         mov a,key_num
         rrc a
         mov key_num,a

     ook:djnz r1,kkkk

         mov dptr,#key_tab
         mov r1,#00h
         mov a,#00h
   nextt:mov a,r1
         movc a,@a+dptr
         inc r1
         cjne a,#0aah,ash
         jmp out
     ash:cjne a,key_num,nextt
         dec r1
         mov key_dat,r1
         setb key_en
         
         mov a,key_dat
         cpl a
         mov p2,a
         
        
     out:pop a
         mov r1,a
         pop a
         clr ie1
         reti
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

key_tab:db 04h,80h,00h,81h,01h,82h,02h,83h,03h,84h,
        db 85h,05h,86h,06h,8eh,0eh,89h,09h,88h,08h,
        db 8ah,8bh,07h,0bh,0ah,8dh,8ch,0ch,0aah,0aah

⌨️ 快捷键说明

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