📄 test7.lst
字号:
Sunplus u'nSP Assembler - Ver. 1.10.0
Listing File Has Been Relocated
.define P_IOA_DATA 0x7000;
.define P_IOA_DIR 0x7002;
.define P_IOA_ATTRI 0x7003;
.define P_IOB_DATA 0x7005;
.define P_IOB_DIR 0x7007;
.define P_IOB_ATTRI 0x7008;
.define P_INT_CTRL 0x7010;
.define P_INT_CLEAR 0x7011;
.define P_TimerA_Data 0x700A;
.define P_TimerA_Ctrl 0x700B;
.define P_TimerB_Data 0x700C;
.define P_TimerB_Ctrl 0x700D;
.define timea_clk 0x000d;
.define timeb_clk 0x0004;
.DEFINE P_Watchdog_Clear 0x7012; // Watchdog Reset
0000805F .code
.public _main
//=============================================================
_main:
0000805F 40 F1 int off
00008060 4F 92 r1=0x000f //IOA口低四位设为同相高电平输出口
00008061 19 D3 03 70 [P_IOA_ATTRI]=r1
00008063 19 D3 02 70 [P_IOA_DIR]=r1
00008065 19 D3 00 70 [P_IOA_DATA]=r1
00008067 09 93 4F 00 r1=0x004f //IOB口的低4位和IOB6设置为同相高电平输出位
00008069 19 D3 07 70 [P_IOB_DIR]=r1
0000806B 19 D3 08 70 [P_IOB_ATTRI]=r1
0000806D 19 D3 05 70 [P_IOB_DATA]=r1
0000806F 09 93 9F F0 r1=0xf09f; //设置计数初值
00008071 19 D3 0A 70 [P_TimerA_Data]=r1;
00008073 19 D3 0C 70 [P_TimerB_Data]=r1;
00008075 4D 92 r1=timea_clk;
00008076 19 D3 0B 70 [P_TimerA_Ctrl]=r1;
00008078 44 92 r1=timeb_clk;
00008079 19 D3 0D 70 [P_TimerB_Ctrl]=r1;
0000807B 09 93 00 A8 r1=0xa800 //开中断FIQ_PWM、FIQ_TMA、FIQ_TMB
0000807D 19 D3 10 70 [P_INT_CTRL]=r1
0000807F 42 F1 int FIQ
loop:
00008080 00 EE nop
00008081 00 EE nop
00008082 00 EE nop
00008083 44 EE jmp loop
00008009 .text
.public _FIQ
_FIQ:
00008009 A8 DA push r1,r5 to [sp] //压栈保护
0000800A 09 93 00 08 r1=0x0800
0000800C 11 C3 10 70 test r1,[P_INT_CTRL] //比较是否为FIQ_TMB
0000800E 1E 4E jnz FIQ_TMB //是,则转至对应程序段
0000800F 09 93 00 20 r1=0x2000
00008011 11 C3 10 70 test r1,[P_INT_CTRL] //否,则比较是否为FIQ_TMA
00008013 06 4E jnz FIQ_TMA //是,则转至对应程序段
FIQ_PWM: //否,则进入FIQ_PWM中断
00008014 09 93 00 80 r1=0x8000
00008016 19 D3 11 70 [P_INT_CLEAR]=r1 //r1=0x8000
00008018 A8 90 pop r1,r5 from [sp]
00008019 98 9A reti
FIQ_TMA:
0000801A 4F 92 r1=0x000f; //点亮接在A口低四位的四个LED灯
0000801B 19 D3 00 70 [P_IOA_DATA]=r1;
0000801D 0A 95 FF FF r2=0xffff; //延时
delay1:
0000801F 41 92 r1=0x0001 //清看门狗
00008020 19 D3 12 70 [P_Watchdog_Clear]=r1
00008022 41 24 r2-=1;
00008023 45 4E jnz delay1;
00008024 40 92 r1=0x0000; //熄灭LED
00008025 19 D3 00 70 [P_IOA_DATA]=r1;
00008027 09 93 00 20 r1=0x2000;
00008029 19 D3 11 70 [P_INT_CLEAR]=r1;
0000802B A8 90 pop r1,r5 from [sp];
0000802C 98 9A reti;
FIQ_TMB:
0000802D 09 93 4F 00 r1=0x004f; //点亮接在B口低四位的四个LED灯
0000802F 19 D3 05 70 [P_IOB_DATA]=r1;
00008031 0A 95 FF FF r2=0xffff; //延时
delay2:
00008033 41 92 r1=0x0001 //清看门狗
00008034 19 D3 12 70 [P_Watchdog_Clear]=r1
00008036 41 24 r2-=1;
00008037 45 4E jnz delay2;
00008038 09 93 40 00 r1=0x0040; //熄灭LED
0000803A 19 D3 05 70 [P_IOB_DATA]=r1;
0000803C 09 93 00 08 r1=0x0800;
0000803E 19 D3 11 70 [P_INT_CLEAR]=r1;
00008040 A8 90 pop r1,r5 from [sp];
00008041 98 9A reti;
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -