历史上的今天
返回首页

历史上的今天

今天是:2024年10月19日(星期六)

正在发生

2019年10月19日 | Key.h头文件下载-AVR系列单片机的4*4小键盘驱动头文件

2019-10-19 来源:eefocus

/*****************************************************************************


      文件名称:Key.h

      文件标识:_KEY_H_

      摘    要:AVR系列单片机的4*4小键盘驱动头文件

      当前版本:V1.0


*****************************************************************************/

#ifndef  _KEY_H_

#define  _KEY_H_


#include

#include


/*****************************************************************************

编绎控制:以下条件编绎语句保证只有在IO端口正确配置的情况下,才引用并编绎本文件

*****************************************************************************/

#if !defined(KEY_PORT)&&!defined(KEY_LINE)&&!defined(KEY_ROW)

   #define  KEY_LINE    P(PORTB,L)

   #define  KEY_ROW     P(PORTB,H)

#elif defined(KEY_PORT)&&!defined(KEY_LINE)&&!defined(KEY_ROW)

   #define  KEY_LINE    P(KEY_PORT,L)

   #define  KEY_ROW     P(KEY_PORT,H)

#elif defined(KEY_LINE)&&defined(KEY_ROW)&&!defined(KEY_PORT)

#else

   #error   您没有正确设置key.h与AVR单片机的连接

#endif



/*****************************************************************************

常用控制命令

*****************************************************************************/

#define  KeyInit()   do{OUTS(KEY_LINE);OUTS(KEY_ROW);}while(0)    //键盘初始化

UINT8    GetKey(void);                                            //读取按键值


/*****************************************************************************

获取按键值


这种方法稍复杂,但抗干扰能力很强

*****************************************************************************/

UINT8 GetKey(void)

{

   UINT8 i;

   UINT8 temp;

   UINT8 key=16;


   SETS(KEY_ROW);

   CLRS(KEY_ROW);


   temp = (PBITS(KEY_LINE)==L) ? READS(KEY_LINE) : READS(KEY_LINE)>>4;


   SETS(KEY_LINE);

   CLRS(KEY_LINE);

   temp |= (PBITS(KEY_ROW)==H) ? READS(KEY_ROW) : READS(KEY_ROW)<<4;


   for(i = 0; i < 8; temp >>= 1, i++)

   {

      if((temp & BIT(0)) && (i < 4))   key = i << 2;

      else if((temp & BIT(0)) && (i < 8))   key|=i-4;

   }


   return key;

}




#endif


推荐阅读

史海拾趣

Fong Ya Enterprise Co Ltd公司的发展小趣事

Fong Ya Enterprise Co., Ltd在电子行业中的发展故事

故事一:初创与基础奠定

Fong Ya Enterprise Co., Ltd(以下简称“丰雅企业”)成立于某个时期(具体年份可能因资料限制而未知),自那时起便致力于电子元件领域,特别是电阻器的研发与生产。初期,公司面临着市场竞争激烈、技术壁垒高等挑战,但凭借对电子技术的深刻理解和对市场需求的敏锐洞察,丰雅企业逐步确立了自身的产品定位,即专注于高品质、高性能的电阻器产品。通过不断优化生产工艺和提升产品质量,丰雅企业在电子行业逐渐站稳了脚跟。

故事二:技术创新与产品研发

随着电子行业的快速发展,丰雅企业深刻认识到技术创新的重要性。公司加大了对研发的投入,引进了一批高素质的技术人才,并建立了完善的研发体系。通过不断的技术创新,丰雅企业成功开发出了一系列具有自主知识产权的新型电阻器产品,这些产品不仅性能优越,而且满足了市场对电子元器件日益多样化的需求。同时,公司还积极与国内外知名高校和科研机构开展合作,共同推动电子元件技术的进步。

故事三:市场拓展与国际化战略

在稳固国内市场的同时,丰雅企业积极实施国际化战略,将目光投向了更广阔的国际市场。公司参加了多个国际性的电子展会,与全球各地的客户建立了良好的合作关系。通过提供优质的产品和服务,丰雅企业在国际市场上赢得了良好的口碑和信誉。此外,公司还根据不同国家和地区的市场特点,制定了差异化的营销策略,进一步扩大了市场份额。

故事四:供应链管理优化

为了提高生产效率和降低成本,丰雅企业不断优化供应链管理。公司与多家优质供应商建立了长期稳定的合作关系,确保原材料的质量和供应的稳定性。同时,公司还引入了先进的供应链管理系统,实现了对生产、采购、库存等各个环节的精细化管理。通过优化供应链管理,丰雅企业不仅提高了生产效率,还降低了运营成本,为企业的可持续发展奠定了坚实的基础。

故事五:品牌建设与企业文化

在多年的发展过程中,丰雅企业始终注重品牌建设和企业文化建设。公司坚持“质量第一、客户至上”的经营理念,致力于为客户提供优质的产品和服务。同时,公司还注重培养员工的创新精神和团队协作精神,营造了积极向上的企业文化氛围。通过品牌建设和企业文化的推动,丰雅企业在电子行业中的知名度和影响力不断提升,为企业的长远发展注入了强大的动力。

