键盘接口实验实验报告及程序

合集下载

DSP键盘接口及七段数码管显示实验报告

DSP键盘接口及七段数码管显示实验报告

七:讨论和回答问题及体会1.如何在8位数码管上分别显示8个不同数?(即有8个BCD码格式的数num0~num7,要求第一位数码管显示num0,第二位显示num1,以此类推,第八位数码管显示num7。

)答:要使设计输入为BCD码,就要在数码管上显示数字,需要做一个译码器,将BCD 码转换成显示相应数字的段码。

若要循环点亮8位数码管,需要SEL输出为1000000,01000000,…,00000001。

此功能可以通过将一个3位二进制数计数器输出接一个3-8译码器来实现。

2.七段数码管分哪两种显示方式?答:1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。

使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。

实验中使用的LED显示器为共阴极接法。

2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。

使用时公共阳极接+5V。

这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。

为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。

七段发光二极管,再加上一个小数点位,共计八段。

因此提供给LED显示器的字形代码正好一个字节。

若a、b、c、d、e、f、g、dp 8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7。

学生实验报告实验课名称:DSP原理及运用实验项目名称:键盘接口及七段数码管显示实验专业名称:测控技术与仪器班级:24081001学号:11学生姓名:徐章龙教师姓名:高涛2013年6月27日组别同组同学实验日期 2013 年 6 月 27 日实验室名称电子技术实验室一、实验名称键盘接口及七段数码管显示实验二、实验目的与要求1.了解串行口8位LED数码管及64键键盘智能控制芯片HD7279A的基本原理;2.学习用TMS320C54XDSP 芯片控制芯片HD7279A 键盘和LED 的基本方法和步骤;三、实验内容通过4X4按键完成在数码管上的各种显示功能,以及LCD上显示。

计算机接口技术实验报告优选全文

计算机接口技术实验报告优选全文

最新精选全文完整版(可编辑修改)《计算机接口技术》实验报告专业:电信息科学与技术班级:姓名:学号:年月日实验一:8255A并行口实验实验目的:掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。

实验内容:一、实验原理实验原理图如图5-9所示,PB4 ~ PB7和PC0 ~ PC7分别与发光二极管电路L1~ L12 相连,本实验为模拟交通灯实验。

交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。

8255A的PB4~ PB7对应黄灯,PC0 ~ PC3对应红灯,PC4~ PC7对应绿灯。

8255A 工作于模式0,并置为输出。

由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。

二、实验线路连接(1) CS-8255插孔连译码输出Y7插孔。

(2) L1 - PC4 L4 - PC5 L7 - PC6 L10 - PC7L2 - PB4 L5 - PB5 L8 - PB6 L11 - PB7L3 - PC0 L6 - PC1 L9 - PC2 L12 - PC3三、实验软件清单见随机光盘,文件名为H8255-2.ASM四、实验步骤1、按图5-9连好实验线路2、运行实验程序在DVCC-8086JHN上显示"8255-2"。

同时L1~L12 发光二极管模拟交通灯显示。

CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073H ;设置控制端常量IOAPT EQU 0070H ;设置数据端口A地址常量IOBPT EQU 0071H ;设置数据端口B地址常量IOCPT EQU 0072H ;设置数据端口C地址常量IOBDATA EQU 0500HCONTPORT EQU 00DFHDA TAPORT EQU 00DEHDA TA1 EQU 0640HSTART: JMP IOLEDIOLED: CALL FORMATCALL LEDDISPMOV AX,0HMOV DS,AXMOV AL,82HMOV DX,IOCONPT ;写8255控制字,三个口均工作于方式0OUT DX,AL ;往控制端口写控制字,设置A口工作在方式0输入,B方式0输出MOV DX,IOBPT ;读PB口数据存0601H单元IN AL,DXnot almov al,00hnopnopMOV BYTE PTR DS:[0501H],ALMOV DX,IOCONPT ;写方式控制字均为输出MOV AL,80HOUT DX,ALMOV DX,IOBPT ;置PB0,PB4~PB6为1,其余为0MOV AL,DS:[0501H]OR AL,0FH ;使PB0~PB3为1,PB4~PB7为0OUT DX,AL ;即熄灭红灯,点亮绿灯MOV DX,IOCPT ;使PC1,PC4~PC6为1,其余为0MOV AL,0FH ;使PC0~PC3为1,PC4~PC7为0OUT DX,ALCALL DELAY1 ;延时IOLED0: MOV AL,01011010B ;使2,4路口绿灯亮,1,3口红灯亮MOV DX,IOCPTOUT DX,ALCALL DELAY1CALL DELAY1and AL,0FH ;灭2,4路口绿灯OUT DX,ALMOV CX,8H ;只计数器值为8IOLED1: MOV DX,IOBPTMOV AL,DS:[0501H]or AL,01011111B ;点亮2,4路口黄灯OUT DX,ALCALL DELAY2 ;短暂延时and AL,00000000B ;灭掉黄灯OUT DX,ALCALL DELAY2LOOP IOLED1 ;黄灯闪烁8次MOV DX,IOCPTMOV AL,0FH ;点亮4个绿灯,灭掉4个红灯OUT DX,ALCALL DELAY2MOV AL,10100101B ;点亮1,3口红灯和2,4路口绿灯OUT DX,ALCALL DELAY1CALL DELAY1and AL,0FH ;灭掉红灯OUT DX,ALMOV CX,8HIOLED2: MOV DX,IOBPTMOV AL,DS:[0501H]or AL,10101111B ;点亮1,3路口黄灯OUT DX,ALCALL DELAY2and AL,00000000B ;灭掉黄灯OUT DX,ALCALL DELAY2LOOP IOLED2MOV DX,IOCPTMOV AL,0FH ;点亮4个绿灯,灭掉4个红灯OUT DX,ALCALL DELAY2JMP IOLED0 ;循环DELAY1: PUSH AXPUSH CX ;延时子程序MOV CX,0030HDELY2: CALL DELAY2LOOP DELY2POP CXPOP AXRETDELAY2: PUSH CXMOV CX,8000HDELA1: LOOP DELA1POP CXRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07H JA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0640H],405BHADD BX,2MOV WORD PTR DS:[BX+0640H],4040HADD BX,2MOV WORD PTR DS:[BX+0640H],6D6DH ADD BX,2MOV WORD PTR DS:[BX+0640H],7F5BHRETCODE ENDSEND START实验二:定时/计数器实验目的:1. 学会8253芯片和微机接口原理和方法。

输入输出实验报告

