蜂鸣器控制实验

实验名称 蜂鸣器控制实验

实验目的 熟悉ADS使用,熟悉c编程

实验原理

 

    ARMGPB0控制蜂鸣器,当输出高电平时,三极管导通,蜂鸣器工作。输出低电平时,三极管未工作,蜂鸣器停止。

实验步骤:

先初始化指针sp,用不着中断,就不必设置了。文件Init.s,代码如下:

       AREA DATA, CODE, READONLY

    ENTRY

       ldr r13,=0x1000

       IMPORT BuzzerMain

       b BuzzerMain

       END

初始化完成后,跳转到Main.c,代码如下:

#define GPBCON (*(volatile unsigned *)0x56000010)

#define GPBDAT (*(volatile unsigned *)0x56000014)

#define GPBUP (*(volatile unsigned *)0x56000018)

#define time 300

void Delay(unsigned int i);

void BuzzerMain()

{

       GPBCON=0xfffffd;//GPB0

       GPBUP =0xfff;//使用的口不上拉????

       while(1)

       {

       GPBDAT ^=0x001;//异或 使buzzer间断地响

       Delay(time);

       }

}

 

void Delay(unsigned int i)

{

       unsigned int j, k;

      

       while(i--)

       for (k=0;k<=0xff;k++)

              for (j=0;j<=0xff;j++);

}

      

 

实验心得:

开始的GPB0的设置我照抄网上下的一个实验手册,它的硬件连接和我一样,本以为没什么问题的,结果它设置的没看明白,程序运行蜂鸣器不响,结果查了DATASHEET才知道GPBCON设置错了,0xfffffd最后两位01才是输出,开始设成00输入了。它GPBCON设了两次,即

GPB0CON&=0xfffffc 这是设成输入的

GPB0CON&=0x0000001;这才是输出

搞不懂为什么这么做?还有关于上拉电阻的我大致搞清楚了,其实就是用一个电阻把电源引到输出引脚,可以加大输出电流,增强负载能力,我这个实验直接负载就够了,所以我没使能上拉电阻,一样可以响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值