毕业设计基于单片机的PS2键盘设计

上传人:痛*** 文档编号:135544865 上传时间:2022-08-15 格式:DOC 页数:22 大小:263.50KB
收藏 版权申诉 举报 下载
毕业设计基于单片机的PS2键盘设计_第1页
第1页 / 共22页
毕业设计基于单片机的PS2键盘设计_第2页
第2页 / 共22页
毕业设计基于单片机的PS2键盘设计_第3页
第3页 / 共22页
资源描述:

《毕业设计基于单片机的PS2键盘设计》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的PS2键盘设计(22页珍藏版)》请在装配图网上搜索。

1、PS2键盘在单片机上的应用摘 要:在嵌入式PC应用系统中,作为人机交互设备的键盘,往往采用结构简单按键少的矩阵键盘。标准键盘虽然能直接与嵌入式PC机的PS/2接口相连,但是体积大,按键多,不能满足需求,本文提出用一种AT89C52单片机实现具有标准PS/2接口的矩阵键盘,具有便捷,实用的特点。关键词:PS/2接口,PS/2键盘,拨号键,AT89C52,LCD1602Abstract: PS/2 interface is one of the most useful mouse interface.It was IBMs patent named osulum before. It is the

2、 dedicate interface of mouse and keyboard. This text implied a plan using PS/2 to make a system. PS/2 tansmit the data which was pressed, and AT89C52 receive it ,disposed it and transmit it to Lcd1602. Lcd1602 discover it to make us know which key has been pressed. PS/2 simulate a phones dial keyboa

3、rd. This systems feature is the circuit is sample and useful.Keywords: PS/2 keyboard, AT89C52, LCD1602,PS/2 interface,dial keyboard目录1、前言12、整体方案设计22.1 方案论证22.2 方案比较33、单元模块设计43.1 PS2键盘模块43.2 单片机模块63.3 LCD显示模块74 、软件设计95、系统技术指标及精度和误差分析106 、结论117、设计小结128、致谢149、参考文献14附录1:电路总图15附录2:仿真图16附录3:软件代码171、 前言单片机

4、因其性价比高, 处理能力强, 且抗干扰能力好, 在医疗器械、机电液控制、数据传输等各类工控系统和设备仪器中得到广泛应用。一方面, 在实际应用中, 单片机经常需要将采集到的数据发送给PC机进行处理或保存等; 另一方面, 工控系统和设备仪器设计, 因环境或软硬件资源的限制, 也往往需要不同的通信接口。比如, 很多工控PC机的键盘接口因受恶劣环境不利于键盘的使用而处于闲置状态。因此, 设计一个具有通用性的PS/2键盘通信接口既方便PC机进行外设扩展, 又丰富了单片机的接口资源。单片机与PC机常用的数据通信协议为RS - 232通信协议, 传输数据格式是二进制, 而单片机通过PS/2键盘协议传输的数据

5、格式是ASC II码, 可以直接以常用的文本文件和表格文件的形式进行处理和保存。目前, 单片机采用PS/2协议进行通信较多的是单片机接收PS/2键盘设备的数据, 而以单片机做为键盘与PC机通信则较为少见。本文的新颖之处主要表现为:1.本文主要着眼于基于单片机的PS/2键盘通信模块的实现, 本模块可通过RS -232、RS - 485接口或数据总线从其它系统上获取要传给PC机的数据。单片机把二进制数据转换成对应的键盘扫描码后上传给PC机。本模块只需要简单的软硬件改动(甚至于有时不需要改动) 就可以扩展大部分工控系统和设备仪器的通信功能, 具有较大的通用性。2. 本文比较深入地分析了PC机与键盘之

6、间相互通信的时序, 并介绍了PC机开机自检时键盘模块需要响应的几个主要命令。3. 本模块在条形码扫描系统中进行了应用测试, 实验证明了本模块具有较好的稳定性和可靠性, 有较广泛的应用范围。2 、整体方案设计本设计的整体思路是:利用PS2键盘,通过AT89C52单片机接收PS2键盘的键值,并显示在LCD1602上,PS2键盘模拟电话的拨号键。2.1 方案论证设计中采用了三个方案,具体的方案见方案一、方案二和方案三。方案一:普通键盘设计方案采用普通的4X4键盘,通过键盘扫描得到键值,有单片机控制并显示在LCD上,优点是成本低,设计简单,缺点是键盘扫描效率不够且容易出错。4X4键盘AT89C52单片

7、机LCD1602显示图2.1 普通键盘整体方案一框图方案二:数码管显示设计方案采用普通的PS2键盘,通过键盘扫描得到键值,由单片机控制并显示在数码管上,优点是成本低,设计简单,键盘自动扫描,自动识别,自动编码,有键按下时才发送数据,因此减轻了CPU的负担,缺点是数码管显示不直观。PS2键盘AT89C52单片机数码管显示图2.2 PS2键盘整体方案一框图方案三:PS2键盘方案见图2.2.利用PS2键盘设计,优点是键盘自动扫描,自动识别,自动编码,有键按下时才发送数据,因此减轻了CPU的负担,用LCD1602显示方便直观。PS2键盘AT89C52单片机LCD1602显示图2.3 PS2键盘整体方案

