ARM4412裸板驱动LED灯.按键,蜂鸣器的驱动

发布者:daits摸鱼的最新更新时间:2020-02-06 来源: eefocus关键字:ARM4412  裸板驱动  LED灯  按键  蜂鸣器 手机看文章 扫描二维码
随时随地手机看文章

首先找出板子电路图,以LED为例

接下来就是电路的网标:

到对应的芯片手册里区找寄存器的描述

通过对相应寄存器的操作来操作LED灯:

首先将对应的寄存器的地址注册成一个文件:reg.h


  1 

  2 

  3 

  4 

  5 #define gpiobase 0x11000000

  6 

  7 #define GPM4CON (*(volatile unsigned long *)(gpiobase + 0x02E0))

  8 #define GPM4DAT (*(volatile unsigned long *)(gpiobase + 0x02E4))

  9 

 10 #define GPX3CON (*(volatile unsigned long *)(gpiobase + 0x0C60))

 11 #define GPX3DAT (*(volatile unsigned long *)(gpiobase + 0x0C64))

 12 

 13 #define GPD0CON (*(volatile unsigned long *)(gpiobase + 0x4000A0))

 14 #define GPD0DAT (*(volatile unsigned long *)(gpiobase + 0x4000A4))


然后是对寄存器的赋值:


  1 

  2 

  3 #include "reg.h"

  4 

  5 int(*delay)(int)=0xc3e25f90;

  6 int(*print)(char*)=0xc3e114d8;

  7 

  8 void led_off(void);

  9 void led_on(void);

 10 void pwm_off(void);

 11 void pwm_on(void);

 12 

 13 int test(void)

 14 {

 15         GPX3CON &=  ~(0xf << 8);//设置12位K2为0

 16         GPX3CON &=  ~(0xf << 12);//设置12位K2为0

 17         while(1)

 18         {

 19             if(GPX3DAT & (1 << 2))//如果3_2口为1,则说明按键没按

 20             {

 21                 led_off();

 22                 print("lease inputn");

 23 

 24             }

 25             else

 26             {

 27                 led_on();

 28                 print("K1 put down ,LED TURN ONn");

 29             }

 30             if(GPX3DAT & (1 << 3))//如果3_2口为1,则说明按键没按

 31             {

 32                 pwm_off();

 33                 print("lease inputn");

 34             }

 35             else

 36             {

 37                 pwm_on();

 38                 delay(5000);

 39                 print("K2 put down ,BWM: TURN ONn");

 40             }

 41         }

 42     return 0;

 43 }

 44 

 45 void pwm_on(void)

 46 {

 47     GPD0CON &= ~0xffff;

 48     GPD0CON |= 0x1;//配置寄存器为2

 49     GPD0DAT |= 0x1;//date=0xf

 50 }

 51 

 52 void pwm_off(void)

 53 {

 54     GPD0CON &= ~0xffff;

 55     GPD0CON |= 0x0;

 56 //  GPD0DAT &=0x0 ;//date=0xf

 57 

 58 }

 59 void led_off(void)

 60 {

 61     GPM4CON &= ~0xffff;//清零

 62     GPM4CON |= 0x0000;//0---3位清零

 63     GPM4DAT |= 0x0;//date=0xf关闭置一

 64 }

 65 

 66 void led_on(void)

 67 {

 68     GPM4CON &= ~0xffff;

 69     GPM4CON |= 0x1111;//配置寄存器3-0-----3-3全为1111,全为输出模式

 70     GPM4DAT &= ~0x1;//打开置0-4位为0000

 71 }

 72 


这里写了一个while(1)循环,如果没有按键操作的时候将会一直打印“please input”,当K1按下的时候LED会两起,输出“print("K1 put down ,LED TURN ONn");”当K2按下的时候,蜂鸣器会响起,然后打印 print("K2 put down ,BWM: TURN ONn");

dnw下载到板子测试程序:

K1按下:

K2按下:

关键字:ARM4412  裸板驱动  LED灯  按键  蜂鸣器 引用地址:ARM4412裸板驱动LED灯.按键,蜂鸣器的驱动

上一篇:ARM4412的MMU内存管理单元
下一篇:基于S3C2440A定时器的正确使用方法

推荐阅读最新更新时间:2024-11-24 22:39

