用单片机实现PC键盘输入

合集下载

单片机课程设计例题8-独立式小键盘输入

单片机课程设计例题8-独立式小键盘输入

Vcc
P口
图4­37 独立式键盘结构图
4.程序设计
(1)流程图
开始 开始
键盘扫描函数 mark=01 ? Y mark=02 ? Y mark=03 ? Y LED点亮左移函数 点亮左移函数
有键按下? Y 延时 键释放? Y 置标志位 mark N LED闪烁函数 闪烁函数 结束 N
N
N
LED点亮右移函数 点亮右移函数
n n n n n n n n n n n n n n n n
void main(void) //主函数 { do { switch (key_scan()) { case 0: break; case 1:Led_left(); break; case 2:Led_right(); break; case 3:Led_flash(); break; } }while(1); //循环 }
n n n n n n n n n n n
void Led_right(void)//按键SW2,LED点亮右移函数 { unsigned char i,j=0x7F; for (i=0;i<8;i++) { P1=j ; delay() ; j=(j>>1); j=j|0x80; } }
n
void delay(void) //延时0.5s n { n unsigned int i,j; n for (i=0;i<500;i++) n for (j=0;j<120;j++); for (j=0;j<120;j++); n }
n
n n n n n n n n n n n n n n

用单片机实现PC键盘输入

用单片机实现PC键盘输入

ACALL DELA10
RRC A RET
与主控机的异步串行通讯基于RS-232总线标准。为了使接口具有更好的兼容性和工作稳定性,我们用MAX232E作为数据传送器。MAX232E是专为RS-232通讯而设计,低功耗,外接电容小,抗干扰能力强,管脚有ESD保护并且能支持到120k波特率的数据传输,能很好地解决PC机和单片机电平不匹配问题。同时它增强了数据驱动能力,能支持12米的串行线。
CLR CLOCK ;同步信号产生一个脉冲
CLR KEY ;数据线置0 ACALL DELAY30
PC机复位键盘过程:先发复位命令FFH,单片机收到以FAH应答,PC机收到后,置时钟线和数据线为高电平,单片机检测到此状态开始内部自测试,测试完成发送AAH表示自检结束,否则发FDH表自检出错。
3.编码格式
实际的标准键盘在有按键按下时,键盘向PC机发送两行编码,一组为键稳定闭合时的扫描码,一组为闭合健断开时的断开码。具体各键的扫描码可以查询有关资料,断开码为两个字节,等于F0H+该键的扫描码。主控机通过通讯接口向受控机进行模拟键盘输入时,向串行口发送的编码单片机提取后发送给受控机的PS/2口,因此主控机向串行口发送的编码应符合下列格式:
摘 要:在某些特殊控制场合,需要通过主控机的串行口和受控机的PS/2键盘口,实现主控机对受控机的模拟键盘输入。本文介绍了串行口和键盘口的通讯接口的软、硬件设计方法。
关键词:串行口 PS/2键盘口 通讯 单片机
键盘作为微机的基本输入设备,是微机不可缺的一部分。但在某些特殊的场合,我们要对受控机进行程序设计的特殊输入控制,则需要一接口实现串行口和PS/2键盘口通讯,这样在主控机上通过对串行口的编程就能实现对受控机的模拟键盘输入。笔者开发的该接口以MCS-51单片机为核心,原理图如图1所示,利用MCS-51的全双工异步串行I/O口实现与主控机的异步串行通讯,而和受控机PS/2键盘口的同步串行通讯则通过双向数据I/O口控制同步时钟和数据位。

单片机 矩阵键盘实验 实验报告

单片机 矩阵键盘实验 实验报告

单片机矩阵键盘实验实验报告一、实验目的本次实验的目的是掌握原理和方法,利用单片机识别矩阵键盘并编程实现键码转换功能,控制LED点亮显示。

二、实验原理矩阵键盘是一种由多路单向控制器输入行选择信号与列选择信号连接而形成的一一对应矩阵排列结构。

它广泛应用于电子游戏机、办公自动化设备、医疗仪器、家电控制及书籍检索机器等方面。

本次实验采用的矩阵键盘是一个4 x 4矩阵,用4段数码管显示按键编码,每个按键都可以输入一个代码,矩阵键盘连接单片机,实现一个软件算法来识别键码转化。

从而将键盘中的按键的按下信号转换成程序能够识别的代码,置于相应的输出结果中,控制LED点亮,从而可以实现矩阵键盘按键的转换功能。

三、实验方法1.硬件搭建:矩阵键盘(4行4列)与单片机(Atmel AT89C51)相连,选择引脚连接,并将数码管和LED与单片机相连以实现显示和点亮的功能。

2.程序设计:先建立控制体系,利用中断服务子程序识别和码值转换,利用中断服务子程序实现从按键的按下信号转换为程序能够识别的代码,然后将该代码段编写到单片机程序中,每次按下矩阵键盘按键后单片机给出相应的按键编码输出,用数码管显示,控制LED点亮。

四、实验结果经过实验,成功实现了矩阵键盘与单片机之间的连接,编写了中断服务子程序,完成了按键编码输出与LED点亮的功能。

实验完成后,数码管显示各种按键的编码,同时LED会点亮。

本次实验介绍了矩阵键盘的原理,论述了键码转换的程序设计步骤,并实验完成矩阵键盘与单片机的连接,实现用LED点亮以及数码管显示按键的编码。

通过本次实验,受益匪浅,使我对使用单片机编写算法与程序有了更深入的认识,同时丰富了课堂学习的内容,也使我更加热爱自己所学的专业。

单片机数字输入输出接口扩展设计方法

单片机数字输入输出接口扩展设计方法

单片机数字输入输出接口扩展设计方法单片机作为一种常见的微控制器,其数字输入输出接口的扩展设计方法是我们在电子工程领域中经常遇到的任务之一。

在本文中,我们将讨论单片机数字输入输出接口的扩展设计方法,并探讨其中的原理和应用。

在单片机系统中,数字输入输出(I/O)接口在连接外围设备时起着至关重要的作用。

通过扩展数字 I/O 接口可以为单片机系统提供更多的输入输出通道,从而提高系统的功能和性能。

下面将介绍几种常见的单片机数字 I/O 接口扩展设计方法。

1. 并行输入输出接口扩展并行输入输出接口扩展是最常见和直接的扩展方法之一。

通常,单片机的内部I/O口数量有限,无法满足一些复杂的应用需求。

通过使用外部并行输入输出扩展芯片,可以将单片机的I/O口扩展到更多的通道,同时保持高速数据传输。

这种方法可以使用注册器和开关阵列来实现数据的输入和输出。

2. 串行输入输出接口扩展串行输入输出接口扩展是一种节省外部引脚数量的方法。

使用串行输入输出扩展器,可以通过仅使用几个引脚实现多个输入输出通道。

这种方法适用于具有较多外设设备且外围设备数量有限的应用场景。

通过串行接口(如SPI或I2C)与扩展器通信,可以实现高效的数据传输和控制。

3. 矩阵键盘扩展矩阵键盘扩展是一种常见的数字输入接口扩展方法。

很多应用中,需要通过键盘输入数据或控制系统。

通过矩阵键盘的使用,可以大大减少所需的引脚数量。

通过编程方法可以实现键盘按键的扫描和解码,从而获取用户输入的数据或控制信号。

4. 脉冲编码调制(PCM)接口扩展脉冲编码调制是一种常见的数字输出接口扩展方法。

它通过对数字信号进行脉冲编码,将数字信号转换为脉冲信号输出。

这种方法适用于需要输出多个连续的数字信号的应用,如驱动器或步进电机控制。

通过适当的电路设计和编程,可以实现高效的数字信号输出。

5. PWM(脉冲宽度调制)接口扩展PWM接口扩展是一种常用的数字输出接口扩展方法。

PWM技术通过改变信号的脉冲宽度来实现模拟信号输出。

实验6 单片机与PC机间的串行通信

实验6  单片机与PC机间的串行通信

实验6 单片机与PC机间的串行通信一、实验目的1、掌握电平转换器件RS-232的使用方法;2、掌握Proteus VSM虚拟终端(VITUAL TERMINAL)的使用;3、掌握单片机与PC机间的串行通信软硬件设计方法。

二、实验内容实现利用虚拟终端仿真单片机与PC机间的串行通信。

PC机先发送从键盘输入的数据,单片机接收后回发给PC机。

单片机同时将收到的30~39H间的数据转换成0~9的数字显示,其他字符的数据直接显示为其ASCII码。

单片机和PC机进行通信时,要求使用的波特率、传送的位数等相同。

要能够进行数据传送也必须首先测试双方是否可以可靠通信。

可在PC机和单片机上各编制非常短小的程序,具体可分成PC机串行口发送接收程序、单片机串行口发送程序和单片机串行口发送接收程序。

这三个程序能运行通过,即可证明串行口工作正常。

PC机串行口发送接收程序设置串行口为波特率9600、8位数据、1位停止位、无奇偶校验的简单设置。

从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。

通过让串行口发送线和接收线短接可测试微机串行口,通过让串行口和单片机系统相接,使用此程序可进一步测试单片机的串行通信状况。

具体程序用BASIC编制,简单易懂。

直接输入即可运行。

程序RS232.三、实验电路原理图图7-1 单片机与PC机间电路原理图四、实验步骤1、在PROTEUS中画好电路原理图。

2、串口模型属性设置串口模型属性设置为:波特率―4800;数据位―8;奇偶校验―无;停止位-1,如图7-2所示。

图7-2 串口模型属性设置3、虚拟终端属性设置PCT代表计算机发送数据,PCR用来监视PC接收到的数据,它们的属性设置完全一样,如图7-3所示。

SCMT和SCMR分别是单片机的数据发送和接收终端,用来监视单片机发送和接收的数据,它们的属性设置也完全一样,如图7-4所示。

单片机和PC机双方的波特率、数据位、停止位和检验位等要确保和串口模型的设置一样,并且同单片机程序中串口的设置一致。

PC键盘输入及显示过程

PC键盘输入及显示过程

PC键盘输入及显示过程原理摘要:键盘是最常用也是最主要的输入设备,通过键盘可以将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等。

而显示器也可以将通过键盘输入的字符、数据等显示出来。

在此报告中我们将讨论计算机识别键盘输入的信息并通过显示器来显示信息的过程。

关键词:键盘;输入;显示从计算机识别键盘输入的原理来说,键盘分为全编码键盘和非编码键盘两类。

全编码键盘是由硬件完成键盘识别功能的,它通过识别键是否按下以及所按下键的位置,由全编码电路产生一个唯一对应的编码信息(如ASCII码)。

由于其线路和编码的唯一性,这种键盘是不存在键位冲突的问题的,但是编码键盘结构复杂,成本非常之高现在基本上已经被淘汰了,现在多用非编码键盘。

一、非编码键盘的输入原理非编码键盘是由软件完成键盘识别功能的,它利用简单的硬件和一套专用键盘编码程序来识别按键的位置,然后由CPU将位置码通过查表程序转换成相应的编码信息。

PC键盘主要由单片机、译码器和键开关矩阵三大部分组成。

由于键盘排列成矩阵格式,被按键的识别和行列位置扫描码的产生,是由键盘内部的单片机通过译码器来实现的。

单片机在周期性扫描行、列的同时,读回扫描信号线结果,判断是否有键按下,并计算按键的位置以获得扫描码。

当有键按下时,键盘分两次将位置扫描码发送到键盘接口;按下一次,叫接通扫描码;释放时再发一次,叫断开扫描码。

因此可以用硬件或软件的方法对键盘的行、列分别进行扫视,去查找按下的键,输出扫描位置码,通过查表转换为ASCII码返回。

现在常用的薄膜接触式键盘就是非编码键盘,它任何一个按键都有上下两层薄膜的触点,在任何一层薄膜上的导线数都少于按键数,每一条导线都同时连通多个按键的触点,上层和下层的任何两条导线都最多只在一个按键上重合。

也就是说,上层的1号导线可能会同时经过1、2、3、4、5……等按键,而下层的1号导线可能同时经过1、Q、A、Z……等按键,且两条导线只在1键上重合。

基于单片机的PS2键盘设计

基于单片机的PS2键盘设计

PS2键盘在单片机上的应用摘要:在嵌入式PC应用系统中,作为人机交互设备的键盘,往往采用结构简单按键少的矩阵键盘。

标准键盘虽然能直接与嵌入式PC机的PS/2接口相连,但是体积大,按键多,不能满足需求,本文提出用一种AT89C52单片机实现具有标准PS/2接口的矩阵键盘,具有便捷,实用的特点。

关键词:PS/2接口,PS/2键盘,拨号键,AT89C52,LCD1602Abstract:PS/2 interface is one of the most useful mouse interface.It was IBM’s 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 pressed. PS/2 simulate a phone’s dial keyboard. This system’s feature is the circuit is sample and useful.Keywords:PS/2 keyboard, AT89C52, LCD1602,PS/2 interface,dial keyboard目录1、前言 (1)2、整体方案设计 (2)2.1方案论证 (2)2.2方案比较 (3)3、单元模块设计 (4)3.1PS2键盘模块 (4)3.2单片机模块 (6)3.3LCD显示模块 (7)4、软件设计 (9)5、系统技术指标及精度和误差分析 (10)6、结论 (11)7、设计小结 (12)8、致谢 (14)9、参考文献 (14)附录1:电路总图 (15)附录2:仿真图 (16)附录3:软件代码 (17)1、前言单片机因其性价比高, 处理能力强, 且抗干扰能力好, 在医疗器械、机电液控制、数据传输等各类工控系统和设备仪器中得到广泛应用。

单片机原理及接口技术第5章 IO口应用-显示与开关键盘输入

单片机原理及接口技术第5章  IO口应用-显示与开关键盘输入

图5-1
发光二极管与单片机并行口的连接
5
如果端口引脚为低电平,能使灌电流Id从单片机的外部流入内部,则将
大大增加流过的灌电流值,如图5-1(b)所示。所以,AT89S51单片机任 何一个端口要想获得较大的驱动能力,要采用低电平输出。 如果一定要高电平驱动,可在单片机与发光二极管之间加驱动电路,如 74LS04、74LS244等。 5.1.2 单片机I/O端口控制发光二极管的编程 发光二极管与单片机的I/O端口的连接,如图5-1(b)所示。如要点亮 某发光二极管,只需该I/O端口位写入“0”即可。下面通过一个例子介绍如
21
图5-6 4位LED静态显示的示意图
示字符。这样在同一时间,每一位显示的字符可以各不相同。但是,静态
显示方式占用I/O口线较多。 对于图5-6所示电路,要占用4个8位I/O口(或锁存器)。如果数码管 数目增多,则还需要增加I/O口的数目。在实际的系统设计中,如果显示位 数较少,可采用静态显示方式。但显示位数较多时,为了降低成本,一般 采用动态显示方式。 2. 动态扫描显示方式 显示位数较多时,静态显示所占用的I/O口多,为节省I/O口与驱动电路
单片机控制的8位I/O口锁存器输出相连。如果送往各个LED数码管所显示字 符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到
送入下一个显示字符的段码。因此,静态显示方式的显示无闪烁,亮度较
高,软件控制比较容易。 图5-6所示为4位LED数码管静态显示电路,各个数码管可独立显示,
只要向控制各位I/O口锁存器写入相应的显示段码,该位就能保持相应的显
闭合时,P3.0引脚为低电平。单片机对开关状态的检测是由程序检测
10
图5-3
开关、LED发光二极管与P1口的连接
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用单片机实现PC键盘输入.txt跌倒了,爬起来再哭~~~低调!才是最牛B的炫耀!!不吃饱哪有力气减肥啊?真不好意思,让您贱笑了。