8、二框图2.2 方案比较由于方案一采用的是4X4键盘,设计需要CPU不断的扫描键盘,占用了大量的CPU资源,方案二利用PS2键盘,有键按下时才发送数据,减轻了CPU的负担,但是用数码管显示不够直观,交互界面不够好,因此综合方案一和方案二的优点,本设计采用了方案三。3、 单元模块设计集成温度传感器实际上是一种半导体集成电路,它是利用晶体管的be结压降的不饱和值Vbe与热力学温度T和通过。3.1 PS2键盘模块PS2模块由PS2键盘和PS2接口组成,利用通信协议对PS2键盘进行操作,PS2通讯协议是一种双向同步串行通讯协议。PS2键盘连线图如图所示:图3.1 PS2键盘连线图PS2接口操作时序如下图

9、所示:图3.2 时序图PS2接口通信协议表如下表所示:图3.3 通信协议表表中,如果数据位中的个数为偶数,校验位就为;如果数据位中的个数为奇数,校验位就为;总之,数据位中的个数加上校验位中的个数总为奇数,因此总进行奇校验。由于设备能提供串行同步时钟,因此,如果机发送数据,则机要先把时钟线和数据线置为请求发送的状态。机通过下拉时钟线大于来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当设备检测到需要接收的数据时,它会产生时钟信号并记录下面个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而设备则要配合机才能读到准确的数据。具体连接步骤如下