输入输出实验报告

一、实验目的1. 熟悉计算机输入输出设备的基本概念和作用。

2. 掌握常用输入输出设备的使用方法。

3. 了解输入输出设备的性能指标及其对计算机系统的影响。

二、实验环境1. 实验室:计算机实验室2. 硬件设备:计算机、键盘、鼠标、显示器、打印机、U盘等3. 软件:Windows操作系统三、实验内容1. 输入设备实验(1)键盘输入实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 连接键盘,确保键盘正常工作;③ 打开记事本,输入一段文字;2)实验结果:成功输入文字,观察键盘布局,了解各个键位的含义;3)实验总结:熟练掌握键盘布局,提高输入速度。

(2)鼠标输入实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 连接鼠标,确保鼠标正常工作;③ 使用鼠标在桌面进行拖动、点击等操作;2)实验结果:成功进行鼠标操作,熟悉鼠标的使用方法;3)实验总结:熟练掌握鼠标操作,提高操作效率。

2. 输出设备实验(1)显示器输出实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 观察显示器显示的桌面背景、图标等信息;2)实验结果:显示器正常工作,显示计算机信息;3)实验总结:了解显示器的作用,熟悉显示器的性能指标。

(2)打印机输出实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 将打印机连接到计算机;③ 打开文档,进行打印设置;④ 点击打印按钮,将文档打印到纸上;2)实验结果:成功将文档打印到纸上;3)实验总结:了解打印机的工作原理,熟悉打印机的性能指标。

3. 存储设备实验(1)U盘存储实验1)实验步骤:① 打开计算机,进入Windows操作系统;② 将U盘插入USB接口;③ 在文件资源管理器中找到U盘,进行文件读写操作;2)实验结果:成功将文件存入U盘,从U盘中读取文件;3)实验总结:了解U盘的工作原理,熟悉U盘的容量、读写速度等性能指标。

四、实验结果与分析1. 输入设备实验通过键盘输入实验,掌握了键盘布局和输入方法,提高了输入速度。

p1口输入输出实验报告

p1口输入输出实验报告

p1口输入输出实验报告p1口输入输出实验报告引言:计算机科学领域的发展使得我们能够使用各种各样的设备与计算机进行交互。

而在这个过程中,输入输出接口的设计和实现显得尤为重要。

本篇文章将围绕p1口输入输出接口展开讨论,介绍其原理、实验过程以及实验结果。

一、p1口输入输出接口的原理p1口是一种通用输入输出接口,它可以连接各种外部设备,如键盘、鼠标、打印机等。

p1口的原理是通过电信号的传输来实现与外部设备的交互。

具体来说,p1口通过发送和接收电压信号来进行通信,从而实现输入输出的功能。

二、实验过程1. 准备工作在进行实验前,我们需要准备一台计算机和一些外部设备,如键盘、鼠标和打印机。

将这些设备连接到计算机的p1口上。

2. 输入实验首先,我们进行输入实验。

在连接好设备后,我们可以通过键盘向计算机输入一些字符。

计算机会将这些字符接收并进行处理。

我们可以通过编写一个简单的程序来实现字符的显示和处理。

在程序中,我们可以使用相应的函数来获取键盘输入,并将其显示在屏幕上。

通过这个实验,我们可以验证p1口的输入功能是否正常工作。

3. 输出实验接下来,我们进行输出实验。

在程序中,我们可以使用相应的函数来控制打印机输出指定的内容。

通过这个实验,我们可以验证p1口的输出功能是否正常工作。

4. 实验结果通过实验,我们可以得出以下结论:- p1口的输入功能正常工作,可以准确地接收键盘输入的字符。

- p1口的输出功能正常工作,可以控制打印机输出指定的内容。

三、实验总结p1口作为一种通用输入输出接口,具有广泛的应用。

通过本次实验,我们对p1口的原理和功能有了更深入的了解。

p1口的输入功能可以使计算机接收外部设备的输入信号,从而实现与用户的交互。

p1口的输出功能可以使计算机控制外部设备进行相应的操作,从而实现对外部环境的影响。

在今后的学习和工作中,我们可以进一步探索p1口的应用,提高计算机与外部设备的交互效率。

结语:通过本次实验,我们对p1口输入输出接口有了更深入的理解。

实验7串行接口输入输出实验

实验7串行接口输入输出实验

北京林业大学11学年—12学年第 2 学期计算机组成原理实验任务书专业名称:计算机科学与技术实验学时: 2课程名称:计算机组成原理任课教师:张海燕实验题目:实验七串行接口输入输出实验实验环境:TEC-XP+教学实验系统、PC机实验内容1.串行接口输入输出;2.串行接口扩展。

实验目的学习串行口的正确设置与使用。

实验要求1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的必要准备。

2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果;3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。

4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。

善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。

必要知识串行接口是计算机主机和某些设备之间实现通信,硬件造价比较低廉、标准化程度比较高的一种输入输出接口线路,缺点是通信的速度比较低。

从在程序中使用串行接口芯片的角度看,接口芯片内有用户可以访问的4个寄存器,分别是接收CPU送来数据的输出数据缓冲寄存器,向CPU提供数据的输入数据缓冲寄存器,接收CPU发来的控制命令的控制寄存器,向CPU提供接口运行状态的状态寄存器,必须有办法区分这4个寄存器。

接口芯片中还有执行数据串行和并行转换的电路,接口识别电路等。

串行接口用于执行数据的输入输出操作。

一次输入或输出操作通常需要两个操作步骤完成,第一步是为接口芯片提供入出端口地址,即把指令寄存器低位字节的内容(8位的IO端口地址)经过内部总线和运算器部件写进地址寄存器AR,第二步是执行输入或输出操作,若执行输入指令IN,则应从接口芯片读出一个8位的数据并经过数据总线DB和内部总线IB写进寄存器堆中的R0寄存器,若执行OUT指令,则需要把R0寄存器的内容经过内部总线IB和数据总线DB写入接口芯片。

键盘 实验报告

键盘 实验报告

键盘实验报告实验报告:键盘引言:键盘是计算机输入设备中最常用的一种设备,用于输入字符、数字、命令等等。

键盘以一定的方式将我们按下的按键转换成计算机可识别的信号,从而实现输入功能。

本实验的目的是了解键盘的工作原理、结构以及使用方法。

实验目的:1. 了解键盘的工作原理;2. 掌握键盘通信协议;3. 掌握键盘的结构和按键布局;4. 学习键盘的使用方法。

