;汇编指令实验 ;定义端口E 寄存器预定义 rGPFCON EQU 0x56000040 rGPFDAT EQU 0x56000044 rGPFUP EQU 0x56000048
AREA Init, CODE, READONLY ;该伪指令定义了一个代码段,段名为Init,属性只读 ENTRY ;程序的入口点标识
ResetEntry ;下面这三条语句,主要是用来设置I/O 口GPE7 为输出属性 ldr r0,=rGPFCON ;将寄存器rPCONE 的地址存放到寄存器r0 中 ldr r1,=0x4000 ;二进制 100 0000 0000 0000 即15、14位为 10 str r1,[r0] ;将r1 中的数据存放到寄存器rPCONE 中
;下面这三条语句,主要是禁止GPE 端口的上拉电阻 ldr r0,=rGPFUP ldr r1,=0xffff str r1,[r0] ldr r2,=rGPFDAT ;将数据端口E 的数据寄存器的地址附给寄存器r2
ledloop ldr r1,=0x1ffff str r1,[r2] ;使GPE7 输出高电平,D14 灯会灭 bl delay ;调用延迟子程序 ldr r1,=0x0 str r1,[r2] ;使GPE7 输出低电平,D14 灯亮 bl delay ;调用延迟 b ledloop ;不断的循环,D14 将不停的闪烁
;下面是延迟子程序 delay ldr r3,=0x1ffff ;设置延迟的时间 delay1 sub r3,r3,#1 ;r3=r3-1 cmp r3,#0x0 ;将r3 的值与0 相比较 bne delay1 ;比较的结果不为0(r3 不为0),继续调用delay1,否则执行下一条语句 mov pc,lr ;返回 END ;程序结束符 |