历史上的今天
返回首页

历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2021年10月14日 | S3C2440开发板裸机程序系列02--按键和蜂鸣器

2021-10-14 来源:eefocus

1. TQ2440按键接口电路

 

K1 -- EINT1 -- GPF1

K2 -- EINT4 -- GPF4

K3 -- EINT2 -- GPF2

K4 -- EINT0 -- GPF0

2. 按键参考代码


按键,则对应的led灯亮,松开则灭。


在流水灯程序基础上,修改Main.c,增加key.c , key.h


key.c


#include "2440addr.h"

#include "key.h"

 

void Key_Init(void)

{

rGPFCON &= ~((3<<2)|(3<<8)|(3<<4)|(3<<0));

rGPFCON |= KEY1|KEY2|KEY3|KEY4; //输入模式

rGPFDAT |= (1<<1)|(1<<4)|(1<<2)|(1<<0); //初始为高电平

}

 

int Key_Scan(void)

{

int keynum = 0;

if((rGPFDAT & (1<<1)) == 0)

{

keynum = 1;

}

if((rGPFDAT & (1<<4)) == 0)

{

keynum = 2;

}

if((rGPFDAT & (1<<2)) == 0)

{

keynum = 3;

}

if((rGPFDAT & (1<<0)) == 0)

{

keynum = 4;

}

return keynum;

}


key.h


#ifndef __KEY_H__

#define __KEY_H__

 

#define KEY1  (0<<2)

#define KEY2  (0<<8)

#define KEY3  (0<<4)

#define KEY4  (0<<2)

 

extern void Key_Init(void);

extern int Key_Scan(void);

 

#endif

Main.c


#include "led.h"

#include "common.h"

#include "key.h"

 

int Main()

{

Led_Init();

Key_Init();

while(1)

{

switch(Key_Scan())

{

case 1:

LED01_ON;

break;

case 2:

LED02_ON;

break;

case 3:

LED03_ON;

break;

case 4:

LED04_ON;

break;

default:

LED01_OFF;

LED02_OFF;

LED03_OFF;

LED04_OFF;

break;

}

}

}


3. 蜂鸣器接口电路

 

TOUT0 -- GPB0 , 高电平 beep响


4.蜂鸣器参考代码


在以上代码基础上增加beep.c ,beep.h,修改Main.c,按键1按下时蜂鸣器响。


beep.c


#include "2440addr.h"

 

void Beep_Init(void)

{

rGPBCON &= ~(3<<0);

rGPBCON |= (1<<0);

rGPBUP &= ~(1<<0);

rGPBDAT &= ~(1<<0);

}

beep.h


#ifndef  __BEEP_H__

#define  __BEEP_H__

 

#define Beep_On()  {rGPBDAT |= 1<<0;}

#define Beep_Off() {rGPBDAT &= ~(1<<0);}

 

extern void Beep_Init(void);

 

#endif

Main.c


#include "led.h"

#include "common.h"

#include "key.h"

#include "beep.h"

 

int Main()

{

Led_Init();

Key_Init();

Beep_Init();

while(1)

{

switch(Key_Scan())

{

case 1:

LED01_ON;

Beep_On();

break;

case 2:

LED02_ON;

break;

case 3:

LED03_ON;

break;

case 4:

LED04_ON;

break;

default:

LED01_OFF;

LED02_OFF;

LED03_OFF;

LED04_OFF;

Beep_Off();

break;

}

}

}

推荐阅读

史海拾趣

AIRPAX公司的发展小趣事

随着全球环保意识的提高,AIRPAX开始关注产品的环保性能。公司积极研发符合RoHS标准的产品,并致力于减少生产过程中的环境污染。同时,AIRPAX还推动了绿色供应链的建设,与供应商共同实现可持续发展。这些努力使得AIRPAX在电子行业中树立了绿色环保的良好形象。

Barkston Plastics Engineering Ltd.公司的发展小趣事

在电子行业的初创时期,Barkston Plastics Engineering Ltd.以其创新性的塑料材料应用技术在市场上崭露头角。公司研发了一种具有优异绝缘性能的塑料材料,成功应用于电视机外壳的生产,大大提高了产品的安全性和耐用性。这一技术突破为Barkston赢得了首批重要的客户,并奠定了公司在电子行业的基础。

Akahane Electronics Ind Corp公司的发展小趣事

