单片机 Keyboard实验.

合集下载

单片机键盘实验报告

单片机键盘实验报告

单片机键盘实验报告单片机键盘实验报告引言:单片机是一种集成电路,具备处理器、存储器和各种输入输出接口等功能。

在现代电子设备中,单片机被广泛应用于各种控制系统中。

其中,键盘作为一种重要的输入设备,常用于与单片机进行交互。

本实验旨在通过使用单片机和键盘,实现一个简单的输入输出系统。

实验目的:1. 了解单片机的基本原理和工作方式;2. 掌握键盘的工作原理和使用方法;3. 利用单片机和键盘实现一个简单的输入输出系统。

实验器材:1. 单片机开发板;2. 键盘模块;3. 电脑。

实验步骤:1. 连接键盘模块到单片机开发板的合适接口上;2. 将开发板连接到电脑上;3. 编写单片机程序,实现键盘输入的读取和显示;4. 将程序下载到单片机开发板上;5. 运行程序,测试键盘输入和显示功能。

实验原理:1. 单片机工作原理:单片机通过执行存储在其内部的程序来完成各种任务。

它通过读取输入信号,进行运算处理,然后输出相应的结果。

单片机的核心是中央处理器(CPU),它负责执行指令和控制整个系统的工作。

2. 键盘工作原理:键盘是一种输入设备,通过按下不同的按键产生不同的电信号,然后传输给单片机进行处理。

键盘通常由多个按键组成,每个按键都有一个唯一的编码。

当用户按下某个按键时,键盘会发送相应的编码信号给单片机。

实验结果:经过实验,我们成功实现了一个简单的单片机键盘输入输出系统。

通过按下键盘上的按键,我们可以在电脑上显示相应的字符。

这样的系统可以应用于各种需要用户输入的场景,如密码输入、菜单选择等。

实验总结:通过本次实验,我们深入了解了单片机的基本原理和工作方式,掌握了键盘的工作原理和使用方法。

同时,我们也体验到了单片机和键盘的强大功能,以及它们在现代电子设备中的重要性。

单片机键盘输入输出系统的实现为我们提供了一个基础平台,可以进一步扩展和应用于更复杂的控制系统中。

未来展望:在今后的学习和实践中,我们将进一步研究和应用单片机和键盘技术。

单片机按键实验实训报告

单片机按键实验实训报告

一、实验目的1. 理解单片机按键的工作原理和电路连接方法;2. 掌握按键消抖原理及其实现方法;3. 学会使用单片机编程控制按键功能,实现简单的输入控制;4. 提高单片机实验操作能力和编程能力。

二、实验仪器及设备1. 单片机开发板(如STC89C52);2. 按键;3. 万用表;4. 电脑;5. Keil C编译器。

三、实验原理1. 按键原理:按键是一种电子开关,按下时导通,松开时断开。

在单片机应用中,按键常用于输入控制信号。

2. 按键消抖原理:由于按键机械弹性,闭合和断开时会有一连串的抖动。

若直接读取按键状态,容易导致误操作。

因此,需要进行消抖处理。

3. 消抖方法:主要有软件消抖和硬件消抖两种方法。

本实验采用软件消抖方法,即在读取按键状态后,延时一段时间再读取,若两次读取结果一致,则认为按键状态稳定。

四、实验步骤1. 硬件连接:将按键一端接地,另一端与单片机的某个I/O口相连。

2. 编写程序:使用Keil C编译器编写程序,实现以下功能:(1)初始化I/O口,将按键连接的I/O口设置为输入模式;(2)读取按键状态,判断按键是否被按下;(3)进行消抖处理,若按键状态稳定,则执行相应的功能。

3. 编译程序:将编写好的程序编译成HEX文件。

4. 烧录程序:将编译好的HEX文件烧录到单片机中。

5. 实验验证:观察实验现象,验证按键功能是否实现。

五、实验结果与分析1. 硬件连接正确,程序编译无误。

2. 实验现象:当按下按键时,单片机执行相应的功能;松开按键后,按键功能停止。

3. 分析:通过软件消抖处理,有效避免了按键抖动导致的误操作。

六、实验总结1. 本实验成功实现了单片机按键控制功能,掌握了按键消抖原理及实现方法。

2. 通过实验,提高了单片机编程和实验操作能力。

3. 在后续的单片机应用中,可以灵活运用按键控制功能,实现各种输入控制需求。

4. 本次实验为单片机应用奠定了基础,为进一步学习单片机技术打下了良好基础。

单片机键盘显示实验报告

单片机键盘显示实验报告

单片机的键盘和显示实验报告㈠实验目的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.当键盘采用中断方式时,硬件电路应怎样连接?P1.4~P1.7是键输出线,P1.0~P1.3是扫描输入线。

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

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

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

LED 显示用的段码与教科书所提供的不同,本实验采用如下段码:显示数符段码显示数符段码0BBH A DBH109H B F1H2EAH C B2H36BH D E9H459H E F2H573H F D2H否有否P1口置输入读P1口开 始显示“0000”是否有键按下?延迟消抖是否有键按下?是读键码加法运算减法运算除运算6F3H—40H70BH.04H8FBH┗┛A1H97BH┗┛1AH灭00H P DAH实验代码: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 ACC.0,ADD1 ;K1按下转去ADD1JB ACC.1,SUB1 ;K1按下转去SUB1JB ACC.2,MUL1 ;K1按下转去MUL1JB ACC.3,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从上面的结果可以看出,本次实验基本完成了实验要求。

