您的位置 首页 5G

ARM7 2131 BEEP程序剖析

ARM7BEEP程序分析在原理图上我们看到蜂鸣器是接到了P07口上,短接好接口。#includeconfig.h#defineBEEP17//P0.7控制蜂…

ARM7 BEEP程序剖析

在原理图上咱们看到蜂鸣器是接到了P07口上,短接好接口。

#include “config.h”

#define BEEP 1 << 7 // P0.7操控蜂鸣器,低电平蜂鸣 包括一个config.h的头文件,里边主要是界说了数据类型的时钟频率等。
void DelayNS (uint32 dly)
{
uint32 i;

for ( ; dly>0; dly–)
for (i=0; i<50000; i );
}
写了一个延时函数。

主函数如下:
int main (void)
{
PINSEL0 = 0x00000000; // 设置管脚衔接GPIO
IO0DIR = BEEP; // 设置BEEP操控口为输出

while (1)
{
IO0SET = BEEP; // BEEP中止蜂鸣
DelayNS(50);
IO0CLR = BEEP; // BEEP 蜂鸣
DelayNS(50);
}

return 0;
}

首要咱们剖析下管束衔接模块包括的3个寄存器PINSEL0~PINSEL2。
PINSEL0是32位寄存器,每两位操控一个引脚,来确认每一个引脚的功用,所以每一个引脚的功用复用最多也只要4种。PINSEL0操控P00~P15这16个引脚。
PINSEL1操控着P16~P31这16个引脚。
PINSEL2特别一些,主要是用于操控P1口关于PINSEL2的拜访要运用“读-修正-写”的办法。
PINSEL2的0、1两位是保存位,用户软件不要向其写1.
2位,当为0时表明P1.13~P1.26用作GPIO,为1时用做、作调试端口。
3位,为0时表明P1.25~P1.16用作GPIO,为1时表明用于盯梢端口。

只要当管脚挑选GPIO功用时,IO0DIR/IO1DIR寄存器的方向操控位才有用。其它功用的方向都是自动操控的。

PINSEL0 = 0x00000000;这儿便是当P00~P15都设制成为了GPIO功用。
IO0DIR = BEEP;表明P07设为输出。

while (1)
{
IO0SET = BEEP; // BEEP中止蜂鸣
DelayNS(50);
IO0CLR = BEEP; // BEEP 蜂鸣
DelayNS(50);
}
IO0CLR功用是对位清零,IO0SET功用是对方位1.
这儿便是让蜂鸣器鸣叫了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/262559.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部