原创 EDN USB实验板实战程序---------无线键盘

2008-5-18 10:10 2857 2 3 分类: MCU/ 嵌入式


点击下载wirless_keynum_send_ok.rar


点击下载wirless_USB-keyboard_ok.rar


    在写这篇文章前,先要感谢COMPUTER00提供的漂亮的测试程序,让我少走了很多的弯路. 不想多说,彩云的工作态度真是我们的榜样呀!!!  为此我一下买了7套学习板.  


    在00的指导下我十分顺利的调好了EDN USB学习板的键盘实战程序. 由于本人比较喜欢玩无线,刚好手头也有凌阳公司的NRF2401模组,也就有了想做个无线键盘,无线鼠标什么玩玩的.说做就做.


    想法是好的,想做好这个还是有点难度了,还好有EDN 这么好的学习环境.大家都在用心的学习新的知识.让我感觉很有气氛.


   NRF2401模组我早就调好,收发数据也十分的稳定,有兴趣的话可以看我我之前写的关于NRF2401无线传输的文章.多谢00呀,将单片机的所有的引脚都引出来,方便了我们的二次开发.对着原理图我认真的分析.NRF2401只能连接到.P1,P2口上因为P0和P3口上分别有USB的数据线和中断,读,写等信号线. 凌阳的无线模组的引脚固定死了,如下图:点击开大图


有10个引脚.分别是:VCC,PWR,CE,CS,R1,C1,D1,NC,NC,GND


没有办法进行改变,.只是后面两个脚没有和任何脚相连,可以和最后的一个地线焊到一起去!这是我成功的一个小方面:-).


            几经分析后,发送按键 键值的USB 学习的NRF2401无线模组插在P0口上是最方便的.千万不可以插在P1口在,因为EDN USB学习析上的键盘连在P1口,如:NRF2401的+J1脚连到VCC上(从ISP下载口上引最方便)如果第一键按下了话,会出现非常严重的后果:短路短路短路短路短路短路.原因嘛留给网友自己去想吧!但是让我们再次看看P0口上的引脚吧,我们从上向下看的顺序是:


VCC,P0^0,P0^1,P0^2,P0^3,P0^4,P0^5,P0^6,P0^07,EA


而EA脚连接的是什么了,VCC呀.这样的无线模插上去是话不会有作用的.还有可能会烧掉的.想想......................................


EA脚嘛接上高电平,没有必要引出来.我们完全可以将它剪掉.没有办法,我也不想,只能对我的USB学习板进行大胆的动刀了.再将我们的无线模组进行小小的改动.将两个NC脚中的一个与最后一个GND引脚焊上就可以了!这样就可以用连接线将NRF2401的GND连到EDN USB学习板上的GND上.


         而接收按键 键值的EDN USB 学习板的NRF2401无线模组插在P1口上.由上分析P0,P3口是不能用的.那么P2了,真是可以吗? 让我们一起来分析一下吧.EDN USB学习板的P2上连接的是LED,当给P2一个高电平时,LED必会点亮.那么由于LED的分压作用,给NRF2401引脚上的电平就会发生区大的变化,不再是高电平.而是一个不大确定的状态.现在我们提到一个结论,NRF2401无线模块只能插在P1口上.


     0fb827b9-8269-41c8-8052-22441587c67b.jpg6fd5ccb5-3c5b-4182-8bab-47b823ef67dd.jpg


    至此我们的硬件方案定下.发张图看看吧:


        下面我们谈一下软件的相关细节这方面我的程序内部有非常详细的备注),主要说一点:接收按键 键值的EDN USB 学习板在响应HID 10MS的中断时,必须将关闭无线接收程序.在此我设了个rece_enable的标志位.在响应中断时.置rece_enable = 0;经过一天的调试后我终于调通无线键盘的程序.


        功能:K1:左Ctrl键  K2:左Shift键  K3:左Alt键  K4:0键 K5:1键  K6:2键  K7:Caps Lock键 K8:Num Lock键


       缺点与改进意见:


      本设计有一个非常不爽的地方就是,我的接收端是一直向USB端点发数据的,没有键按下时,不断向USB端点发数据0.我也尝试将其改成只有键按下时才发数据.可尝试了两天还不没有解决.下面发出修改后的程序,望有兴趣的网友可以帮我看看,为何我的程序不成功.多谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


       点击下载USB-keyboardv2.0_test.rar


  


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户4239 2010-8-24 23:38

下来研究研究,谢谢楼主
相关推荐阅读
用户1410780 2008-05-31 20:50
自强不息 厚德载物
自强不息 厚德载物——清华大学校训解释:来源于《周易》的两句话:一句是“天行健,君子以自强不息”(乾卦);一句是“地势坤,君子以厚德载物”(坤卦)。民国时期,梁启超在清华大学任教时,曾给当时的清华学子...
用户1410780 2008-05-27 17:05
RS-232、RS-422与RS-485串口标准简介
转:RS-232、RS-422与RS-485串口标准简介 0推荐一、RS-232C、RS-422与RS-485的由来RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会...
用户1410780 2008-05-18 10:59
Keil C51程序设计中几种精确延时方法
Keil C51程序设计中几种精确延时方法摘要 实际的单片机应用系统开发过程中,由于程序功能的需要,经常编写各种延时程序,延时时间从数微秒到数秒不等,对于许多C51开发者特别是初学者编制非常精确的延时...
用户1410780 2008-05-18 10:50
我国太阳能产能居第三 应用却陷尴尬
 技术分类: 电源技术  | 2008-05-16 全球电源网  作为21世纪、全球竞相追逐的朝阳产业,太阳能产业在我国却陷入了尴尬局面:产能仅次于日本、德国,居全球第三位,应用却非常有限,90%以上...
用户1410780 2008-05-18 10:36
C语言宏定义技巧(常用宏定义)【转】
 写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。   1,防止一个头文件被重复包含 #ifndef COMD...
用户1410780 2008-05-18 10:27
TTL电平与CMOS电平的区别
 TTL——Transistor-Transistor LogicHTTL——High-speed TTLLTTL——Low-power TTLSTTL——Schottky TTLLSTTL——Low...
我要评论
1
2
关闭 站长推荐上一条 /2 下一条