基于单片机的PS2键盘显示系统设计.docx
- 文档编号:9451595
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:39
- 大小:286.74KB
基于单片机的PS2键盘显示系统设计.docx
《基于单片机的PS2键盘显示系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的PS2键盘显示系统设计.docx(39页珍藏版)》请在冰点文库上搜索。
基于单片机的PS2键盘显示系统设计
基于单片机的键盘显示系统设计
作者姓名:
专业名称:
指导教师:
老师
摘要
在单片机系统中,经常使用的键盘都是专用键盘。
此类键盘为单独设计制作的,成本高、使用硬件连接线多,且可靠性不高,这一状况在那些要求键盘按键较多的应用系统中更为突出。
与此相比,在PC系统中广泛使用PS2键盘具有价格低、通用可靠,且使用连接线少(仅使用2根信号线)的特点,并可满足多种系统的要求。
因此在单片机系统中应用PS2键盘是一种很好的选择。
论文在介绍PS2协议和PS2键盘工作原理与特点的基础上,给出了一个在单片机上实现对PS2键盘支持的硬件连接与驱动程序设计方案。
该设计实现了在单片机系统中对PS2键盘按键输入的支持。
使用KeilC51开发的驱动程序接口和库函数可以方便地移植到其他单片机或嵌入式系统中。
所有程序在KeiluVision4上编译通过,在单片机STC89C58RD+上测试通过PS2协议。
PS2设备有主从之分,主设备采用Female插座,从设备采用Male插头。
现在广泛使用的PS2键盘鼠标均在从设备方式下工作。
PS2接口的时钟与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中)。
主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生。
关键词:
单片机键盘PS2
Abstract
IntheSCMsystem,thekeyboardoftenusedisspecialkeyboard.Thiskindofkeyboardfordesignandproduction,alone.Itcostishigh,usetoomuchconnectionstothehardware,andreliabilityisnothigh.Thesituationintheapplicationsystemthatthekeyboardkeysdemandmoreismoreoutstanding.Bycontrast,inthePCsystemusedthePS2widelyhaslowprice,generalkeyboardreliable,anduselessconnections(onlyuse2rootsignallines)features,andcanmeettherequirementsofvarioussystems.SointheSCMsystemusethePS2keyboardisaverygoodchoice.
IntroducedinthePS2agreementandPS2keyboardoperationprincipleandfeatures,paperisgiveninasinglechipmicrocomputertoworkoutthePS2keyboardsupportofthehardwareconnectionanddriverdesignimplementation.ThisdesignisrealizedthatthePS2keyboardkeyinputbesupportedinthesingle-chipmicrocomputersystem.UsethedriverinterfaceandlibraryfunctionthattheKeilC51developedcanbeeasilyportabletootherSCMorembeddedsystems.AllprocedurescompiledinKeiluVision4,thePS2agreementwillbetestedbySTC89C58RD+.
PS2equipmentmasterandslave,themasterequipmentadoptsFemalesocket,andtheslaveequipmentwithMaleplugs.NowadaythePS2mouseandkeyboardusedwidelyareworkingunderwayofslaveequipment.TheclockanddatawiththePS2interfacearebothopencollectorstructure,mustpullontheexternalresistance(theexternalresistancesetinthemainequipmentgenerally).Thedatacommunicationbetweenmaster-slaveequipmentusethebidirectionalsynchronousserialmodetotransfer,theclocksignalproducedfromtheslaveequipment.
Keywords:
SCM,keyboard,PS2
前言
单片机因其性价比高,处理能力强,且抗干扰能力好,在医疗器械、机电液控制、数据传输等各类工控系统和设备仪器中得到广泛应用。
一方面,在实际应用中,单片机经常需要将采集到的数据发送给PC机进行处理或保存等;另一方面,工控系统和设备仪器设计,因环境或软硬件资源的限制,也往往需要不同的通信接口。
比如,很多工控PC机的键盘接口因受恶劣环境不利于键盘的使用而处于闲置状态。
因此,设计一个具有通用性的PS2键盘通信接口既方便PC机进行外设扩展,又丰富了单片机的接口资源。
单片机与PC机常用的数据通信协议为RS-232通信协议,传输数据格式是二进制,而单片机通过PS2键盘协议传输的数据格式是ASCII码,可以直接以常用的文本文件和表格文件的形式进行处理和保存。
目前,单片机采用PS2协议进行通信较多的是单片机接收PS2键盘设备的数据,而以单片机做为键盘与PC机通信则较为少见。
本文的新颖之处主要表现为:
1.本文主要着眼于基于单片机的PS2键盘通信模块的实现,本模块可通过RS-232、RS-485接口(串行通讯接口)或数据总线从其它系统上获取要传给PC机的数据。
单片机把二进制数据转换成对应的键盘扫描码后上传给PC机。
本模块只需要简单的软硬件改动(甚至于有时不需要改动)就可以扩展大部分工控系统和设备仪器的通信功能,具有较大的通用性。
2.本文比较深入地分析了PC机与键盘之间相互通信的时序,并介绍了PC机开机自检时键盘模块需要响应的几个主要命令。
3.本模块在条形码扫描系统中进行了应用测试,实验证明了本模块具有较好的稳定性和可靠性,有较广泛的应用范围。
1.整体方案设计
本设计的整体思路是:
利用PS2键盘,通过STC89C58RD+单片机接收PS2键盘的键值,并显示在LCD12864上。
1.1方案论证
设计中采用了三个方案,具体的方案见方案一、方案二和方案三。
方案一:
普通键盘设计方案
采用普通的4X4键盘,通过键盘扫描得到键值,有单片机控制并显示在LCD上,优点是成本低,设计简单,缺点是键盘扫描效率不够且容易出错。
图1.1普通键盘整体方案一框图
方案二:
数码管显示设计方案
采用普通的PS2键盘,通过键盘扫描得到键值,由单片机控制并显示在数码管上,优点是成本低,设计简单,键盘自动扫描,自动识别,自动编码,有键按下时才发送数据,因此减轻了CPU的负担,缺点是数码管显示不直观。
图1.2PS2键盘整体方案一框图
方案三:
PS2键盘方案
见图1.3利用PS2键盘设计,优点是键盘自动扫描,自动识别,自动编码,有键按下时才发送数据,因此减轻了CPU的负担,用LCD12864显示方便直观。
图1.3PS2键盘整体方案二框图
1.2方案比较
由于方案一采用的是4X4键盘,设计需要CPU不断的扫描键盘,占用了大量的CPU资源,方案二利用PS2键盘,有键按下时才发送数据,减轻了CPU的负担,但是用数码管显示不够直观,交互界面不够好,因此综合方案一和方案二的优点,本设计采用了方案三。
2.单元模块设计
2.1PS2键盘模块设计
PC机广泛采用的PS2接口为mini-DIN6pin的连接器,如图2.1所示。
PS2设备有主从之分,主设备采用Female插座,从设备采用Male插头。
现在广泛使用的PS2键盘鼠标均在从设备方式下工作。
PS2接口的时钟与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中)。
图2.1PS2连接器
左图:
Male(插头)右图:
Female(插座)
1:
数据线(DATA);2:
未用;
3:
电源地(GND);4:
电源(+5V);
5:
时钟(CLK);6:
未用。
PS2模块由PS2键盘和PS2接口组成,利用通信协议对PS2键盘进行操作,PS2通讯协议是一种双向同步串行通讯协议。
PS2键盘连线图如图所示:
图2.2PS2键盘连线图
电气特性:
PS2通讯协议是一种双向同步串行通讯协议。
通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。
任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。
如果是PC机和PS2键盘间的通讯,PC机必须做主机,也就是说,PC机可以抑制PS2键盘发送数据,而PS2键盘则不会抑制PC机发送数据。
一般两设备间传输数据的最大时钟频率是33Khz,大多数PS2设备工作在10~20kHz。
推荐值在15Khz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。
每一数据帧包含11~12个位,发送时序及每一位的含义如图2.3所示,与从设备到主设备通信相比,其每帧数据多了一个ACK位。
PS2接口操作的时序如下图所示:
(a)
(b)
图2.3键盘接口时序图(a)键盘发送时序;(b)键盘接收时序
当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否为高电平。
如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据。
传输的每一帧由11位组成,发送时序及每一位的含义如图2.3(a)所示。
每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1。
从设备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟下降沿读入数据线状态。
主设备与从设备进行通信时,主设备首先将时钟线和数据线设置为“请求发送”状态,具体方式为:
首先下拉时钟线至少100us抑制通信,然后下拉数据线“请求发送”,最后释放时钟线。
在此过程中,从设备在不超过10us的间隔内必须检查这个状态,当设备检测到这个状态时,它将开始产生时钟信号。
此时数据传输的每一帧由12位构成,其时序和每一位含义如图2.3(b)所示。
与从设备到主设备通信相比,其每帧数据多了一个ACK位。
这是从设备应答接收到字节的应答位,由从设备通过拉低数据线产生,应答位ACK总是为0。
主设备到从设备通信过程中,主设备总是在时钟线为低电平时改变数据线的状态,从设备在时钟上升沿读入数据线状态。
PS2接口通信协议表如下表所示:
表2.4通信协议表
1个起始位
总是逻辑0
8个数据位
(LSB)低位在前
1个奇偶校验位
奇校验
1个停止位
总是逻辑1
1个应答位
仅用在主机对设备的通讯中
表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。
PS2设备从PC机接收一个字节:
由于PS2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。
PC机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。
当PS2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。
主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。
而PS2设备则要配合PC机才能读到准确的数据。
具体连接步骤如下:
(1)等待时钟线为高电平。
(2)判断数据线是否为低,为高则错误退出,否则继续执行。
(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。
(4)读地址线上的校验位内容,1个bit。
(5)读停止位。
(6)如果数据线上为0(即还是低电平),PS2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS2设备没有读到停止位,则表明此次传输出错)。
(7)输出应答位。
(8)检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。
(9)延时45μs,以便PC机进行下一次传输。
读数据线的步骤如下:
(1)延时20μs;
(2)把时钟线拉低;
(3)延时40μs;
(4)释放时钟线;
(5)延时20μs;
(6)读数据线。
下面的步骤可用于发出应答位:
(1)延时15μs;
(2)把数据线拉低;
(3)延时5μs;
(4)把时钟线拉低;
(5)延时40μs;
(6)释放时钟线;
(7)延时5μs;
(8)释放数据线。
PS2键盘扫描方式:
键盘的处理器如果发现有键被按下释放或按住键盘将发送扫描码的信息包到计算机,扫描码有两种不同的类型:
通码和断码,当一个键被按下或按住就发送通码,当一个键被释放就发送断码,每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是哪个按键,每个键一整套的通断码组成了扫描码集有三套标准的扫描码集,分别是第一套、第二套、和第三套,所有现代的键盘默认使用第二套扫描码(见附录5)。
虽然多数第二套通码都只有一个字节宽但也有少数扩展按键的通码是两字节或四字节宽这类的通码第一个字节总是为E0h。
正如键按下通码就被发往计算机一样,只要键一释放断码就会被发送,每个键都有它自己唯一的通码,它们也都有唯一的断码,幸运的是你不用总是通过查表来找出按键的断码在通码和断码之间存在着必然的联系,多数第二套断码有两字节长它们的第一个字节是F0h,第二个字节是这个键的通码,扩展按键的断码通常有三个字节,它们前两个字节是E0h,F0h,最后一个字节是这个按键通码的最后一个字节。
一个键盘发送值的例子:
通码和断码是以什么样的序列发送到你的计算机从而使得字符G出现在你的字处理软件里的呢因为这是一个大写字母需要发生这样的事件次序按下Shift键按下G键释放G键释放Shift键与这些时间相关的扫描码如下Shift键的通码12hG键的通码34hG键的断码F0h34hShift键的断码F0h12h因此发送到你的计算机的数据应该是
12h34hF0h34hF0h12h
2.2单片机模块设计
STC89C51RD+系列单片机简介:
STC89C51RD+系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,最新的D版本内部集成MAX810专用复位电路。
特点:
1.增强型6时钟/机器周期,12时钟/机器周期8051CPU
2.工作电压:
5.5V-3.4V(5V单片机)/3.8V-2.0V(3V单片机)
3.工作频率范围:
0-40MHz,相当于普通8051的0-80MHz.实际工作频率可达48MHz.
4.用户应用程序空间4K/8K/ 13K/16K/20K/32K/64字节
5.片上集成1280字节/512字节RAM
6.通用I/O口(32/36个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O口),P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)IAP(在应用可编程),无需专用编程器/仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3秒即可完成一片
8.EPROM功能
9.看门狗
10.内部集成MAX810专用复位电路(D版本才有),外部晶体20M以下时,可省外部复位电路
11.共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用
12.外部中断4路,下降沿中断或低电平触发中断,PowerDown模式可由外部中断低电平触发中断方式唤醒
13.通用异步串行口(UART),还可用定时器软件实现多个UART
14.工作温度范围:
0-75°C/-40-+85°C
15.封装:
LQFP-44,PDIP-40,PLCC-44,PQFP-44,如选择STC89系列,请优先选择LQFP-44封装.
单片机的引脚图:
图2.5STC89C58RD+引脚图
STC89C58RD+系列单片机的理由:
加密性强,无法解密;
超强抗干扰:
1、高抗静电(ESD保护)
2、轻松过2KV/4KV快速脉冲干扰(EFT测试)
3、宽电压,不怕电源抖动
4、宽温度范围,-40℃~85℃
5、I/O口经过特殊处理
6、单片机内部的电源供电系统经过特殊处理
7、单片机内部的时钟电路经过特殊处理
8、单片机内部的复位电路经过特殊处理
9、单片机内部的看门狗电路经过特殊处理
三大降低单片机时钟对外部电磁辐射的措施:
1、禁止ALE输出;
2、如选6时钟/机器周期,外部时钟频率可降一半;
3、单片机时钟振荡器增益可设为1/2gain。
超低功耗:
1、掉电模式:
典型功耗<0.1μA
2、空闲模式:
典型功耗2mA
3、正常工作模式:
典型功耗4mA-7mA
4、掉电模式可由外部中断唤醒,适用于电池供电系统,如水表、气表、便携设备等。
在系统可编程,无需编程器,可远程升级;
可送STC-ISP下载编程器,1万片/人/天;
可供应内部集成MAX810专用复位电路的单片机,只有D版本才有内部集成专用复位电路,原复位电路可以保留,也可以不用,不用时RESET脚直接短到地。
最小系统包括单片机,电源,复位电路,时钟电路。
单片机接收PS2键盘的键值,并控制LCD的显示。
其系统框图如下图所示:
图2.6单片机控制系统框图
STC89C58RD+单片机有4X8个IO口,其中P0口需外接上拉电阻,因此本次设计采用P3口作为PS2接口(sbitpsdata=P3^0;sbitpsclk=P3^2;),P0口作为与12864的接口,其电路图如下图所示:
图2.7单片机连接图
时钟电路和复位电路:
图2.8时钟电路和复位电路图
USB供电:
图2.9USB供电图
2.3LCD显示模块设计
LCD12864具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。
LCD可分为段位式LCD、字符式LCD和点阵式LCD。
其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画功能、分区开窗口、反转、闪烁等功能,用途十分广泛。
LCD12864每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。
LCD12864内部提供128×2字节的字符显示RAM缓冲区(DDRAM)字符显示是通过将字符显示编码写入该字符显示RAM实现的。
根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。
三种不同字符/字型的选择编码范围为:
0000~0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。
字符显示RAM在液晶模块中的地址80H~9FH。
字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。
表2.10LCD位码表
本论文介绍了点阵式液晶显示器LCD12864与单片机的接口及编程的方法,一般12864有除了VDD逻辑电源(正)和VSS逻辑电源(负)外,主要的控制脚还有片选引脚CSA、CSB、数据\指令选择引脚D/I、读\写选择引脚R/W、读写使能引脚E、数据输入输出引脚D0-D7。
LCD12864采用8位并行数据传输,其操作时序如下表所示:
表2.11LCD工作模式表
状态
输入
输出
读状态
RS=L,RW=H,E=H
D0~D7=状态字
写指令
RS=L,RW=L,D0~D7=指令码,E=高脉冲
无
读数据
RS=H,RW=H,E=H
D0~D7=数据
写数据
RS=H,RW=L,D0~D7=数据,E=高脉冲
无
LCD12864接口由8位数据线,电源地电源正,液晶显示偏压信号(VL),数据命令选择端(RS),读写选择端(R/W)组成。
其接口信号说明如下表所示:
表2.12接口信号说明表
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
sbitrs=P1^0;//LCD使能信号,下降沿有效;
sbitrw=P1^1;//LCD数据、指令寄存器;
sbite=P1^2;//LCD读、写操作;
LCD12864电路图如下图所示:
图2.13LCD电路图
3.驱动程序设计
驱动程序的开发使用C语言以及KeiluVision4编程环境。
PS2键盘驱动程序主要任务是实现单片机与键盘间PS2通信,同时将接收到的按键扫描码转换为该按键的键值,提供给系统上层软件使用。
程序整体设计框图如下:
图3.1程序整体设计框图
3.1单片机与键盘间PS2通信的程序设计
首先初始化IO口和键盘、LCD12864,然后接收按键的键值,并通过8位串行传输方式传送给LCD12864显示。
在PS2通信过程中,主设备(文中是单片机)是在时钟信号为低时发送和接收数据信号。
因为单片机向键盘发送的是指令,需
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 PS2 键盘 显示 系统 设计