历史上的今天
今天是:2024年10月29日(星期二)
2019年10月29日 | ARM S2C2410A控制5个LED流水灯
2019-10-29 来源:51hei
无论是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口为输出的数据
ldr r0,=GPACON ;调取A口输出的方向控制寄存器地址
str r1,[r0] ;把方向控制数据赋值给A口方向寄存器0x56000000
上一篇:C语言常用ARM三个头文件
下一篇:S3C2440的UART通信
史海拾趣
|
我的程序出现了未定义指令异常。在svc和irq下面的r14,我查看lr的地址属于在c语言里面,我一直调用的两个函数,这两个函数每次运行,至少能运行几十万次。是什么原因造成了未定义指令异常呢??? 另外,我原来程序初始化的时候,将svc的sp指向0x0 ...… 查看全部问答> |
|
单片机烧写程序时,不是需要烧写器?为什么我买的开发板上用串口转ISP的接口就可以直接烧写了? 单片机烧写程序时,不是需要烧写器?为什么我买的开发板上用串口转ISP的接口就可以直接烧写了?… 查看全部问答> |
|
我们是这样一个群体,由上世纪60年代各名牌大学毕业的、有着几十年丰富工作经验的专业人仕组成,目前都已退休,分布在全国各地,我们不想再出山打工,但我们也不想把几十年研究的成果和经验都随我们的年龄增大而消失,而且为了自己晚年生活得充实一 ...… 查看全部问答> |
|
在一个网站看到一个不错的三角波发生电路,需要的看看吧 原文地址 http://pcbheaven.com/circuitpages/Triangle_Wave_Generator/ It is designed to operate under 5 Volts, but different voltages can be applied as well ...… 查看全部问答> |
|
STM32F107VCT6 107USB例程USB DEVICE例程 1、DEVICE_HID例程说明 1.1、HID简介HID(Human Interface Device)人机接口设备类别是Windows最早支持的USB类别。由其名称可以了解HID设备是计算机直接与人交互的设备,例如键盘、鼠标和游戏杆等。不过HID设备不一定要有人机接口,只要符合HI ...… 查看全部问答> |