我能抵抗一切,除了诱惑……老子不但有车,还是自行的……串行口和键盘口通讯接口的单片机实现
摘要:在某些特殊控制场合,需要通过主控机的串行口和受控机的PS/2键盘口,实现主控机对受控机的模拟键盘输入。

本文介绍了串行口和键盘口的通讯接口的软、硬件设计方法。

关键词:串行口 PS/2键盘口通讯单片机
键盘作为微机的基本输入设备,是微机不可缺的一部分。

但在某些特殊的场合,我们要对受控机进行程序设计的特殊输入控制,则需要一接口实现串行口和PS/2键盘口通讯,这样在主控机上通过对串行口的编程就能实现对受控机的模拟键盘输入。

笔者开发的该接口以MCS-51单片机为核心,原理图如图1所示,利用MCS-51的全双工异步串行I/O口实现与主控机的异步串行通讯,而和受控机PS/2键盘口的同步串行通讯则通过双向数据I/O口控制同步时钟和数据位。

.1.和主控机的异步串行通讯
异步通讯按帧传送数据,它利用每一帧的起、止信号来建立发送与接受之间的同步,每帧内部各位均采用固定的时间间隔,但帧与帧之间的时间间隔是随机的。

其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个发送和接收的。

1.1硬件接口设计
与主控机的异步串行通讯基于RS-232总线标准。

为了使接口具有更好的兼容性和工作稳定性,我们用MAX232E作为数据传送器。

MAX232E是专为RS-232通讯而设计,低功耗,外接电容小,抗干扰能力强,管脚有ESD保护并且能支持到120k波特率的数据传输,能很好地解决PC机和单片机电平不匹配问题。

同时它增强了数据驱动能力,能支持12米的串行线。

1.2软件接口设计
异步通讯必须在字符格式中设置起始位和结束位,以使收发双方取得同步。

其数据格式为1位起始位+8位数据位+奇偶校验位+1位或2位的停止位。

其中起始位为低电平,数据位传送时先低后高,停止位为高电平。

笔者在电路板上设计了异步串行通讯跳线,可设置通讯的波特率、奇偶校验位和停止位,在单片机软件的开始读取跳线设置值而后初始化串行口,从而支持多种通讯数据格式。

PC机启动时将向串行口发送两个字节的00H以检测串行口,同时防止主控机上的串行口其他的干扰信息,通讯时笔者设计的报文以A0H,CDH作为联络信息开头,第三字节为数据长度,之后为我们要传送的数据,这样有效地过滤掉干扰信息。

单片机按串行口中断方式接收主控机的数据,收到有效格式的数据后,解析报文,提取出真实的数据,传送给受控机的PS/2口。

2.和受控机的同步串行通讯
同步通讯以发送端和接收端使用同一时钟信号来同步,在时钟脉冲的作用下同步地收发数据。

该接口与受控机之间通过标准的六芯PS/2键盘插头相连接。

其信号线包括:一根时钟线、一根数据线、一根地线和一根给单片机供电的电源线,还有两根空线。

所传输的每一字符由11位组成:1位起始位,8位数据位,1位奇偶校验位和1位停止位。

这11位数据在时钟脉冲的同步作用下,实现数据的传送,传送的信号低位在前。

由于只有一根数据线和时钟线,所以,任何时刻只能有一方发送数据。

