APP下载

基于S3C2440开发板实现LED灯点亮

2013-11-05

长江工程职业技术学院学报 2013年4期
关键词:灯亮开发板原理图

项 伟

(长江工程职业技术学院,武汉 430212)

1 前 言

天嵌S3C2440开发板是一款ARM9的学习板,目前该开发板虽然配套了使用手册,但是对于刚接触ARM又没有嵌入式技术基础的学生来说不够简洁直观,学起来较有难度。本文给出了在该开发板下通过GPIO接口实现LED灯点亮的开发过程,以良好的简洁性、实用性来激发学生学习ARM的兴趣。

2 GPIO编程

GPIO是通用可编程输入/输出接口,是ARM处理器中结构比较简单的外部设备/电路,往往通过它的引脚值来控制外部设备。

S3C2440处理器含有130个多功能的输入/输出引脚,它们分成9组输入/输出端口,分别是Port A~Port J,即GPA~GPJ。每组GPIO接口又有不同数量的引脚,如GPA有25个引脚,GPB有11个引脚等。除了GPA端口外,其余8组端口都有端口控制寄存器GPnCON、端口数据寄存器GPnDAT、端口上拉寄存器GPnUP。端口控制寄存器用于定义每个引脚的功能;端口数据寄存器的每位数据都直接引到芯片外部,依据定义端口的功能供外部设备读或写;端口上拉寄存器用于控制每个端口组的上接电阻的允许/禁止。

端口B控制寄存器GPBCON描述如表1所示。

表1 GPBCON控制寄存器控制位状态表

端口B数据寄存器GPBDAT是1个[10:0]位的寄存器,它的每一位用来分别存放GPBn的数据。当端口被配置成输入时,外部数据可以从对应的端口中读出;当端口被置成输出时,写入该寄存器的数据会被送到对的引脚上;当端口被配置成功能引脚时,此寄存器未定义。

3 LED电路原理图

天嵌S3C2440开发板的LED电路原理图如图1所示,它含有LED1、LED2、LED3、LED4共四个LED灯,每个LED灯实际上就是一个发光二极管,若使某个LED灯亮,必须供给对应的发光二极管低电平,反之,LED灯灭,必须供给对应的发光二极管高电平。

LED1~LED4分别与GPB组端口的GPB5~GPB8相连,通过GPB5~GPB8引脚的低电平控制LED1~LED4灯亮。所以需要通过GPBCON寄存器将GPB5~GPB8设置为输出功能,将数据0供给LED3的发光二极管。

图1 LED电路原理图

4 程序设计与实现

GPBCON寄存器将GPB5~GPB8设置为输出功能,GPBCON寄存器的某两位为01时表示设置该引脚为Output功能,所以,配置GPBCON寄存器的GPB5[11:10]~GPB8[16:17]都为01,其余位都为00,二进制数据经过转换得到十六进制数据是0×00015400。

为使LED1~LED4灯亮,将数据0存放到GPBDAT数据寄存器的对应5~8位,其余位不管。若是灯灭,就将数据1存放到GPBDAT数据寄存器的对应5~8位,二进制数据经过转换得到十六进制数据是0×1e0。端口初始化代码:

四个LED灯亮代码:

四个LED灯灭代码:

为了更好地观察LED灯亮,使LED灯交替亮灭,需要延时。

延时功能代码:

猜你喜欢

灯亮开发板原理图
纪念八斗塆共存社成立100周年感怀
2019款广汽本田凌派发动机故障灯亮
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
浅析单片机开发板的设计与制作
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
宝马750li发动机大修后安全气囊灯亮
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板
Arduino和Atmel发布Arduino Zero开发板