实验原理:键盘的工作原理是通过扫描矩阵的方式实现的,常见的键盘为4x4矩阵结构,也有其他规格的矩阵结构。

按键的每一个位置都与键盘电路中的一个电气开关相连接,当按下某个按键时,会导电并向计算机发送信号。

键盘通过PS/2或USB 接口与计算机相连,传输按键的信息。

键盘结构通常包括以下部分:1. 按键:键盘上的每一个按键代表一个字符、数字、命令或功能等。

按键大致分为四个区域:字母区、数字区、符号区和功能区。

2. 电路板:键盘的电路板上连接着按键开关,实现按键的电气连接和信号传输。

3. 导线和线缆:将电路板与接口连接,传递信号。

4. 接口:键盘通过PS/2或USB接口与计算机相连,实现信号的传输。

实验步骤:1. 准备一个计算机和一台键盘,确保键盘的连接正确。

2. 打开计算机,进入操作系统。

3. 在文本编辑器中打开一个文档,用来记录实验结果。

4. 将注意力集中在键盘上,按下键盘上的一个按键,观察文档中的输入情况。

5. 重复步骤4,测试其他按键,记录测试结果。

6. 关闭计算机,结束实验。

实验结果与分析:通过本实验,我们了解到键盘的工作原理是通过扫描矩阵的方式实现的,按键通过电路板中的电气开关与计算机相连,实现键盘输入。

键盘的按键布局通常分为四个区域:字母区、数字区、符号区和功能区。

通过实验测试,我们发现按键输入是可靠的,按下按键时能够正确输入对应的字符或数字。

键盘的使用方法是简单明了的,只需要按下对应的按键即可完成输入。

实验总结:键盘作为计算机最常用的输入设备,广泛应用于各个领域。

查询时键盘实验报告

查询时键盘实验报告

查询时键盘实验报告一、实验背景在计算机领域,查询是一种常见的操作。

键盘作为计算机的一种输入设备,是用户与计算机进行交互的重要工具之一。

通过键盘,用户可以输入各种指令和数据,包括查询关键词。

键盘的性能和使用体验直接影响到用户的操作效率和舒适度。

为了评估键盘的性能,我们进行了查询时键盘实验。

二、实验目的本实验的目的是评估不同类型键盘在查询操作中的性能表现,包括击键速度、准确性和舒适度等方面。

通过实验结果的比较,可以得出不同类型键盘的优缺点,为用户的选择提供参考。

三、实验方法1. 实验材料- 键盘A:机械键盘- 键盘B:薄膜键盘- 键盘C:触摸板2. 实验步骤1. 进行键盘A的实验:由实验者使用键盘A进行10次查询操作(先手工输入一段文字再进行查询),记录每次的击键速度和准确性。

2. 进行键盘B的实验:由实验者使用键盘B进行10次查询操作,并记录数据。

3. 进行键盘C的实验:由实验者使用触摸板进行10次查询操作,并记录数据。

4. 分析和比较实验结果。

四、实验结果1. 键盘A的实验结果序号击键速度(字/分钟)准确性(百分比)1 120 95%2 130 92%3 115 98%4 125 94%5 110 96%6 135 90%7 121 96%8 114 95%9 118 93%10 112 97%2. 键盘B的实验结果序号击键速度(字/分钟)准确性(百分比)1 95 92%2 100 89%3 90 96%4 105 93%5 92 95%6 97 91%7 100 93%8 91 92%9 98 90%10 93 94%3. 键盘C的实验结果序号击键速度(字/分钟)准确性(百分比)1 80 88%2 85 83%3 90 86%4 75 81%5 88 84%6 82 87%7 85 82%8 79 85%9 84 83%10 81 86%五、实验分析通过对实验结果的分析,可以得出以下结论:1. 在击键速度方面,机械键盘(键盘A)表现出最高的性能,平均每分钟击键速度为120字。

矩阵式键盘实验报告

矩阵式键盘实验报告

矩阵键盘实验报告佘成刚学号2010302001班级08041202时间2016.01.20一、实验目的1.学习矩列式键盘工作原理;2.学习矩列式接口的程序设计。

二、实验设备普中HC6800ESV20开发板三、实验要求要现:用4*4矩阵键盘,用按键形式输入学号,在数码管上显示对应学号。

四、实验原理工作原理:矩阵式由行线和列线组成,按键位于行、列的交叉点上。

如图所示,一个4*4 的行、列结构可以构成一个由16 个按键的键盘。

很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的I/0 口。

(1)矩阵式键盘工作原理按键设置在行、列交节点上,行、列分别连接到按键开关的两端。

行线通过下拉电阻接到GND 上。

平时无按键动作时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。

列线电平如果为低,行线电平为高,列线电平如果为高,则行线电平则为低。

这一点是识别矩阵式键盘是否被按下的关键所在。

因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。

(2)按键识别方法下面以3 号键被按下为例,来说明此键是如何被识别出来的。

前已述及,键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线电平在无键按下时处于高电平状态。

如果让所有列线处于高电平那么键按下与否不会引起行线电平的状态变化,始终是高电平,所以,让所有列线处于高电平是没法识别出按键的。

现在反过来,让所有列线处于低电平,很明显,按下的键所在行电平将也被置为低电平,根据此变化,便能判定该行一定有键被按下。

但我们还不能确定是这一行的哪个键被按下。

所以,为了进一步判定到底是哪—列的键被按下,可在某一时刻只让一条列线处于低电平,而其余所有列线处于高电平。

当第1 列为低电平,其余各列为高电平时,因为是键3 被按下,所以第1 行仍处于高电平状态;当第2 列为低电平,其余各列为高电平时,同样我们会发现第1 行仍处于高电平状态,直到让第4 列为低电平,其余各列为高电平时,因为是3 号键被按下,所以第1 行的高电平转换到第4 列所处的低电平,据此,我们确信第1 行第4 列交叉点处的按键即3 号键被按下。

单片机实验报告实验5行列式键盘实验

单片机实验报告实验5行列式键盘实验

学号姓名专业电气工程及其自动化班级实验5 行列式键盘实验一、实验目的(1)、学习掌握行列式键盘接口方法(2)、学习掌握行列式键盘编程方法。

二、实验内容用单片机P1口接4*4键盘,P0口接共阳数码管,编程实现键字的显示。

P1.0-P1.3为行,P1.4-P1.7为列。

先给端口设处置FEH,相当于给第一行置0,然后分写列值,如果对应的列值为0,说明该行与该列交叉处的键是按下的,接下来扫描第二行,与第一行的操作相同。

