- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机技术的PC无线鼠标附录光盘
PAGE
第 PAGE \* Arabic \* MERGEFORMAT 27 页
PAGE \* MERGEFORMAT 1
基于单片机技术的PC无线鼠标附录
摘要:本文所描述的无线鼠标由发射和接收两部分组成,通过红外无线鼠标的各控制键(左右上下移动键、左右键、向下及向上翻页键)进行红外编码,然后通过38KHz红外载波以原码和重发码得形式连续对外发送,以防止数据在传送过程中出现错误。在接收部分通过红外接收头校正放大之后51单片机芯片解码,然后通过PDIUSBD12芯片,把控制指令转化成计算机USB口能够接收的信号然后通过USB向计算机发送无线遥控鼠标的各个控制功能指令,最终达到红外无线鼠标的功能。
[关键词]:红外线;PDIUSBD12;单片机
PDIUSBDI2的中断服务程序
中断服务程序代码处理由PDIUSBD12产生的中断,它将数据从PDIUSBD12的内FIFO取回到CPU存储器,并建立正确的事件标志,以通知相应的子程序进行处理。
下面为中断服务程序:
if(D12GetIntPin()==0) //如果有中断发生
{
D12WriteCommand(READ_INTERRUPT_REGISTER); //写读中断寄存器的命令
InterruptSource=D12ReadByte(); //读回第一字节的中断寄存器
if(InterruptSource0x80)UsbBusSuspend(); //总线挂起中断处理
if(InterruptSource0x40)UsbBusReset(); //总线复位中断处理
if(InterruptSource0x01)UsbEp0Out(); //端点0输出中断处理
if(InterruptSource0x02)UsbEp0In(); //端点0输入中断处理
if(InterruptSource0x04)UsbEp1Out(); //端点1输出中断处理
if(InterruptSource0x08)UsbEp1In(); //端点1输入中断处理
if(InterruptSource0x10)UsbEp2Out(); //端点2输出中断处理
if(InterruptSource0x20)UsbEp2In(); //端点2输入中断处理
}
下面是各个子函数的程序:
/********************************************************************
函数功能:USB断开连接函数。
入口参数:无。
返 回:无。
备 注:无。
********************************************************************/
void UsbDisconnect(void)
{
#ifdef DEBUG0
Prints(断开USB连接。\r\n);
#endif
D12WriteCommand(D12_SET_MODE); //写设置模式命令
D12WriteByte(0x06); //设置模式的第一字节
D12WriteByte(0x47); //设置模式的第二字节
DelayXms(1000); //延迟1秒
}
////////////////////////End of function//////////////////////////////
/********************************************************************
函数功能:USB连接函数。
入口参数:无。
返 回:无。
备 注:无。
********************************************************************/
void UsbConnect(void)
{
#ifdef DEBUG0
Prints(连接USB。\r\n);
#endif
D12WriteCommand(D12_SET_MODE); //写设置模式命令
D12WriteByte(0x16); //设置模式的第一字节
D12WriteByte(0x47); //设置模式的第二字节
}
////////////////////////End of function//////////////////////////////
/*****************************************
您可能关注的文档
最近下载
- 2025至2030年中国机器人关节模组行业市场竞争态势及前景战略研判报告.docx
- 员工冲突管理培训.pptx VIP
- 新课标人教版 宾语从句 复习课件.ppt VIP
- 厂务系统介绍.ppt VIP
- 2024年10月广东省高等教育自学考试00020高等数学(一)试卷及答案.pdf
- 英语人教版八年级下册unit5 setionB 课件.ppt VIP
- 人教版新目标八年级上册英语导学案(全册).pdf VIP
- 人教版九年级英语Unit 2 reading-The Spirit of Christmas.pptx VIP
- 丹毒中医护理方案ppt课件.pptx VIP
- 人教版九年级英语unit8全单元课件.ppt VIP
文档评论(0)