基于单片机的PS2鼠标接口电路设计毕业答辩.ppt

基于单片机的PS2鼠标接口电路设计毕业答辩.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的PS/2鼠标接口电路设计 设计任务: 设计一种基于单片机的PS/2鼠标接口控制电路,主控芯片选用C51系列单片机,实现普通鼠标输入响应,将光标坐标显示在LCD上。软件部分采用C语言编程,Keil调试,Proteus仿真。 技术指标: 1、完成硬件电路设计; 2、按照PS/2鼠标接口控制时序编写按键识别C语言程序; 3、利用实验开发板,实现鼠标光标位置识别(如:将光标坐标显示输出)等功能。 确定基本硬件: 主控单片机的选择(89S52单片机) 1602LCD显示(一行显示坐标,另一行显示鼠标3键的状态,简单实用) PS/2鼠标接口(用于鼠标数据的传输和接收) USB接口(接于电脑用于单片机系统的供电) 硬件框图: 单片机读取PS/2鼠标发送来的信息数据(包括光标坐标以及鼠标3键的状态),通过单片机的处理后,生成LCD可以识别的数据编码,加载到液晶显示屏上。 基于单片机PS/2鼠标接口设计电路图 软件设计 基于PS/2通信协议的原理,编写鼠标的输入程序以及单片机读入鼠标输入的程序。 单片机对读入的数据进行处理后,发送到1602LCD显示 1602液晶的驱动程序,其中包括显示中要用到的各种库文件的编辑。 PS/2物理接口 PS/2设备与主机通信 鼠标到主机的传输时序 主机向鼠标的传输时序 PS/2鼠标数据包格式 B1~B4表示当鼠标向外发送数据时依次送出的各个字节,Bit7~Bit0表示每一个字节对应的各位,YO/XO表示纵/横方向移动鼠标时偏移量的溢出标志位,YS/XS表示鼠标移动时产生的偏移量的符号(方向)标志位,MB/RB/LB分别表示中/右/左3个按键(有按下时被置1,放开时清0),X7~XO表示X(左右)方向相对上次的移动偏移量,Y7~Y0表示Y(上下)方向相对上次的移动偏移量,Z3~Z0表示滚轮转动的状态,Z4、Z5表示4键、5键鼠标的键位状态,在本次鼠标接口设计中没有用到。 软件实现原理框架 单片机对鼠标的初始化 程序显示: TCON=0x00;//关闭TCON寄存器 P3=0XFF;//防止系统重启混乱 EA=1; //允许全局中断 EX1=1; //允许外部中断1 ET0=0x01;//允许定时器/计数器0溢出中断 PX1=1; //设置中断优先级 单片机发送命令到鼠标子程序 当鼠标检测到单片机发送来的命令也即一个下拉低电平后,鼠标关闭外部中断并一次向单片机发送8个数据位for(i=0;i=7;i++) { while(mouse_CLK==1); //等待设备拉低时钟线 mouse_SDA=(dati)0x01;//发送数据位 while(mouse_CLK==0); //等待设备释放时钟线 }此8位为一个BIT,然后鼠标开始发送剩下的3位也即校验位、停止位、应答位。完成数据的一次传送后鼠标随机打开外部中断(EX1=1)等待单片机的下一个命令。 单片机从鼠标读取数据子程序 鼠标每发送一次信息,单片机会截取其中的8位有用的数据位合成一个字节,当收集了4个字节后,单片机开始对这4个字节进行打包处理 设计结果 实验结果:经过硬件的检测,本设计可以实现普通PS/2鼠标的识别。3键鼠标的功能可以在1602显示屏上显示。鼠标的原点坐标设置为(10000.10000),其范围是(0.0)~(65535.65535),当鼠标的任意键按下时,屏幕显示“** key is down!” 设计结果截图展示 结束! 谢谢大家!

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档