资源描述:
《ARM实验一;实现4个LED的跑马灯控制.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、具体思路:由于开发板是将GPF4-7与灯相连,所以通过设置GPFCON控制寄存器将将LED灯相连的引脚4,5,6,7设置为输出功能,将他们的上拉电阻设置为禁用(设置GPFUP为0),通过修改GPFDAT寄存器的数值来实现灯的亮和灭,主要是将具体引脚对应的GPFUP设置为0,使之为低电平,从而使灯可以亮。再设置几个延迟将灯亮的时间延长。最后用C语言的mian函数调用LEDTEST函数即可。主要ARM代码部分:GPFCON EQU 0x56000050 GPFDAT EQU 0x56000054 GPFUP EQU 0x56000058 AREA LEDT
2、ESTARM,CODE,READONLY EXPORTLEDTEST IMPORTmain ENTRY LEDTEST ;设置每个引脚的功能,设置GPF4-7为output LDRR0,=GPFCON LDRR1,=0x5500 STRR1,[R0] ;禁止他们的上拉电阻 LDRR0,=GPFUP LDRR1,=0xff00 STRR1,[R0] LDRR2,=GPFDAT ;下面进行跑马灯的循环 LOOP2 LDRR1,=0xdf STRR1,[R2] BLDELA
3、Y2 LOOP3 LDRR1,=0x7f STRR1,[R2] BLDELAY3 LOOP1 LDRR1,=0xef ;低电平设置 STRR1,[R2] BLDELAY1 ;延迟 LOOP4 LDRR1,=0xbf STRR1,[R2] BLDELAY4 ;延迟程序 DELAY1 LDRR3,=0x8ffff ;设置延长时间 DELAY5 SUBR3,R3,#1 ;r3=r3-1 CMPR3,#0x0 ;
4、将r3的值与0相比较 BNEDELAY5 ;比较的结果不为0(r3不为0),继续调用delay1,否则执行下一条语句 BLOOP4 MOVPC,LR ;返回 DELAY2 LDRR3,=0x8ffff DELAY6 SUBR3,R3,#1 CMPR3,#0x0 BNEDELAY6 BLOOP3 MOVPC,LR DELAY3 LDRR3,=0x8ffff
5、 DELAY7 SUBR3,R3,#1 CMPR3,#0x0 BNEDELAY7 BLOOP1 MOVPC,LR DELAY4 LDRR3,=0x8ffff DELAY8 SUBR3,R3,#1 CMPR3,#0x0 BNEDELAY8 BLOOP2 MOVPC,LR END