7279阵列式键盘实验
- 格式:doc
- 大小:57.50 KB
- 文档页数:4
实验二阵列式键盘实验一、实验目的1.掌握键盘和显示器的接口方法和编程方法2.掌握阵列式键盘的硬件组成和软件编程方法二、实验说明本实验提供了一个4X4小建盘,向P0口的低四位逐个输出低电平,如果有键盘按下,则相应输出为低,如果没有键按下,则输出为高。
通过输出的列码和读取的行码来判断按下什么键。
有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。
三、实验步骤及内容1.用一根8位数据线连接阵列式键盘实验模块与LED与单片机接口模块。
无键按下或有键按下,发光二极管全亮。
若将A1-A4接地,则发光二极管显示0000XXXX;B1线上有键按下,则发光二极管显示0000XXX,B2线上有键按下,则发光二极管现世0000X0XX,B1和B2均有键按下,则发光二极管显示000000XX……同样可将B1与B4接地,按键与发光二极管显示情况,用户可以自行判断,自由操作。
2.用一根8位数据线连接阵列式键盘实验模块与扫描显示实验模块。
无键按下或有键按下,八段LED全亮。
用户参照1,观察键盘与八段LED亮熄的关系。
3.使用静态串行显示模块显示键值。
单片机最小应用系统1的P1口接阵列式键盘的A1~B4口,P3.6接静态数码显示DIN,P3.7接CLK。
4.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
5.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加阵列KEY.ASM源程序,进行编译,直到编译无误。
6.进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
在键盘上按下某个键,观察数显是否与按键值一致。
16位建盘的键值从左至右、从上至下依次为0~F(16进制数)。
四、流程图及源程序1.流程图主程序框图2.源程序DBUF EQU 30HTEMP EQU 40HDIN BIT P3.6CLK BIT P3.7ORG 0000HLJMP STARTORG 0030HSTART:MOV A,#16MAIN: ACALL DISPMOV 30H, AACALL KEY1AJMP MAINKEY1: MOV P1, #0FH ;A1-A4输出,B1-B4输入,输;入者对应锁存先写“1”MOV A, P1 ;读取键盘状况CJNE A,#0FH, K11 ;有键按下K10: AJMP KEY1 ;无键按下K11: ACALL DELAY ;去抖动MOV P1, #0FHMOV A, P1 ;再读键盘状况CJNE A, #0FH, K12 ;确有键盘按下SJMP K10 ;误动作K12: MOV B,A ;存列值MOV P1, #0EFH ;按键在Ai行MOV A, P1CJNE A, #0EFH,K13 ;键在A4MOV P1, #0DFHMOV A, P1CJNE A, #0DFH,K13 ;键在A3行MOV P1, #0BFHMOV A,P1CJNE A, #0BFH,K13 ;键在A2行MOV P1, #7FHMOV A, P1CJNE A,#7FH, K13 ;键在A1行AJMP K10 ;多键同时按下K13: ANL A, #0F0H ;的行值ORL A, B ;的按下键的行列值MOV B, A ;暂存键值MOV R1, #16 ;16个键MOV R2, #0 ;键码初值MOV DPTR,#K1TAB ;键码表首址K14: MOV A,R2MOVC A, @A+DPTR ;从键值表中取键值CJNE A, B, K16 ;与按下键,键值比较MOV P1,#0FH ;相等,则完成以下步骤K15: MOV A, P1CJNE A, #0FH, K15 ;等释放ACALL DELAY ;去抖动MOV A, R2 ;得键码RETK16: INC R2 ;不相等,则继续访问键值表DJNZ R1,K14AJMP K10 ;多键同时按下处理K1TAB: DB 0EEH, 0DEH, 0BEH, 07EH ;键值表DB 0EDH, 0DDH, 0BDH, 07DHDB 0EBH, 0DBH, 0BBH, 07BHDB 0E7H, 0D7H, 0B7H, 077HDISP: MOV DBUF,AMOV DBUF+1,#16MOV DBUF+2,#16MOV DBUF+3,#16MOV DBUF+4,#16MOV R0, #DBUFMOV R1, #TEMPMOV R2, #5DP10: MOV DPTR,#SEGTABMOV A, @R0MOVC A, @A+DPTRMOV @R1, AINC R0INC R1DJNZ R2, DP10MOV R0, #TEMPMOV R1, #5DP12: MOV R2, #8MOV A, @R0DP13: RLC AMOV 0B0H,CCLR 0B1HSETB 0B1HDJNZ R2, DP13INC R0DJNZ R1, DP12RETSEGTAB: ;段码表DB 3FH,06H,5BH,4FH,66H,6DH ;“0,1,2,3,4,5”DB 7DH,07H,7FH,6FH,77H,7CH ;“6,7,8,9,A,b”DB 58H,5EH,79H,71H,00H,40H ;“C,d,E,F,,-”DELAY: MOV R4, #02HAA1: MOV R5,#0F8HAA: NOPDJNZ R5,AADJNZ R4,AA1RETEND。
智能仪器实验报告实验题目:HD7279键盘实验一、实验目的学习 HD7279 的通讯方法。
二、实验内容及原理利用利用总线向 HD7279 写入控制命令并显示键值。
三、实验步骤1、将 CPU 板正确安放在 CPU 接口插座上,跳线帽 JP2 短接在上侧。
2、连线:用导线将 MCU 的 IO1----IO3、INT0 分别连接到 HD7279 的7279_CS、 7279_CLK、 7279_DATA、 7279_KEY;用导线将 HD7279 的 7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP 分别连接到LED DISP 的 LED_A、LED_B、LED_C、LED_D、LED_E、LED_F、LED_G、 LED_DP;用导线将 HD7279 的 7279_C1、7279_C2、7279_C3、7279_C4 分别连接到LED DISP 的 LED_C1、 LED_C2、 LED_C3、 LED_C4;用导线将 HD7279 的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP 分别连接到 KEY 的 KEY7、KEY6、KEY5、KEY4、KEY3、KEY2、KEY1、 KEY8;用导线将 HD7279 的 7279_C1 连接到 KEY 的插孔 KEY。
连接好仿真器。
3、实验箱上电,在 PC 机上打开 Keil C 环境,打开实验程序文件夹HD7279 下的工程文件 HD7279.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。
4、上电,运行程序,按键,观察 LED 显示的数据是否与键盘一一对应。
HD7279 的中断输出 INT 上。
四、实验结果图一为键盘按下1234,图二为键盘按下5678。
图一键盘输入1234图二键盘输入5678五、实验结论与感悟通过本次实验,学习了HD7279的通讯方法,掌握了利用总线向HD7279写入控制命令并显示键值。
矩阵式键盘工作原理矩阵式键盘通常由多个按键组成一个矩阵结构。
每个按键都与矩阵的特定位置相对应,并且每个按键都有一个唯一的标识符。
矩阵式键盘通常由行和列构成,行与列之间通过导线相连。
矩阵式键盘的工作原理基于按键的位置,并且利用行与列之间的连线来检测按键是否被按下。
当按键未被按下时,矩阵式键盘的每个按键都将断开。
当按下一些按键时,按键的金属接点会触碰到与之相对应的导线,导致行与列之间形成电连接。
这导致通过电流流过,形成一个闭合电路。
这一电路可以被接收器感应到,并识别为一些按键被按下。
典型的矩阵式键盘电路由一个控制器和一个扫描矩阵组成。
控制器对行和列的导线进行扫描,确定按键是否被按下。
扫描矩阵是键盘上每个按键的布线结构,它允许控制器独立地访问每个按键。
控制器在扫描矩阵中的每个行导线上施加高电平信号,然后依次扫描每个列导线,以检测每一行上是否有按键被按下。
当控制器检测到一个按键被按下时,它将相应的行和列组合起来,以确定按下的按键的位置。
为了准确识别按键,矩阵式键盘电路通常采用消除键盘“反弹”的技术。
按键反弹是指按键被按下后,金属接点可能会在一段时间内反弹,导致多次电连接。
为了避免这种情况,电路通常会在检测到按键按下之后,延时一段时间再次检测。
矩阵式键盘的工作原理不仅适用于小型键盘,还适用于更大的键盘布局,如标准计算机键盘。
在这种情况下,矩阵式键盘可由多个矩阵组成,每个矩阵对应一个键盘的一部分。
整个键盘上的按键被编码为多个矩阵上的位置,并通过相应的扫描和检测进行识别。
总结起来,矩阵式键盘通过行和列之间的电连接来检测按键是否被按下。
控制器和扫描矩阵的结合使用,可以实现对键盘上多个按键的检测。
通过消除按键的反弹并进行适当的延时,矩阵式键盘可以提供准确和可靠的按键输入。
这使得它成为广泛应用于各种电子设备中的一种常见输入方式。
矩阵键盘实验报告佘成刚学号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 号键被按下。
矩阵式键盘测试及运行结果
键盘分编码键盘和非编码键盘。
键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。
矩阵键盘的识别方法其实和独立键盘类似,都是检测低电平,但矩阵键盘没固定接地,接的是I/O口,地(即低电平)由写程序给它。
以扫描第一行为例,通过给P3.0口赋低电平,其他口给高电平为基础,通过对P3.4~P3.7口的读取,若P3.4口读取结果是低电平,则第一行第一个按键按下,依次类推,后面三个按键。
检测完第一行,检测第二行,同理,给P3.1口赋低电平,其他口给高电平,再读取P3.4~P3.7口的电平情况,第三、四行也如此,通过分别给P3.2,P3.3口赋值低电平,然后对P3.4~P3.7口进行读取,来判断是否有按键按下。
7279阵列式键盘实验7279阵列式键盘实验一、实验目的1、掌握八段数码管硬件线路原理,掌握用HD7279A芯片实现显示的编程方法2、熟悉键盘的工作原理,掌握用HD7279A芯片实现键盘扫描程序设计方法二、实验说明HD7279A是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,HD7279A 内部含有译码器,可直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279A还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。
HD7279A的指令结构有三种类型:1)不带数据的纯指令,指令的宽度为8个BIT,即微处理器需发送8个CLK脉冲;2)带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲;3)读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到HD7279的指令,后8个BIT为HD7279A返回的键盘代码。
本实验采用8位共阴极数码管,用查询方式判断。
引脚说明:引脚名称说明1,2 VDD 正电源3,5 NC 无连接,必须悬空4 VSS 接地6 CS 片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据7 CLK 同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效8 DATA 串行数据输入/输出端,当芯片接收指令时,此引脚为输入端:当读取键盘数据时,此引脚在‘读’指令最后一个时钟的下降沿变为输出端9 KEY 按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平10-16 SG-SA 段g——段a驱动输出17 DP 小数点驱动输出18-25 DIG0-DIG7 数字0——数字7驱动输出26 CLKO 振荡输出端27 RS RC振荡器连接端28 RESET 复位端控制指令:HD7279A的控制指令分为二大类——纯指令和带有数据的指令。
纯指令1.复位(清除)指令A4HD7 D6 D5 D4 D3 D2 D1 D01 0 1 0 0 1 0 0当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。
矩阵键盘设计实验报告
矩阵键盘是一种特殊的电子输入设备,其特殊性在于每个按键可以仅由几根线连接而成。
这可以将按键尺寸缩小,同时也减少了接線复杂度。
在本次实验中,我们设计了一个4*4的矩阵键盘。
矩阵键盘的外型是4 *4的按键,其中每个按键由一个PIN组成,连接起来分别连接在一个不同的ROW与COL上。
在使用矩阵键盘时,我们将其连接到一台电脑上,通过电脑程序监视每行每列的通断状态,当一行或者一列被按下,程序会自动捕捉,来表示一个字符或者code.
首先,我们先准备一台电脑,再连接矩阵键盘的各个PIN,用8个信号线将矩阵键盘连接到单片机,再用USB线将单片机连接到电脑上,使用PL 2303驱动链接矩阵键盘和电脑终端。
单片机负责捕获ROW和COL的信号,计算并识别矩阵键盘的按键,将计算出的字符发送至电脑终端,进行小程序的检测。
在电脑端,我们使用Apple系统的终端运行.bash,编写简单的shell脚本实现对矩阵键盘信号识别。
脚本将不断检测矩阵键盘信号状态,根据捕捉到的ROW和COL信号,将其映射出字符信息,在一定时间内输出至终端。
在实验的最后,我们检验了所设计的矩阵键盘是否符合预期效果。
通过代码发送进行按键操作,能检测到正确的字符,表明矩阵键盘的设计及实现满足要求。
本次实验可以作为以后矩阵键盘的参考,深入研究程序软件,提高实验效率。
7279阵列式键盘实验
一、实验目的
1、掌握八段数码管硬件线路原理,掌握用HD7279A芯片实现显示的编程方法
2、熟悉键盘的工作原理,掌握用HD7279A芯片实现键盘扫描程序设计方法
二、实验说明
HD7279A是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,HD7279A 内部含有译码器,可直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279A还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。
HD7279A的指令结构有三种类型:
1)不带数据的纯指令,指令的宽度为8个BIT,即微处理器需发送8个CLK脉冲;
2)带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲;
3)读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到HD7279的指令,后8个BIT为HD7279A返回的键盘代码。
本实验采用8位共阴极数码管,用查询方式判断。
引脚说明:
引脚名称说明
1,2 VDD 正电源
3,5 NC 无连接,必须悬空
4 VSS 接地
6 CS 片选输入端,此引脚为低电平时,可向芯片发送指令及读
取键盘数据
7 CLK 同步时钟输入端,向芯片发送数据及读取键盘数据时,此
引脚电平上升沿表示数据有效
8 DATA 串行数据输入/输出端,当芯片接收指令时,此引脚为输
入端:当读取键盘数据时,此引脚在‘读’指令最后一个
时钟的下降沿变为输出端
9 KEY 按键有效输出端,平时为高电平,当检测到有效按键时,
此引脚变为低电平
10-16 SG-SA 段g——段a驱动输出
17 DP 小数点驱动输出
18-25 DIG0-DIG7 数字0——数字7驱动输出
26 CLKO 振荡输出端
27 RS RC振荡器连接端
28 RESET 复位端
控制指令:
HD7279A的控制指令分为二大类——纯指令和带有数据的指令。
纯指令
1.复位(清除)指令A4H
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 0 0 1 0 0
当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。
执行该指令后,芯片所处的状态与系统上电后所处的状态一样。
2.测试指令BFH
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 1 1 1 1 1
该指令使所有的LED全部点亮,并处于闪烁状态,主要用于测试。
3.左移指令A1H
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 0 0 0 0 1
使所有的显示自右向左(从第1位向第8位)移动一位(包括处于消隐状态的显示位),但对各位所设置的消隐及闪烁属性不变。
移位后,最右边一位为空(无显示)。
例如,原显示为
4 2
5 2 L P 3 9
其中第2位‘3’和第4位‘L’为闪烁显示,执行了左移指令后,显示变为
2 5 2 L P
3 9
第二位‘9’和第四位‘P’为闪烁显示。
4.右移指令A0H
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 0 0 0 0 0
与左移指令类似,但所做移动为自左向右(从第8位向第1位)移动,移动后,最左边一位为空。
5.循环左移指令A3H
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 0 0 0 1 1
与左移指令类似,不同之处在于移动后原最左边一位(第8位)的内容显示于最右位(第1位)。
在上例中,执行完循环左移指令后的显示为
2 5 2 L P
3 9 4
第二位‘9’和第四位‘P’为闪烁显示。
6.循环右移指令A2H
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 0 0 0 1 0
在循环左移指令类似,但移动方向相反。
三、实验内容及步骤
本实验需要用到单片机最小应用系统(F1区)、7279阵列式键盘(B3区)和动态扫描显示模块(I2区)。
1、单片机最小应用系统的P2.7口接7279阵列式键盘的CS端,P1.3口接7279阵列式键盘的KEY端,P1.6口接7279阵列式键盘的CLK端,P1.7口接7279阵列式键盘的DATA端。
用8P排线将7279阵列式键盘的位选JD3B和八位动态数码显示的位选JD1I相连, 7279阵列式键盘JD4B
和动态扫描显示模块的段码JD0I 相连。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH29_7279键盘显示.asm ”源程序,进行编译,直到编译无误。
4、全速运行程序,然后等待按键输入,并在有按键按下后显示相应的键号,前一个键号左移。
5、也可以把源程序编译成可执行文件,把可执行文件用ISP 烧录器烧录到89S52/89S51芯片中运行。
(ISP 烧录器的使用查看附录二) 四、实验参考程序(见光盘中的程序文件夹)
五、电路图
VDD 1VDD 2NC 3Vss 4NC
5
CS 6CLK 7DATA 8KEY 9SG 10
SF
11SE
12SD 13SC
14SB
15SA 16DP 17DIG018DIG1
19DIG220DIG321DIG422DIG523DIG624DIG725
CLK026RC 27RESET 28U1B 7279A
VCC
VCC
VCC
KEY24B R27B
2K R28B 2K
R17BB 3.3K C3015P
KEY23B KEY22B KEY21B KEY20B KEY19B KEY18B KEY17B
KEY16B
KEY15B
KEY14B
KEY13B
KEY12B
KEY11B
KEY10B
KEY9B
R19B 200R20B 200R21B 200R22B 200R23B 200R24B 200R25B 200R26B 200
C310.1uF R18B 1K
12345678
JD4B
1
2345678
JD3B
SEGA0SEGB0SEGD0SEGC0SEGE0SEGF0SEGG0SEGH0
G7G6G5G4G3G2G1G0
G7G6G5G4G3G2G1G0
CS
CLK DATA KEY SEGA0
SEGB0
SEGD0
SEGC0
SEGE0
SEGF0
SEGG0
SEGH0。