毕业设计(论文)-基于51单片机的计算机可锁定加密键盘设计.doc_第1页
毕业设计(论文)-基于51单片机的计算机可锁定加密键盘设计.doc_第2页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

- 16 -xxx职业技术学院毕业论文题 目:基于51单片机的计算机可锁定加密键盘设计姓 名xxx 班 级: xxxx 学 号 :xxx 指导 教师 : xxx 2006年6月2日目录摘要(2)关键词(2)引 言(2)系统简述(3)1 、键盘功能及工作原理(3)2 、 ps/2协议(3)2.1 键盘到pc键盘接口的通信(4)2.2 pc系统到键盘的通信协议(4)3、硬件设计(8)4、软件设计(9)5、应用程序(11)6、结论(16)参考文献(16)基于51单片机的计算机可锁定加密键盘设计黄腾飞摘要 本文介绍了pc键盘和键盘接口的ps/2通信协议,以及用89c51实现可锁定键盘的软件和硬件设计方法。具有安全可靠、容错能力强、可以直接采用标准键盘进行改装、便于实现等优点,并保留标准键盘的全部功能。 关键词 ps/2 加密 c51 键盘abstract:introduce the keyboard of pc and keyboards connects the oscular ps/2 correspondence agreement, and use the 89 c51 realization andcan target the software and hardwares of the keyboard to design the method.have the safety credibility and permit the wrong ability strong,can adopt the standard keyboard to carry on refit directly, easy to carry out etc. advantage, and reserve all function of the standard keyboard.keywords : ps/2 encryption c51 keyboard引 言在智能仪器、自动控制等领域,已大量使用嵌入式pc,如advantech公司的pc/104、amd公司的dimm-pc等。为适应开放式、模块化的要求,嵌入式pc具有标准的pc接口,如vga显示器控制接口、以太网接口、rs232接口、pc/at键盘接口等。所以,可以用标准的pc键盘对嵌入式pc进行操作与控制。键盘在输入指令之后,可能很长一段时间不用。为计算机安全和防止误触发,需要将键盘锁定,还要对某些键采取屏蔽措施,但是pc标准键盘不能满足这些要求。本文介绍一种用89c51设计实现的可锁定加密pc/at键盘。系统简述1、键盘功能及工作原理pc键盘功能主要有按键识别、去抖、重键处理、发送扫描码、自动重发、接收键盘命令、处理命令等。键盘有编码键盘和非编码键盘。编码键盘程序设计简单,但硬件电路复杂,价格较高;非编码键盘用软件来实现识别键、编码转换、去抖等功能,硬件电路简单,价格便宜。现代微机系统中广泛采用非编码键盘。pc键盘多采用18行8列的二维矩阵行列结构。采用行扫描法识别按下的按键。2、 ps/2协议ps/2协议是外设与主机之间通信的一种同步双向串行协议。在该协议中主机拥有较高的优先级,在一定条件下可以终止外设正在进行的发送过程。ps/2协议采用的传送数据帧的格式为:1位起始位(0)、8位数据位、1位奇偶校验位、1位停止位(1)。数据发送时低位在前,高位在后。外设每收到主机发来的1帧数据,都要紧随该帧的停止位发送一个握手位ack(0)应答主机。然后,外设还要发1帧应答数据(0xf0),表示外设已经完整地接收到了主机的命令;而主机则不需发送握手位,也不需要发送应答帧。2.1 键盘到pc键盘接口的通信 当时钟线和数据线均为高电平时,允许键盘发送数据,系统将接收数据;当时钟线被拉为低电平时,表明系统禁止数据传输。图1给出了发送时序,包含1个低电平触发的起始位、8位数据位、1个奇校验位和1个高电平的结束位。2.2 pc系统到键盘的通信协议若时钟线出现高电平,数据线出现低电平,表明系统请求发送,键盘准备产生同步时钟脉冲串,并接收数据。包含了1个低电平触发的起始位、8位数据位、1个奇校验位、1个应答位、1个高电平的结束位。图2为时序图。2.2.1键盘命令及执行过程(1) ffh:复位键盘。系统通过此软件复位命令使键盘进入程序复位和内部自测试,称为基本保证测试(bat)。复位键盘的过程如下:a. 键盘收到ffh后立即回送ack(fah)作答;b. 键盘接口收到ack后,将键盘时钟和数据线置为高电平;c. 键盘检测到此状态后开始bat操作;d. 如果bat正确完成,键盘发送aah以表示结束,否则以fdh(或其它任何值)表示诊断有误。(2)feh:重新发送。当系统检测到从键盘送来的任何传输错误时,它便向键盘发送feh命令。键盘接收到此命令后,将重新送出原来的内容。(3)fdhf7h:空操作(保留未用)。(4)f6h:设置缺省值。此命令使键盘所有条件复位到电源接通时的缺省状态,键盘继续扫描。(5) f5h:设置缺省值和停止键盘。此命令使键盘所有条件复位到电源接通时的缺省状态,并停止键盘扫描,等待下一个键盘命令。(6) f4h:启动键盘。键盘接收到此命令后,用ack(fah)作答,清除输出缓冲器,并启动键盘开始扫描。(7) f3h:设置拍发速率和延时参数。每当按下任一键时,键盘以拍发速率连续送出键的接通码,直到键被释放为止。延时参数是指按下一个键后,键盘输出的响应时间。系统缺省设置:拍发速率=10个/s20%,延时=500ms20%。要改变设置时可以使用f3h命令,并后跟一个字节的参数。参数定义如表1所列。表1 d7 d6 d5 d4 d3 d2 d1 d0 0 c b a计算拍发速率和响应延时的公式如下:拍发速率=1/(8+a)2b0.00417 (1/s)响应延时=(1+c)250 (ms)注:缺省的延时参数值为2ch。此命令的执行过程如下:a. 键盘收到f3h命令后,用fah予以响应,并停止扫描和等待随后的参数;b. 键盘若收到随后的设置参数,用另一个ack响应,并按其参数设置新的拍发速率和响应延时,之后重新开始扫描(若键盘原来是开放的);c. 键盘若收到fah命令,但无随后的设置参数,则键盘结束命令设置,并保持原来的拍发速率和响应延时,停止扫描。(8)f2h,f1,efh:保留未用。(9)f0h:设置键盘扫描码命令。此命令用于设置键盘的扫描码,后跟参数指定三种扫描码的哪一种。键盘复位时,默认扫描码是第二种。(10)eeh:回送命令。此命令用于辅助诊断,要求键盘接收到eeh时也要回送eeh予以响应。若键盘原来是开放的,则继续扫描。edh:置位/复位led指示器。键盘右上角有三个led指示器,分别反映caps、num和scroll三个键的锁定情况。参数字节如表2所列。表2d7d3d2d1 d0 保 留1=激励caps led1=激励num led1=激励scroll led此命令执行过程与f3h相似。若命令后跟参数,则按参数设定led状态并继续扫描。若仅有命令无参数,则不改变led原状态,并停止扫描。(2)键盘响应键盘在下列四种情况下都会向键盘接口发送数据。 按下任一键,键盘以拍发速率向接口发送键盘接通扫描码。 释放所按下的键,键盘发送断开扫描码。 系统向键盘发送键盘命令后,键盘回送应答。 当用户按键速度超出键盘所能容纳的最大键个数时,键盘做出响应。后三种情况称为键盘响应。响应字节有7个,定义如下。(1)feh:重新发送响应。当键盘收到一个无效的键盘命令,或者检测到奇偶错的键盘命令时,键盘回送响应字节为feh,要求系统重发键盘命令。(2) fah:正常应答。对任何一个有效的键盘命令,键盘回送fah予以响应。(3)00h:超限应答。当用户按键速度超出键盘所能容纳的最大键符个数时(16个字节的缓冲器),键盘发送00h。(4) fdh:诊断故障应答。键盘接受软件复位命令,执行自测试过程中。若检测到故障,则以fdh应答。此时,键盘停止扫描并等待下一个键盘命令。(5)aah:诊断正常应答。键盘在软件复位过程中,正常完成bat测试,以aah应答。(6) feh:回响命令的应答,对键盘feh命令的应答。(7) f0h:断开扫描码前缀,键盘对键符按下后释放的应答,第一个字节为f0h,第二个字节为接通扫描码(有几个键例外)。3、 硬件设计pc系列键盘采用18行8列的矩阵行列结构。89c51单片机有4个8位i/o端口,因此可以采用p0、p2口再加上p3口的2个(p3.6和p3.7)作为行扫描线。p1口作为列输入线(如果用p0口作列输入线,必须加上拉电阻)。采用p3.0、p3.1作为数据线和时钟线与pc系统进行通信,用p3.2、p3.4、p3.5控制键盘上的3个指示灯。硬件原理如图3所示。键盘与计算机通过一个五芯(ps/2接口为六芯)插座相接,4个有效引脚的定义分别是电源(vcc)、地(gnd)、串行时钟线(sck)、串行数据线(sio)。4 、软件设计 消抖及重键处理:通过软件上延时程序来消除抖动;采用后按键优先处理,即多键同时按下时,只重复发送最后按下键的扫描码。 程序包括键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序、定时器1中断服务程序、主程序等。键盘扫描子程序用于扫描键状态,将被按键的位置号存入缓冲器中;发送键码子程序用于将缓冲区键的接通码或断开码发送给计算机键盘接口或者存在键盘密码缓冲区中;发送数据子程序用于将数据发给计算机键盘接口;接收命令子程序用于接收计算机键盘接口发来的键盘命令;定时器1中断服务子程序用于给程序中的延时提供标准时钟,并具有软件看门狗功能,防止软件出现死机现象;主程序用于系统初始化,子程序调度,锁定状态的显示等i=缓冲区数据 长度缓冲区头标记head_flag=?last-flag=1?返回缓冲区有last keynnyni0?i=i-1y如果second-delayold-delay则返回,否则发送last-key的接通码 head_flay=0head_flay=1head_flay=2second-f=0?ylast-flag=0second-f=1second-delay=0,发送last-key的接通码后返回如果second-delayfirst-delay则返回,否则发送last-key接通码,second-f=0发送对应键的断开码,删去缓冲区头将key-no插入缓冲区,并置相应标记为0,删去缓冲区头发送key-no,删去缓冲区头y发送子程序 图65、应用程序:/接收子函数void set_scan_v(unsigned char vv) scan_v=vv; temp1=0; temp1_0=c0; temp1_1=c1; first_delay=(1+temp1)*60; first_delay=first_delay/6*frequence; temp1=0; temp2=0; temp1_0=a0; temp1_1=a1; temp1_2=a2; temp2_0=b0; temp2_1=b1; old_delay=(8+temp1)*(1temp2); old_delay=old_delay/6*frequence;/unsigned char data counter=0,counter1=0,counter2=0;void set_led(unsigned char c)/ counter+; temp1=c; scroll_led=!temp1_0; num_led=!temp1_1; caps_led=!temp1_2;void set_default() kbclk=1; kbdata=1; clr_buf(); set_scan_v(scan_v_default);bit parity() bit parity=1; unsigned char data c; for(c=0;c1; return parity; void delay()/reentrant /延时24us unsigned char data t=delay; for(;-t;); void sleep() /延时16us unsigned char data t=sleep; for(;-t;); unsigned char receive(void) /接收子函数 unsigned char data i; bit parity; et1=0; r_buf=0; while(!kbclk); delay(); if(kbdata) send(0xfe); return 0; delay(); sleep(); kbclk=0; for(i=0;i1; delay(); kbclk=0; delay(); sleep(); kbclk=1; sleep(); parity=kbdata; delay(); kbclk=0; delay(); sleep(); kbclk=1;/停止位 delay(); if(!kbdata) send(0xfe);return 0; kbdata=0; sleep(); kbclk=0; sleep(); delay(); kbclk=1; sleep(); kbdata=1; sleep(); et1=1; parity_buf=r_buf; if(parity=parity() return r_buf;else send(0xfe);return 0;/缺错误处理 *6、结论本文介绍的pc/at键盘具有结构简单

温馨提示

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

评论

0/150

提交评论