面对日益严重的环境问题,Akahane敏锐地捕捉到绿色电子产品的市场潜力。公司投入大量研发资源,开发出低能耗、环保的电子产品,并积极推广绿色生产和循环经济理念。这一举措不仅赢得了消费者的青睐,还为公司赢得了良好的社会声誉。同时,Akahane还积极参与国际环保组织的活动,推动电子行业的绿色化发展。

Faraday Electronics Inc公司的发展小趣事

随着技术的不断进步,Faraday Electronics Inc意识到单一的产品线已无法满足市场的多样化需求。于是,公司开始积极拓展市场布局,将产品线拓展至智能家居、汽车电子等领域。通过不断的技术创新和市场拓展,公司逐渐在多个领域取得了领先地位,成为了电子行业的佼佼者。

Gore公司的发展小趣事
由于采用了三电平技术,功率开关管所承受的电压是直流母线电压的一半,从而降低了开关管的耐压等级。
G-Link Technology公司的发展小趣事

为了进一步扩大市场份额,蜂鸟无线积极实施国际化战略。公司先后在亚洲、欧洲和北美等多个地区设立了研发中心和销售网络,以更好地服务全球客户。在国际化过程中,蜂鸟无线注重与当地企业和政府机构的合作,共同推动无线通信技术的发展和应用。通过参与国际展会、举办技术交流会等活动,蜂鸟无线不仅提升了品牌知名度,还成功吸引了众多国际合作伙伴,为公司的全球化发展奠定了坚实基础。

问答坊 | AI 解惑

4个FPGA工程师面试题目(经历)

FPGA与CPLD内部结构区别?       CPLD       以altraMAX7000这种PLD为例,可分为三块结构:宏单元(Marocell),可编程连线(PIA)和I/O控制块。宏单元是PLD的基本结构,由它来实现基本的逻辑功能。可编程 ...…

查看全部问答>

有什么AT指令可以读取到模块的网络制式类型?

如题 比如华为的EM660 是CDMA2000的 联芯的LC5730是TD-SCDMA/GSM双模的 用什么指令可以读取出来那? 过路的大虾给看看。。。…

查看全部问答>

Tcpmp 视频窗口

WINCE实现TCPMP的背景播放电影,发现如果不把视频窗口设置为活动窗口则无法刷新视频窗口,但是当设置了TCPMP的窗口为活动窗口后,其他窗口就无法显示. 但是在PC上,当TCPMP处于非活动状态时,其背景的视频窗口是可以刷新的,这到底是WINCE对于窗口切换的 ...…

查看全部问答>

wince 驱动中,实现动态修改显示分辨率和颜色深度

WINCE 5.0 + 三星S3C2450平台 因为所使用的LCD支持24位,S3C2450的LCD控制器又支持16位和24位,32位等,所以,有以下需求: 上层应用可以在不重启系统的情况下设置系统显示在16位与24位之间切换,这样的好处是,在查看图片 显示UI等对CPU运算要 ...…

查看全部问答>

单片机与计算机串口通信失败,MAX232发烫的问题.

最近几天在赶毕业设计的硬件调试.遇到如题的问题,MAX的连线是采用教科书上的连线方法. 检查了好几次了,不大可能是连线错了. 计算机端的接收程序用串口调试助手调试过也没问题. 主要症状就是MAX232发烫,问下高手.MAX232坏掉的可能性大不大?如何检 ...…

查看全部问答>

生产上如何确保LED产品出产质量

replyreload += \',\' + 711613;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

ucosII在MSP430上的移植代码

该移植是TI在中国的合作伙伴做的,我在MSP430上验证过,可以跑通。如果有坛友需要移植的话,可以以这个为模板。…

查看全部问答>

新手求助,关于2xx的时钟的问题~

user\'s guide上说 After a PUC, MCLK and SMCLK are sourced from DCOCLK at ~1.1 MHz (see the device-specific data sheet for parameters) and ACLK is sourced from LFXT1CLK in LF mode with an internal load capacitance of 6pF. 关于A ...…

查看全部问答>

基于MSP430的红外通讯程序!

基于MSP430的红外通讯程序,请问谁有, 帮忙提供下,急需!谢啦!…

查看全部问答>

电子商务时代的科技板块需要激情!

“长久的激情才能赚钱” 随着互联网的兴起,利用这个新兴的互联网工具创业的人比比皆是,一个又一个成功案例的展示,向我们描绘了互联网工具的价值。也因此,一大批互联网跟随者也都开始活动起来,想争取在这个领域,利用这个新兴的工具也能分到 ...…

查看全部问答>