这就是行列式键盘扫描原理。

当扫描到某行的键按下时,就退出扫描,然后取键值,再将键值对应的额编码送P0端口显示。

三、实验设备计算机(已安装Keil和Proteus软件)元器件:A T89C51, CAP, CAP-ELEC, CRYSTAL, RES, 7SEG-COM-AN-GRN, RESPACK-7, BUTTON四、实验硬件电路实验源程序:#include<reg51.h>charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x7 1};charkey_buf[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x 77};char getkey(void){char key_scan[]={0xef,0xdf,0xbf,0x7f};char i=0,j=0;for(i=0;i<4;i++){P1=key_scan[i];if((P1&0x0f)!=0x0f){for(j=0;j<16;j++){if(key_buf[j]==P1)return j;}}}return -1;}void main(void){char key=0;P0=0x00;while(1){key=getkey();if(key!=1)P0=~led_mod[key]; }}五、实验要求(1)、根据实验内容设计相应的调试程序,并通过仿真,运行正确。

《嵌入式接口技术》实验报告5-键盘阵列扫描1107012150陈晓霞

《嵌入式接口技术》实验报告5-键盘阵列扫描1107012150陈晓霞
if(key != 0)
{
IO0CLR=col1|col2|col3|col4|col5|col6;//全清零
return key;
}
//--------------扫描第2列-------------------
IO0CLR=col2;
IO0SET=col1|col3|col4|col5|col6;
if((IO0PIN & row2)==0) key=26;
if((IO0PIN & row3)==0) key=27;
if((IO0PIN & row4)==0) key=28;
if((IO0PIN & row5)==0) key=29;
if((IO0PIN & row6)==0) key=30;
1搭建实验平台
2根据要求编写程序
3在仿真平台上,画图连接线路
4导入程序运行
四、实验结果与数据处理
1.运行结果
2.源程序
#include "config.h"
uint32 key;
//引脚定义
#define col1 (1<<0) //col1连接p0.0
#define col2 (1<<1)
#define col3 (1<<2)
if(key != 0)
{
IO0CLR=col1|col2|col3|col4|col5|col6;
return key;
}
//--------------扫描第5列-------------------
IO0CLR=col5;
IO0SET=col1|col2|col3|col4|col6;

汇编与接口键盘显示实验报告

汇编与接口键盘显示实验报告

《微机原理与接口技术》上机实验报告学院(部)专业班级学生姓名学号实验六键盘扫描及显示设计实验一、实验目的1.学习按键扫描的原理及电路接法;2.掌握利用8255完成按键扫描及显示。

二、实验内容1.按原理图1连接好电路。

2.编程: 编程使得在键盘阵列上每按一个键后,微机屏幕和最右端的数码管上有相应字符显示出来,按“E”退出程序。

3.实验提示(1)8255CS接地址译码输出的288h~28fh。

(2)8255的A口PA0~PA7接数码管的a~dp。

数码管位码S0接+5V,S3~S1接GND。

(3)延时程序可用BIOS功能程序INT 1AH的0号功能程序:其出口参数:CH:CL=时:分;DH:DL=秒:1/100秒。

图1 键盘显示连接图三、程序流程四、程序代码data segmentstring db 'the initialization is okay$',0ah,0dhkey db 0e7h, 0ebh, 0edh, 0eeh, 0d7h, 0dbh, 0ddh, 0deh, 0b7h, 0bbh, 0bdh, 0beh, 77h, 7bh, 7dh, 7eharray db 33h, 37h, 66, 70, 32h, 36h, 65, 69, 31h, 35h, 39h, 68, 30h, 34h, 38h, 67num db 16over db ?data endsstack1 segment stack 'stack'dw 50 dup(?)stack1 endscode segmentassume cs:code, ds:data, ss:stack1start:mov ax,datamov ds,axmov ax,seg string ;显示提示mov ds,axmov dx,offset stringmov ah,09hint 21h.while 1call exam.if over == 69mov ah,4chint 21h.endif.endwmov ah,4ch ;/////////////////////int 21hexam proc ;检测子程序//////////////////mov al,81h ;设置8255工作方式字mov dx,28bhout dx,allp1:mov al,00h ;向C端口高四位输出低电平mov dx,28ahout dx,alin al,dx ;C端口低四位cmp al,0fhjz lp1call delay ;延时子程序mov bl,al ;保存列值mov al,88h ;重置8255工作方式字mov dx,28bhout dx,almov al,blmov dx,28ahin al,dx ;读入行值mov ah,blmov cl,4rcr ax,cl.if al == 0b7h ;1 mov over,31hmov al,31hmov dl,almov ah,2hint 21hmov al,06hmov dx,288hout dx,al.endif.if al == 0d7h ;2 mov over,32hmov al,32hmov dl,almov ah,2hint 21hmov al,05bhmov dx,288hout dx,al.endif.if al == 0e7h ;3 mov over,33hmov al,33hmov dl,almov ah,2hint 21hmov al,4fhmov dx,288hout dx,al.endif.if al == 07bh ;4 mov over,34hmov al,34hmov dl,alint 21hmov al,66hmov dx,288hout dx,al.endif.if al == 0bbh ;5 mov over,35h mov al,35hmov dl,almov ah,2hint 21hmov al,6dhmov dx,288hout dx,al.endif.if al == 0dbh ;6 mov over,36h mov al,36hmov dl,almov ah,2hint 21hmov al,7dhmov dx,288hout dx,al.endif.if al == 0ebh ;7 mov over,37h mov al,37hmov dl,almov ah,2hint 21hmov al,07hmov dx,288hout dx,al.endif.if al == 07dh ;8 mov over,38h mov al,38hmov dl,alint 21hmov al,7fhmov dx,288hout dx,al.endif.if al == 0bdh ;9 mov over,39h mov al,39hmov dl,almov ah,2hint 21hmov al,67hmov dx,288hout dx,al.endif.if al == 0ddh ;a mov over,65 mov al,65mov dl,almov ah,2hint 21hmov al,77hmov dx,288hout dx,al.endif.if al == 0edh ;b mov over,66 mov al,66mov dl,almov ah,2hint 21hmov al,7chmov dx,288hout dx,al.endif.if al == 7eh ;c mov over,67 mov al,67mov dl,alint 21hmov al,39hmov dx,288hout dx,al.endif.if al == 0beh ;dmov over,68mov al,68mov dl,almov ah,2hint 21hmov al,5ehmov dx,288hout dx,al.endif.if al == 0deh ;emov over,69mov al,69mov dl,almov ah,2hint 21hmov al,79hmov dx,288hout dx,al.endif.if al == 0eeh ;fmov over,70mov al,70mov dl,almov ah,2hint 21hmov al,71hmov dx,288hout dx,al.endif;////////;////////mov al,81h ;重置8255工作方式字mov dx,28bhout dx,allp6:mov dx,28ahmov al,00hout dx,alin al,dxcmp al,0fhjnz lp6retexam endp ;/////////////////////delay proc near ;延时子程序push ax ;delay 50ms--100msmov ah,0int 1ahmov bx,dxdelay1:mov ah,0int 1ahcmp bx,dxjz delay1mov bx,dxdelay2:mov ah,0int 1ahcmp bx,dxjz delay2pop axretdelay endpcode endsend start。

