原创 我做的USB游戏手柄源代码

2008-10-10 08:30 4462 8 15 分类: MCU/ 嵌入式

datasheet文件夾內為相關資料。


pic16f877a文件夾內為用proteus仿真的4X4按鍵程序。


USB GamePad(Computer00  STC+PDIUSBD12) 文件夾內為用電腦圈圈的程序修改的手柄程序,此程序在圈圈的開發板上調試通過。


USB GamePad (PIC16F877A+PDIUSBD12 )  文件夾內為移植到PIC16F877A上,此程序在自己的實驗板上通過。編譯環境為mplab7.60+pic ccs 4.057


GamePad SCH 原理圖。由於資源有限,所以並沒有完全實現,只實現了數字方向跟12個按鍵(用4X4鍵盤實現),其餘大家可以自己摸索。


part1


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/0339762f-2a95-4eb4-829c-8ef2c819472c.rar


part2


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/38327497-c927-4780-a9a5-f9a3e128cae7.rar


part3


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/9604db94-956a-4313-a41a-41488feb6d3b.rar


part4


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/5dc609ef-f988-4fe7-9181-62dbee3d26cf.rar


part5


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/444d4c11-c1ba-4d47-b264-095492acf34c.rar


part6


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/2dc7d3b5-ae43-4eac-8843-b44a65737e62.rar


part7


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/ec0276f8-8c75-4792-b5bd-e6eca2fa3fed.rar


part8


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/774f6984-efd7-43b7-8935-d6f9267ac6e3.rar


part9


https://static.assets-stash.eet-china.com/album/old-resources/2008/10/10/a84be4c5-495f-421d-97ba-eadceebcde47.rar
 

PARTNER CONTENT

文章评论7条评论)

登录后参与讨论

用户1540848 2011-10-20 15:14

/****************************主端点输入处理 //加入一个参数轻松实现八方向、多按键同时按。。。 void endp2_in(void) { uint8 i,KeyDir=0; // Prints("端点2输入.\r\n"); //Buf=0x00; for(i=0;i<4;i++) { InBuffer[i]=0; } Buf[0]=5; Buf[1]=0; KeyCanChange=0; //禁止修改按键值 //if((KeyPress&(~0xC0))||(KeyUp&0xC0 //{ KeyUp=0; KeyDown=0; KeyDir=KeyPress&0x0f; if(KeyDir==0x0A) //左上 { Buf[0]=0x0a; } else { } if(KeyDir==0x09) //右上 { Buf[0]=2; } else { } if(KeyDir==0x06) //左下 { Buf[0]=8; } else { } if(KeyDir==0x05) //右下 { Buf[0]=0x00; } else { } if(KeyDir==KEY1) //上 { // InBuffer[1]=-1; //InBuffer[1]=0x01; Buf[0]=1; } else { } if(KeyDir==KEY2) //下 { // InBuffer[1]=1; Buf[0]=9; // Buf[1]=0x20; } else { } if(KeyDir==KEY3) //左) { // InBuffer[2]=-1; Buf[0]=4; } else { } if(KeyDir==KEY4) //右 { //InBuffer[2]=1; Buf[0]=6; } else { } if(KeyPress&KEY5) // 按键1 { Buf[1]|=0x01; // Buf[1]|=0x10; } else { } if(KeyPress&KEY6) // 按键2 { Buf[1]|=0x02; //Buf[1]|=0x20; } else { } if(KeyPress&KEY7) //按键3 { Buf[1]|=0x04; //Buf[1]|=0x40; } else { } if(KeyPress&KEY8) { //按键4 Buf[1]|=0x08; } else { }

用户1649169 2011-7-31 22:22

收藏了

用户1321360 2010-2-3 17:13

so cool!

用户1316125 2009-8-3 13:44

十分感谢楼主分享资料!!

用户1065177 2008-10-13 14:49

收藏了

用户1065177 2008-10-13 14:48

收藏了

用户1065177 2008-10-13 14:48

收藏了

jizzll_617398179 2008-10-12 19:41

真厉害

用户835449 2008-2-17 14:05

能够下载!还是请大家自己下载吧!

如果有意见或建议的话还请不吝赐教!

用户132929 2008-1-9 14:49

也传我看看,谢谢
edsionzhen@live.com
相关推荐阅读
用户546181 2011-12-16 15:23
MIPS 是什么意思? MIPS/MHZ 又是什么意思?
MIPS ( Million Instruction Per Second )表示每秒多少百万条指令,如 10MIPS ,表示每秒一千万条指令。MIPS/MHz 表示 CPU 在每 MHz 的运行...
用户546181 2011-11-23 16:41
APN是什么
对普通用户来说,使用GPRS上网,几乎都要遇到APN 这个概念, 其实,APN就是一个接入点,GPRS上网的接入服务器 ; 一、 APN的概念 APN(Access Poin...
用户546181 2009-06-20 18:01
MMU工作原理
1.MMU的工作原理我这里就不阐述了。网上有篇关于S3C2410 MMU的讲解,很详细。我就看了韦东山大哥的书的实验代码就写一些体会,并把源代码发出来。具体的代码如下:////////////////...
用户546181 2009-06-17 13:49
基于ARM9芯片S3C2410异常中断程序设计
验证的代码详细分析了基于ARM嵌入式系统的异常处理流程。然后阐明关键字“-irq”的作用,设计出中断处理函数。最后,通过设置中断控制寄存器,设计外部中断EINT3的初始化程序,并给出主程序流程图。实践...
用户546181 2009-06-13 15:15
linux下ntp协议的实现
最近公司比较空,花了一些时间学习了一下linux的应用编程,并且在今天下午完成了最后一章socket的实验。内容就是实现ntp协议,使本机的时间与ntp服务器同步。虽然说原理上并不难,但是过程中却也遇...
用户546181 2009-06-02 16:39
ubuntu下安装vmware tools
如果你是在VM下安装 Ubuntu,那么必须安装VMware-tools,才能获得更好的体验,包括屏幕分辨率、声音、和windows共享剪贴板等等。点击VMware菜单的-VM-Install VMw...
EE直播间
更多
我要评论
7
8
关闭 站长推荐上一条 /3 下一条