#1楼主:EDN USB学习板之实战第一个USB程序: USB键盘 [精华]
文章发表于:2007-12-08 03:58
EDN USB开发板上共有8个按键,功能分别为:
K1:左Ctrl键 K2:左Shift键 K3:左Alt键 K4:0键
K5:1键 K6:2键 K7:Caps Lock键 K8:Num Lock键
按键功能测试:
同时按下K1和K2可做输入法切换,这跟键盘上的两个键功能一样的。
K7可打开大写字母锁定,同时LED2亮起。K8是小数字键盘锁定键,
当数字键盘打开时,LED1亮起,这时可用K4,K5,K6输入数字。
请留意EDN板上的LED会跟你自己的键盘上的LED灯同步。不管按哪块
键盘切换都是如此。不过按住切换键不放,可能会导致两块键盘之间
的LED失步。
程序下载完成后可以使用串口调试助手观察枚举过程。波特率为9600。
Keil C源代码包下载: 
另外给大家推荐一个比较好用串口调试助手:
焊接说明:http://group.ednchina.com/93/7005.aspx
原理图下载:http://group.ednchina.com/93/6683.aspx
下载STC MCU软件用的ISP软件:http://www.mcu-memory.com/datasheet/stc/stc-isp-v3.5-setup/stc-isp-v3.5-not-setup.exe

#4
文章发表于:2007-12-08 16:07
哈哈~~~已经有朋友拿到板子和元件,并且已经装好,跑起程序了~~~所以我才先将键盘的程序放上来让大家先玩着~~~
大家有什么进度也可以发上来,让大一起分享。
#5
文章发表于:2007-12-08 16:53
等待板子中。。。。,不过要等到回杭州才能使用(这边没51下载线,惨)
#6
文章发表于:2007-12-08 19:37
如果你订购了全套元件的话,不需要专门的51下载线,直接用板上串口即可ISP下载。
#7
文章发表于:2007-12-09 21:58
键盘程序已经跑起来了,呵呵
只是用BUS HOUND查看的时候总线一直在读键盘,而我看了一下USB鼠标的通信,当鼠标不动的时候就没有数据传输。
程序已经仔细地读过两遍了,可能是对USB的协议还不熟,有些地方不是很懂,等大家都收到板子了再开始提问吧。
#8
文章发表于:2007-12-09 23:44
呵呵,是我的程序返回的数据,没有按键动作的时候,返回全0,这样我的程序处理起来就简单很多,不用去判断了。你也可以再改进下程序,当按键有变动时(利用KeyUp和KeyDown这两个)才返回按键,其它情况不返回,就可以实现空闲时无数据返回了。
将void endp2_in(void) 函数最后部分改成下面这样,就可以实现无按键动作时无数据返回了:
if(KeyUp||KeyDown)
{
//返回8个字节数据
KeyUp="0";
KeyDown="0";
write_endpoint_buff(5,8,InBuffer);
}
KeyCanChange=1; //允许修改按键值
}
/**********************************************/
#9
文章发表于:2007-12-09 23:46
晕,这个网页有bug,会自动在上面添加一个"",我那个KeyUp=0和KeyDown=0后面本来是没""的。
这个端点是中断端点,并且我在描述符里面描述的是10ms查询一次,所以事实上主机是在一直请求数据输入的。
#11
文章发表于:2007-12-14 22:45
00快帮忙看看,为的板子复位后串口显示信息如下,而且没有键盘设备被检测到,是什么回事呢?是否板子焊得有问题?
系统启动.
********************************************************************
****** EDN USB学习板键盘程序 ******
****** AT89S52 CPU ******
****** 建立日期:Dec 10 2007 ******
****** 建立时间:14:23:19 ******
****** 作者:电脑圈圈 ******
****** 欢迎访问作者的 ******
****** USB专区:http://group.ednchina.com/93/ ******
****** BLOG1:http://www.ednchina.com/blog/computer00 ******
****** BLOG2:http://computer00.21ic.org ******
****** 请按K1-K8分别进行测试 ******
****** K1:左Ctrl键 K2:左Shift键 K3:左Alt键 K4:0键 ******
****** K5:1键 K6:2键 K7:Caps Lock键 K8:Num Lock键 ******
********************************************************************
断开USB连接.
USBD12芯片初始化
设置地址.
地址为: 0
连接USB.
USB总线复位.
USB总线复位.
USB总线复位.
USB总线复位.
USB总线复位.
USB总线复位.