小键盘实验报告心得

小键盘实验报告心得

小键盘实验报告心得引言小键盘是一种新型的输入设备,它具有独特的设计和功能,可以方便地输入数字和特殊符号。

在本次实验中,我通过使用小键盘,了解了其工作原理和使用方法,并对其进行了实际操作和测试。

本文将总结我的实验心得和体会,并对小键盘的优缺点进行评价。

实验过程和结果在实验过程中,我首先详细了解了小键盘的结构和工作原理。

小键盘主要由数字键、功能键和控制键组成,使用USB接口与计算机连接。

它工作时,通过电脑上的驱动程序进行配置和映射,使每个按键都能产生对应的输入信号。

在实验中,我使用了Windows系统自带的小键盘驱动程序进行配置。

经过一番设置和调试,我成功地将小键盘与计算机连接并进行了测试。

在测试中,我发现小键盘的响应速度非常快,按键的手感也很舒适,操作起来非常流畅。

同时,小键盘支持多种输入模式,可以通过切换键自由切换输入方式,非常方便实用。

我还测试了小键盘的一些实际应用场景,包括数字输入、计算器模式、游戏操作等。

在数字输入方面,小键盘的数字按键布局合理,操作起来快速准确,比起常规键盘更加高效。

在计算器模式下,小键盘提供了常用的算术运算按键,可以方便地进行简单计算。

在游戏操作方面,小键盘的功能键和控制键的设计非常人性化,能够满足不同游戏的操作需求。

心得体会通过本次实验,我对小键盘有了深入的了解,并受益匪浅。

首先,小键盘的设计十分合理,按键布局和手感都非常优秀,能够提供良好的使用体验。

其次,小键盘的配置和映射功能非常强大,可以根据个人需求进行个性化设置,满足不同用户的需求。

最后,小键盘的多种输入模式和应用场景使其具备了广泛的适用性,既可以用于日常办公,也可以用于游戏娱乐。

小键盘的出现对于数字输入、数据处理和游戏操作等方面都带来了很大的便利。

在数字输入方面,小键盘能够提高输入的速度和准确性,同时也减轻了手腕的负担。

在数据处理方面,小键盘具备快速输入特殊符号和快捷键等功能,能够提高效率。

在游戏操作方面,小键盘的功能键和控制键能够提供更多的操作选项,增强游戏的可玩性。

实验四 键盘接口设计

实验四 键盘接口设计

实验四:矩阵式键盘接口设计一、实验目的1.掌握独立式按键和矩阵式键盘结构和工作原理。

2.掌握矩阵式键盘的按键识别和扫描方法。

3.掌握独立式按键和矩阵式键盘的接口电路及其编程应用。

二、实验说明键盘的接口形式有两种:独立式按键接口和矩阵式键盘接口。

独立式按键是直接用I/O口构成的单个按键电路,其特点是每个按键单独占用一根I/O 口,每个按键的工作不会影响其它I/O口的状态。

独立式按键电路配置灵活,程序设计简单,但这种键盘占用硬件资源多,每个按键必须占用一根I/O口,因此,在按键较多时,I/O 口浪费较大,不宜采用。

矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。

一个4×4的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。

矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V 上。

当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。

这是识别按键是否按下的关键。

然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。

识别按键的方法很多,其中,最常见的方法是扫描法。

按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平。

显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平。

只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。

CPU根据行电平的变化,便能判定相应的行有键按下。

在单片机应用系统中,键盘是人机对话不可缺少的组件之一。

在按键比较少时,我们可以一个单片机I/O口接一个按键,但当按键需要很多,I/O资源又比较紧张时,使用矩阵式键盘无疑是最好的选择。

矩阵式键盘实验报告

矩阵式键盘实验报告

矩阵式键盘实验报告矩阵键盘设计实验报告南京林业大学实验报告基于AT89C51单片机4x4矩阵键盘接口电路设计课程院系班级学号姓名指导老师机电一体化设计基础机械电子工程学院杨雨图2013年9月26日一、实验目的1、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。

2、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。

3、掌握利用Keil51软件对程序进行编译。

4、用Proteus软件绘制“矩阵键盘扫描”电路,并用测试程序进行仿真。

5、会根据实际功能,正确选择单片机功能接线,编制正确程序。

对实验结果能做出分析和解释,能写出符合规格的实验报告。

二、实验要求通过实训,学生应达到以下几方面的要求:素质要求1.以积极认真的态度对待本次实训,遵章守纪、团结协作。

2.善于发现数字电路中存在的问题、分析问题、解决问题,努力培养独立工作能力。

能力要求1.模拟电路的理论知识2.脉冲与数字电路的理念知识3.通过模拟、数字电路实验有一定的动手能力4.能熟练的编写8951单片机汇编程序5.能够熟练的运用仿真软件进行仿真三、实验工具1、软件:Proteus软件、keil51。

2、硬件:PC机,串口线,并口线,单片机开发板四、实验内容1、掌握并理解“矩阵键盘扫描”的原理及制作,了解各元器件的参数及格元器件的作用。

2、用keil51测试软件编写AT89C51单片机汇编程序3、用Proteus软件绘制“矩阵键盘扫描”电路原理图。

4、运用仿真软件对电路进行仿真。

五.实验基本步骤1、用Proteus绘制“矩阵键盘扫描”电路原理图。

2、编写程序使数码管显示当前闭合按键的键值。

3、利用Proteus软件的仿真功能对其进行仿真测试,观察数码管的显示状态和按键开关的对应关系。

4、用keil51软件编写程序,并生成HEX文件。

5、根据绘制“矩阵键盘扫描”电路原理图,搭建相关硬件电路。

6、用通用编程器或ISP下载HEX程序到MCU。