单片机独立按键实验报告总结

单片机独立按键实验报告总结

单片机独立按键实验报告总结本次实验我们使用了单片机进行了独立按键实验,通过学习掌握了单片机输入输出口的基本使用方法以及独立按键的使用方法和技巧。

以下是本次实验的总结:一、实验内容本次实验的主要内容是独立按键的使用方法和技巧。

通过学习,我们掌握了独立按键的接法原理和基本应用方法。

在实验中,我们首先通过理论学习了按键的工作原理,了解了按键在电路中的应用和接法方法,然后实际动手进行了按键电路的搭建和单片机程序的编写,最后进行了按键测试和实验结果分析。

二、实验步骤1.理论学习:首先,我们学习了独立按键的工作原理和接法原理,了解按键在电路中的应用和接法方法,掌握了按键接口的输入输出方式,并对具体实现过程和技巧进行了分析和探讨。

2.电路搭建:根据学习到的按键接法原理和电路图,我们使用面包板和导线搭建了独立按键电路,将按键连接到单片机的输入端口上,并设置相应的电阻来保护电路和单片机芯片。

3.程序编写:通过阅读单片机说明书和参考其他资料,我们学习了单片机输入输出口的基本使用方法和指令,编写了程序代码,实现了独立按键操作的功能。

我们实现了多种按键操作方式,包括单击、长按等方式,并添加了相应的提示和保护措施,以确保程序的可靠性和稳定性。

4.测试实验:最后,我们进行了独立按键测试实验,通过按键操作,观察测试实验结果,进行了数据分析和结论汇总。

实验结果表明,我们的按键电路和程序代码都实现了预期的功能和效果,证明了我们在实验中掌握的独立按键技巧和方法是正确和有效的。

三、实验结论通过本次实验,我们掌握了单片机输入输出口的基本使用方法和独立按键的使用方法和技巧,了解了按键在电路中的应用和接法方法,探索了独立按键实现的多种方式和技巧,提高了我们的电路设计能力和程序设计能力。

同时,本次实验还加强了我们的实验动手操作能力,增强了我们的实际应用能力和创新思维能力,为我们以后的学习和工作打下了坚实的基础。

实验二STM32单片机GPIO程序开发

实验二STM32单片机GPIO程序开发

实验二STM32单片机GPIO程序开发
一.实验目的
1.掌握STM32单片机输入输出接口程序开发
2.掌握用库函数开发STM32单片机程序
二.实验环境
1.TEB-CM5000嵌入式单片机实验系统
2.MDK4.7嵌入式软件开发环境
三.实验内容
1.熟悉TEB-CM5000嵌入式单片机实验系统上的LED灯电路和单
独按钮电路。

2.学习并掌握库函数版本相关的实例程序,主要学习
gpio_key_led实例程序。

3.利用库函数开发出USER2(PD3)按钮控制LD5(PF7)亮灭。

具体
功能:USER2(PD3)按钮按下时,LD5灯闪烁;当USER2(PD3)按钮弹开时,LD5灯停止闪烁。

四.实验要求
1.完成实验要求中提到要完成的所有内容,完成代码并提
交主要代码。

2.对每行主要代码要进行注释,说明其功能。

五.实验提交要求
1.按照实验模板完成实验报告,其中包括实验要求的所有内容。

2.提交电子版报告,撰写程序流程图,并且提交程序主要代码。

3.最终提交形式:制作成压缩rar格式文件,文件命名:班级_组号_学号_姓名_实验一.rar。

单片机键盘检测控制实验原理

单片机键盘检测控制实验原理

单片机键盘检测与控制实验是嵌入式系统和数字电子技术领域的一个常见实验,通过该实验,可以学习到单片机输入输出的基本原理、数字信号的处理方法以及键盘输入的检测和控制技术。

以下是这个实验的基本原理和步骤:**实验目的:**1. 了解单片机的输入输出原理。

2. 掌握键盘输入的检测原理。

3. 实现对键盘输入的基本控制。

**实验原理:**1. **单片机输入输出原理:** 单片机通常具有一些通用输入输出引脚,用于与外部设备进行信息交互。

这些引脚可以配置为输入或输出模式。

在实验中,我们主要使用单片机的输入引脚,将键盘连接到这些引脚上,以便单片机可以读取键盘的输入信号。

2. **键盘输入的检测原理:** 键盘通常是由多个按键组成的矩阵结构。

每个按键都与键盘的一行和一列相连。

通过扫描键盘的行和列,可以检测到哪个按键被按下。

具体步骤如下:- **行扫描:** 单片机首先选择一行,将该行置为低电平,同时检测每一列的状态。

如果某一列为低电平,说明该列对应的按键被按下。

- **列扫描:** 单片机依次选择每一列,将该列置为低电平,同时检测每一行的状态。

如果某一行为低电平,说明该行对应的按键被按下。

3. **实现对键盘输入的基本控制:** 一旦检测到按键按下的信号,单片机可以采取相应的措施,例如在数码管上显示按下的键值、驱动LED灯等。

**实验步骤:**1. **连接键盘:** 将键盘的行和列引脚连接到单片机的相应引脚上。

2. **编写程序:** 使用编程语言(如C语言或汇编语言)编写程序,实现键盘输入的检测和控制逻辑。

3. **下载程序:** 将编写好的程序下载到单片机中。

4. **运行实验:** 接通电源,运行实验,观察键盘输入的检测和相应控制的效果。

**实验注意事项:**1. 确保键盘连接正确,行和列的对应关系准确。

2. 程序中的扫描算法要正确,确保能够准确检测到键盘的按键状态。

3. 在程序中加入防抖动处理,防止由于按键机械弹性导致的多次触发。

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

单片机  行列式键盘实验报告
1p31txop2p13p3p33i7rrtp3oaivrrirn7robocs12l21?程序调试方法首先在kcilc编程软件里创建工程编写代码并进行调试生成hex文件运行无语法错误后再与proteus进行联机仿真将hex文件加载到单片机模块屮单击菜单屮的调试开始重新启动调试正确无误后进行运行仿真
}}}
return -1;
}
void main(void) {
char key=0;
P0=0x00;
while(1){
key=getkey();
if(key!=-1)
P0=~led_mod[key];
}}
实验总结:
本次实验遇到了一个问题,就是在运行中仿真结果是正确的,连接实验箱的时候,怎么都不正确。老师提示验箱是共阳极显示,而在Proteus中运行仿真结果是共阴极显示。然后我就在C51程序中对字模进行取反(P0=~led_mod[key]),最后重新把程序烧进开发板,并且在开发板上的显示结果正确。
char getkey(void) {
char key_scan[]={0xef,0xdf,0xbf,0x7f};
char i=0,j=0;
for(i=0;i<4;i++) {
P2=key_scan[i];
if((P2&0x0f)!=0x0f){
for(j=0;j<16;j++) {
if(key_buf[j]==P2) return j;
一、实验内容
1.绘制非中断方式键盘接口电路原理图;
2.参照实例完成教材非中断行列式键盘C51语言程序的编译;
3.练习μVision4程序动态调试方法,实现非中断行列式键盘的功能;

单片机实验五 按键实验

单片机实验五 按键实验

实验五:按键实验一、实验要求实验目的:熟悉和掌握矩阵式键盘的工作原理、电路设计和软件编程方法;熟悉和掌握矩阵式减半的行扫描法和行反转法两种键盘扫描识别方法;掌握键盘延时抖动的消除方法,掌握LED静态扫描显示方式。

实验内容:4*4键盘矩阵的横线连接单片机的P1.0~P1.3端口,列线连接P1.4~P1.7端口,1位LED数码管连接单片机的P0口,编程实现:当按下任意一个按键时,LED数码管显示它在4*4键盘矩阵上的序号0~F二、实验原理线反转法的原理线反转法与行扫描法相比更加简练,无论被按键是处于第一行还是最后一行,均经过两步便可获得该键值所在的行列值。

线反转法的工作原理如图1所示,图1中采用8位I/O端口构成一个4*4的矩阵键盘,P1.0~P1.3作为行线,P1.4~P1.7做列线,采用查询方式进行工作。

下面介绍线反转法的具体操作步骤。

第一步:将列线便成为输入线,将行线便成为输出线,并使输出线的输出为全零电平,则列线中的电平由高到低发生变化的列为按键所在列。

第二步:将第一步中的传送方向反过来,即将行线编程位输入线,列线编程位输出线,并输出第一步中的输入列值,则行线中电平由高到低发生变化的行即为按键所在的行。

综合一、二两步的结果,可确定按键所在的行和列,从而识别出按键所在的键。

例如“键9”被按下,第一步在P1.0~P1.3行线输出全零,然后读入列线值位P1.7~P1.4=1101B,即P1.5=0,与P1.5相连的列线有键被按下。

第二步从列线输出刚才得到的值,再读取行线的输入值,则在闭合键所在的行线上值必定为“0”,即从行线读出的值为P1.3~P1.0=1101B。

于是行值和列值合起来得到唯一的一对行列值:11011101B即0DDH,这个值对应“键9”。

可见先反转法非常简单实用。

三、程序设计1、程序流程图图 1 程序流程图2、程序代码ORG 0000HLJMP STARTORG 0100HSTART: MOV SP, #60HKEY0: MOV P1, #0EFHJNB P1.0, K0JNB P1.1, K4JNB P1.2, K8JB P1.3, E1LJMP K12E1: MOV P1, #0DFHJNB P1.0, K1JNB P1.1, K5JNB P1.2, K9JB P1.3, E2LJMP K12E2: MOV P1, #0BFHJNB P1.0, K2JNB P1.1, K6JNB P1.2, K10JB P1.3, E3LJMP K14E3: MOV P1, #07FHJNB P1.0, K3JNB P1.1, K7JNB P1.2, K11JNB P1.3, K15LJMP KEY0K0: MOV P0, #0C0HLCALL DELAYJMP KEY0K1: MOV P0, #0F9HLCALL DELAYJMP KEY0K2: MOV P0, #0A4HLCALL DELAYJMP KEY0K3: MOV P0, #0B0HLCALL DELAYJMP KEY0K4: MOV P0, #99HLCALL DELAYJMP KEY0K5: MOV P0, #92HLCALL DELAYJMP KEY0K6: MOV P0, #082HLCALL DELAYJMP KEY0K7: MOV P0, #0F8HLCALL DELAYJMP KEY0K8: MOV P0, #80HLCALL DELAYJMP KEY0K9: MOV P0, #090HLCALL DELAYJMP KEY0K10: MOV P0, #88HLCALL DELAYJMP KEY0K11: MOV P0, #083HLCALL DELAYJMP KEY0K12: MOV P0, #0C6HLCALL DELAYJMP KEY0K13: MOV P0, #0A1HLCALL DELAYJMP KEY0K14: MOV P0, #086HLCALL DELAYJMP KEY0K15: MOV P0, #08EHLCALL DELAYJMP KEY0DELAY: M OV R3, #60HLP: MOV R4, #0A8HLP1: MOV R5, #0A8HLP2: DJNZ R5, LP2DJNZ R4, LP1DJNZ R3, LPRETEND设计说明:单片机不断查询各列电平,当某列中有某行的电平被置零,则跳转到改行所在语句,在数码管上显示被按键的数字。

单片机实验--键盘扫描

单片机实验--键盘扫描

实验4 键盘实验一、实验目的:1.掌握8255A编程原理。

2.了解键盘电路的工作原理。

3.掌握键盘接口电路的编程方法。

二、实验设备:CPU挂箱、8031CPU模块三、实验原理:1.识别键的闭合,通常采用行扫描法和行反转法。

行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。

本实验例程采用的是行反转法。

行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。

然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。

这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。

2.程序设计时,要学会灵活地对8255A的各端口进行方式设置。

3.程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。

实验题目利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。

四、实验步骤:将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。

五、实验电路:六、程序框图7.程序清单八、附:8251/8255扩展模块该模块由8251可编程串行口电路和8255可编程并行口电路两部分组成,其电源、数据总线、地址总线和片选信号均由接口挂箱上的接口插座提供。

一、8251可编程串行口电路(1)8251可编程串行接口芯片引脚及功能8251A是通用同步/异步收发器USART,适合作异步起止式数据格式和同步面向字符数据格式的接口,其功能很强。

实验七-单片机键盘LED显示实验

实验七-单片机键盘LED显示实验

实验七单片机键盘LED显示实验一、实验目的1、掌握键盘和LED显示器的接口方法和编程方法。

2、掌握键盘扫描和LED八段码显示器的工作原理。

3、学习并口扩展的程序编写方法。

二、实验说明利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。

实验程序可分成三个模块。

①键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。

②显示模块:将显示单元的内容在显示器上动态显示。

③主程序:调用键输入模块和显示模块。

三、实验仪器计算机伟福实验箱(lab2000P )四、实验内容1、本实验仪提供了一个6×4的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。

如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。

这样就可以通过输出的列码和读取的行码来判断按下的是什么键。

在判断有键按下后,要有一定的延时,防止键盘抖动。

地址中的X是由KEY/LED CS 决定,参见地址译码。

做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。

以便用相应的地址来访问。

例如将KEY/LED CS信号接CS0上,则列扫描地址为08002H,行码地址为08001H。

列扫描码还可以分时用作LED的位选通信号。

2、本实验仪提供了6 位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,用动态方式显示。

8位段码、6位位码是由两片74LS374输出。

位码经MC1413或ULN2003倒相驱动后,选择相应显示位。

3、本实验仪中8位段码输出地址为0X004H,位码输出地址为0X002H。

此处X是由KEY/LED CS 决定,参见地址译码。

做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。

以便用相应的地址来访问。

例如,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新单片机实验三键盘识别实验

最新单片机实验三键盘识别实验

单片机实验三键盘识别实验昆明理工大学信息工程与自动化学院学生实验报告(2012—2013学年第1学期)课程名称:单片机技术开课实验室:信自楼402 2012年 12月 4日一、实验目的掌握单片机I/O口的输入检测的方法、独立按键的识别方法、键盘消抖等。

学会实时程序的调试技巧。

二、实验原理我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms 左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms,如果我们在首次检测到键被按下后延时10ms 左右再去检测,这时如果是干扰信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。

三、实验内容在如下实验电路中每按一次独立键盘的S2 键,与P1 口相连的八个发光二极管中点亮的一个往下移动一位。

图1 实验板键盘电路原理图四、实验步骤及结果1、按实验要求在KeilC中创建项目,编辑、编译程序。

(1)创建项目:注意文件为。

”.c”文件。

(2) 选择Device为“Atmel 89C52”(3)添加文件及编辑、编译程序2、将编译生成的目标码文件(后缀为.Hex)传入实验板中。

(1)编译生成的目标码文件(后缀为.Hex)(2)查看端口号:(2)将编译生成的目标码文件传入实验板中。

3、在实验板上运行程序,观察实验运行结果并记录。

五、实验总结在这次试验中,我们的主要目的是掌握单片机I/O口的输入检测的方法、独立按键的识别方法、键盘消抖等。

通过这次试验我对键盘输入检测有方法有了初步的了解。

键盘是单片机运用系统中最常用的输入设备,在单片机运用系统中,操作人员一般都通过键盘向单片机体统输入指令、地址和数据,实现简单的人机通信。

键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。

抖动时间的长短由按键开关的机械特性决定,一般是5到10ms,这种抖动对于人体来说是感觉不到的,但对于单片机来说,则是完全可以感应到的。

单片机实验五报告_单片机键盘实验

单片机实验五报告_单片机键盘实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合■设计⃞创新实验日期:2018.05.18 实验成绩:实验五单片机键盘实验(一)实验目的1.掌握单片机键盘控制;2.掌握数码管显示控制。

(二)设计要求1.行列扫描按键键值为0~F;2.按键只支持单键按下,不支持多键同时按下;3.要求用数码管显示按键值。

(三)实验原理1.矩阵式键盘的设计按键数目较多的杨合常采用矩阵式(也称行列式)键盘。

键盘由行线和列线组成,按键位于行、列的交叉点上,如下图所示,一个4×4的行列结构可构成一个16个按键的键盘,需要一个8位的并行I/O口。

很明显,在按键数目较多的场合,矩阵式键盘要比独立式键盘节省较多的I/O口线。

对下图所示的矩阵式键盘的查询扫描,一般包括以下4个步骤。

(1)首先判别整个键盘有无按键按下方法为单片机驱动列线P0.0-P0.3输出全0,然后读行线P0.4-P0.7的状态,若全为1,则键盘上没有闭合键;若P0.4-P0.7,则有键按下。

(2)去除键的抖动当判别出可能有键按下时,软件延时一段时间(10ms左右)再判别键盘的状态,若仍有键闭合,则认为键盘上有确定的键按下,否则是键抖动。

(3)求出按下键的键号上图中的16个按键,键号依次为0,1,...15。

各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。

行线通过上拉电阻接+5V,当无键按下时,行线为高电平,当有按键按下时,对应的行线与列线短接,行线的电平将由此行线相连的列线电平决定。

如果把行线设置为单片机的输入口线,列线设置为单片机的输出口线,则按键号的识别过程是:先令0列线P0.0为低电平0,其余3根列线都为高电平,遂行检查行线状态。

如果行线P0.4-P0.7都为高电平1,则P0.0这列上没有按键闭合,若P0.4-P0.7中有一行为低电平,则该行线与列线交叉的按键按下。

如果P0.0这一列上没有按键闭合,接着再使P0.1为低电平,其余列线为高电平。

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

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

单片机矩阵键盘实验实验报告
实验名称:单片机矩阵键盘实验
实验目的:掌握单片机矩阵键盘的原理和应用,能够使用单片机按键输入
实验内容:利用Keil C51软件,采用AT89C51单片机实现一个4x4的矩阵键盘,当按下任何一个按键时,将相应的键值传输到液晶显示屏上进行显示。

实验步骤:
1、搭建实验电路,将矩阵键盘与单片机相连,连接好电源正负极,然后将电路焊接成一个完整的矩阵键盘输入电路。

2、打开Keil C51软件,新建一个单片机应用工程,然后编写代码。

3、通过代码实现对矩阵键盘输入的扫描功能,当按下任何一个按键时,将相应的键值传输到液晶显示屏上进行显示。

4、编译代码,生成HEX文件,下载HEX文件到单片机中,将单片机与电源相连,然后就可以测试了。

5、测试完成后,根据测试结果修改代码,重新编译生成HEX 文件,然后下载到单片机中进行验证。

实验结果:
经过测试,实验结果良好,能够准确地输入按键的值,显示在液晶屏上。

实验感想:
通过这次实验,我深深地认识到了矩阵键盘技术的重要性以及应用价值,同时也更加深入了解单片机的工作原理和应用技术,这对我的学习和工作都有很好的帮助。

单片机按键实验报告

单片机按键实验报告

单片机按键实验报告篇一:单片机按键扫描实验报告键盘扫描一.实验目的(1)掌握矩阵键盘接口电路和键盘扫描编程方法。

(2)掌握按键值处理与显示电路设计。

二.实验任务(1)设计4*4键盘,编写各个键的特征码和对应的键值(0~F);(2)编程扫描按键,将按键对应的数字值使用数码管显示出来。

三.实验电路及连线方法1.采用动态显示连线方法:电路由2 片74LS573,1 个六字一体的共阴数码管组成。

由U15 输出段选码,U16 做位选码,与单片机的采用I/O 口连接方式,短路片J22 连接P2.0,J23 连接P2.3,做输出信号锁存。

(实际电路连接是d7-d6-d5-d4-d3-d2-d1-d0?h-c-d-e-g-b-a-f)。

PW12 是电源端。

2.键盘电路连线方法:电路由16 个按键组成,用P1 口扩展4×4 行列式键盘。

J20 是键盘连接端,连接到P1 口。

J21 是行列键盘、独立键盘选择端,当J21 的短路片连接2-3脚时,构成4×4 行列式键盘;当J21 的短路片连接2-1 脚时,可形成3×4 行列式键盘,4 个独立式按键S4、S8、S12、S16,这4 个独立按键分别连接P1.4~P1.7;其他12 个键3×4 行列式键盘。

PW15 是电源端。

四.编程思路1.采用反转法识别按键的闭合。

2.采用动态显示将键值显示出来。

五.算法流程图六.资源分配1.用P1口进行查找按键2.用R3做键值指针3.用R1做动态显示为选码指针。

4.R5为延时指针。

七.程序设计KPIN:ORG MOV MOV ANL MOV 0000H P1,#0F0H A,P1 A,#0F0H B,AMOVP1,#0FHMOVA,P1ANLA,#0FHORLA,BCJNE A,#0FFH,KPIN1AJMP EXITKPIN1: MOVB,AMOVDPTR,#TABKPMOVR3,#0KPIN2: MOVA,R3MOVC A,@A+DPTRCJNE A,B,KPIN3MOVA,R3LOOP: MOVR1,#0FEH;键盘动态显示 LOOP1: MOVA,R3ANLA,#0FHMOV DPTR,#TABMOVC A,@A+DPTRCLRP2.0CLRP2.1MOVP0,ASETB P2.0NOPCLRP2.0LOOP2: MOVA,R1;位选码MOVP0,ASETB P2.1MOVR5,#250LOOP3: DJNZ R5,LOOP3CLRP2.1SJMP LOOPKPIN3: INCR3CJNE A,#0FFH,KPIN2EXIT: RETTABKP: DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBHDB 0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,67H,0FFHTAB: DB77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FHDB 79H,33H,7CH,3BH,1BHEND八.调试出现的问题及解决问题1:程序正常运行,但按键显示出现乱码解决:动态显示笔形码错误,并改正。

单片机实验五 -键盘实验

单片机实验五 -键盘实验

电子信息工程系实验报告课程名称:单片机与接口技术实验项目名称:键盘实验 实验时间:2013-5-23班级:通信10 姓名:Microlab_4 学号:实 验 目 的:熟悉keil 仿真软件、proteus 仿真软件的使用和实验板中行列式键盘的使用。

了解并熟悉行列式键盘的电路结构、与单片机的连接方法及其工作原理,理解掌握C51中单片机控制行列式键盘中判断按键是否按下、按键的识别、按键的消抖分别是如何实现的。

实 验 原 理:键盘是单片机系统中通用的输入设备,用于向系统输入数据或控制信息。

键盘中一般矩阵式(行列式)键盘用得较多,适用于按键数量较多的场合。

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

当键被按下,则其交点的行线和列线接通。

行和列可分别用两个I/O 口来控制。

判断是否有键按下时,行线通过上拉电阻接+5V 上,而先使所有列线为低电平(I /O 输出0),再读行线状态(输入口),当无键按下时,所有行线为高电平,即读到“全1”数据;当有某键按下时,总会有一根行线为低电平,即读到的数据不全为“1”。

按键的识别(识别键的行列位置)有两种方法:扫描法和反转法。

反转法将行线接一并口,做输出方式;列线接一并口,做输入方式。

使所有行线为低电平(送全“0”),读入列线值,为“0”的那列,即按键所在列;反过来,使行线做输入方式,列线做输出方式。

将刚读到的列线值输出,然后读行线值,为“0”的那行,即按键所在行。

编程时使用P1=0x0f;m=P1;P1=0xf0;n=P1;mn=m|n;即可得到按键的键值,每一个按键都有自己唯一的键值。

按键或键盘都是一个机械开关,键的按下和放开是利用机械触点的闭合和断开来实现的。

由于机械触点的弹性作用,一个按键开关在闭合及断开瞬间均有一连串的抖动,抖动的时间长短由按键的机械特性决定,一般为5~10ms。

为了确保按键动作只确认一次,必须消除抖动的影响。

一般采用延时的方法。

相关单片机实验4教案与实验指导-键盘-显示实验

相关单片机实验4教案与实验指导-键盘-显示实验

键盘/显示实验说明和讲解第一种实验法1、键盘工作原理:板子上的键盘电路为理解键盘工作原理的方法是给出扫描信号,如果恰在扫描信号线上有按键,则也能得到扫描信号,这样主动生成的扫描信号和得到的实际信号合成在一起,就可以得到一个按键的具体值。

将这个具体值进行编码,或直接与显示字模对应起来,则就可以显示相关键值。

2、显示原理:下面给出部分与显示有关的主要电路。

只要按要求建立字模,显示电路就可以把相关的字符显示出来。

3、分析下面程序中的接口和键盘/显示的链接关系,并说明键盘中扫描信号是什么,如何得到键的具体值,如何查找字模,如何显示字模即相关键的键面值。

ORG 0000HST: M OV A,#11111110BMOV P3,AJNB P3.7,PKFJNB P3.6,PKBJNB P3.5,PK7JNB P3.4,PK3LJMP ST0PKF:LCALL DL10MOV A,#0FHLCALL DIRLJMP STPKB:LCALL DL10MOV A,#0BHLCALL DIRLJMP STPK7:LCALL DL10MOV A,#07HLCALL DIRLJMP STPK3:LCALL DL10LCALL DIRLJMP STST0:MOV A,#11111101B MOV P3,AJNB P3.7,PKEJNB P3.6,PKAJNB P3.5,PK6JNB P3.4,PK2LJMP ST1PKE:LCALL DL10MOV A,#0EHLCALL DIRLJMP STPKA:LCALL DL10MOV A,#0AHLCALL DIRLJMP STPK6:LCALL DL10MOV A,#06HLCALL DIRLJMP STPK2:LCALL DL10MOV A,#02HLCALL DIRLJMP STST1:MOV A,#11111011B MOV P3,AJNB P3.7,PKDJNB P3.6,PK9JNB P3.5,PK5JNB P3.4,PK1LJMP ST2PKD:LCALL DL10MOV A,#0DHLCALL DIRLJMP STPK9:LCALL DL10MOV A,#09HLCALL DIRLJMP STPK5:LCALL DL10LCALL DIRLJMP STPK1:LCALL DL10MOV A,#01HLCALL DIRLJMP STST2:MOV A,#11110111BMOV P3,AJNB P3.7,PKCJNB P3.6,PK8JNB P3.5,PK4JNB P3.4,PK0LJMP STPKC:LCALL DL10MOV A,#0CHLCALL DIRLJMP STPK8:LCALL DL10MOV A,#08HLCALL DIRLJMP STPK4:LCALL DL10MOV A,#04HLCALL DIRLJMP STPK0:LCALL DL10MOV A,#00HLCALL DIRLJMP ST;*********显示子程序*************DIR: MOV DPTR,#TAB ;查表MOVC A,@A+DPTRMOV P0,A ;A送P0口显示RET;***********延时10ms程序*********DL10: MOV R7,#0AHDEL1: MOV R6,#0FFHDEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETTAB: DB 11000000B,11111001B,10100100B,10110000B ;0123DB 10011001B,10010010B,10000010B,11111000B ;4567DB 10000000B,10010000B,10100000B,10000011B ;89abDB 10100111B,10100001B,10000100B,10001110B ;cdefEND第二种实验法1、键盘工作原理:2、分析下面程序中的接口和键盘/显示的链接关系,并说明键盘中扫描信号是什么,如何得到键的具体值,如何查找字模,如何显示字模即相关键的键面值。

单片机按键扫描实验报告

单片机按键扫描实验报告

单片机按键扫描实验报告
实验目的:
通过实验,掌握单片机按键的原理和按键的扫描方法。

实验器材:
1. STC89C52单片机开发板
2. 按键模块
3. 面包板、杜邦线等
实验原理:
单片机按键的原理是通过按键模块接通或断开单片机的某个IO口,从而改变该IO口的电平状态,由单片机检测到电平状态的改变,从而实现对按键的检测和响应。

按键模块一般采用矩阵按键的形式,通过多个IO口设为输出,多个IO口设为输入的方式,实现对多个按键的扫描检测。

按键模块一般会采用行列扫描的方法,即将按键分为多个行和列,按下按键时,某一行和某一列之间接通,从而改变了IO口的电平状态。

实验步骤:
1. 将按键模块连接到单片机开发板的IO口上。

根据按键模块的接口定义将VCC、GND和各个行列引脚分别连接到开发板上。

2. 根据按键模块的引脚定义,编写单片机程序进行按键的扫描。

通过循环检测每个行引脚和每个列引脚之间的电平变化,来判断按键是否被按下。

3. 在程序中可以通过LED等显示设备来显示按键是否被按下的状态。

4. 执行程序,观察按键是否可以正常检测和响应。

实验结果:
实验完成后,观察到按键的检测和响应正常,按下按键时,LED等显示设备可以正确显示按键被按下的状态。

经过实验,掌握了单片机按键的原理和按键的扫描方法,进一步提升了对单片机设备的理解和应用能力。

实验四Keyboard调试.

实验四Keyboard调试.

实验四、Keyboard调试
一、实验目的
S3C44B0有丰富的I/O口,用它可以组成各种各样的电路。

本实验就是利用其I/O口和外部中断,构成一个键盘扫描电路。

二、I/O口配置
EV44B0-II利用S3C44B0的PORTG的bit4~7为输出,PORTF的bit5~8为输入,并把PORTF 与至外部中断1,组成了一个简单的键盘扫描电路。

三、程序说明
该实验包括四个程序:44binit.s,44btest.c,44blib.c和44blcd.c,其中44binit.s, 44btest.c和44blib.c在上节中已说明。

Kb.c是主要是外部中断的中断服务程序,它是根据输出口的电平,去读输入口的电平,决定键盘的列,然后改变输出口电平,由输入口电平判别键盘的行,当然为了去抖,增加了必要的延时。

四、程序流程图
interrupt flowchart
五、实验步骤
1,连接EV44B0-II 和PC (JTAG 或并口,),超级终端也可连上。

2,运行Hitool for ARM, 建立项目并加入四个源文件,编译。

3,加载目标文件,运行。

当对键盘操作时,在8-SEG 和超级终端上会有相应的数字显示。

单片机实验五报告-单片机键盘实验

单片机实验五报告-单片机键盘实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证 ⃞综合■设计 ⃞创新实验日期:2018.05.18 实验成绩:实验五单片机键盘实验(一)实验目的1.掌握单片机键盘控制;2.掌握数码管显示控制。

(二)设计要求1.行列扫描按键键值为0~F;2.按键只支持单键按下,不支持多键同时按下;3.要求用数码管显示按键值。

(三)实验原理1.矩阵式键盘的设计按键数目较多的杨合常采用矩阵式(也称行列式)键盘。

键盘由行线和列线组成,按键位于行、列的交叉点上,如下图所示,一个4×4的行列结构可构成一个16个按键的键盘,需要一个8位的并行I/O口。

很明显,在按键数目较多的场合,矩阵式键盘要比独立式键盘节省较多的I/O口线。

对下图所示的矩阵式键盘的查询扫描,一般包括以下4个步骤。

(1)首先判别整个键盘有无按键按下方法为单片机驱动列线P0.0-P0.3输出全0,然后读行线P0.4-P0.7的状态,若全为1,则键盘上没有闭合键;若P0.4-P0.7,则有键按下。

(2)去除键的抖动当判别出可能有键按下时,软件延时一段时间(10ms左右)再判别键盘的状态,若仍有键闭合,则认为键盘上有确定的键按下,否则是键抖动。

(3)求出按下键的键号上图中的16个按键,键号依次为0,1,...15。

各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。

行线通过上拉电阻接+5V,当无键按下时,行线为高电平,当有按键按下时,对应的行线与列线短接,行线的电平将由此行线相连的列线电平决定。

如果把行线设置为单片机的输入口线,列线设置为单片机的输出口线,则按键号的识别过程是:先令0列线P0.0为低电平0,其余3根列线都为高电平,遂行检查行线状态。

如果行线P0.4-P0.7都为高电平1,则P0.0这列上没有按键闭合,若P0.4-P0.7中有一行为低电平,则该行线与列线交叉的按键按下。

如果P0.0这一列上没有按键闭合,接着再使P0.1为低电平,其余列线为高电平。

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

Keyboard实验
一、实验目的
1、了解键盘结构,学习扫描法判断键盘的方法。

2、了解8个I/O设计更多的按键方法。

二、实验任务
在实验板上设计并连接小键盘接口的连线,识别小键盘上按下的各键状态并用keyboard.exe显示。

三、实验说明
参考如下的电路图
图12.1 4x4行列式键盘原理图
PORTA 0—>3接Y1—>Y4; PORTA 4—>7接X1—>X4;可用PORTB接的八个发光二极管作为按键状态指示灯(即哪个键按下)。

(1)键盘状态和控制寄存器(Keyboard Status and Control Regisrer,INTKBSCR)INTKBSCR包含了键盘中断标志、屏蔽键盘中断请求、定义键盘中断的触发方式、清除键盘中断标志等功能。

其地址是$001A
D7—D4,未用,读出均为0.没有具体含义。

D3——KEY位,(只读位),键盘(中断)标志位(Keyboard Flag Bit).KEYF=1,键盘中断已产生,KEYF=0,未产生键盘中断。

D2——ACKK位(只写位),键盘(中断)应答位(Keyboard Acknowledge Bit)写入1,则清除键盘中断请求。

D1——IMASKK位,键盘中断屏蔽位(Keyboard Interrupt Mask Bit ),IMASKK=1,屏蔽键盘中断请求,IMASKK=0.,开放键盘中断请求。

D0——MODEK位,键盘中断引脚触发方式位(Keyboard Triggering Sensitivity Bit)。

MODEK=1,下降沿及低电平触发,MODEK=0,仅下降沿触发。

(2)键盘中断允许寄存器(Keyboard Interrupt Enable Regisrer,INTBIER)
INTBIER的各位决定所对应的引脚是否允许终端进入。

地址为: $001B
引脚PTAx pin)被定义位中断引入引脚,反之则不能作为中断输入引脚,复位时,全为0。

(3)键盘中断编程相关问题。

要进行键盘中断方面的编程,下列问题也需要了解。

1.键盘中断矢量地址为$DFE0---$DFE1.
2.键盘中断初始化顺序,先设置键盘状态和控制寄存器(INTKBSCR),后设置键盘中断允许寄存器(INTKBIER),旦设置了引脚KBIEx pin为键盘中断引入引脚,就默认了它为输入,但先它之前通过A接口数据寄存器定义该引脚为输入且通过上拉电阻寄存器设置其上有上拉电阻,再设置其为键盘中断引入引脚,则更可靠。

3.当定义KBIEx pin为键盘中断引入引脚时,由于内部上拉到逻辑1也许需要一些时间,可能产生开始的键盘误中断,建议在键盘初始化时,按下列顺序工作:
令IMASKK=1(屏蔽键盘中断),设置KBIEx=1(定义中断引脚),写ACKK=1(清除键盘中断请求),令IMASKK=0(开放键盘中断)
也可以通过DDRA定义PTAx pin为输出,写1到PTAx(使得PTAx pin为高电平),设置KBIEx=1(定义中断引脚)
4.注意在中断子程序中的入口和出口参数。

5.在wait和stop模式下,键盘中断仍可发生。

四、实验要求
1、掌握键盘中断使用方法,用扫描法读取键值、键值转为定义值的编程方法。

2、了解如何识别键盘上的按键、如何区分按键是被真正地按下还是抖动。

3、如何处理重建问题。

五、参考程序。

相关文档
最新文档