×
单片机 > 单片机程序设计 > 详情

ARM S2C2410A控制5个LED流水灯

发布时间:2020-06-18 发布时间:
|


无论是S3C2410A还是S3C2440A,其IO口B都是11位二进制数,xxx  xxxx xxxx,现在控制第5、6、7、8为做输出点亮LED灯(共阳极,输出0点亮),即xx8  765x  xxxx,GPBCON            equ            0x56000010

GPBDAT             equ            0x56000014

GPBUP               equ            0x56000018

                        xport xmain

                        area Init,code,readonly

                        entry

                        export

xmain

                        ldr r0,=GPBCON

                        ldr r1,[r0]

                        bic r1,#0x3fC00  ;r1=xx00 0000 00xx xxxx xxxx

                        orr r1,#0x15400  ;r1=xx01 0101 01xx xxxx xxxx

                        str r1,[r0]            ;r1传给GPBCON设置8765位为输出

                        ldr r0,=GPBUP

                        ldr r1,[r0]

                        orr r1,#0x1e0       ;r1=xx1 111x xxxx

                        str r1,[r0]             ;开B口第8、7、6、5位上拉电阻

                        ldr r0,=GPBDAT


        ldr r2,[r0]            ;把B口最初状态保存在R2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  

LOOP                dr r1,[r2]

                        orr r1,#0x1c0

                        str r1,[r0]

                        bl  delay      ;BL跳转时将PC+4值自动保存在R14即LR中,也就是将程序的下一个语句地址保存在lr中

                                          ;在转移的程序后执行mov     pc,lr相当于返回,这样BL相当于调用子程序,pc=lr相当于子程序返回

                      ;;;;;;;;;;;;;;;;;; 

                        dr r1,[r2]

                        orr r1,#0x1a0

                        str r1,[r0]

                        bl  delay

                    ;;;;;;;;;;;;;;;;;;;;; 

                        ldr r1,[r2]

                        orr r1,#0x160

                        str r1,[r0]

                        bl  delay

                    ;;;;;;;;;;;;;;;;;;;;;;;; 

                        ldr r1,[r2]

                        orr r1,#0x0e0

                        str r1,[r0]

                        bl  delay

                    ;;;;;;;;;;;;;;;;;;;;;;;; 

                        b LOOP

delay

                        mov r3,#3

delay1               sub r3,r3,#1

                        cmp r3,#0x0

                        bne delay1 

                        mov pc,lr           ;这句相当于子程序返回语句

                        end


GPA            equ 0x000000

                    GET d:abcINC2440addr.inc

                    GET d:abcINCOption.inc

                    GET d:abcINCMemcfg.inc


                    area Init,code,readonly

                    CODE32

                     entry     

xmain                  

start 

                    ldr r0,=GPACON

                    ldr r1,=GPA

                    str r1,[r0]

                    ldr r0,=GPADAT;

LOOP2        mov r1,#0

                    mov r2,#1

LOOP1        str r2,[r0]

                    BL delay

                    MOV r2,r2,LSL#1

                    add r1,#1

                    cmp r1,#23

                    bne LOOP1

                    B LOOP2


delay           mov r3,#5

delay1        sub r3,r3,#1

                   cmp r3,#0 

                    bne delay1

                    mov pc,lr

                    end


GPBCON                                  equ            0x56000010

GPBDAT                                  equ            0x56000014

GPBUP                                    equ            0x56000018

GPAOUT                                 equ             0x0000000

GPACON                                 equ             0x56000000

GPADAT                                  equ            0x56000004

                                                 export  xmain

                                                area Init,code,readonly

                                                 CODE32

                                                 entry

                                                export

                                                GBLA nn   ;设置全局变量nn


xmain                  

                                            ldr r1,=GPAOUT ;调取设置A口为输出的数据



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法