微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 以按键控制蜂鸣器

以按键控制蜂鸣器

时间:10-02 整理:3721RD 点击:

    除了LED之外,其它的简单器件就属按键与蜂鸣器,这里就把它们合在一起来测试。按键与蜂鸣器的连线图分别如图1和图2所示,由于它们俩一个是输入器件,一个是输出器件,故涉及GPIO口的两种工作模式。

设置按键端口的语句为:

         GPIO_SetMode(PC, BIT12, GPIO_MODE_INPUT);  //  K1

         GPIO_SetMode(PC, BIT13, GPIO_MODE_INPUT);  //  K2

设置蜂鸣器端口的语句为:

GPIO_SetMode(PD, BIT11, GPIO_MODE_OUTPUT);  //  BEEP



    图1 按键连线图


    图2 蜂鸣器连线图

   

    实现按键控制蜂鸣器和LED的主函数如下:

  1. int main (void)
  2. {
  3.     SYS_Init();

  4.       CLK_SetSysTickClockSrc(CLK_CLKSEL0_STCLKSEL_HXT);
  5.           GPIO_SetMode(PD, BIT11, GPIO_MODE_OUTPUT);  //  BEEP
  6.       GPIO_SetMode(PG, BIT0, GPIO_MODE_OUTPUT);
  7.           GPIO_SetMode(PC, BIT12, GPIO_MODE_INPUT);  //  K1
  8.           GPIO_SetMode(PC, BIT13, GPIO_MODE_INPUT);  //  K2
  9.      while(1) {
  10.                           if (PC12 != 1) {
  11.               PG0 = 0;
  12.               }
  13.                           else PG0 = 1;
  14.                              if (PC13 != 1) {
  15.               PD11 = 0;
  16.               CLK_SysTickDelay(500000);
  17.                           PD11 = 1;
  18.               CLK_SysTickDelay(500000);
  19.               }
  20.     }
  21. }

复制代码

       经编译和下载,当按下SW1时,LED1亮;当持续按下SW2时,蜂鸣器则会发出声响。后面将探索LCD5110液晶屏的显示方法。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top