以C8051F020单片机为控制核心的一键多义按键管理程序的原理
设计采用高性能单片机C8051F020为控制芯片,监控示波器面板上40个按键、3个编码开关及4个电位器的状态。分别介绍了键盘、编码开关和电位器的工作原理,以及其与单片机连接的硬件电路及软件编程的实现。按键部分采用的键盘程序设计方法,给出了键码匹配子程序流程图。 监控程序负责系统中全部硬件和软件资源的分配、调度工作,它提供用户接口,使用户获得友好的工作环境,是系统设计中一个重要组成部分。 1C8051F020单片机概述 伴随着电子技术快速的发展,越来越多的人加入电子开发的大军。在学习电子技术和研发项目的过程中,避免不了要使用一些仪器,例如万用表、示波器等等,然而对于一些非专业的爱好者,拥有一台数字示波器是比较“奢侈”的。本设
[单片机]
以C8051F020单片机为控制核心的一键多义<font color='red'>按键</font>管理程序的原理
技术分享:LED节能线路改为开关电源的设计
LED 节能灯 的广泛使用给人们的日常生活带来了新的变化,而随之也带来了大量用坏的 节能灯 。根据统计数据表明,这些节能灯大部分只是灯管烧坏线路板部分基本上都是好的。因此可利用其改造成各种用途的小型开关 电源 。 一、改造的原则 1.选用线路板成色较新、做工较好、布局设计合理、使用元器件余量较大者; 2.改造后的开关 电源 的输出容量一般不能大于所选用的节能灯的瓦数; 3.改造时要重新计算输出变压器的参数。 二、改造的方法 下面将以一个具体的例子来介绍改造的方法。 1.镇流器的选用 由于半桥电路抗电压不平衡的能力较好,因此对于大部分小功率的电子节能灯来说都是选用半桥电路。在改造开关 电源 时由于其输出端所接的为高频变压器,
[电源管理]
技术分享:<font color='red'>LED</font>节能<font color='red'>灯</font>线路<font color='red'>板</font>改为开关电源的设计
S3C2440—12.按键中断
一. 总体 要驱动按键中断控制LED亮灭,程序要进行如下几部分操作: 在start.S中对CPSR寄存器中清除I位,使能IRQ,这是大前提 根据原理图找出按键对应的外部中断,对外部中断对应引脚做相应配置,使能相应的外部中断:EINTMASK 开启中断使能:INTMSK要设置 编写C中断处理函数,通过INTOFFSET、EINTPEND确定哪个中断触发,并做相应处理,还要清除中断标志位 编写start.S中的IRQ异常处理函数 二. CPSR设置 CPSR的IRQ中断使能位不使能,都行不通,我就找bug找了一天。。。 在代码重定位之后就对CPSR的I位清零,并且分配栈指针,如下: mrs r0, cpsr
[单片机]
S3C2440—12.<font color='red'>按键</font>中断
51单片机|8个按键控制8个LED实现8种功能
任务描述: S1:LED灯全亮; S2:D1、D3、D5、D7亮,然后D2、D4、D6、D8再亮; S3:D5、D6、D7、D8亮; S4:D1、D2、D3、D4亮; S5:D2、D4、D6、D8亮; S6:D1、D3、D5、D7亮; S7:D3、D4、D7、D8亮; S8:D1、D2、D5、D6亮。 硬件电路图: 程序: #include reg51.h void delay(unsigned char i); void main() { unsigned char ledctr; P3=0xff; while(1) { ledctr=P3; switch(ledctr) { case 0xff:P1
[单片机]
基于51单片机实现旋转LED报警(Proteus仿真)
具体功能实现: 当按下开关时,蜂鸣器报警,同时LED旋转式亮灯。 使用器件: AT89C51、按键、电阻、蜂鸣器(SOUNDER)、8只LED灯 Proteus仿真原理图: 仿真: 知识介绍: Proteus布线 为了让整个原理图看上去简洁明了,我们对元器件的导线进行标号,而不是直接和芯片相连。 定时中断系统简图 定时器资源 定时器个数:3个(T0,T1,T2),T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源。 (T0和T1的操作方式是所有51单片机共有的) 中断号: 外部中断0 interrupt 0 定时器0 interrupt 1 外部中断1 interrupt 2 定时器中断1 inte
[单片机]
电容传感器减少机械按键,造就三星Wi-Fi超薄手机
手机OEM们一般通过增加特性和功能实现产品的标新立异。这虽是件好事,但也有不利的一面——过多的特性会使得手机的操控更加困难。Synaptics公司致力于简化用户界面,并使得对全部特性的操控更容易。在三星这款支持Wi-Fi的滑盖GSM照相手机SPH-V6800中,来自Synaptics的一个电容传感器控制这些功能,从而取代了一系列机械按键。Synaptics方案的另一个好处是采用它能设计出更纤薄、流畅的手机来。 就手机界面而言,术语“Zero D”用于上下翻找;One-D基本上是某种形式的闭环轮查;Two-D则更灵活,意味着光标到处游动。“Zero D是大多数手机OEM采用的技术,”Synaptics公司行销副总裁Clark Fo
[焦点新闻]
【拆解】LED红外人体感应
LED 红外感应灯是一种靠感应人体的红外热辐射,检测光环境状态,通过内置延时开关,对灯具进行开启和关闭的新一代智能型照明灯具,又叫LED人体感应灯。外观,看起来好像很普通,看看内部有什么秘密?
[电源管理]
【拆解】<font color='red'>LED</font>红外人体感应<font color='red'>灯</font>
基于状态机的51单片机独立按键检测与消抖思路
状态机的按键检测思路2 先回顾一下定义: 状态机有如下性质 按键状态机发生状态迁移的条件 如何准确检测条件是否发生并进行状态迁移 确保状态机能稳定地进行迁移 按键消抖的原理:状态切换 按键操作触发的时机 先回顾一下定义: 按键从未按下到按下,再到弹起,可以视为一个有4个状态的有限状态机。 分别是未按下、前沿抖动、按下、后沿抖动。 即按键只在这4个状态间进行迁移,而且是当条件满足时按一定的顺序进行迁移: 未按下­­(条件1)­ 前沿抖动­­(条件2)­ 按下­­(条件3)­ 后沿抖动­­(条件4)­ 未按下 当且仅当条件成立时,才进行状态的迁移,当条件不成立时,状态机会保持当前状态不变。 状态机有如下性质 1.状态机会在条件满足时
[单片机]
基于状态机的51单片机独立<font color='red'>按键</font>检测与消抖思路
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved