




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
xx大学本科生毕业设计(论文)STC单片机与PS/2键盘的通信设计xx大学 xx学院 05电子信息工程 xx2009年5月目 录前 言5第1章 PS/2设备接口的工作原理6第1.1节 PS/2接口标准的发展过程6第1.2节 PS/2接口硬件61.2.1. 物理连接器61.2.2. 电气特性6第1.3节 通信过程71.3.1. 一般描述71.3.2. PS/2设备到主机的通讯过程71.3.3. 主机到PS/2设备的通讯过程9第2章 PS/2键盘的编码与命令集11第2.1节 PS/2键盘的编码11第2.2节 PS/2键盘的命令集11第2.3节 键盘扫描码11第2.4节 主机向键盘发送命令12第3章 元器件选择及简介13第3.1节 STC89C51RC单片机133.1.1. STC89C51RC单片机的特点133.1.2. STC89C51RC单片机引脚13第3.2节 HD44780液晶显示器143.2.1. 点阵字符型液晶显示模块的基本特点143.2.2. HD44780的引脚功能143.2.3. HD44780驱动芯片的控制指令15第4章 系统的硬件设计20第4.1节 硬件总体设计20第4.2节 PS/2键盘与单片机的接口电路设计20第4.3节 液晶显示器与单片机的接口电路设计21第4.4节 电路原理图设计22第5章 系统的软件设计23第5.1节 软件总体设计23第5.2节 详细设计235.2.1. PS/2键盘功能模块235.2.2. LCD显示模块24第6章 结论26参考文献27致谢28附录29附录1:本设计源程序29第 33 页 共 33 页STC单片机与PS/2键盘的通信设计苏州大学 应用技术学院 05电子信息工程 周海明2009年5月【摘要】:虽然USB键盘、鼠标开始流行,但是PS/2设备仍然是PC机应用最广泛的设备。PS/2设备接口是由IBM开发并且最初出现在IBM技术参考手册里。PS/2鼠标和键盘履行一种双向同步串行协议,而且,不管通讯的方向怎样,鼠标/键盘总是产生时钟信号。如果主机要发送数据,它必须告诉设备开始产生时钟信号。PS/2键盘接口由于采用标准PS/2协议通信,易于控制,在嵌入式系统中有良好的应用前景。针对如何使用这种接口,本文介绍了其物理接口、电气特性及通信协议。在应用中,给出了PS/2键盘与单片机的接口电路及通信方案,并提供相应的接口通信程序。并以STC89C51RC单片机为例,配合点阵LCD显示器HD44780,实现了PS/2键盘的输入。该程序在STC89C51RC单片机上运行通过,同时还可以方便的移植到其他单片机或嵌入式系统中。【关键词】:PS/2键盘、STC89C51RC单片机、通信协议Abstract : Although USB mice and keyboards are becoming more and more popular,the PS/2 device is still extensively usedThe PS/2 device interface was developed by IBM and originally appeared in the IBM Technical Reference ManualThe PS/2 mouse and keyboard implement a bi-directional synchronous serial protocol,and regardless of the direction of communication,then keyboard/mouse always generates the clock signalIf the host wants to send data,it must first tell the device to start generating a cock signalAs communication through standard PS/2 protocol can be controlled easily,PS/2 keyboard interface has a good application prospect in embedded systemIn order to explain its usage,this paper has introduced PS/2 keyboard physical interface、electrical characteristic and its communication protocolIn application,the circuit of interface and communication scheme between PS/2 interface and MCU are provided,along with some procedure about communicationThis paper sets STC89C51RC MCU equipped with a LCD as a minimum system and realizes the input process of PS/2 keyboardThe procedure has run through on the STC89C51RC MCU,it can also be used in other MCU system or embedded application system easilyKey words: PS/2 keyboard、STC89C51RC MCU、communication protocol前 言随着微电子技术的飞速发展,单片机的性能迅速提高,在运算、逻辑控制、智能化方面显示出非凡的优势,在很大程度上取代了原来由数字逻辑电路、运算放大电路组成的检测、控制电路,应用非常广泛。目前,在嵌入式智能仪器仪表中,常用LCD加键盘实现人机接口,在实际应用中人机界面需要显示汉字,如果用简单的控制键盘实现英文甚至汉字的输入,则程序较复杂;另外在单片机系统中,经常使用的键盘都是专用键盘,这类键盘都是单独设计制作的,成本高,连线多,且可靠性不高,这些问题在那些要求键盘按键较多的应用系统中显得更加突出。与此相比,在PC系统中广泛使用的PS/2键盘具有价格低,通用可靠,且使用的连线少(仅使用2根信号线)的特点,并可满足多数系统的要求,可通过简单的接口实现与MCU的连接,利用成熟且普及的PC键盘,可实现复杂的输入,对于MCU并不占用很多口线,甚至口线复用,可仅在需要输入时再接上键盘,是一种廉价的键盘解决方案。因此,在单片机系统中应用PS/2键盘是一种很好的选择。本文在介绍PS/2协议和PS/2键盘工作原理与特点的基础上,给出在STC89C51RC单片机上实现对PS/2键盘支持的硬件连接方法以及驱动程序的设计实现,并且配合点阵LCD显示器HD44780,实现PS/2键盘的输入。第1章 PS/2设备接口的工作原理第1.1节 PS/2接口标准的发展过程 随着计算器工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBM PC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集,并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集,设有8个主机到键盘的命令。到了1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84101键,但是采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和PS/2及AT键盘兼容,只是功能不同而已。第1.2节 PS/2接口硬件1.2.1. 物理连接器一般,具有五脚连接器的键盘称之为AT键盘,而具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。其实这两种连接器都只有四个脚有意义。它们分别是Clock(时钟脚)、Data(数据脚)、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data(数据脚)都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如图1-1所示:图1-1 PS/2连接器1.2.2. 电气特性PS/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟)线同步,并通过Data(数据)线交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS/2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33KHz,大多数PS/2设备工作在1020KHz。推荐值在15KHz左右,即Clock(时钟)线高、低电平的持续时间都是40微妙。所有数据安排在字节中,每个字节为一帧,包含了1112个位。这些位的含义如表1-1所示:表1-1 数据帧格式说明1 start bit.This is always 0.1个起始位,总是为08 data bits,least significant bit first. 8个数据位,低位在前1 parity bit(odd parity).1个校验位,奇校验1 stop bit.This is always 1.1个停止位,总是为11 acknowledge bit(Host-to-device communication Only)1个应答位(仅在主机对设备的通讯中)如果数据位中包含偶数个1校验位就会置1;如果数据位中包含奇数个1,验位就会置0。数据位中1的个数加上校验位总是为奇数(这就是奇校验)。这是用来进行错误检测的。当主机发送数据给键盘时,设备回送一个握手信号来应答数据包已经收到。这个位不会出现在设备发送数据到主机的过程中。第1.3节 通信过程1.3.1. 一般描述PS/2 鼠标和键盘履行一种双向同步串行通信协议。主机在总线上具有总线控制优先权,可在任何时候抑制来自于设备的通信,把时钟线拉低即可。从设备到主机的数据在时钟的下降沿被读取,相反,主机到设备的数据在时钟的上升沿被读取。不管怎样,键盘鼠标总是在产生时钟信号。一般工作频率在1020 KHz 左右。数据采取奇数校验法。1.3.2. PS/2设备到主机的通讯过程PS/2设备的数据和时钟线都是集电极开路结构(正常保持高电平)。当键盘等待发送数据时,它首先检查时钟以确认它是高电平。如果不是,那么是主机抑制了通讯,设备必须缓冲任何要发送的数据直到重新获得总线的控制权(键盘有16字节的缓冲区,而鼠标的缓冲区仅存储最后一个要发送的数据包)。如果时钟线是高电平,设备就可以开始传送数据。不管通讯的方向怎样,键盘总是产生时钟信号,发送时一般都是按照数据帧格式顺序发送,其中数据位在时钟信号为高电平时准备好,在时钟信号的下降沿(当时钟从高变到低的时候)被主机读取。同步时钟的最大频率为33kHz,一般情况下使用1020kHz的频率。PS/2设备到主机的通讯时序如图1-2所示:图1-2 PS/2设备到主机的通讯时序(1)、 从PS/2设备向主机发送一个字节可按照下面的步骤进行l 检测时钟线电平,如果时钟线为低,则延时50;l 检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);l 检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时主机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);l 延时20(如果此时正在发送起始位,则应延时40);l 输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;l 输出8个数据位到数据线上;l 输出校验位;l 输出停止位(1);l 延时30(如果在发送停止位时释放时钟信号则应延时50)。(2)、 通过以下步骤可发送单个位:l 准备数据位(将需要发送的数据位放到数据线上);l 延时20;l 把时钟线拉低;l 延时40;l 释放时钟线;l 延时20。1.3.3. 主机到PS/2设备的通讯过程在由主机到PS/2设备的通信过程中,由于串行同步时钟仍然是由PS/2设备提供,因此,如果主机要发送数据,它必须首先把时钟线和数据线设置为请求发送状态,主机通过下拉时钟线至少100微秒来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。设备应该在不超过10毫秒的间隔内就要检查这个状态。当设备检测到这个状态,它将开始产生时钟信号,并且时钟脉冲标记下输入八个数据位和一个停止位。主机仅当时钟线为低的时候改变数据线,而数据在时钟脉冲的上升沿被锁存。当发生在设备到主机通讯的过程中正好相反。主机到PS/2设备的通讯时序如图1-3所示:图1-3 主机到PS/2设备的通讯时序在停止位发送后,设备要应答接受到的字节,就把数据线拉低并产生最后一个时钟脉冲。如果主机在第11个时钟脉冲后不释放数据线,设备将继续产生时钟脉冲直到数据线被释放(然后设备将产生一个错误)。主机可以在第11个时钟脉冲(应答位)前终止一次传送,只要下拉时钟线至少100微秒。(1)、 主机发送数据到PS/2 设备的步骤如下:l 把时钟线拉低至少100 微秒;l 把数据线拉低;l 释放时钟线;l 等待设备把时钟线拉低;l 设置/复位数据线发送第一个数据位;l 等待设备把时钟拉高;l 等待设备把时钟拉低;l 重复 5-7步,发送剩下的7个数据位和校验位;l 释放数据线;l 等待设备把数据线拉低;l 等待设备把时钟线拉低;l 等待设备释放数据线和时钟线。(2)、 读数据线的步骤如下:l 延时20;l 把时钟线拉低;l 延时40;l 释放时钟线;l 延时20;l 读数据线。(3)、 发出应答位的步骤如下:l 延时15;l 把数据线拉低;l 延时5;l 把时钟线拉低;l 延时40;l 释放时钟线;l 延时5;l 释放数据线。第2章 PS/2键盘的编码与命令集第2.1节 PS/2键盘的编码目前,PC机使用的PS/2键盘都默认采用第2套扫描码集。扫描码有两种不同的类型:通码(make code)和断码(break code)。当一个键被按下或持续按住时,键盘会将该键的通码发送给主机;而当一个键被释放时,键盘会将该键的断码发送给主机。根据键盘按键扫描码的不同,可将按键分为3类:第一类按键,通码为一个字节,断码为0xF0+通码 形式。如A键,其通码为0x1C,断码为0xF0 0x1C。第二类按键,通码为两个字节,0xE0+0xXX形式,断码为0xE0+0xF0+0xXX形式。如Right Ctrl键,其通码为0xE0 0x14,断码为0xE0 0xF0 0x14。第三类特殊按键,共有两个,Print Screen键,其通码为0xE0 0x12 0xE0 0x7C;断码为0xE0 0xF0 0x7C 0xE0 0xF0 0x12。Pause键,其通码为0xE1 0x14 0x77 0xE1 0xF0 0xl4 0xF0 0x77;断码为空。组合按键扫描码的发送是按照按键发生的次序,如按下面顺序按左Shift十A键: 按下左Shift键; 按下A键; 释放A键; 释放左Shift键,那么计算机上接收到的一串数据为0x12 0x1C 0xF0 0x1C 0xF0 0x12。在文中的驱动程序设计中,就是根据按键的分类对其分别进行处理。第2.2节 PS/2键盘的命令集主机可通过向PS/2键盘发送命令对键盘进行设置或者获得键盘的状态等操作。每发送一个字节,主机都会从键盘获得一个应答0xFA(“重发resend”和“回应echo”命令例外)。下面简要介绍驱动程序在键盘初始化过程中所用的指令:0xED主机在本命令后跟随发送一个参数字节,用于指示键盘上num lock,caps lock, scroll lock led的状态。0xF3主机在这条命令后跟随发送一个字节参数来定义键盘击打的速率和延时。0xF4用于在当主机发送0xF5禁止键盘后,重新使能键盘。第2.3节 键盘扫描码键盘上的微处理器采用行列扫描的方式来管理按键矩阵。它能识别键盘上处于正在按下的键、刚释放的键、持续按下的键三种状态下的按键,并能以数据包的形式发送给主机。该数据包称为键盘扫描码。每一个按键都有惟一的两种不同类型扫描码:接通扫描码和断开扫描码。顾名思义,按键接通时键盘发送接通扫描码,按键断开时发送断开扫描码。例如模拟PC机上的“A”是如何由键盘来发送的。按键顺序:先按住键盘上的左“Shift”键,按下“A”键,释放“A”键,释放“Shift”键。“A”键的接通扫描码为0x1C,断开扫描码为0xF0 0x1C,左“Shift”键的接通扫描码为0x12,断开扫描码为0xF0 0x12。则键盘发送数据顺序为:0x12 0x1C 0xF0 0x1C 0xF0 0x12。第2.4节 主机向键盘发送命令主机可以在任何时候发送诸如复位、设置状态灯、使能键盘、禁止键盘、设置键盘重复率、设置扫描码、读取标识码等命令。主机每向键盘发送一个字节的数据,键盘接收的令字或参数正确便以0xFA响应,否则键盘回送0xFE数据要求,请求主机重发上一个字节的数据。第3章 元器件选择及简介第3.1节 STC89C51RC单片机3.1.1. STC89C51RC单片机的特点STC89C51RC系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,是MCS-51系列单片机的派生产品。它们的指令系统、硬件系统和片内资源与标准的8052单片机完全兼容,DIP-40封装系列与8051为pin-to-pin兼容,指令代码是与8051完全兼容的单片机。STC89C51RC单片机具有增强型12时钟/机器周期、6时钟/机器周期,可任意选择,工作电压为5.5V-3.4V(5V单片机)/3.8V-2.0V(5V单片机);工作频率范围是0-40MHZ,相当于普通8051的0-80MHZ,实际频率可达48MHZ。用户应用程序空间为4K/8K/13K/16K/20K/32K/64K字节 ,片上集成512字节/1280字节RAM。有32/36个通用I/O口,P1/P2/P3/P4是准双向口,集成ISP(在系统可编程)/IPA(在应用可编程),无需专用的编程器/仿真器,可通过串行口(P3.0/P3.1)直接下载用户程序,8K程序3秒就可以完成一片,具备EEPROM功能,工作温度范围在0-750,共有3个16位定时器/计数器,其中定时器T0还可以当成2个8位定时器使用;封装形式有DIP-40,PLCC-44,PQFP-44等。3.1.2. STC89C51RC单片机引脚图3-1是STC89C51RC单片机的引脚图及图形符号。这是一种双列直插式封装结构,40脚DIP。还有44脚的PLCC封装,一般不常用。图3-1 STC89C51RC引脚图第3.2节 HD44780液晶显示器3.2.1. 点阵字符型液晶显示模块的基本特点l 液晶显示屏是以若干个5 8或5 11点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。l 主控制驱动电路为HD44780(HITACHI)及其他公司全兼容电路,如NT3881(NOVATEK)、 KS0066(SAMSUNG)、SPLC78A0(SUNPLUS)。l 具有字符发生器ROM可显示192种字符(160个57点阵字符和32个510点阵字符)。l 具有64个字节的自定义字符RAM,可自定义8个58点阵字符或4个511点阵字符。l 具有80个字节的RAM。l 标准的接口特性,适配M6800系列MPU的操作时序。l 模块结构紧凑、轻巧、装配容易。l 单+5V电源供电(宽温型需要一个-7V的驱动电源)。l 低功耗、长寿命、高可靠性。3.2.2. HD44780的引脚功能HD44780液晶显示模块的引脚功能如表3-1所示。表3-1 HD44780液晶显示模块的引脚功能。引脚号符号状态功能1Vss输入电源地2Vdd输入+5V逻辑电源3VO输入液晶驱动电源4RS输入寄存器选择:“1”数据;“0”指令5R/W输入读、写操作选择:“1”为读;“0”为写6E输入使能信号710DB0DB3三态数据总线低四位1114DB4DB7三态数据总线高四位15LED+输入LCD背光+电源输入端16LED-输入LCD背光-电源输入端有些显示模块有2个使能端,这种器件可以提供多达4行的显示屏,一个使能端可以控制2行。当RS和RW都为低电平时可以写入指令或显示的地址;当RS为高电平、RW为低电平时,可以写入要显示的数据;当RS为低电平、RW为高电平时,可以读出忙信号和地址计数器(CGRAM或DDRAM的值)。当使能端E由高电平变为低电平时,液晶模块执行写操作(写入命令或要显示的数据、地址);D0D7为双向数据线。真值表如表3-2所示:表3-2 信号真值表RSR/WE功能00下降沿写指令代码01高电平读忙标志和AC值10下降沿写数据11高电平读数据3.2.3. HD44780驱动芯片的控制指令(1)、 清屏控制指令如表3-3所示:表3-3 清屏控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000000001运行时间(250KHz):1.64 us。功能:清DDRAM和AC值。(2)、 归位控制指令如表3-4所示: 表3-4 归位控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000000001*运行时间(250KHz):1.64 us。功能:AC=0,光标、画面回HOME位。(3)、 输入方式设置控制指令如表3-5所示:表3-5 输入方式设置控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB000000001I/DS运行时间(250KHz):40us。功能:设置光标、画面移动方式。其中:I/D=1,数据读、写操作后,AC自动增一;I/D=0,数据读、写操作后,AC自动减一;S=1,数据读、写操作,画面平移;S=0,数据读、写操作,画面不动。(4)、 显示开关控制指令如表3-6所示:表3-6 显示开关控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000001DCB运行时间(250KHz):40us。功能:设置显示、光标及闪烁开、关。其中:D表示显示开关,D=1为开,D=0为关;C表示光标开关,C=1为开,C=0为关;B表示闪烁开关,B=1为开,B=0为关。(5)、 光标、画面位移控制指令如表3-7所示:表3-7 光标、画面位移控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000001S/CR/L*运行时间(250KHz):40 us。功能:光标、画面移动,不影响DDRAM。其中:S/C=1,画面平移一个字符位;S/C=0,光标平移一个字符位;R/L=1,右移;R/L=0,左移。(6)、 功能设置控制指令如表3-8所示:表3-8 功能设置控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB000001DLNF*运行时间(250KHz):40 us。功能:工作方式设置(初始化指令)。其中: DL=1,8位数据接口;DL=0,4位数据接口;N=1,两行显示;N=0,一行显示;F=1,510点阵字符;F=0,57点阵字符。(7)、 CGRAM地址设置控制指令如表3-9所示:表3-9 CGRAM地址设置控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB00001A5A4A3A2A1A0运行时间(250KHz):40 us。功能:设置CGRAM地址,CGRAM用于存储用户自定义的点阵字符代码,64B可自定义8个58点阵字符或4个511点阵字符。A5A0=03FH。(8)、 DDRAM地址设置控制指令如表3-10所示:表3-10 DDRAM地址设置控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB0001A6A5A4A3A2A1A0运行时间(250KHz):40 us。功能:设置DDRAM地址,DDRAM用于存放待显示的地址。其中:N=0,一行显示A6A0=027H(40个字符);N=1,两行显示,首行A6A0=00H27H,次行A6A0=40H67H。(9)、 读BF及AC值控制指令如表3-11所示:表3-11 读BF及AC值控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB001BFAC6AC5AC4AC3AC2AC1AC0功能:读忙BF值和地址计数器AC值。其中:BF=1,忙;BF0,准备好。此时,AC值意义为最近一次地址设置(CGRAM或DDRAM)定义(10)、 写数据控制指令如表3-12所示:表3-12 写数据控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB010数 据运行时间(250KHz):40 us。功能:根据最近设置的地址性质,数据写入DDRAM或CGRAM内。(11)、 读数据控制指令如表3-13所示:表3-13 读数据控制指令RSR/WDB7DB6DB5DB4DB3DB2DB1DB011数 据运行时间(250KHz):40 us。功能:根据最近设置的地址性质,从DDRAM或CGRAM数据读出。第4章 系统的硬件设计第4.1节 硬件总体设计硬件电路的设计采用PC键盘直接通过PS/2没备接口与单片机连接。由于在工业控制现场显示用到的汉字并不多,主要显示一些字符。所以没有采用含有国家标准的一、二级汉字的字库芯片来进行汉字图像的显示。设计中将要显示的汉字、字符点阵编码存入ROM,显示时进行调用,程序实现也非常简单。选用的单片机是宏晶公司的STC89C51RC芯片,因为这种芯片有较大的应用市场。在液晶显示器(LCD)方面,选择HD44780型点阵式液晶显示器(LCD),系统组成如图4-1所示:图4-1 系统组成框图第4.2节 PS/2键盘与单片机的接口电路设计该模块的主要功能是接收PS/2键盘处理器发送的信息包,经过解码后取出输入的数据。PS/2键盘以帧的格式发送的数据,一帧包含11、12位。单片机在接收PS/2键盘发送的数据时。先将时钟线拉低,等待PC键盘将时钟线拉高后进行数据的接收。单片机接收到PC键盘发送的信息包中可能包含1个、2个或3个帧的数据,每一帧其中8个数据位为有效信息。将一个信息包中所有有效信息组合在一起就是键盘的扫描码,键盘扫描码有两种不同类型:通码和断码。当一个键被按下就发送通码,当一个键被释放就发送断码。每个按键被分配了唯一的通码和断码。主机通过查找唯一的扫描码,那么就可以测定是哪个按键被按下。PS/2接口硬件结构可以看出它有四个引脚:电源地,+5V,数据和时钟。主机提供+5V,并且键盘的地连接到主机的电源地上。数据和时钟都是集电极开路的,这就意味着它们通常都是保持高电平而很容易下拉到地(逻辑0)。在时钟和数据线上要有一个很大的上拉电阻,置“0”就把线拉低,置“l”就让线上浮成为高电平。单片机接收PS/2键盘发送的数据时,先将时钟线拉低,等待PS/2键盘将时钟线拉高后进行数据的接收。在本系统中,采用的是STC89C51RC单片机,晶振为12MHz。单片机与PS/2键盘的连接方式如图4-2所示。P1.0接PS/2键盘的时钟线;P1.1接PS/2键盘的数据线。图4-2 单片机与PS/2键盘的连接方式第4.3节 液晶显示器与单片机的接口电路设计如图4-3所示:用STC89C51RC的P2口作为数据线,用P0.5、P0.6、P0.7分别作为LCD的RS、R/W、EN。其中RS是寄存器选择信号,R/W是读写信号,EN是下降沿触发的片选信号。图4-3 STC89C51RC与HD44780的接口第4.4节 电路原理图设计系统的电路原理图如图4-4所示:图4-4 电路原理图第5章 系统的软件设计第5.1节 软件总体设计系统软件设计采用的是模块化的设计思想,主要分为PS/2键盘模块和LCD显示模块两个部分。PS/2键盘模块主要负责键盘的输入,通过编码和解码确定输入的字符和图形;而LCD显示模块主要完成显示开关设置、工作方式设置、输入方式设置以及数据的写入和读出等功能。系统主程序流程如图5-1所示:图5-1 主程序流程图第5.2节 详细设计5.2.1. PS/2键盘功能模块系统上电后,PS/ 2 键盘会自动初始化为默认设置,而在本系统中也不需要单片机向键盘发送控制命令,因此软件程序设计时不需涉及单片机(主设备) 到键盘的通信,只涉及到单片机通过查询接收键盘发送的数据,即只考虑键盘到主设备的通信,遵循键盘到主设备的同步串行通信协议即可。在同步串行通信过程中,收、发双方必须事先规定两个方面:l 用于同步时钟信号的基准源及频率。l 字符格式,即规定每一帧数据的格式。该同步串行通信协议如前所述,其时钟基准信号由PS/ 2 键盘自动产生,典型值为15 KHz。通信的字符格式为每一帧数据共11 位,包括1 位起始位,8位数据位,1 位校验位和1 位停止位。键盘的同步串行通信比其它通信标准( 如RS232C 异步串行通信) 的速度低,为了提高键盘与单片机主设备双方的通信速度,可在单片机端接收键盘发送的数据时,默认每一帧数据均是正确的,直接抛弃每一帧数据的起始位、校验位与停止位,从而提高数据的处理速度。另外,在对键盘发送的每一帧数据进行处理时,一定要注意中间的8 位数据位按由高到低的顺序发送,编程时需要作移位处理。应用程序采用汇编语言编写,在Keil uVision2环境下编译通过。单片机主程序中采用查询方式接收键盘信息。STC89C51RC单片机接收键盘发送的数据的流程如图5-2所示。图5-2 单片机接受键盘数据的程序流程5.2.2. LCD显示模块基于HD44780的字符型液晶显示模块是一种常用的液晶显示器件,主控制驱动电路为HD44780(HITACHI),其他一些公司的电路与之全兼容,如NOVATEK的NT3881,SAMSUNG公司的KS0066,SUNPLUS公司的SPLC78A01。由其控制的液晶显示器可以提供若干个57或510点阵块组成的显示字符群,每个点阵块为一个字符位,字符间距和行距都为一个点的宽度,具有64 B的自定义字符RAM,可自定义8个58点阵字符或4个511点阵字符。可以提供81404(字符数行数)各种显示屏规格,广泛应用于智能仪表、通讯、办公自动化及军工等领域。本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为2行,字型为57点阵,然后设置显示、光标及闪烁为开,最后设置为正向增量方式且不移位。LCD显示流程如图5-3所示:图5-3 LCD显示流程图第6章 结论通过本次毕业设计设计,加深了我对单片机的认识,经过查阅有关方面的书籍,获得了许多专业方面的知识,开拓了视野。通过设计电路、制作板子,提高了理论水平和实际的动手能力。完成了适当的硬件电路的设计和软件的编程与调试。初步掌握了运用单片机编程,利用单片机仿真器进行单片机仿真和调试。在整个设计与制作过程中,从一开始拿到题目,到分析与设计,采用所学的单片机的知识,运用单片机最小应用系统,设计出硬件电路。用EDA软件Protel 99 SE完成原理图的制作,通过腐蚀、打孔、插件、焊接完成硬件电路板。然后在此基础上,用汇编语言来编写程序,来实现对硬件电路的控制。对于程序的调试,通过多次调试,得到完整正确的程序。继而,将程序烧录到STC89C51RC芯片中,最后,加入电源,各部分电路显示正常达到本次设计的目的。总之,本次毕业设计是个很好的锻炼机会,对我们各个方面的能力都有所提高,对将来我们走出校园,从事类似专业的工作都有很大的益处。参考文献1. 肖金球单片机原理与接口技术北京:清华大学出版社,20042. 何立民单片机高级教程应用与设计北京:北京航空航天大学出版社,20023. 徐爱钧8051单片机实践教程asm51汇编语言与C51高级语言应用北京:电子工业出版社,20054. 石东海单片机数据通信技术从入门到精通西安:西安电子科技大学出版社,20025. 戴梅萼、史嘉权微型计算机技术及应用北京:清华大学出版社,20026. 肖玲妮、袁增贵Protel 99 SE印刷电路板设计教程北京:清华大学出版社,20037. Adam Chapweske PS/2 Technical Reference,2002致谢在本课题研发的过程中,我得到了指导老师和同事们的帮助,借此机会向他们表示诚挚的感谢。首先我要感谢我的指导老师xx。在整个毕业设计的过程中,他对我热心指导、严格要求,在选题、系统总体设计与技术方案上,给予我宝贵的建议,帮助我建立了正确的设计思想,保证了课题的研究和开发工作的顺利完成。从他那里,我不仅学到了技术方面的知识,而且还学到了他们美好的高尚品格和严谨的工作态度。另外我要感谢许多不认识的,单片机仿真论坛的网友,在我进行毕业设计的过程中,他们帮助我克服了许多困难,也提供了一些相关的资料。如果没有他们的帮助,我可能没有这么快地写完这篇论文,写出目前这些内容。谢谢!其次我也很感谢论文答辩的各位评委老师,感谢他们在百忙之中抽出时间帮我们答辩。我心里深深知道不管他们提出什么样的问题,难也好,容易也好,其目的只有一个,那就是帮助我们提高,在这我也想说一声谢谢您们!谢谢您们帮助我提高,欢迎你们提出宝贵的意见。附录附录1:本设计源程序CLK EQU P1.0 DATA EQU P1.1 RS BIT P0.5 ;REGISTER SLECTOR 0:指令寄存器.BF;1:数据寄存器 RW BIT P0.6 ;READ/WRITE 0:写;1:读 E BIT P0.7 ;ENABLE 0:禁止读写;1:读写使能 LCD EQU P2 ORG 0000H LJMP START ORG 0030h ;BF BIT P2.7 ;BUSY FLAG 0:LCM空闲 ;1:LCM忙START:ACALL CHECK_BFMOV LCD,#00000001B ;清屏ACALL WR_COMMACALL CHECK_BFACALL INIT_LCDACALL CHECK_BFMOV LCD,#80HACALL WR_COMMMOV DPTR,#TABLECLR CLKSETB DATAACALL DELAY100MSSETB CLKREADY:JB CLK,$ ;时钟为高,等待MOV R3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京首都医科大学附属北京朝阳医院招聘18人(第三次)模拟试卷及完整答案详解1套
- 2025年上半年四川泸州市龙马潭区考试选调机关事业单位人员17名模拟试卷附答案详解(典型题)
- 2025年山东法官培训学院公开招聘人员模拟试卷及1套完整答案详解
- 2025年南通醋酸纤维有限公司招聘(36人)考前自测高频考点模拟试题及答案详解(易错题)
- 2025年福建省南平绿发建设工程劳务管理有限公司招聘14人考前自测高频考点模拟试题(含答案详解)
- 2025年台州市黄岩区公开选调9名公务员考前自测高频考点模拟试题及答案详解(易错题)
- 2025辽宁锦州医科大学开展“锦医英才计划”教学名师遴选工作考前自测高频考点模拟试题及完整答案详解
- 2025年合肥庐阳科技创新集团有限公司招聘6人模拟试卷及完整答案详解一套
- 2025福建三明林校招聘407人模拟试卷带答案详解
- 2025广东清远市清城区招聘事业单位人才专项编制人员11人模拟试卷及答案详解参考
- 2025年全国国家版图知识竞赛题库及答案(中小学组)
- 机加工安全生产培训考核试题及答案(班组级)(精)
- 电梯从业证考试试题及答案解析
- 2024年武汉商学院公开招聘辅导员笔试题含答案
- 钢结构厂房装修施工方案报告
- DB32-T 5156-2025 零碳园区建设指南
- 人教版三年级数学上册第一单元分层作业设计
- 2024年国庆中秋安全教育主题班会《欢度双节 安全护航》主题安全教育【课件】
- 浙教版(2024)科学八年级上册 2.1力(第2课时)课件
- 中国外卖大战报告(中英)-高盛-202507
- 咖啡对身体健康的影响研究
评论
0/150
提交评论