《KEY(按键)应用》大全

《KEY(按键)应用》大全

ID:37714973

大小:30.89 KB

页数:20页

时间:2019-05-29

《KEY(按键)应用》大全_第1页
《KEY(按键)应用》大全_第2页
《KEY(按键)应用》大全_第3页
《KEY(按键)应用》大全_第4页
《KEY(按键)应用》大全_第5页
资源描述:

《《KEY(按键)应用》大全》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《KEY(按键)应用》大全技术类别:单片机需要确认注册邮箱后才能下载,立即确认我的邮箱 设计中你是否遇到过这样的问题:你的产品上要求有几十个按键,处理器IO口很少,PCB的面积又有严格限制,或者你要严格控制成本,无法使用象7219那样的扩展芯片,怎么解决这个问题?下面有个方法,大家都见过遥控器吧,上面不但有几十个按键,而且功能还挺多什么去抖动,同时按键处理都有了,最最重要的是控制芯片体积小,价格便宜(也就1,2块钱),外围器件少。。不过具体实现起来有点小麻烦,这类芯片的信号一般是PPM输出的,通常为了有更远的遥控距离,按键编码调制在一个38k左右的载波上。所以我们不

2、得不再为这个方案多花上1块钱,加一个有烂运放做的低通滤波器,将载波滤除后在接到单片机的IO脚上,由于两个频率相差较多,这个滤波器并不难做。我使用LM324做的。其中有两级低通,一个比较器。当你的示波器上出现一串可爱的几百赫兹的方波时,你的硬件就成功啦。既然只用一条IO就扩展了几十个按键,软件上自然会多费些事,此类芯片发码都是有引导头,同步部分,用户码,键码等部分组成,有三十多个位,具体可参照sc6121资料。下面时一个完整的接收程序,针对的芯片是sc6121,处理器89c51//////////////////////////////////////////////

3、//////////////////////////////////*定时器1中断服务程序*//*每100us中断一次,定时检测HangSignal线上的电平状态,根据6121的砝码格式译出用户码键码.\ib_KeyCode[0]用户码低位,ib_KeyCode[1]用户码高位,ib_KeyCode[2]键码,ib_KeyCode[3]键码的反码*//////////////////////////////////////////////////////////////////////////////////////voidHandIn()  interrupt3

4、using3{  unsignedchartempbit=0;  bitHbit;  Hbit=HandSignal;                                      /*采样信号线*/  if(NewKey==FALSE){                                    /*如果上一次按键事件已经北处理*/switch(ib_HandState){                          /*根据接收状态散转*/  caseLEAD:                                /*引导

5、头接收情况*/                                        if(Hbit){                              /*如果信号线是高电平*/              if((ib_LowTime>MIN_LeadTime)&&(ib_LowTime

6、                   /*否则复位接收程序*/      ib_LowTime=0;                            /*清除低电平时间计数*/  }  else{                                /*如果信号是低电平*/      ib_LowTime++;                          /*增加低电平时间计数器*/if(ib_LowTime>MAX_LeadTime)                /*判断低电平时间是否超时*/            ib_HandState

7、=RESTART;                    /*是的话复位接收程序*/  }          break;    caseSTART:                              /*同步头接收情况*/          if(Hbit){                            /*如果信号线是高电平*/      ib_HighTime++;                        /*高电平时间计数器加一*/            if(ib_HighTime>MAX_SynTime)           

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。