除了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的主函数如下:
- int main (void)
- {
- SYS_Init();
- CLK_SetSystickClockSrc(CLK_CLKSEL0_STCLKSEL_HXT);
- GPIO_SetMode(PD, BIT11, GPIO_MODE_OUTPUT); // BEEP
- GPIO_SetMode(PG, BIT0, GPIO_MODE_OUTPUT);
- GPIO_SetMode(PC, BIT12, GPIO_MODE_INPUT); // K1
- GPIO_SetMode(PC, BIT13, GPIO_MODE_INPUT); // K2
- while(1) {
- if (PC12 != 1) {
- PG0 = 0;
- }
- else PG0 = 1;
- if (PC13 != 1) {
- PD11 = 0;
- CLK_SysTickDelay(500000);
- PD11 = 1;
- CLK_SysTickDelay(500000);
- }
- }
- }
复制代码
经编译和下载,当按下SW1时,LED1亮;当持续按下SW2时,蜂鸣器则会发出声响。后面将探索LCD5110液晶屏的显示方法。
|