10、:()等待时钟线为高电平。()判断数据线是否为低,为高则错误退出,否则继续执行。()读地址线上的数据内容,共个,每读完一个位,都应检测时钟线是否被机拉低,如果被拉低则要中止接收。()读地址线上的校验位内容,个。()读停止位。()如果数据线上为(即还是低电平),设备继续产生时钟,直到接收到且产生出错信号为止(因为停止位是,如果设备没有读到停止位,则表明此次传输出错。() 输出应答位。 () 检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。 ()延时 ,以便机进行下一次传输。PS2键盘扫描方式:键盘的处理器如果发现有键被按下释放或按住键盘将发送扫描码的信息包到计算机扫描码有两种

11、不同的类型通码和断码,当一个键被按下或按住就发送通码,当一个键被释放就发送断码,每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是哪个按键,每个键一整套的通断码组成了扫描码集有三套标准的扫描码集,分别是第一套、第二套、和第三套,所有现代的键盘默认使用第二套扫描码虽然多数第二套通码都只有一个字节宽但也有少数扩展按键的通码是两字节或四字节宽这类的通码第一个字节总是为E0h正如键按下通码就被发往计算机一样,只要键一释放断码就会被发送,每个键都有它自己唯一的通码,它们也都有唯一的断码,幸运的是你不用总是通过查表来找出按键的断码在通码和断码之间存在着必然的联系,多数第二套断码有两

12、字节长它们的第一个字节是F0h ,第二个字节是这个键的通码,扩展按键的断码通常有三个字节,它们前两个字节是E0h,F0h ,最后一个字节是这个按键通码的最后一个字节。我在下面列出了几个按键的第二套通码和断码。3.2 单片机模块STC89C52单片机是Atmel公司生产的单片机,51的内核,具有处理能强、运行速度快、功耗低等优点。最小系统包括单片机,电源,复位电路。单片机接收PS2键盘的键值,并控制LCD的显示。其系统框图如下图所示:接收PS2键值盘STCAT89C2单片机控制LCD显示电源供电复位电路图3.4 单片机控制系统框图STC89C52单片机有4X8个IO口,其中P0口需外接上拉电阻,

13、因此本次设计采用P1口作为PS2接口,P2口作为与LCD1602的接口,其电路图如下图所示:图3.5 单片机最小系统图3.3 LCD显示模块LCD1602采用8位并行数据传输,其操作时序如下图所示:图3.6 LCD单片机图LCD1602接口由8位数据线,电源地电源正,液晶显示偏压信号(VL),数据命令选择端(RS),读写选择端(RW)组成。其接口信号说明如下图所示:图3.7接口信号说明图可以在1602的液晶显示偏压信号端接一个可变电阻,调节显示亮度,初始状态时,调至1602上面一排显示12个黑块为止,LCD1602电路图如下图所示:图3.8 LCD电路图 4、 软件设计1、主程序设计:首先初始

14、化IO口和键盘、LCD1602,然后接收按键的键值,并通过8位并行传输方式传送给LCD1602显示。2、获取键值程序:按照PS2键盘协议操作,键盘按下时发送通码,弹起时发送断码,在单片机中,将接收到的码字与第二套扫描码比较,得出键值。本次设计共采用12个键,模拟电话的拨号键。3、LCD显示程序:首先初始化LCD1602端口和寄存器,然后接收单片机传送的数据,通过1602写操作时序显示接收到的数据。开始初始化键盘、LCD接收键值LCD1602上显示处理键值4.1 程序整体设计框图5、 系统技术指标及精度和误差分析随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。IBM推出PS2键盘

15、接口标准。该标准定义了84101键,采用6脚mini-DIN连接器,用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。本系统利用PS2键盘作为交互接口,操作方便,比普通键盘精度高,在机械键盘中需要考虑键盘去抖的问题,硬件去抖或软件去抖,但是在PS2键盘中不需要考虑键盘去抖,因为PS2键盘采用按键发送通码,弹起发送断码的方式,不易出错。只要将接口连线处理好,单片机处理数据时不出错。本次设计实现了软件的设计和电路设计和仿真,实现了系统功能,完成了系统设计指标:按下一个键,准确的显示在LCD1602上。6 、结论本系统采用第二套键盘扫描码,利用PS2键盘作为输入

16、,准确度比普通键盘高,完成了系统的仿真图,电路图和程序设计,实现了系统的功能。很多品牌机上采用PS/2口来连接鼠标和键盘。PS/2接口与传统的键盘接口除了在接口外型、引脚有不同外,在数据传送格式上是相同的。现在很多主板用PS/2接口插座连接键盘,传统接口的键盘可以通过PS/2接口转换器连接主板PS/2接口插座。采用PS2键盘比普通键盘精度更高,使用更方便,USB即插即用,与USB相比,稳定性而言PS2比较好,但它不支持热拔插,因此在使用时需注意不能经常拔掉下PS2键盘。7、 设计小结本次设计完成后,在效果上能完全达到原先设计的功能。例如,通过按下按键“1”,能将数值“1”发送到LCD上显示驱动

17、程序经Keil uVision3编译,在AT89C52上单片机通过,该模拟键盘接口可以作为一个接口模块嵌入到其他设备仪器和工程控制系统,增加了与PC机的通信途径。在应用和测试结果分析中,该接口模块具有较高的可靠性与稳定性。由于时间仓促和我们自身水平有限,本设计在功能上也只是完成了一些基本功能,对于电路的可靠性,稳定性等参数还未做过详细的测试。仿真中出现的一些问题,也尚未解决。8、 致谢在*老师辛勤指导下,我与小组同学积极讨论和思考,完成本此课程设计,此次设计,使我们受益匪浅。在此我要感谢电气信息学院提供这次课程设计的机会;感谢电气信息学院各位老师的帮助。在这里我要特别感谢*老师,在我们的设计过

18、程中,至始至终都得到了*老师的悉心指导,我们的设计才得以顺利完成。9、 参考文献1 张培仁.基于 C 语言编程 MCS-51 单片机原理与应用M. 北京:清华大学出版社,2003. 2 杨振江、杜铁军.流行单片机实用子程序及应用实例M.西安电子科技大学出版社,2002. 3 蔡美琴、张为民.MCS-51 系列单片机系统及其应用(第二版)M. 北京:高等教育出版社,2004.4 苏家健.单片机原理及应用技术M. 北京:高等教育出版社,2004.5 C语谭浩强.言程序设计(第三版)M.北京:清华大学出版社,2005.附录1:电路总图图 附录1 电路总图附录2:仿真图图 附录2仿真图附录3:软件代码

19、main.c:#include #include KEY4x4_MODE.h#include #include type.h#include lcd1602.huchar Dis_buffer12=0123456789*#;uchar key_flag=0;void main()uchar loca,key_value=0;Init_1602(); /初始化1602while(1)key_value = Get_key(); /键盘扫描if(key_flag)lcd_dis(Dis_buffer,key_value,loca+); /显示key_flag=0;/标志位清零Lcd1602.c:#

20、include#include #include type.h#include lcd1602.hvoid Init_1602(void) /初始化Lcd_write_CMD(0x38,0); Lcd_write_CMD(0x38,1); /设置显示模式Lcd_write_CMD(0x08,1); /显示关闭Lcd_write_CMD(0x01,1); /清屏Lcd_write_CMD(0x06,1); /光标从左向右移,文本不移Lcd_write_CMD(0x0f,1); /显示开 void delay_ms(UCHAR i) /延时 ms级unsigned int j;for(;i0;i-

21、)for(j=0;j16)for( i=0;i16;i+)Lcd_write_DATA(dis_pi,1);Lcd_Set_XY(0,1);for( i=16;ilen;i+)Lcd_write_DATA(dis_pi,1);elsefor( i=0;ilen;i+)Lcd_write_DATA(dis_pi,1); void lcd_dis(UCHAR *dis_p,UCHAR i,UCHAR location)Lcd_Set_XY(location,0); Lcd_write_DATA(dis_pi,1);void Lcd_Set_XY(UCHAR x,UCHAR y) /设置显示的初始坐标x &= 0x0f;y &= 0x01;delay_ms(1);if(y)Lcd_write_CMD(0X80+0X40+x,1);elseLcd_write_CMD(0X80+x,1); void Lcd_write_DATA(UCHAR DATA_output,UCHAR If_Check)/写数据if(If_Check)Check_ifbusy();RS_1602=1;RW_1602=0;DATA_out=DATA_output;E_1602=1;delay_ms(1);E_1602=0;delay_ms(1000);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!