- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hd基于单片机技术的PC无线鼠标附录光盘.doc
基于单片机技术的PC无线鼠标附录
摘要:本文所描述的无线鼠标由发射和接收两部分组成,通过红外无线鼠标的各控制键(左右上下移动键、左右键、向下及向上翻页键)进行红外编码,然后通过38KHz红外载波以原码和重发码得形式连续对外发送,以防止数据在传送过程中出现错误。在接收部分通过红外接收头校正放大之后51单片机芯片解码,然后通过PDIUSBD12芯片,把控制指令转化成计算机USB口能够接收的信号然后通过USB向计算机发送无线遥控鼠标的各个控制功能指令,最终达到红外无线鼠标的功能。
[关键词]:红外线;PDIUSBD12;单片机
PDIUSBDI2的中断服务程序中断服务程序代码处理由PDIUSBD12产生的中断,它将数据从PDIUSBD12的内FIFO取回到CPU存储器,并建立正确的事件标志,以通知相应的子程序进行处理。
下面为中断服务程序:
{
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//////////////////////////////
/********************************************************************
函数功能:总线挂起中断处理函数。
入口参数:无。
返 回:无。
备 注:无。
******************************************************
文档评论(0)