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

📄 ir.asm

📁 这是一个有关C8051F020单片机的实验教学材料,相信对于单片机的研究人员会有很大的帮助.
💻 ASM
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
//文件名:	IR.ASM
//
//编写人:	LC
//
//编写时间:2005/03/10
//
//目标器件: C8051F02x
//
//编译工具: Silicon Laboratories IDE
//
//程序说明:	此程序接收红外发射过来的数据,接收解码后由CPU读取	
			

//------------------------------------------------------------------------------------
// 头文件包含
//------------------------------------------------------------------------------------
$include (c8051f020.inc)         // SFR declarations

//------------------------------------------------------------------------------------
// Global CONSTANTS
//------------------------------------------------------------------------------------
DataPort	EQU		0x8400		;红外数据接收口

BUZ			EQU		P3.5

	ORG		0
	AJMP	main
	ORG		93H
	AJMP	INT6_ISR
	ORG		100H

;延时子程序
Delay:
    mov   R7, #01h			
Delay1:
    mov   R6, #80h
Delay0:
    mov   R5, #00h
    djnz  R5, $
    djnz  R6, Delay0
    djnz  R7, Delay1
	ret


;始化外部中断6
INITEXINT67:
	ORL		EIE2,#10H		;允许外部中断6
	RET

;外部中断6的中断服务程序
INT6_ISR:
	ANL		P3IF,#NOT(40H)		;清外部中断6标志
	MOV		R1,#01H				;置允许读标志
	RETI

//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
main:
	;无效看门狗
	MOV		WDTCN,#0deH
	MOV		WDTCN,#0adH
	LCALL	PORT_Init					;输入/输出口初始化
	LCALL	INITEXINT67					;初始化外部中断6
	SETB	EA							;开总中断
	MOV		R1,#00H
LOOP:
	CJNE	R1,#01H,LOOP				;是否允许读红外数据
	MOV		DPTR,#DataPort
	MOVX	A,@DPTR						;读红外数据
	RLC		A
	JNC		LOOP						;是否接到红外数据
	MOVX	A,@DPTR
	ANL		A,#0FH
	MOV		R0,A						;保存收到的红外数据						;
	CLR		BUZ							;蜂鸣器响
	LCALL	Delay
	LCALL	Delay
	LCALL	Delay
	SETB	BUZ							;蜂鸣器灭
	NOP
Re_RD:	
	MOVX	A,@DPTR						;上次红外中断是否结束
	RLC		A
	JC		Re_RD
	NOP
	LJMP	LOOP
	NOP
	RET


;配置交叉开关和输入/输出口
PORT_Init:
	MOV		XBR2,#40H		;使能交叉开关和弱上拉
	ORL		P74OUT,#0fH		;使能P4~P7推挽输出
	ORL		EMI0CF,#2cH		;EMIF工作在地址/数据复用方式,只用外部存储器,ALE高/低脉宽占1个SYSCLK周期
	ORL		EMI0TC,#6cH		;地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期
	ORL		P3MDOUT,#20H	;使能P3.5推挽输出
	RET
	END

⌨️ 快捷键说明

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