无通讯时,时钟线和和数据线都设为高电平的初始状态。

受控机上的键盘接口通过设置数据线和时钟线的状态,指导模拟键盘的通讯接口收发数据:
(1).时钟线为低电平,禁止传送数据。

(2).时钟线为高电平,数据线为低电平,通知模拟键盘接收命令。

(3).时钟线和数据线都为高电平,允许模拟键盘发送数据
单片机的+5V电源由受控机通过PS/2键盘插头的电源线提供,同时将两个I/O双向数据口分别作为同步时钟线和数据线,与受控机进行通讯。

2.1发送数据
首先检测时钟线和数据线的状态,当两者都为高电平时,开始传送数据。

每传送一位,时钟同步地产生一个脉冲。

当受控机收到该脉冲后,将时钟线置成低电平并保持一段时间,禁止发送方继续发送,以便于检验数据正确性,数据校验采用偶校验。

因此建议在每个字符的发送间隔有一定的延时。

以下为笔者编写的发送寄存器A的八位数据给受控机PS/2口的子程序。

SendToPs: MOV KEY,C ;发送一位数据
JNB CLOCK,$ ;等待至时钟线为1 ACALL DELAY10
JNB KEY,$;等待至数据线为1
CLR CLOCK ;同步信号产生一个脉冲
CLR KEY ;数据线置0 ACALL DELAY30
ACALL DELAY10 ;延时10us SETB CLOCK
CLR CLOCK ;时钟线置0 DJNZ R1,TC ;共发送8位数据位和
ACALL DELAY30 ;延时30us ;1位偶校验位
SETB CLOCK ;时钟线置1开 ACALL DELAY10
;始发送起始位 ACALL DELAY10
MOV R1,#9 SETB KEY ;发送停止位
MOV C,P ;奇校验->C ACALL DELAY10
CPL C ;偶检验->C CLR CLOCK
TC: ACALL DELAY30
ACALL DELAY10 SETB CLOCK
ACALL DELAY10
RRC A RET
2.2接收数据
在特殊场合,例如开机键盘自检时,PC机会向PS/2键盘口发送自检命令,如果无响应则无法通过硬件检测而无法启动操作系统。

因此在受控机开机时,单片机上电复位,在单片机应能接收到键盘的命令并作出响应。

如果一秒后没收到,则受控机的CMOS设置忽略键盘自检,单片机不作响应继续执行下面的程序。

PC机复位键盘过程:先发复位命令FFH,单片机收到以FAH应答,PC机收到后,置时钟线和数据线为高电平,单片机检测到此状态开始内部自测试,测试完成发送AAH表示自检结束,否则发FDH表自检出错。

3.编码格式
实际的标准键盘在有按键按下时,键盘向PC机发送两行编码,一组为键稳定闭合时的扫描码,一组为闭合健断开时的断开码。

具体各键的扫描码可以查询有关资料,断开码为两个字节,等于F0H+该键的扫描码。

主控机通过通讯接口向受控机进行模拟键盘输入时,向串行口发送的编码单片机提取后发送给受控机的PS/2口,因此主控机向串行口发送的编码应符合下列格式:
主控机向受控机模拟输入字符a,即按下a键(扫描码为1CH):A0H,CDH,03H,1CH,F0H,1CH,如果模拟输入大写A,即按住Shift键(扫描码为12H)和a键:A0H,CDH,06H,12H,1CH,F0H,1CH,F0H,12H。

该通讯接口目前已形成初步产品提供给软件开发商,其体积小、硬件成本低、工作稳定且兼容性好,有较好的实用前景。

参考文献:
[1] 李大友:微型计算机接口技术,清华大学出版社,1998
[2] 余锡存曹国华:单片机原理及接口技术,西安电子科技大学出版社,2000
[3] 熊宁王景波:微机键盘通信发式及其编程,宁夏大学学报(自然科学版),第18卷第4期。

相关文档
最新文档