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

📄 main.asm

📁 单片机中LED的实验
💻 ASM
字号:
.define tmb1clk_8hz 0x0000
.define tmb1clk_16hz 0x0001
.define tmb1clk_32hz 0x0002
.define tmb1clk_64hz 0x0003
.define tmb2clk_128hz 0x0000
.define tmb2clk_256hz 0x0004
.define tmb2clk_512hz 0x0008
.define tmb2clk_1024hz 0x000c
.define tmb1_clk  tmb1clk_64hz
.define tmb2_clk  tmb2clk_128hz
 
.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_Timebase_setup 0x700e
.define P_Timebase_clear 0x700f
  
.RAM
.VAR TIME1
.VAR TIME2

.code
.public _main
_main:
     int off
     r1=0xffff
     [P_IOA_ATTRI]=r1
     [P_IOA_DIR]=r1
     r1=0x0000
     [P_IOA_DATA]=r1
     r1=0xffff
     [P_IOB_ATTRI]=r1
     [P_IOB_DIR]=r1
     r1=0x0000
     [P_IOB_DATA]=r1
     r1=tmb1_clk
     r1|=tmb2_clk
     [P_Timebase_setup]=r1
     r1=0x0003
     [P_INT_CTRL]=r1
     r1=0
     [TIME1]=r1
     [TIME2]=r1
     int irq;
loop:
    nop
    nop
    nop
    nop
    jmp loop
 
.text
.public _IRQ6
_IRQ6:
     push r1,r5 to [sp]
     r1=0x0001
     test r1,[P_INT_CTRL]
     jnz I_irq6_tmb2
     I_irq6_tmb1:
     r2=[TIME1]
     r2+=0x0001
     [TIME1]=r2
     cmp r2,64
     jbe LED1_OFF
     r1=0x00ff
     [P_IOA_DATA]=r1
     cmp r2,128
     jbe LED1_RET
     r2=0x000
     [TIME1]=r2
     jmp LED1_RET
LED1_OFF:
     r1=0x0000
     [P_IOA_DATA]=r1
LED1_RET:
     r1=0x0002
     [P_INT_CLEAR]=r1
     pop r1,r5 from [sp]
     RETI
I_irq6_tmb2:
     r2=[TIME2]
     r2+=0x0001
     [TIME2]=r2
     cmp r2,64
     jbe LED2_OFF
     r1=0x00ff
     [P_IOB_DATA]=r1
     cmp r2,128
     jbe LED2_RET
     r2=0x0000
     [TIME2]=r2
     jmp LED2_RET
LED2_OFF:
     r1=0x0000
     [P_IOB_DATA]=r1
LED2_RET:
     r1=0x0001
     [P_INT_CLEAR]=r1
     pop r1,r5 from [sp]
RETI                   
     
     
     

⌨️ 快捷键说明

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