您的位置:首页 > 其它

ARM 按键控制LED灯+IO控制buzzer蜂鸣器

2017-05-12 13:06 513 查看
按键控制LED灯

GPIO_MemMapPtr const PORT_BASE_PTR[] = {GPIOA_BASE_PTR,GPIOB_BASE_PTR};
void GPIO_WriteBit(GPIO_TypeDef port,int pin,BIT_TypeDef bit)
{
if(bit == BIT_RESET)
{
PORT_BASE_PTR[port]->GPDAT &= ~(pin);

}
else
{
PORT_BASE_PTR[port]->GPDAT |= (pin);
}
}

#include "s3c2451_key.h"
#include "s3c2451_gpio.h"

void KEY_Init()
{
//GPF[6:0]
GPFCON &= (~(3<<(2*1))) & (~(3<<(2*2))) & (~(3<<(2*3))) & (~(3<<(2*4)));

}

void key_ctr_led()
{
while(1)
{
//key1
if(!(GPFDAT&0x01))
{
GPIO_WriteBit(GPIOB,GPIO_PIN5,BIT_RESET);
}
else
{
GPIO_WriteBit(GPIOB,GPIO_PIN5,BIT_SET);
}

//key2
if(!(GPFDAT&0x02))
{
GPIO_WriteBit(GPIOB,GPIO_PIN6,BIT_RESET);
}
else
{
GPIO_WriteBit(GPIOB,GPIO_PIN6,BIT_SET);
}

//key3
if(!(GPFDAT&0x04))
{
GPIO_WriteBit(GPIOA,GPIO_PIN25,BIT_RESET);
}
else
{
GPIO_WriteBit(GPIOA,GPIO_PIN25,BIT_SET);
}
//key4
if(!(GPFDAT&0x08))
{
GPIO_WriteBit(GPIOA,GPIO_PIN26,BIT_RESET);
}
else
{
GPIO_WriteBit(GPIOA,GPIO_PIN26,BIT_SET);
}
}
} IO控制buzzer蜂鸣器
#ifndef S3C2451_BUZZER_H_
#define S3C2451_BUZZER_H_

#include "typedef.h"

#define GPBCON (*(volatile unsigned *)0x56000010)
#define GPBDAT (*(volatile unsigned *)0x56000014)
#define GPBUP (*(volatile unsigned *)0x56000018)

typedef enum
{
BUR_RESET = 0,
BUR_SET = 1
}BUZZER_TypeDef;

extern void buzzer_on_off(BUZZER_TypeDef bur);

#endif

#include "s3c2451_buzzer.h"

void buzzer_on_off(BUZZER_TypeDef bur)
{
if(bur == BUR_SET)
{
GPBDAT |= 0x01;
}
else if(bur == BUR_RESET)
{
GPBDAT &= 0x0;
}
}

#include "main.h"
#include "s3c2451_key.h"
#include "s3c2451_buzzer.h"
void delay(volatile int count)
{
while (count--);
}

void Main(void)
{
while(1)
{
buzzer_on_off(BUR_RESET);
delay(2000000);
buzzer_on_off(BUR_SET);
delay(2000000);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: