傻大方


首页 > 学习 >

课程设计|课程设计(论文)PS2键盘在单片机上的应用



按关键词阅读: 论文 课程设计 应用 单片机 键盘 PS2

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

2、patent named osulum before. It is the 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 presse 。

3、d. PS/2 simulate a phones dial keyboard. This systems feature is the circuit is sample and useful. Keywords: PS/2 keyboard, AT89C52, LCD1602 , PS/2 interface , dial keyboard 目录目录 1、前言前言.1 2 2、整体方案设计、整体方案设计.2 2 2.1 方案论证 .2 2.2 方案比较 .3 3 3、单元模块设计、单元模块设计.4 4 3.1 PS2 键盘模块.4 3.2 单片机模块 .6 3.3 LCD 显示模块.7 4 4 、 。

4、软件设计、软件设计 .9 9 5 5、系统技术指标及精度和误差分析、系统技术指标及精度和误差分析.1010 6 6 、结论、结论 .1111 7 7、设计小结、设计小结.1212 8 8、致谢、致谢.1414 9 9、参考文献、参考文献.1414 附录附录 1 1:电路总图:电路总图 .1515 附录附录 2 2:仿真图:仿真图 .1616 附录附录 3 3:软件代码:软件代码 .1717 1 1、 前言前言 单片机因其性价比高, 处理能力强, 且抗干扰能力好, 在医疗器械、机电液控制、数据 传输等各类工控系统和设备仪器中得到广泛应用 。
一方面, 在实际应用中, 单片机经常需要 将采集到的数据发 。

5、送给PC机进行处理或保存等;
另一方面, 工控系统和设备仪器设计, 因环 境或软硬件资源的限制, 也往往需要不同的通信接口 。
比如, 很多工控PC机的键盘接口因受 恶劣环境不利于键盘的使用而处于闲置状态 。
因此, 设计一个具有通用性的PS/2键盘通信接 口既方便PC机进行外设扩展, 又丰富了单片机的接口资源 。
单片机与PC机常用的数据通信协 议为RS - 232通信协议, 传输数据格式是二进制, 而单片机通过PS/2键盘协议传输的数据格 式是ASC II码, 可以直接以常用的文本文件和表格文件的形式进行处理和保存 。
目前, 单片 机采用PS/2协议进行通信较多的是单片机接收PS/2键盘设备的数据, 而 。

6、以单片机做为键盘与 PC机通信则较为少见 。
本文的新颖之处主要表现为: 1.本文主要着眼于基于单片机的PS/2键盘通信模块的实现, 本模块可通过RS -232、RS - 485接口或数据总线从其它系统上获取要传给PC机的数据 。
单片机把二进制数据转换成对 应的键盘扫描码后上传给PC机 。
本模块只需要简单的软硬件改动(甚至于有时不需要改动) 就可以扩展大部分工控系统和设备仪器的通信功能, 具有较大的通用性 。
2. 本文比较深入地分析了PC机与键盘之间相互通信的时序, 并介绍了PC机开机自检时 键盘模块需要响应的几个主要命令 。
3. 本模块在条形码扫描系统中进行了应用测试, 实验证明了本模块具有较好的稳 。

7、定性 和可靠性, 有较广泛的应用范围 。
2 2 、整体方案设计、整体方案设计 本设计的整体思路是:利用 PS2 键盘 , 通过 AT89C52 单片机接收 PS2 键盘的键值 , 并 显示在 LCD1602 上 , PS2 键盘模拟电话的拨号键 。
2.12.1 方案论证方案论证 设计中采用了三个方案 , 具体的方案见方案一、方案二和方案三 。
方案一:普通键盘设计方案 采用普通的 4X4 键盘 , 通过键盘扫描得到键值 , 有单片机控制并显示在 LCD 上 , 优点 是成本低 , 设计简单 , 缺点是键盘扫描效率不够且容易出错 。
4X4 键盘AT89C52 单片机 LCD1602 显示 图 2.1 普通键盘整体方案一框图 方案二: 。

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

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

10、操作 , PS2 通讯协 议是一种双向同步串行通讯协议 。
PS2 键盘连线图如图所示: 图 3.1 PS2 键盘连线图 PS2 接口操作时序如下图所示: 图 3.2 时序图 PS2 接口通信协议表如下表所示: 图 3.3 通信协议表 表中 , 如果数据位中的个数为偶数 , 校验位就为;如果数据位中的个数为奇数 ,校验位就为;总之 , 数据位中的个数加上校验位中的个数总为奇数 , 因此总进行奇校 验 。
由于设备能提供串行同步时钟 , 因此 , 如果机发送数据 , 则机要先把 时钟线和数据线置为请求发送的状态 。
机通过下拉时钟线大于来抑制通讯 ,并且通过下拉数据线发出请求发送数据的信号 , 然后释放时钟 。
当设备检测到需要 接收的数据时 ,。

11、它会产生时钟信号并记录下面个数据位和一个停止位 。
主机此时在时钟线 变为低时准备数据到数据线 , 并在时钟上升沿锁存数据 。
而设备则要配合机才 能读到准确的数据 。
具体连接步骤如下: ()等待时钟线为高电平 。
()判断数据线是否为低 , 为高则错误退出 , 否则继续执行 。
()读地址线上的数据内容 , 共个 , 每读完一个位 , 都应检测时钟线是否被 机拉低 , 如果被拉低则要中止接收 。
()读地址线上的校验位内容 , 个 。
()读停止位 。
()如果数据线上为(即还是低电平), 设备继续产生时钟 , 直到接收到 且产生出错信号为止(因为停止位是 , 如果设备没有读到停止位 , 则表明此次 传输出错 。
() 输出应答位 。
() 检测奇偶校验位 ,。

12、如果校验失败 , 则产生错误信号以表明此次传输出现错误 。
()延时, 以便机进行下一次传输 。
PS2 键盘扫描方式:键盘的处理器如果发现有键被按下释放或按住键盘将发送扫描码的 信息包到计算机扫描码有两种不同的类型通码和断码 , 当一个键被按下或按住就发送通码 ,当一个键被释放就发送断码 , 每个按键被分配了唯一的通码和断码 , 这样主机通过查找唯一 的扫描码就可以测定是哪个按键 , 每个键一整套的通断码组成了扫描码集有三套标准的扫描 码集 , 分别是第一套、第二套、和第三套 , 所有现代的键盘默认使用第二套扫描码 虽然多数第二套通码都只有一个字节宽但也有少数扩展按键的通码是两字节或四字节宽 这类的通码第一个字节总是为 E 。

13、0h 正如键按下通码就被发往计算机一样 , 只要键一释放断码就会被发送 , 每个键都有它自 己唯一的通码 , 它们也都有唯一的断码 , 幸运的是你不用总是通过查表来找出按键的断码在 通码和断码之间存在着必然的联系 , 多数第二套断码有两字节长它们的第一个字节是 F0h, 第二个字节是这个键的通码 , 扩展按键的断码通常有三个字节 , 它们前两个字节是 E0h,F0h, 最后一个字节是这个按键通码的最后一个字节 。
我在下面列出了几个按键的第二 套通码和断码 。
3.23.2 单片机模块单片机模块 STC89C52 单片机是 Atmel 公司生产的单片机 , 51 的内核 , 具有处理能强、运行速度快、 功耗低等优点 。
最小系统包括单片机 。

14、 , 电源 , 复位电路 。
单片机接收 PS2 键盘的键值 , 并控 制 LCD 的显示 。
其系统框图如下图所示: 接收 PS2 键 值盘 STCAT89C2 单片机 控制 LCD 显示 电源供电 复位电路 图 3.4 单片机控制系统框图 STC89C52 单片机有 4X8 个 IO 口 , 其中 P0 口需外接上拉电阻 , 因此本次设计采用 P1 口 作为 PS2 接口 , P2 口作为与 LCD1602 的接口 , 其电路图如下图所示: 图 3.5 单片机最小系统图 3.33.3 LCDLCD 显示模块显示模块 LCD1602 采用 8 位并行数据传输 , 其操作时序如下图所示: 图 3.6 LCD 单片机图 LCD1602 。

15、 接口由 8 位数据线 , 电源地电源正 , 液晶显示偏压信号(VL), 数据命令选 择端(RS), 读写选择端(RW)组成 。
其接口信号说明如下图所示: 图 3.7 接口信号说明图 可以在 1602 的液晶显示偏压信号端接一个可变电阻 , 调节显示亮度 , 初始状态时 , 调 至 1602 上面一排显示 12 个黑块为止 , LCD1602 电路图如下图所示: 图 3.8 LCD 电路图 4 4、 软件设计软件设计 1、主程序设计:首先初始化 IO 口和键盘、LCD1602 , 然后接收按键的键值 , 并通过 8 位并行传输方式传送给 LCD1602 显示 。
2、获取键值程序:按照 PS2 键盘协议操作 , 键盘按下时发送通码 ,。

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

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

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

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

20、程设计的机会;感谢电气信息 学院各位老师的帮助 。
在这里我要特别感谢靳斌老师 , 在我们的设计过程中 , 至始至终都得 到了靳斌老师的悉心指导 , 我们的设计才得以顺利完成 。
9 9、 参考文献参考文献 1 张培仁.基于 C 语言编程 MCS-51 单片机原理与应用M. 北京:清华大学出版社 , 2003. 2 杨振江、杜铁军.流行单片机实用子程序及应用实例M.西安电子科技大学出版社 , 2002. 3 蔡美琴、张为民.MCS-51 系列单片机系统及其应用(第二版)M. 北京:高等教育出版社 , 2004. 4 苏家健.单片机原理及应用技术M. 北京:高等教育出版社 , 2004. 5 C 语谭浩强.言程序设计(第三版)M 。

21、.北京:清华大学出版社 , 2005. 附录附录 1 1:电路总图:电路总图 图 附录 1 电路总图 附录附录 2 2:仿真图:仿真图 图 附录 2 仿真图 附录附录 3 3:软件代码:软件代码 main.c: #include #include KEY4x4_MODE.h #include #include type.h #include lcd1602.h uchar Dis_buffer12=0123456789*#;
uchar key_flag=0;
void main() uchar loca,key_value=https://www.renrendoc.com/paper/0;
Init_1602();
/初始化 1602 while(1) k 。

22、ey_value = https://www.renrendoc.com/paper/Get_key();
/键盘扫描 if(key_flag) lcd_dis(Dis_buffer,key_value,loca+);
/显示 key_flag=0;
/标志位清零 Lcd1602.c: #include #include #include type.h #include lcd1602.h void Init_1602(void) /初始化 Lcd_write_CMD(0 x38,0);
Lcd_write_CMD(0 x38,1);
/设置显示模式 Lcd_write_CMD(0 x08,1);
/显示关闭 Lcd_write_CMD(0 x01,1);


23、 /清屏 Lcd_write_CMD(0 x06,1);
/光标从左向右移,文本不移 Lcd_write_CMD(0 x0f,1);
/显示开 void delay_ms(UCHAR i) /延时 ms 级 unsigned int j;
for(;
i0;
i-) 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);
else for( i=0;
ilen;
i+) Lcd_write_DATA(dis_pi,1);
v 。

【课程设计|课程设计(论文)PS2键盘在单片机上的应用】24、oid 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 y delay_ms(1);
if(y) Lcd_write_CMD(0X80+0X40+x,1);
else Lcd_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);



    稿源:(未知)

    【傻大方】网址:/a/2021/0621/0022536339.html

    标题:课程设计|课程设计(论文)PS2键盘在单片机上的应用


    上一篇:小雄镇村|小雄镇村集体经济组织财务管理制度

    下一篇:行政|行政执法情况调查问卷A