




免费预览已结束,剩余38页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成都理工大学工程技术学院毕业论文基于单片机的键盘显示系统设计作者姓名:专业名称:指导教师:老师基于单片机的键盘显示系统设计摘要在单片机系统中,经常使用的键盘都是专用键盘。此类键盘为单独设计制作的,成本高、使用硬件连接线多,且可靠性不高,这一状况在那些要求键盘按键较多的应用系统中更为突出。与此相比,在PC系统中广泛使用PS2键盘具有价格低、通用可靠,且使用连接线少(仅使用2根信号线)的特点,并可满足多种系统的要求。因此在单片机系统中应用PS2键盘是一种很好的选择。论文在介绍PS2协议和PS2键盘工作原理与特点的基础上,给出了一个在单片机上实现对PS2键盘支持的硬件连接与驱动程序设计方案。该设计实现了在单片机系统中对PS2键盘按键输入的支持。使用Keil C51开发的驱动程序接口和库函数可以方便地移植到其他单片机或嵌入式系统中。所有程序在Keil uVision4上编译通过,在单片机STC89C58RD+上测试通过PS2协议。PS2设备有主从之分,主设备采用Female插座,从设备采用Male插头。现在广泛使用的PS2键盘鼠标均在从设备方式下工作。PS2接口的时钟与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中)。主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生。关键词:单片机 键盘 PS2- III -AbstractIn the SCM system, the keyboard often used is special keyboard. This kind of keyboard for design and production, alone.It cost is high, use too much connections to the hardware, and reliability is not high. The situation in the application system that the keyboard keys demand more is more outstanding. By contrast, in the PC system used the PS2 widely has low price, general keyboard reliable, and use less connections (only use 2 root signal lines) features, and can meet the requirements of various systems. So in the SCM system use the PS2 keyboard is a very good choice.Introduced in the PS2 agreement and PS2 keyboard operation principle and features, paper is given in a single chip microcomputer to work out the PS2 keyboard support of the hardware connection and driver design implementation. This design is realized that the PS2 keyboard key input be supported in the single-chip microcomputer system. Use the driver interface and library function that the Keil C51 developed can be easily portable to other SCM or embedded systems. All procedures compiled in Keil uVision4,the PS2 agreement will be tested by STC89C58RD+.PS2 equipment master and slave, the master equipment adopts Female socket, and the slave equipment with Male plugs. Nowaday the PS2 mouse and keyboard used widely are working under way of slave equipment. The clock and data with the PS2 interface are both open collector structure, must pull on the external resistance(the external resistance set in the main equipment generally). The data communication between master-slave equipment use the bidirectional synchronous serial mode to transfer,the clock signal produced from the slave equipment.Keywords: SCM ,keyboard, PS2目录摘要IAbstractII目录III前言11.整体方案设计21.1 方案论证21.2 方案比较32.单元模块设计42.1 PS2键盘模块设计42.2 单片机模块设计82.3 LCD显示模块设计143.驱动程序设计173.1 单片机与键盘间PS2通信的程序设计183.2 键盘扫描码转换程序设计193.3 LCD显示程序设计214.应用软件的简介22结论23致谢24参考文献25附录1:电路总图26附录2:PCB图27附录3:元件菜单表28附录4:软件代码程序29附录5:第二套扫描码表37附录6:实物图38前言单片机因其性价比高, 处理能力强, 且抗干扰能力好, 在医疗器械、机电液控制、数据传输等各类工控系统和设备仪器中得到广泛应用。一方面, 在实际应用中, 单片机经常需要将采集到的数据发送给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-1.整体方案设计本设计的整体思路是:利用PS2键盘,通过STC89C58RD+单片机接收PS2键盘的键值,并显示在LCD12864上。1.1 方案论证设计中采用了三个方案,具体的方案见方案一、方案二和方案三。方案一:普通键盘设计方案采用普通的4X4键盘,通过键盘扫描得到键值,有单片机控制并显示在LCD上,优点是成本低,设计简单,缺点是键盘扫描效率不够且容易出错。4X4键盘STC89C58RD+单片机LCD12864显示图 1.1 普通键盘整体方案一框图方案二:数码管显示设计方案采用普通的PS2键盘,通过键盘扫描得到键值,由单片机控制并显示在数码管上,优点是成本低,设计简单,键盘自动扫描,自动识别,自动编码,有键按下时才发送数据,因此减轻了CPU的负担,缺点是数码管显示不直观。PS2键盘STC89C58RD单片机数码管显示图 1.2 PS2键盘整体方案一框图方案三:PS2键盘方案见图1.3利用PS2键盘设计,优点是键盘自动扫描,自动识别,自动编码,有键按下时才发送数据,因此减轻了CPU的负担,用LCD12864显示方便直观。PS2键盘STC89C58RD单片机LCD12864显示图 1.3 PS2键盘整体方案二框图1.2 方案比较由于方案一采用的是4X4键盘,设计需要CPU不断的扫描键盘,占用了大量的CPU资源,方案二利用PS2键盘,有键按下时才发送数据,减轻了CPU的负担,但是用数码管显示不够直观,交互界面不够好,因此综合方案一和方案二的优点,本设计采用了方案三。-39-2.单元模块设计2.1 PS2键盘模块设计PC机广泛采用的PS2接口为mini-DIN 6pin的连接器,如图2.1所示。PS2设备有主从之分,主设备采用Female插座,从设备采用Male插头。现在广泛使用的PS2键盘鼠标均在从设备方式下工作。PS2接口的时钟与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中)。图 2.1 PS2连接器左图:Male(插头) 右图:Female(插座)1:数据线(DATA);2:未用;3:电源地(GND);4:电源(+5V);5:时钟(CLK);6:未用。PS2模块由PS2键盘和PS2接口组成,利用通信协议对PS2键盘进行操作,PS2通讯协议是一种双向同步串行通讯协议。PS2键盘连线图如图所示:图 2.2 PS2键盘连线图电气特性:PS2 通讯协议是一种双向同步串行通讯协议。通讯的两端通过 Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是 PC 机和 PS2 键盘间的通讯,PC机必须做主机,也就是说,PC机可以抑制 PS2 键盘发送数据,而PS2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33Khz,大多数 PS2 设备工作在1020kHz。推荐值在15Khz 左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40s。每一数据帧包含1112个位,发送时序及每一位的含义如图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个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。PS2设备从PC机接收一个字节:由于PS2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100s来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而PS2设备则要配合PC机才能读到准确的数据。具体连接步骤如下:(1)等待时钟线为高电平。(2)判断数据线是否为低,为高则错误退出,否则继续执行。(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。(4)读地址线上的校验位内容,1个bit。(5)读停止位。(6)如果数据线上为0(即还是低电平),PS2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS2设备没有读到停止位,则表明此次传输出错)。 (7)输出应答位。(8)检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。(9)延时45s,以便PC机进行下一次传输。读数据线的步骤如下:(1)延时20s;(2)把时钟线拉低;(3)延时40s;(4)释放时钟线;(5)延时20s;(6)读数据线。下面的步骤可用于发出应答位:(1)延时15s;(2)把数据线拉低;(3)延时5s;(4)把时钟线拉低;(5)延时40s;(6)释放时钟线;(7)延时5s;(8)释放数据线。PS2键盘扫描方式:键盘的处理器如果发现有键被按下释放或按住键盘将发送扫描码的信息包到计算机,扫描码有两种不同的类型:通码和断码,当一个键被按下或按住就发送通码,当一个键被释放就发送断码,每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是哪个按键,每个键一整套的通断码组成了扫描码集有三套标准的扫描码集,分别是第一套、第二套、和第三套,所有现代的键盘默认使用第二套扫描码(见附录5)。虽然多数第二套通码都只有一个字节宽但也有少数扩展按键的通码是两字节或四字节宽这类的通码第一个字节总是为E0h。正如键按下通码就被发往计算机一样,只要键一释放断码就会被发送,每个键都有它自己唯一的通码,它们也都有唯一的断码,幸运的是你不用总是通过查表来找出按键的断码在通码和断码之间存在着必然的联系,多数第二套断码有两字节长它们的第一个字节是F0h ,第二个字节是这个键的通码,扩展按键的断码通常有三个字节,它们前两个字节是E0h,F0h,最后一个字节是这个按键通码的最后一个字节。一个键盘发送值的例子: 通码和断码是以什么样的序列发送到你的计算机从而使得字符G出现在你的字处理软件里的呢因为这是一个大写字母需要发生这样的事件次序按下Shift 键按下G键释放G 键释放Shift 键与这些时间相关的扫描码如下Shift 键的通码12hG 键的通码34h G 键的断码F0h 34h Shift 键的断码F0h 12h 因此发送到你的计算机的数据应该是12h 34h F0h 34h F0h 12h2.2 单片机模块设计STC89C51RD+ 系列单片机简介:STC89C51RD+系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,最新的D版本内部集 成MAX810专用复位电路。 特点:1.增强型6时钟/机器周期,12时钟/机器周期8051CPU2.工作电压: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字节RAM6.通用 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路,下降沿中断或低电平触发中断,Power Down模式可由外部中断低电平触发中断方式唤醒 13.通用异步串行口(UART),还可用定时器软件实现多个UART 14.工作温度范围:0-75C/-40- +85C15.封装:LQFP-44,PDIP-40,PLCC-44,PQFP-44,如选择STC89系列,请优先选择LQFP-44封装单片机的引脚图:图 2.5 STC89C58RD+引脚图STC89C58RD+系列单片机的理由:加密性强, 无法解密;超强抗干扰:1 、高抗静电(E S D 保护)2 、轻松过2KV/4KV 快速脉冲干扰(EFT 测试)3 、宽电压,不怕电源抖动4 、宽温度范围,-40855 、I / O 口经过特殊处理6 、单片机内部的电源供电系统经过特殊处理7 、单片机内部的时钟电路经过特殊处理8 、单片机内部的复位电路经过特殊处理9 、单片机内部的看门狗电路经过特殊处理三大降低单片机时钟对外部电磁辐射的措施:1 、禁止A L E 输出;2 、如选6 时钟/ 机器周期,外部时钟频率可降一半;3 、单片机时钟振荡器增益可设为1/2gain。超低功耗:1 、掉电模式: 典型功耗 0.1 A2 、空闲模式: 典型功耗 2mA3 、正常工作模式: 典型功耗 4mA - 7mA4 、掉电模式可由外部中断唤醒,适用于电池供电系统,如水表、气表、便携设备等。在系统可编程, 无需编程器, 可远程升级;可送STC-ISP 下载编程器,1 万片/ 人/ 天;可供应内部集成MAX810专用复位电路的单片机,只有D 版本才有内部集成专用复位电路,原复位电路可以保留,也可以不用,不用时RESET 脚直接短到地。最小系统包括单片机,电源,复位电路,时钟电路。单片机接收PS2键盘的键值,并控制LCD的显示。其系统框图如下图所示:接收PS2键值盘STC89C58RD+单片机LCD显示USB供电复位电路和时钟电路图 2.6 单片机控制系统框图STC89C58RD+单片机有4X8个IO口,其中P0口需外接上拉电阻,因此本次设计采用P3口作为PS2接口(sbit psdata=P30;sbit psclk=P32;),P0口作为与12864的接口,其电路图如下图所示:图 2.7 单片机连接图时钟电路和复位电路:图 2.8 时钟电路和复位电路图USB供电:图 2.9 USB供电图2.3 LCD显示模块设计LCD12864具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD 可分为段位式LCD、字符式LCD 和点阵式LCD。其中,段位式LCD和字符式LCD 只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD 不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画功能、分区开窗口、反转、闪烁等功能,用途十分广泛。LCD12864每屏可显示4行8列共32个1616点阵的汉字,每个显示RAM可显示1个中文字符或2个168点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。LCD12864内部提供1282字节的字符显示RAM缓冲区(DDRAM)字符显示是通过将字符显示编码写入该字符显 示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示 CGROM(中文字库)、HCGROM(ASCII码字库)及 CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H(其代码分别是 0000、0002、0004、0006共4个)显示自定义字型,02H7FH 显示半宽ASCII码字符,A1A0HF7FFH显示8192 种GB2312中文字库字形。字符 显示RAM 在液晶模块中的地址 80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。表2.10 LCD位码表本论文介绍了点阵式液晶显示器LCD12864 与单片机的接口及编程的方法,一般12864 有除了VDD 逻辑电源(正)和VSS 逻辑电源(负)外,主要的控制脚还有片选引脚CSA、CSB、数据指令选择引脚D/I、读写选择引脚R/W、读写使能引脚E、数据输入输出引脚D0-D7。LCD12864采用8位并行数据传输,其操作时序如下表所示:表2.11 LCD工作模式表状态输入输出读状态RS=L,RW=H,E=HD0D7=状态字写指令RS=L,RW=L,D0D7=指令码,E=高脉冲无读数据RS=H,RW=H,E=HD0D7=数据写数据RS=H,RW=L,D0D7=数据,E=高脉冲无LCD12864接口由8位数据线,电源地电源正,液晶显示偏压信号(VL),数据命令选择端(RS),读写选择端(R/W)组成。其接口信号说明如下表所示:表 2.12 接口信号说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极sbit rs=P10; /LCD使能信号,下降沿有效;sbit rw=P11; /LCD数据、指令寄存器;sbit e=P12; /LCD读、写操作;LCD12864电路图如下图所示:图 2.13 LCD电路图3.驱动程序设计驱动程序的开发使用C语言以及Keil uVision4编程环境。PS2键盘驱动程序主要任务是实现单片机与键盘间PS2通信,同时将接收到的按键扫描码转换为该按键的键值,提供给系统上层软件使用。程序整体设计框图如下:开始初始化键盘、LCD接收键值LCD12864上显示处理键值图 3.1 程序整体设计框图3.1 单片机与键盘间PS2通信的程序设计首先初始化IO口和键盘、LCD12864,然后接收按键的键值,并通过8位串行传输方式传送给LCD12864显示。在PS2通信过程中,主设备(文中是单片机)是在时钟信号为低时发送和接收数据信号。因为单片机向键盘发送的是指令,需要键盘回应,所以这部分程序采用查询方式;而单片机接收键盘数据时,数据线上的信号在时钟为低时已经稳定,所以这部分程序采用中断方式,且不需要在程序中加入延时程序。单片机与键盘间PS2通信的主要程序代码如下:void write_com(uchar com) /写指令 rw=0;rs=0;delay_50us(1);P0=com;e=1;delay_50us(10);e=0;delay_50us(2);/void write_dat(uchar dat) /写数据 rw=0;rs=1;delay_50us(1);P0=dat;e=1;delay_50us(10);e=0;delay_50us(2);3.2 键盘扫描码转换程序设计按照PS2键盘协议操作,键盘按下时发送通码,弹起时发送断码,在单片机中,将接收到的码值与第二套扫描码比较,得出键值(第二套扫描码表见 附录5)。由于键盘扫描码无规律可循,因此由键盘扫描码获得相应按键的键值(字符键为其ASCII值,控制键如F1,Ctrl等为自定义值),只能通过查表的方式获得。由于按键的3种类型及部分按键对应着两个键值(如A键的键值根据Caps和Shift键状态有0x41(A)和0x61(a)两种),因此综合考虑查表转换速度和资源消耗,设计中使用4个键盘表:键盘扫描码转换基本集和切换集(kb_plain_mapNR_KEYS与kb_shift_mapNR_KEYS);包含E0前缀的键盘扫描码转换基本集和切换集(kbeO_plain_mapNR_KEYS与kbe0_shiftmapNR_KEYS)。PS2 104键盘按键扫描码最大值为0x83,所以设置NR_KEYS为132。所有4个键盘表的定义均为如下形式:KB_MAPMAKE CODE=KEYVAL,如果扫描码对应的按键为空(如KB_MAP0x00),则定义相应键值为NULL_KEY(0x00)。键盘扫描码转换的主要程序:switch(ps_key0) /严格地说应该是 switch(ps_key0+ps_key2+ps_key3+.+ps_keyi)这里只用到第一类所以. case 0x00: break; case 0x58: count1=0; flag=0; goto loop; break;case 0x76: write_com(0x01);count=0; break; /清除显示 case 0x1c: ps2_key_display(0,flag); break; case 0x32: ps2_key_display(1,flag); break; case 0x21: ps2_key_display(2,flag); break; case 0x23: ps2_key_display(3,flag); break; case 0x24: ps2_key_display(4,flag); break; case 0x2b: ps2_key_display(5,flag); break; case 0x34: ps2_key_display(6,flag); break; case 0x33: ps2_key_display(7,flag); break; case 0x43: ps2_key_display(8,flag); break; case 0x3b: ps2_key_display(9,flag); break; case 0x42: ps2_key_display(10,flag); break; case 0x4b: ps2_key_display(11,flag); break; case 0x3a: ps2_key_display(12,flag); break; case 0x31: ps2_key_display(13,flag); break; case 0x44: ps2_key_display(14,flag); break; case 0x4d: ps2_key_display(15,flag); break; case 0x15: ps2_key_display(16,flag); break; case 0x2d: ps2_key_display(17,flag); break; case 0x1b: ps2_key_display(18,flag); break; case 0x2c: ps2_key_display(19,flag); break; case 0x3c: ps2_key_display(20,flag); break; case 0x2a: ps2_key_display(21,flag); break; case 0x1d: ps2_key_display(22,flag); break; case 0x22: ps2_key_display(23,flag); break; case 0x35: ps2_key_display(24,flag); break; case 0x1a: ps2_key_display(25,flag); break; case 0x45: ps2_key_display(26,flag); break; case 0x16: ps2_key_display(27,flag); break; case 0x1e: ps2_key_display(28,flag); break; case 0x26: ps2_key_display(29,flag); break; case 0x25: ps2_key_display(30,flag); break; case 0x2e: ps2_key_display(31,flag); break; case 0x36: ps2_key_display(32,flag); break; case 0x3d: ps2_key_display(33,flag); break; case 0x3e: ps2_key_display(34,flag); break; case 0x46: ps2_key_display(35,flag); break; case 0x0e: ps2_key_display(36,flag); break; case 0x4e: ps2_key_display(37,flag); break; case 0x55: ps2_key_display(38,flag); break; case 0x5d: ps2_key_display(39,flag); break; default: break;3.3 LCD显示程序设计首先初始化LCD12864端口和寄存器,然后接收单片机传送的数据,通过12864写操作时序显示接收到的数据。初始化LCD12864端口和寄存器的程序:sbit rs=P10; /LCD使能信号,下降沿有效sbit rw=P11; /LCD数据、指令寄存器sbit e=P12; /LCD读、写操作LCD显示的主要程序:void ps2_key_display(uchar ps_i100,bit flag1 ) count+;if(count=17) write_com(0x90);if(count=33) write_com(0x88);if(count=49) write_com(0x98);if(count=65) write_com(0x01); write_com(0x80); count=0; if(flag1)write_dat(ps2_key_disps_i100);elsewrite_dat(ps2_key_dis1ps_i100);ps_key0=0x00;4.应用软件的简介Keil的简介Keil软件是目前最流行开发51单片机的软件设计之一,提供了C编辑器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成的开发环境将这些部分组合在一起。我们通过keil软件编写的汇编源程序或者C语言源程序需要变为可执行代码的扩展名为HEX的二进制文件机器码才能在CPU等微处理器上执行。Protel 99SE的简介Protel 99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。电路工程设计部分(1)电路原理设计部分(Advanced Schematic 99):电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。(2)印刷电路板设计系统(Advanced PCB 99):印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。(3)自动布线系统(Advanced Route 99):本系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。结论随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。IBM推出PS2键盘接口标准。该标准定义了84101键,采用6脚mini-DIN连接器,用双向串行通讯协议并且提供有可选择的第二套键盘扫描码集,同时支持17个主机到键盘的命令。本系统利用PS2键盘作为交互接口,操作方便,比普通键盘精度高,在机械键盘中需要考虑键盘去抖的问题,硬件去抖或软件去抖,但是在PS2键盘中不需要考虑键盘去抖,因为PS2键盘采用按键发送通码,弹起发送断码的方式,不易出错。只要将接口连线处理好,单片机处理数据时不出错。本次设计实现了软件的设计和电路设计,实现了系统功能,完成了系统设计指标:按下一个键,准确的显示在LCD12864上。本系统采用第二套键盘扫描码,利用PS2键盘作为输入,准确度比普通键盘高,完成了系统的电路图,PCB图和程序设计,实现了系统的功能。很多品牌机上采用PS2口来连接鼠标和键盘。PS2接口与传统的键盘接口除了在接口外型、引脚有不同外,在数据传送格式上是相同的。现在很多主板用PS2接口插座连接键盘,传统接口的键盘可以通过PS2接口转换器连接主板PS2接口插座。采用PS2键盘比普通键盘精度更高,使用更方便,USB即插即用,与USB相比,稳定性而言PS2比较好,但它不支持热拔插,因此在使用时需注意不能经常拔掉下PS2键盘。本次设计完成后,在效果上能完全达到原先设计的功能。例如,通过按下按键“1”,能将数值“1”发送到LCD上显示驱动程序经Keil uVision4编译,在STC89C58RD单片机上通过,该PS2键盘接口可以作为一个接口模块嵌入到其他设备仪器和工程控制系统,增加了与PC机的通信途径。在应用和测试结果分析中,该接口模块具有较高的可靠性与稳定性。由于时间的仓促和我们自身水平有限,本设计在功能上也只是完成了一些基本功能,对于电路的可靠性,稳定性等参数还未做过详细的测试。致谢在徐灵飞老师和同学辛勤指导下,我积极探讨和思考,完成此毕业设计论文。此次设计,使我受益匪浅。在此,我要感谢徐灵飞老师提供这次毕业设计的机会;感谢电子信息科学与技术专业的各位同学的帮助。在这里我要特别感谢徐灵飞老师,在我的设计过程中,至始至终都得到了他的悉心指导,我的毕业设计才得以顺利完成。参考文献1 曹巧媛.单片机原理及应用M.北京:电子工业出版社,1997.2 张洪润.兰清华.单片机应用技术教程M.北京:清华大学出版社,1997. 3 李华.MCS-51系列单片机实用接口技术M.北京航空航天大学出版社,1993.4 张俊谟.单片机中级教程M.北京航空航天大学出版社,2006.5 张培仁.基于 C 语言编程 MCS-51 单片机原理与应用M. 北京:清华大学出版社,2003. 6 杨振江,杜铁军.流行单片机实用子程序及应用实例M.西安电子科技大学出版社,2002. 7 蔡美琴,张为民.MCS-51 系列单片机系统及其应用(第二版)M. 北京:高等教育出版社,2004.8 苏家健.单片机原理及应用技术M. 北京:高等教育出版社,2004.9 谭浩强.C语言程序设计(第三版)M.北京:清华大学出版社,2005.附录1:电路总图附录2:PCB图附录3:元件菜单表附录4:软件代码程序/*PS2键盘接法: 5 | 6 5脚接P3.2 时钟端口 3 4 1脚接P3.0 数据端口 1 2 3脚接GND 4脚接+5v*/#include#includedelay.hsbit rs=P10; /LCD使能信号,下降沿有效sbit rw=P11; /LCD数据、指令寄存器sbit e=P12; /LCD读、写操作sbit psdata=P30; /数据端口sbit psclk=P32; /时钟端口uchar ps_bit; /读的位数uchar ps_keyvalue; /键值uchar ps_i1; /码的个数uchar count=0,count1=0;bit flag=0;data uchar ps_key3=0,0,0;/放入通码,断码code uchar ps2_key_dis=ABCD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧园艺课程改革在新农科背景下的实践
- 气道异物类知识竞赛题及答案
- 2025-2030年全球新能源产业政策对新能源产业市场拓展激励报告
- 上海策划咨询报价方案
- 日语考试模拟试题及答案
- DB65T 4382-2021 圆盘式果树修剪机 作业质量
- 段防洪应急预案(3篇)
- 书法专业面试题目及答案
- 最专业情商测试题及答案
- DB65T 4414-2021 机采棉水肥一体化化肥减量增效技术规程
- 钢模板安全知识培训课件
- 新学期三年级班主任工作计划(16篇)
- 2025广东汕尾市海丰县公安局招聘警务辅助人员50人备考题库及答案解析
- 消防政府专职队培训课件
- 6.1 包饺子(教案)北师大版数学三年级上册
- 现代学徒制企业试点工作评估报告
- 火电厂特种设备培训课件
- 档案管理基本知识培训课件
- 2025至2030年中国K12教育行业市场调研分析及投资战略咨询报告
- 2025年中学无线电知识竞赛题库
- 2025《心肺复苏机救治院内心搏骤停患者护理专家共识》解读
评论
0/150
提交评论