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

📄 yk1.asm

📁 AT89C2051制作红外线多路遥控器
💻 ASM
字号:
k0 	BIT P1.0
k1  	BIT P1.1
k2 	BIT P1.2
k3  	BIT P1.3
k4 	BIT P1.4
k5  	BIT P1.5
k6 	BIT P1.6
k7  	BIT P1.7
bz	bit 00h
k0h	equ #0f1h
k0l 	equ #0c8h       ;k0键输出频率300Hz833
k1h	equ #0f8h
k1l 	equ #0ech       ;k1键输出频率600Hz417
k2h	equ #0feh
k2l 	equ #0eah       ;k2键输出频率900Hz278
k3h	equ #0ffh
k3l 	equ #030h       ;k3键输出频率1200Hz208
k4h	equ #0ffh
k4l 	equ #059h       ;k4键输出频率1500Hz167
k5h	equ #0ffh
k5l 	equ #075h       ;k5键输出频率1800Hz139
k6h	equ #0ffh
k6l 	equ #089h       ;k6键输出频率2100Hz119
k7h	equ #0ffh
k7l 	equ #098h      	;k7键输出频率2400Hz104
        ORG	0000H
        aJMP	START
     	ORG	000BH   ;定时器T0入口
	aJMP 	intt0
        ORG	001bH  	;定时器T1入口 
        aJMP	intt1	        
        org 0030h
intt0:	cpl p3.4
	mov a,r1
        mov th0,a
	mov a,r2
        mov tl0,r2
	reti
intt1:	clr tr0
	clr et0
	clr tr1
	clr et1
	setb bz
	setb p3.4
	reti
start: 	MOV P1,#0FFH
	mov p3,#0ffh
        MOV TMOD,#11H   ;计数器T0、T1工作在方式1
        setb ea         ;开所有中断
xh:	jb k0,d01
	acall ys
	Jb k0,d01	;k0
	jnb k0,$
	acall sett1
	mov r1,k0h	
	mov r2,k0l
	acall sett0
	jnb bz,$
d01:	jb k0,d02
	acall ys
	Jb k0,d02	;k1
	jnb k0,$
	acall sett1
	mov r1,k1h	
	mov r2,k1l
	acall sett0
	jnb bz,$
D02:	jb k0,d03
	acall ys
	Jb k0,d03	;k2
	jnb k0,$
	acall sett1
	mov r1,k2h	
	mov r2,k2l
	acall sett0
	jnb bz,$
D03:	jb k0,d04
	acall ys
	Jb k0,d04	;k3
	jnb k0,$
	acall sett1
	mov r1,k3h	
	mov r2,k3l
	acall sett0
	jnb bz,$
D04:	jb k0,d05
	acall ys
	Jb k0,d05	;k4
	jnb k0,$
	acall sett1
	mov r1,k4h	
	mov r2,k4l
	acall sett0
	jnb bz,$
D05:	jb k0,d06
	acall ys
	Jb k0,d06	;k5
	jnb k0,$
	acall sett1
	mov r1,k5h	
	mov r2,k5l
	acall sett0
	jnb bz,$
D06:	jb k0,d07
	acall ys
	Jb k0,d07	;k6
	jnb k0,$
	acall sett1
	mov r1,k6h	
	mov r2,k6l
	acall sett0
	jnb bz,$
D07:	jb k0,d08
	acall ys
	Jb k0,d08	;k7
	jnb k0,$
	acall sett1
	mov r1,k7h	
	mov r2,k7l
	acall sett0    
	jnb bz,$
d08:	ajmp xh
ys:	mov r5,#80h
ys1:    djnz r5,ys1
        ret
sett1:  MOV TH1,#3ch   	;定时时间约为100ms
        MOV TL1,#0b0h
        setb tr1        ;启动T1计时
        setb et1        ;允许T1中断
	clr bz
	ret
sett0:	MOV TH0,r1 
        MOV TL0,r2
        setb tr0
	setb et0
	ret
	end

⌨️ 快捷键说明

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