单片机键盘接口实验实验报告

单片机键盘接口实验实验报告

单片机键盘接口实验是嵌入式系统课程中常见的实践内容,通过该实验可以学习如何
通过单片机与键盘进行交互。

在实验报告中,你可以包括以下内容:
1. **实验背景**:简要介绍单片机键盘接口实验的背景和意义,说明该实验对于学习
嵌入式系统的重要性。

2. **实验目的**:阐明本次实验的主要目的和预期学习目标,如掌握单片机与外部键
盘的连接方式、键盘扫描原理等。

3. **实验器材**:列出用于实验的硬件设备和软件工具,如单片机型号、键盘类型、
开发板、编程软件等。

4. **实验原理**:详细描述单片机与键盘的接口原理、键盘扫描原理、键值获取原理
等相关知识。

5. **实验内容**:描述具体的实验步骤,包括单片机与键盘的连接方法、程序设计流
程等。

6. **实验结果**:展示实验的运行结果,可以包括通过键盘输入字符、数字等信息,
并说明实验达到预期的目标。

7. **实验分析**:对实验过程中遇到的问题进行分析,并提出解决方案。

也可以对实
验结果进行分析,说明实验现象背后的原理。

8. **实验总结**:总结本次实验的收获和体会,强调实验对于学习嵌入式系统的意义,以及未来可能的拓展方向。

9. **参考资料**:列出在撰写实验报告过程中所参考的相关书籍、网络资料或者其他
来源。

以上内容仅供参考,实验报告的具体内容可以根据你的实际实验情况和要求进行适当
调整和扩展。

希望这些信息能对你撰写实验报告有所帮助!。

简易键盘设计实验报告

简易键盘设计实验报告

简易键盘设计实验报告1. 引言键盘作为计算机输入设备的一种,是人与计算机之间进行信息交流的重要工具。

随着计算机应用领域的不断扩展,人们对键盘的要求也越来越高,希望它能够更加人性化、便捷,提高工作效率。

因此,设计一款简易键盘成为了本实验的主要目标。

在本实验中,我们将利用现有的技术和材料,设计并制作一款基于蓝牙通信的简易键盘。

通过该键盘,我们可以实现无线连接,通过按键和计算机进行信息传输。

本报告将依次介绍实验的设计思路、实验过程和结果,并对实验进行总结和展望。

2. 设计思路我们的简易键盘设计基于蓝牙通信技术,主要包括键盘硬件设计和键盘软件设计两个部分。

2.1 键盘硬件设计在硬件设计中,我们采用了基于STM32单片机的开发板作为键盘的控制核心。

该开发板具备较高的性能和丰富的外设接口,非常适合作为键盘的控制平台。

我们将利用单片机的GPIO引脚来控制按键的输入和输出,通过编程来实现按键的扫描和信号的处理。

此外,我们还需要设计键盘的结构和按键布局。

在本实验中,我们采用传统的QWERTY键盘布局,并根据键盘的大小和手部的人体工程学原理进行调整,以提高使用的舒适性。

键盘的结构设计将考虑到键盘的稳定性和坚固性,同时兼顾美观和实用性。

2.2 键盘软件设计在软件设计中,我们将利用C语言编程,编写键盘的控制程序。

首先,我们需要编写按键扫描程序,该程序能够周期性地检测按键的状态,并将按键的信息保存在内存中。

其次,我们需要编写蓝牙通信程序,将按键的信息通过蓝牙模块传输给计算机。

最后,在计算机端,我们需要编写接收程序,接收并处理从键盘传来的数据。

3. 实验过程和结果为了验证我们的设计思路,我们按照以下步骤完成了实验:1. 制作键盘的物理结构,包括键盘的外壳和按键。

2. 将STM32开发板与键盘电路连接,确保所有的接口正常工作。

3. 编写键盘的控制程序,实现按键的扫描和信号的处理。

4. 将蓝牙模块与STM32开发板连接,编写蓝牙通信程序。

嵌入式软件开发基础实验报告 4×4键盘控制

嵌入式软件开发基础实验报告 4×4键盘控制

上海电力学院嵌入式软件开发基础实验报告题目:【ARM】 4x4 键盘控制实验专业:电子科学与技术年级:姓名:学号:一、实验目的通过实验掌握键盘控制与设计方法。

熟练编写ARM 核处理器S3C44B0X 中断处理程序。

二、实验设备硬件:Embest EduKit-III 实验平台,Embest ARM 标准/增强型仿真器套件,PC 机。

软件:Embest IDE Pro ARM 集成开发环境,Windows 98/2000/NT/XP三、实验内容使用实验板上5x4 用户键盘,编写程序接收键盘中断。

通过IIC 总线读入键值,并同将读到的键值发送到串口。

四、实验原理用户设计行列键盘接口,一般常采用三种方法读取键值。

一种是中断式,另两种是扫描法和反转法。

中断式在键盘按下时产生一个外部中断通知CPU,并由中断处理程序通过不同的地址读取数据线上的状态,判断哪个按键被按下。

本实验采用中断式实现用户键盘接口。

扫描法对键盘上的某一行送低电平,其他为高电平,然后读取列值,若列值中有一位是低,表明该行与低电平对应列的键被按下。

否则扫描下一行。

反转法先将所有行扫描线输出低电平,读列值,若列值有一位是低,表明有键按下;接着所有列扫描线输出低电平,再读行值。

根据读到的值组合就可以查表得到键码。

五、实验设计1. 键盘硬件电路设计(1) 键盘控制电路(2) 工作过程键盘动作由芯片ZLG7290 检测,当键盘按下时,芯片检测到后在INT 引脚产生中断触发电平通知处理器,处理器通过IIC 总线读取芯片中保存的键值。

六、实验操作步骤1. 准备实验环境使用Embest 仿真器连接目标板,使用Embest EduKit-III 实验板附带的串口线,连接实验板上的UART0 和PC 机的串口。