需要注意的是,由于具体年份和详细数据的限制,以上故事在描述时可能存在一定的概括性。然而,这些故事都基于丰雅企业在电子行业中的实际发展情况而构建,旨在展现其在技术创新、市场拓展、供应链管理和品牌建设等方面的努力和成就。

CUI Inc.公司的发展小趣事

自1989年成立以来,CUI Inc.一直站在电源设计的前沿。公司不断投资于研发,致力于开发出更高效、更环保的电源产品。通过引入先进的电源管理技术和创新的设计方法,CUI成功地帮助客户提高了应用的能效,减少了能源消耗。这种对电源技术的专注和创新,使CUI在竞争激烈的电子行业中脱颖而出,赢得了众多客户的信赖和好评。

Bytes公司的发展小趣事

Bytes公司自成立以来,始终坚持以技术创新为核心竞争力。公司早期便投入大量研发资源,开发出一款具有划时代意义的电子产品,迅速在市场上占据一席之地。随着技术的不断进步,Bytes公司不断推出更新换代的产品,满足消费者日益增长的需求。同时,公司还积极与高校、科研机构合作,共同研发新技术,为公司的持续发展提供源源不断的动力。

GE Sensing ( Amphenol Advanced Sensors )公司的发展小趣事

Bytes公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和工艺,降低产品对环境的影响。同时,公司还积极参与公益事业,捐赠资金和物资支持教育、扶贫等事业。这些举措使得Bytes公司赢得了社会的广泛认可和尊重。

请注意,这些故事框架仅供参考,您可以根据具体公司的实际情况和发展历程进行调整和补充。同时,由于我无法获取实时数据和信息,因此建议您在编写具体故事时参考相关公司的官方资料和市场分析报告。

全鹏(CHAMPION)公司的发展小趣事

全鹏公司一直重视研发和创新。为了不断满足市场需求,公司投入大量资源用于新技术和新产品的研发。通过引进高素质、高学历的研发人员,建立先进的研发实验室和测试中心,全鹏公司在产品研发方面取得了显著成果。这些新技术和新产品的推出不仅提升了全鹏公司的市场竞争力,也为客户带来了更好的使用体验。

Hirose Electric公司的发展小趣事

全鹏公司一直重视研发和创新。为了不断满足市场需求,公司投入大量资源用于新技术和新产品的研发。通过引进高素质、高学历的研发人员,建立先进的研发实验室和测试中心,全鹏公司在产品研发方面取得了显著成果。这些新技术和新产品的推出不仅提升了全鹏公司的市场竞争力,也为客户带来了更好的使用体验。

问答坊 | AI 解惑

求推荐一个开发板

RT,主要用来学通信方面到调制解调和简单到信号处理,哪位高手给我推荐个开发板阿,谢谢啦…

查看全部问答>

本人想做一个最简单的在“手持终端”上运行的程序(在wince5.0上),请帮助。

用的语言最好是C#,或VB.net。 程序要求在终端上运行,当扫一个条码后,在程序界面上要显示出这个货品(通mdb或什么文件记录货品编号和名称),然后在数量栏位录和数量,按保存,把这条信息记录下来(记在一个文本文件就行)。就这么个功能。 ...…

查看全部问答>

关于first-chance exception in **.exe access violation的问题

大侠好! 我在EVC4.0下面建了一个“WCE Dynamic -Link Library\"的工程,然后再建一个MFC的应用程序,用应用程序调用动态库(dll),在动态库中的WM_PAINT消息中执行第一条语句时,就出现了如题所示的异常,请问一下,怎么解决啊? 拜谢。…

查看全部问答>

wince程序打开word文档自动改成只读状态

我用 CreateProcess(\"\\\\Windows\\\\pword.exe\", sPath, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, new Byte[128], pi);打开了一个文档,想在打开的时候使文档的属性为只读,该如何实现呢,找了很多方法都不行。 请各位大侠 ...…

查看全部问答>

蓝牙音频网关bluetooth audio gateway?

最近我在学习WINCE5.0下的蓝牙应用。 所用的软件和硬件为: WINCE5.0 PXA270 DBT-120 USB bluetooth adapter. MOTO h320 首先我选中以下环境变量编译出一个内核: SYSGEN_BTH=1 SYSGEN_BTH_AG=1 SYSGEN_BTH_CSR_ONLY=1 SYSGEN_BTH_GATEWAY ...…

查看全部问答>

wince Tiny kernel工程如何让其支持standard shell

新建一项目,基于mobile phone,它是支持standard shell的, 可以编译成功,但新一个wince Tiny kernel 工程,加入standard shell catalog后,编译总是通不过,build.log里: coredll.def : error LNK2001: unresolved external symbol CeClearUser ...…

查看全部问答>

新人问路

大家好。 下学期就要上大三了,百感交集; 我前两年语言学的不好。都学没用的基础课了。今年想学硬件。听大四的学长说学硬件很累人。而我们的课又比较多,而且自己还有别的任务。软硬都有,不想再学的像语言似的,很肤浅。 大哥们,给点意见。…

查看全部问答>

谁用过HD61202能给个参考程序吗

谁用过HD61202能给个参考程序吗…

查看全部问答>

modesim使用问题

  这是我的软件没有破解完,还是我的测试脚本有问题,还哪里没有设置好。求助!…

查看全部问答>