📄 led.asm
字号:
//========================================================
// 文件名称: Led.asm
// 功能描述: 数码管显示
// 维护记录: 2005-10-17 v1.0
//========================================================
.INCLUDE hardware.inc
.DATA
address: .dw 0x00bf,0x0086,0x00db,0x00cf, 0x00e6,0x00ed,0x00fc,0x0087,0x00ff,0x00ef;//'0''1''2''3''4''5''6''7''8''9'的代码
Dig: .dw 0x0100,0x0200,0x0800,0x1000,0x2000,0x4000;//选中LED管
.CODE
//============================================================================================
//汇编格式:_SP_Init_A
//实现功能:初始化A口
//参数:无
//返回值:无
//破坏寄存器:r1
//=============================================================================================
.PUBLIC _SP_Init_A; //初始化A口为带数据缓存器的同相高电平输出口
_SP_Init_A: .PROC
r1=0xffff;
[P_IOA_Attrib] = r1;
[P_IOA_Dir] = r1;
[P_IOA_Data] = r1;
retf
.ENDP;
//============================================================================================
//汇编格式:_SP_Init_B
//实现功能:初始化B口
//参数:无
//返回值:无
//破坏寄存器:r1
//=============================================================================================
.PUBLIC _SP_Init_B;
_SP_Init_B: .PROC
r1 = 0x00f0; //低8位中,IOB0~IOB3为带下拉电阻输入,
[P_IOB_Attrib] = r1; //IOB4~IOB7为高电平输出
[P_IOB_Dir] = r1;
[P_IOB_Data] = r1;
retf
.ENDP
//============================================================================================
//汇编格式:_show
//实现功能:数据显示函数
//参数:Dig,数码管位信号;led_code,显示数据
//返回值:无
//破坏寄存器:r1~r5
//=============================================================================================
.PUBLIC _show;
_show: .PROC
push bp to [sp]; //弹出入口参数共两个入口参数
bp=sp + 1
loop:
r1=[bp+3] //取出第一个入口参数
r3=[bp+4] //取出第二个入口参数
r2=r1+Dig; //取LED管的片选地址
r2=[r2]
r4=r3+address //取显示数据的地址
r4=[r4]
r2|=r4
[P_IOA_Data] = r2; //显示数据
pop bp from [sp]
retf;
.ENDP
//============================================================================================
//汇编格式:_F_ClearWatchdog
//实现功能:清看门狗
//参数:无
//返回值:无
//破坏寄存器:r1
//=============================================================================================
.PUBLIC _F_ClearWatchdog;
_F_ClearWatchdog: .PROC
r1 = 0x0001;
[P_Watchdog_Clear] = r1;
RETF
.ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -