Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104603
  • 博文数量: 31
  • 博客积分: 2292
  • 博客等级: 大尉
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-17 23:41
文章分类

全部博文(31)

文章存档

2011年(2)

2010年(29)

分类: 嵌入式

2010-03-24 22:19:30


GPBCON EQU 0x56000010
GPBDAT EQU 0x56000014
WTCON EQU  0X53000000
            CODE32
            AREA ASM_LED,CODE ,READONLY
            ENTRY

        LDR R0,=WTCON ;看门狗关闭
        LDR R1,#0
        STR R1,[R0]
        
        LDR SP,=1024*4;堆栈设置
        
        
        LDR R0,=GPBCON
        LDR R1,=(1<<10|1<<12|1<<14|1<<16)
        STR R1,[R0]


AGAIN    
        LDR R0,    =GPBDAT
        LDR R2,[R0]
        MOV R1,#0XFFFFFFFF;全灭
        STR R1,[R0]


    
        LDR R1,=0X01200000            
NEXT1
        SUB R1,R1,#1       ;延时
        CMP R1,#0
        BNE NEXT1
        
        LDR R0,    =GPBDAT
        LDR R2,[R0]
        MOV R1,#0         ;全亮
        STR R1,[R0]
    
        LDR R1,=0x01200000            
NEXT2
        SUB R1,R1,#1
        CMP R1,#0
        BNE NEXT2
        
        
        LDR R0,    =GPBDAT
        LDR R2,[R0]
        MOV R1,#0XFFFFFFFF
        STR R1,[R0]


    
        LDR R1,=0X01200000            
NEXT3
        SUB R1,R1,#1
        CMP R1,#0
        BNE NEXT3
        
        LDR R0,    =GPBDAT
        LDR R2,[R0]
        AND R1,R2,#0
        STR R1,[R0]
    
        LDR R1,=0X01200000    
NEXT4
        SUB R1,R1,#1
        CMP R1,#0
        BNE NEXT4

        B AGAIN            ;循环
        
END
                
        
        
        


只是全灭和全亮,板子是mini2440,四个LED灯分别使用GPBCON寄存上的4组“2bit位”来配置其是否是输出状态,例如,LED1使用第11、12bit,LED2使用第13、14bit,LED3使用第15、16bit,LED4使用第17、18bit。当把这两位(从高位到低位的顺序看,即[bit12、 bit11]这样为一组)设置为00则表示输入状态,01(对于LED1就是bit12为0,bit11为1)表示输出状态,10为特殊功能,11保留待用。
阅读(936) | 评论(0) | 转发(0) |
0

上一篇:裸奔之--led闪烁

下一篇:流水灯_asm

给主人留下些什么吧!~~