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


按键控制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);
	}
}


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
深圳精敏ARM系列I/O控制器JMDM-ARM12DIOMRdoc,一、JMDM-ARM12DIOMR控制器特性1. JMDM-ARM12DIOMR工业级ARM控制板采用ARM 32位的Cortex™-M3 CPU,128K闪存程序存储器;20K的SRAM。2. 主电源采用18V交流电(或24V直流电),外围驱动电源采用24/12V直流电;3. 8路光电隔离数字量输入,NPN输入形式,输入电流为10mA;4. 4路继电器输出(可接220V电压,最大承受电流是5A),采用光电隔离和启用内部看门狗及严格的高频滤除特性,使系统工作稳定可靠,无死机现象;5. 有1路标准的RS232串行通信接口(抗15KV静电冲击),可直接与电脑或文本显示器等外设通信;6. 可直接通过RS232接口下载程序,无需烧录器,方便程序修改、升级;7. 有一盏LED显示工作状态,有一个拨码开关可根据程序需要设定程序状态或程序参数;8. 外壳安装尺寸:115mm×100mm×30mm;可用导轨安装或用螺钉固定安装。内部控制板尺寸:长×宽×高为:92mm×86mm×28mm; 9. 用Keil C 或汇编编程,用户编程有困难的可把工艺流程发给我司,我司可帮助编程。二、用途1. 可用于各种12个点以内的控制系统,可控制气缸,电磁阀,继电器,步进电机,可外接光电式,电容式,电感式,霍尔式等各种传感器;2. 可用于替代12点以内的PLC用于各种控制场合(如各种机器控制);3. 可用于ARM学习和试验。三、编程说明1. 在接线图上标明了输入输出端口所对应的是控制板的输入输出口:1)In(x): 当In(x)函数返回0时就说明第x个输入点有信号;2) out_bit(x,0):打开第X点输出;3) out_bit(x,1):关断第X点输出;2. 软件资料提供范例程序;可以在这基础上修改学习。精敏数字ARM系列控制器型号推荐:JMDM-ARM12DIOMR(8入4出)继电器输出JMDM-ARM20DIOMR(12入8出)JMDM-ARM29DIOMR(17入12出)JMDM-ARM40DIOMR(24入16出)JMDM-ARMPLC8DI4DOMR(8入4出)JMDM-ARMPLC12DI8DOMR(12入8出)JMDM-ARMPLC16DI12DOMR(16入12出)JMDM-ARMPLC22DI16DOMR(22入16出)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值