📄 main.asm
字号:
//======================================================================================
//
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//
// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
// ALL RIGHTS RESERVED
//
// The entire notice above must be reproduced on all authorized copies.
//
//========================================================================================
// 工程名称: IRSend.spj
// 功能描述: 实现红外线遥控
//
// 文件来源: 《SPCE061单片机原理及应用技术》第八章 凌阳单片机应用及开发技术,第331页
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.0(or later)
//
// 涉及的库: CMacro.lib
//
// 组成文件:
// main.asm/FIQ.asm/hardware.asm/IR.asm
// hardware.inc/hardware.h
// 日期: 2002-6-12
//===========================================================================================
.INCLUDE hardware.inc
.RAM
.PUBLIC R_InterruptStatus //中断状态标志
.VAR R_InterruptStatus
.EXTERNAL Key
.EXTERNAL Key_Scan
.EXTERNAL IR_Send
.CODE
.PUBLIC _main
_main:
call System_Initial;
MainLoop:
call Key_Scan
r1=[Key]
jz MainLoop
cmp r1,26
ja MainLoop
r2=r1 //通过r2传递Key值
call IR_Send //调用发射程序
r1=0
[Key]=r1
jmp MainLoop
//============ 系统初始化 ===============
.PUBLIC System_Initial;
System_Initial:
r1=0
[P_SystemClock]=r1 //Fosc选择24.576,cpuclk选择FOSC
r1=0
[R_InterruptStatus] = r1
[P_INT_Ctrl]=r1 //禁止中断
IRQ OFF
FIQ OFF
r1=0xffff
[P_IOB_Attrib] = r1 //设B口为同相低电平输出(IOB8为输出)
[P_IOB_Dir] = r1
r1 = 0
[P_IOB_Data] = r1
r1=0xff00
[P_IOA_Attrib] = r1 //A0--A7低电平输入(接键盘),A8---A11同相低电平输出(A8-A11接键盘)。
[P_IOA_Dir] = r1
r1 = 0x0000
[P_IOA_Data] = r1
retf;
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -