《arm开发板的关于控制灯亮,蜂鸣器以及按键的简单编程.docx》由会员分享,可在线阅读,更多相关《arm开发板的关于控制灯亮,蜂鸣器以及按键的简单编程.docx(3页珍藏版)》请在三一办公上搜索。
1、arm开发板的关于控制灯亮,蜂鸣器以及按键的简单编程我的开发板是 s3c2440。 程序简介:开发板有4个灯,6个按键,通过程序实现通过按下按键来使灯亮或灯灭,而且按键让蜂鸣器发声。 编程流程:要是灯亮,必须要知道控制灯的寄存器,当然也要知道按键和蜂鸣器的控制器。这就要查询开发板的原理图和开发板手册了。 灯为led你通过搜索原理图,会找到对应的灯的电路的连接,如下图:然后你会发现与led连接的是nled,然后搜索nled,得到下图: 看此图,你会发现控制4个灯的分别是GPB5,GPB6,GPB7,GPB8,这样你就可以在开发板的手册上查询GPB的内存地址了。如下图: 上面图片的解释:GPBCO
2、N是灯的控制器,GPBDAT是灯的状态。灯亮是“输出”,因此GPBCON相应的位为01. 长话短说吧:也就是说要控制灯1亮,首先设置GPBCON的10-11位为01,然后设置状态GPBDAT第5位为0.这样灯就亮 了。 可能理论不好理解。下面先附上源代码: #include y1.h /我的头文件,自己实现吧,名字可以改变 #define GPBCON (*(volatile unsigned *)0x56000010) /灯的控制寄存器的内存地址 #define GPBDAT (*(volatile unsigned *)0x56000014) /灯的状态寄存器的内存地址 #define G
3、PGCON (*(volatile unsigned *)0x56000060) /蜂鸣器的控制寄存器内存地址 #define GPGDAT (*(volatile unsigned *)0x56000064) /蜂鸣器的状态寄存器内存地址 void led_on(int i) /使灯亮的函数 if(i4) i = i%4; GPBDAT = GPBDAT & (14) i = i%4; GPBDAT = GPBDAT | (1 3 & 1; if(i2 = 1) led_off(1); else led_on(1); i3 = GPGDAT 5 & 1 ; if(i3 = 1) led_off(2); else led_on(2); i4 = GPGDAT 6 & 1 ; if(i4 = 1) led_off(3); else led_on(3); i5 = GPGDAT 7 & 1 ; if(i5 = 1) GPBDAT = 0x1e0; else GPBDAT = 1; void delay /延迟函数 int i,j; for(i=0;i200;i+) for(j=0;j65536;j+) ;