2. 串口接收设置在PC 机上运行windows 自带的超级终端串口通信程序(波特率115200、1 位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。

单片机键盘显示实验报告

单片机键盘显示实验报告

单片机的键盘和显示实验报告㈠实验目的1.掌握单片机I/O的工作方式;2.掌握单片机以串行口方式0工作的LED显示;3.掌握键盘和LED显示的编程方法。

㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台㈢实验内容及要求实验硬件线路图见附图从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。

四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。

编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运算方式,在四个显示器上显示数学算式和最终计算结果。

注:①通过按键来选择加、减、乘、除四种运算方式。

②输入两个数字均为一位十进制数,可预先放在内存中。

㈣实验框图(见下页)㈤思考题1.当键盘采用中断方式时,硬件电路应怎样连接~是键输出线,~是扫描输入线。

输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。

移位寄存器的移位速率是多少实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。

其实这个问题确实不知道怎么回答。

LED实验代码:ORG 0000HAJMP MAINORG 0030HMAIN:MOV 41H,#0BBH ;对几个存放地址进行初始化MOV 42H,#0BBHMOV 43H,#0BBHMOV 44H,#0BBHMOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示KEY:MOV R3,#08H ;用来存放两个数据MOV R4,#02HMOV P1,#0FFH ;初始化P1口MOV A,P1 ;读取按键状态CPL A ;取正逻辑,高电平表示有键按下JZ KEY ;A=0时无键按下,重新扫描键盘LCALL DELAY1 ;消抖MOV A,P1 ;再次读取按键状态CPL AJZ KEY ;再次判别是否有键按下PUSH AKEY1:MOV A,P1CPL AANL A,#0FH ;判别按键释放JNZ KEY1 ;按键未释放,等待LCALL DELAY1 ;释放,延时去抖动POP AJB ,ADD1 ;K1按下转去ADD1JB ,SUB1 ;K1按下转去SUB1JB ,MUL1 ;K1按下转去MUL1JB ,DIV1 ;K1按下转去DIV1LJMP KEYADD1:LCALL BUFFER ;显示加数和被加数MOV 43H,#049HLCALL DISPLAY ;显示加号MOV A,R3ADD A,R4DA AMOV R3,A ;相加结果放入R6ANL A,#0FHMOV R4,A ;结果个位放入R7MOV A,R3SWAP A ;半字节交换,高四位放入低四位ANL A,#0FHMOV R3,A ;结果的高位放入R6LCALL L ;显示缓存区设置LCALL DELAY2 ;延时一秒后显示LCALL DISPLAYLJMP KEYSUB1:LCALL BUFFER ;显示减数和被减数MOV 43H,#40HLCALL DISPLAY ;显示减号MOV A,R3CLR CY ;CY清零SUBB A,R4 ;做减法PUSH ARLC A ;带进位循环左移,最高位放入CYJC F ;判断最高位,若为1则跳转到负数ZHENG: POP AMOV R4,AMOV R3,#00H ;高位清零SJMP OUTFU:POP ACPL A ;取绝对值INC AMOV R4,AMOV R3,#11H ;显示负号OUT: LCALL L ;显示缓存区设置LCALL DELAY2 ;延时1s后显示LCALL DISPLAYLJMP KEYMUL1:LCALL BUFFER ;显示两位乘数MOV 43H,#99HLCALL DISPLAY ;显示乘号MOV A,R3MOV B,R4MUL AB ;结果放入AB,A中是低8位,B中是高8位MOV B,#0AHDIV AB ;十进制转换MOV R4,B ;结果个位放入R7MOV R3,A ;结果的十位放入R6LCALL LLCALL DELAY2LCALL DISPLAY ;延时1s后显示LJMP KEYDIV1:LCALL BUFFER ;显示除数和被除数MOV 43H,#62HLCALL DISPLAY ;显示除号MOV A,R3MOV B,R4DIV AB ;A除以BMOV R4,B ;余数放在R4中MOV R3,A ;商放在R3中MOV A,R4MOVC A,@A+DPTR ;调用段选号MOV 41H,A ;显示余数MOV A,R3MOVC A,@A+DPTRMOV 43H,A ;显示商MOV 42H,#00HMOV 44H,#00HLCALL DELAY2 ;延时1S后显示LCALL DISPLAYLJMP KEYBUFFER: MOV 41H,#22H ;显示初始化,在做计算之前显示两个操作数,显示等号MOV DPTR,#TABLMOV A,R4MOVC A,@A+DPTRMOV 42H,AMOV A,R3MOVC A,@A+DPTRMOV 44H,ARETDISPLAY:MOV R5,#04H ;共四位需要显示MOV R0,#41HDISPLAY1:MOV A,@R0MOV SBUF,ADISPLAY2:JNB TI,DISPLAY2 ;是否传完了CLR TIINC R0DJNZ R5,DISPLAY1RETL:MOV A,R4MOVC A,@A+DPTRMOV 41H,A ;R4对应的段码MOV A,R3MOVC A,@A+DPTRMOV 42H,A ;R3对应的段码MOV 43H,#00HMOV 44H,#00HRETDELAY1: ;普通延时MOV R1,#20HDS1: MOV R2,#0FFHDS2: DJNZ R2,DS2DJNZ R1,DS1RETDELAY2: MOV R6,#14H ;定时1SMOV TMOD,#01HDS3:MOV TH0,#3CHMOV TL0,#0B0H ;50msSETB TR0LOOP:JNB TF0,LOOPCLR TF0CLR TR0DJNZ R6,DS3 ;1s到,中断返回RETTABL:DB 0BBH 09H 0EAH 6BH ;段码表DB 59H 73H 0F3H 0BHDB 0FBH 7BH 00H 0DBHDB 0F1H 0B2H 0E9H 0F2HDB 0D2H 40H实验结果及分析按键1:8+2= 结果:10按键2:8-2= 结果: 6按键3:8*2= 结果:16按键4:8/2= 结果:4从上面的结果可以看出,本次实验基本完成了实验要求。

键盘接口实验实验报告及程序

键盘接口实验实验报告及程序

键盘接口实验实验报告及程序一、实验目的本次实验的主要目的是深入了解计算机键盘接口的工作原理,并通过编程实现对键盘输入的读取和处理。

通过这个实验,我们将掌握如何与计算机硬件进行交互,提高对计算机系统底层运作的认识。

二、实验原理计算机键盘通常通过 PS/2 接口或 USB 接口与主机相连。

在本次实验中,我们以 PS/2 接口为例进行研究。

PS/2 接口使用双向同步串行协议进行通信,数据传输速率约为 10 167Kbps 。

键盘在向主机发送数据时,每个字节包含 11 位,分别是起始位(总是 0 )、 8 位数据位(低位在前)、校验位(奇校验)和停止位(总是 1 )。

主机通过向键盘发送命令来控制键盘的工作模式和获取相关信息。

三、实验设备及环境1、计算机一台2、开发板及相关配件3、编程软件(如 Keil 等)四、实验步骤1、硬件连接将开发板与计算机通过相应的接口连接好,确保连接稳定。

2、软件编程选择合适的编程语言和开发环境。

初始化相关的硬件接口和寄存器。

编写读取键盘输入数据的程序代码。

3、编译与下载对编写好的程序进行编译,检查是否有语法错误。

将编译成功的程序下载到开发板中。

4、实验测试按下键盘上的不同按键,观察开发板的输出结果。

检查读取到的数据是否准确,校验位是否正确。

五、程序代码实现以下是一个简单的基于 C 语言的键盘接口读取程序示例:```cinclude <reg51h>//定义 PS/2 接口相关引脚sbit PS2_CLK = P1^0;sbit PS2_DATA = P1^1;//读取一个字节的数据unsigned char ReadByte(){unsigned char data = 0;unsigned char i;while(PS2_CLK == 1);//等待时钟线拉低for(i = 0; i < 8; i++){while(PS2_CLK == 0);//等待时钟上升沿data =(data << 1) | PS2_DATA; //读取数据位}while(PS2_CLK == 1);//等待时钟线拉低return data;}void main(){unsigned char key;while(1){key = ReadByte();//读取键盘输入的数据//在此处对读取到的数据进行处理和显示}}```六、实验结果与分析在实验过程中,我们按下不同的键盘按键,开发板能够准确地读取到相应的键值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六键盘接口实验
姓名专业通信工程学号成绩
一、实验目的
1.掌握Keil C51软件与Protues软件联合仿真调试的方法;
2.掌握单片机的键盘接口电路;
3.掌握单片机键盘扫描原理;
4.掌握键盘的去抖原理及处理方法。

二、实验仪器与设备
1.微机1台
2.Keil C51集成开发环境 3。

Proteus仿真软件
三、实验内容
1.用Proteus设计一矩阵键盘接口电路。

要求利用P1口接一4*4矩阵键盘。

串行口通过一74LS164接一共阴极数码管。

参考电路见后面。

2.用线反转法编写矩阵键盘识别程序,要求采用中断方式(列线通过4输
入与门74LS20接/INT0),无按键按下时,数码管循环画“8”;有按键
按下时产生中断并将按键的键值0~F通过串行口输出,在数码管上显示
3秒钟后返回;返回后,数码管继续循环画“8”。

3.将P1口矩阵键盘改为8个独立按键(用中断方式设计),键盘通过74LS30
(8输入与非门)和74LS04(六反相器)与/INT0相连,重新编写识别
和显示程序。

四、实验原理
矩阵键盘识别一般应包括以下内容:
1)判别有无键按下。

2)键盘扫描取得闭合键的行、列号。

3)用计算法火或查表法得到键值。

4)判断闭合键是否释放,如果没释放则继续等待。

5)将闭合键的键值保存,同时转去执行该闭合键的功能。

五、实验步骤
1.用Proteus设计键盘接口电路;
2.在Keil C51中编写键盘识别程序,编译通过后,与Proteus联合调试;
3.按动任意键,观察键值是否能正确显示。

六、电路设计及调试、程序
1)程序设计:矩阵键盘
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code
table1[]={0x00,0x01,0x21,0x61,0x65,0x6d,0x7d,0x7f};
uchar code
key_table[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xd
b,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};//键盘表
uchar code
table2[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0
x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint c) {
uint a,b;
for(;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
void display(void)
{
uchar i;
TI=0;
while(1)
{
for(i=0;i<8;i++)
{
SBUF=table1[i];
delay(200);while(TI==0);T I=0;
}
}
}
void INT_0() interrupt 0
{
uchar
j,temp,num,key;
EX0=0;
delay(20);
P1=0xf0;
if(P1!=0xf0)
{
delay(20);
if(P1!=0xf0)
{
temp=P1;
P1=0x0f;
key=temp|P1;
for(j=0;j<16;j++) if(key==key_table[j]) {
num=j;break;
}
SBUF=table2[num];while(TI ==0);TI=0;
delay(1000); return;
}
}
EX0=1;
P1=0xf0;
}
void main( )
{
EA=1;
EX0=1;
IT0=0;
SCON=0x00;
P1=0xf0;
display();
}
独立键盘
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code
table1[]={0x00,0x01,0x21, 0x61,0x65,0x6d,0x7d,0x7f} ;//单管依次点亮画"8"
uchar code
table2[]={0x3F,0x06,0x5B, 0x4F,0x66,0x6D,0x7D,0x07} ;//共阴极"0"~"F"编码表
uchar i;
void delay(uint c)
{
uint a,b;
for(;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
void main()
{
EA=1;
EX0=1;
IT1=1;
SCON=0X00;
TI=0;
while(1)
{
for(i=0;i<8;i++)
{
SBUF=table1[i];
delay(200);
}
}
while(1);
}
void INT_0() interrupt 0
{
EX0=0;
delay(20);
EX0=1;
if(P1!=0xff)
{
switch(P1)
{
case
0xfe:SBUF=table2[0];
while(!TI);
TI=0;delay(1000);break;
case
0xfd:SBUF=table2[1];
while(!TI);
TI=0;delay(1000);break;
case
0xfb:SBUF=table2[2];
while(!TI);
TI=0;delay(1000);break;
case
0xf7:SBUF=table2[3];
while(!TI);
TI=0;delay(1000);break;
case
0xef:SBUF=table2[4];
while(!TI);
TI=0;delay(1000);break;
case
0xdf:SBUF=table2[5];
while(!TI);
TI=0;delay(1000);break;
case
0xbf:SBUF=table2[6];
while(!TI);
TI=0;delay(1000);break;
case
0x7f:SBUF=table2[7];
while(!TI);
TI=0;delay(1000);break;
default:break;
}
}
}
2)实验电路
矩阵键盘
独立键盘
七、实验问题、解决及总结
1.实验中在做矩阵键盘实验时,会出现进入中断一次后跳出来再按键不会再
进入中断显示的情况原因是:
没有在中断函数最后令P1=0xf0,在边沿触发方式下退出中断程序时P1=0xf,外部中断0为低电平,不会有下降产生,仅执行一次中断后再不会有中断产生,即使有按键按下。

2.实验中出现了进入中断跳不出来的情况,原因是:
给窗口送键值显示后没加while(!TI); TI=0;语句
总结:实验前应画出程序流程图认真分析,有助于程序的编写。

在矩阵键盘的实验中,若选择电平触发,不在中断后令P1=0xf0,则跳出中断后
检测到列线全为零,又产生中断,进入中断后扫描按键发现无按键按
下又退出,列还是全为零又进入中断,如此反复,效率很低。

相关文档
最新文档