第4讲 单片机按键显示接口技术

合集下载

单片机 键盘 显示器接口-PPT课件

单片机 键盘 显示器接口-PPT课件
键盘、显示器接口
PC机除了主 机以外还需要 哪些部分呢?
单片机电路有时候也需要键盘、显示等外设。
1
键盘分类
6.3 键盘接口
编码式的:由其内部硬件逻辑电路自动产
生被按键的编码。使用方便,键盘码产生速 度快,占用CPU时间少,但对按键的检测与 消除抖动干扰是靠硬件电路来完成的,硬件 电路复杂、成本高。
键按下/释放判断
P1.0--1.3作为输入口 P1.4--1.7作为输出口
KS: MOV MOV MOV MOV ANL RET
A,#00H P1,A P1,#0FH A,P1
A,#0FH
P1.7
P1.6
P1.5
+5V
MCS-51 P1.4 0 1 2 3
P1.3 4 5 6 7
P1.2 8 9 10 11
中断扫描方式
为提高CPU工作效率,可采用中断扫描工作方 式。其工作过程如下:当无键按下时,CPU处理自 己的工作,当有键按下时,产生中断请求,CPU转 去执行键盘扫描子程序,并识别键号。
16
ME830 矩阵式摁键
0
1
2
3
4
5
6
7
8
9
A
b
C
d
E
F
P1口: 低4位作为列线 高4位作为行线
17
实验八源程序 线反转法
前沿抖动
后沿抖动
机械按键抖动时间在
5ms~10ms之间
断开
Q
消除方法:
闭合
Q
硬件方案——双稳态去抖电路
软件方案——延时10ms~20ms后再次判断
4
*
+5V
在此期间,CPU对一次 键入做多次键处理

(单片机原理及应用技术)第7章键盘、显示接口技术

(单片机原理及应用技术)第7章键盘、显示接口技术
掌握键盘的扫描过程及其原理。
4 键盘中断处理技术
了解键盘中断的工作原理及其在单片机应用 中的作用。
显示器的基本原理和类型
LCD显示器
熟悉液晶显示器的基本原理 及其特点。
LED显示器
了解LED显示器的工作原理和 优势。
显示器的驱动方式
学会显示器的不同驱动方式 及其运作原理。
显示模式和像素分辨率
1
显示屏幕的像素和分辨率
键盘控制程序的设计
学会设计键盘控制程序以实现按 键检测和响应。
按键debounce技术和消抖 程序设计
了解按键debounce技术并设计消 抖程序。
键盘编码和扫描算法
1 常用键盘扫描算法
掌握常用的键盘扫描算法
2 二维矩阵键盘编码算

3 十字键盘和模拟摇杆
编码技术
来实现快速检测按键状态。
了解二维矩阵键盘的扫描
学习十字键盘和模拟摇杆
和编码算法。
ቤተ መጻሕፍቲ ባይዱ的编码技术及其应用。
硬件仿真和调试技巧
1 软件仿真技术
掌握使用软件仿真工具进行调试的技巧和方 法。
2 硬件调试技巧
学习硬件调试的实用技巧和常见问题的排查 方法。
面板板图设计和焊接技巧
1 面板板图设计
2 焊接技巧
了解面板板图设计的基本原理和技巧。
学会焊接电路板时的注意事项和技巧。
单片机原理及应用技术
通过本章学习,您将了解到单片机键盘和显示接口技术的基本原理、编码和 扫描技术、按键检测、中断处理、显示器类型、显示模式以及单片机和显示 器接口技术等内容。
键盘和显示器的基本原理
1 键盘编码技术
了解键盘编码的原理和常用编码方式。
3 键盘的按键检测

单片机接口技术

单片机接口技术

第七章单片机接口技术教学内容:1、I/O口扩展技术2、存储器扩展技术3、 A/D转换和D/A转换技术4、键盘接口技术5、显示接口技术本章重点:1、可编程I/O口扩展技术2、数据存储器的扩展技术3、键盘接口技术4、显示接口技术教学要求:1、通过本章的学习,应掌握通用I/O、可编程I/O口、数据存储器、键盘、显示接口的工作原理及扩展方法。

2、掌握接口的程序设计方法。

3、具备应用系统的开发能力教案:第一节 I/O口扩展技术1、简单I/O口扩展技术1)、I/O口扩展方法芯片:简单输入口扩展采用标准接口芯片,如74HC244、74HC373、74HC245等等。

扩展方法:I/O口线与单片机口线相连,接口的控制线由单片机的其它口线或控制信号相连。

注意事项:如果控制线由通用的I/O口提供,此时单片机的接口相当于端口,访问时用MOV类指令;如果控制信号由单片机的控制口线提供,此时外面扩展的单元就相当于外部的一个存储单元,访问时要用MOVX指令。

2)、输入口扩展如图1所示为用74HC244扩展的通用的输出口。

图1 输入口扩展电路3)、输出口扩展图2是用74HC373扩展的输出电路图2 输出口扩展电路2、可编程I/O口扩展技术可编程I/O口芯片很多,但扩展方法是一样的,下面以8255和8155可编程为例来说明可编程I/O口的扩展方法1)、8255A可编程接口芯片扩展I/O口(1)8255A的内部结构8255A是可编程的I/O接口芯片,通用性强且使用灵活,常用来实现51系列单片机的并行I/O扩展。

8255A按功能分为三部分,即:总线接口电路、口电路和控制逻辑电路。

其内部结构如图3所示。

图3 8255A内部结构数据总线缓冲器:直接与CPU的系统总线连接,以实现CPU和接口之间数据、控制及状态信息的传送。

读写控制逻辑:负责管理内部和外部的数据传送,8255A读写控制如表1所示。

表1 8255A读/写控制表CSA1A0RDWR所选端口操作A口读端口A1B口读端口B1C口读端口C11A口写端口A111B口写端口B111C口写端口C1111控制寄存器写控制字1××××/数据总线缓冲器输出高阻A组与B组控制:每组控制电路一方面接收来自读/写控制逻辑电路的读/写命令,另一方面接收芯片内部总线的控制字,据此向对应的口发出相应的命令,以决定对应口的工作方式和读/写操作。

单片机实用接口技术键盘接口技.pptx

单片机实用接口技术键盘接口技.pptx
经译码后产生列扫描信号,此时8 列中只有1列为0电平。其余各都为 高电平。
LED显示器接口设计
• LED的结构 • LED静态显示 • LED动态显示
1. LED静态显示方式 各数码管的共阴极(或共阳极)
连接在一起并接地(接+5V),每个数 码管的各段分别与一个8位的锁存器输 出相连,这样当锁存器存入一个数据后, 数码管将始终显示此数据。
OE为0时,D0~D7呈高阻态。 START:启动信号,下降沿启动。 EOC:转换结束信号。该信号从启动信号上升沿开始经1、8个
时钟周期后由高电平变为低电平,表征A/D转换正在 进行;64个时钟周期后(每位转换需8个时钟周期)由低
CLK:时钟输入。时钟频率≤640kHz。 、:基准电压输入.基准电压必须满足: 0≤<≤Vcc
一般I/O接口不能提供这么大的电流,需要 使用驱动电路。常用的有 ULN2003A,7 段驱动, ULN2803 8段驱动。
特点: 1。 最大驱动电流可达500ma 2。反相驱动 3。需要限流电阻,数码管越多,限流电
A/D转换器的接口设计
1。根据要求的精度选择位数。8,12,16位 2。根据信号性质选择转换速度。
;判断有无键按下 ;有键按下
;去抖延时 ;再判断有无键按下 ;有键按下,确定按键位置
POP
A
RET
; 判断有无键按下子程序, 有键按下时,A的值不为0
KEY_ON:
MOV
A, #00H
MOV
DPTR, #0700H ;PA口
MOVX
@DPTR, A
MOV
DPTR, #0702H
MOVX
A,@DPTR
中断服务程序中读转换结果的程序段如下:

《单片机的接口技术》课件

《单片机的接口技术》课件
详细描述
单片机是一种微型计算机系统,它被集成在一个芯片上,包含了计算机的基本 组成部分,如中央处理器(CPU)、随机存取存储器(RAM)、只读存储器( ROM)、输入输出接口(I/O)等。
单片机的历史与发展
总结词
单片机的发展经历了从4位、8位到32位的过程,性能不断提高,应用领域不断扩大。
详细描述
通过串行通信接口,单片机之间可以相互交换数据,实现设备间 的信息交互。
与计算机进行通信
单片机可以通过串行通信接口与计算机连接,实现数据的上传和下 载,如进行程序调试、数据采集等。
实现远程控制
通过将单片机的串行通信接口与调制解调器连接,可以实现远程控 制功能,如远程监控、遥控等。
04
CATALOGUE
THANKS
感谢观看
05
CATALOGUE
单片机与外部设备的接口
单片机与存储器的接口
数据存储接口
用于将数据存储在外部存储器中,如 RAM、ROM或Flash存储器。通过 数据总线、地址总线和控制总线实现 数据传输。
程序存储接口
用于将程序代码从外部存储器加载到 单片机中。通常使用ROM、EPROM 或Flash存储器作为程序存储器。
的时钟线,但数据传输速率相对较低。
单片机并行通信接口的应用
总结词:应用场景
详细描述:单片机并行通信接口广泛应用于各种领域,如工 业控制、智能仪表、数据采集等。它可以实现高速数据传输 ,提高系统的性能和响应速度。
单片机并行通信接口的应用
总结词:应用实例
详细描述:例如,在智能仪表中,单片机通过并行通 信接口与传感器和执行器进行数据交换,实现实时监 测和控制;在数据采集系统中,单片机通过并行通信 接口与多个传感器进行数据传输,实现快速的数据采 集和存储。

单片机原理及接口技术(C51编程)单片机的开关检测、键盘输入 与显示的接口设计

单片机原理及接口技术(C51编程)单片机的开关检测、键盘输入 与显示的接口设计
第2章已介绍,P0口作通用I/O用,由于漏极开路,需 外接上拉电阻。而P1~P3口内部有30kΩ左右上拉电阻。
下面讨论P1~P3口如何与LED发光二极管驱动连接问 题。
单片机并行端口P1~P3直接驱动发光二极管,电路见 图5-1。
与P1、P2、P3口相比,P0口每位可驱动8个LSTTL输 入,而P1~P3口每一位驱动能力,只有P0口一半。
5.1 单片机控制发光二极管显示
发光二极管常用来指示系统工作状态,制作节日彩灯、 广告牌匾等。
大部分发光二极管工作电流1~5mA之间,其内阻为 20~100Ω。电流越大,亮度也越高。
为保证发光二极管正常工作,同时减少功耗,限流电阻 选择十分重要,若供电电压为+5V,则限流电阻可选1~3kΩ。
5.1.1 单片机与发光二极管的连接
5.2.2 开关检测案例2
图5-4 开关检测指示器2接口电路与仿真
5.2.2 开关检测案例2
参考程序:
#include <reg51.h> void main( ) {
char state; do {
P1=0xff; state=P1; state=state&0x03;
// 包含头文件reg51.h //主函数main( )
//延时函数
5.2.1 开关检测案例1
void main( ) { //主函数
while (1) {
unsigned char temp; //定义临时变量temp
P1=0xff;
//P1口低4位置1,作为输入;高4位置1,发光二极管熄灭
temp=P1&0xf0;
//读P1口并屏蔽低4位,送入temp 中
5.1.2 I/O端口的编程举例

单片机接口技术-显示按键

单片机接口技术-显示按键

单片机原理及其接口技术
驱动数码管
4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而
位选线占用一个4位I/O口。
单片机原理及其接口技术
驱动数码管
8位LED动态显示2003.10.10的过程。 图(a)是显示过程,某一时刻,只有一位LED被选通显示,其余位则 是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的同时显示的字符。
R1
470
将普通LED接至MCU端口,切勿遗漏限流电阻。
当超过2个以上LED接到同一I/O端口,必须增加缓冲
闪烁的LED通常可以作为报警器,但是在明亮的阳光下耗较大的电能,在电池供电的系统中需小心使用。
D1
LED-B
单片机原理及其接口技术
驱动数码管
用单片机驱动LED数码管有很多方法,按显示方式分, 有静态显示和动态(扫描)显示 静态显示:各位的公共端连接在一起(接地或+5V)。 每位的段码线(a~dp)分别与一个8位的锁存器输出 相连。显示字符一确定,相应锁存器的段码输出将维 持不变,直到送入另一个段码为止。显示的亮度高。 单片机将所要显示的数据送出后就不再管,直到下一 次显示数据需要更新时再传送一次新数据,显示数据 稳定,占用很少的CPU时间。每个数码管必须接单独的 锁存器,增加了硬体电路的复杂性和成本。
单片机原理及其接口技术
键盘接口技术
键盘:单片机系统中完成控制参数输入及修改的基本 输入设备,是人工干预系统的重要手段。 键盘的分类:按编码方式可分为编码键盘与非编码键 盘。按键组连接方式可分为独立连接式键盘与矩阵连 接式键盘。 分类 独立连接式键盘 矩阵连接式键盘 薄膜开关
单片机原理及其接口技术
C6H A1H 86H 8EH 8CH C1H CEH 91H 89H C7H FFH …

单片机的接口技术ppt课件

单片机的接口技术ppt课件
图9-5 4位8段LED动态显示电路
2. LED动态显示方式
• 虽然这些字符是在不同时刻出现,而在同一时刻,只有一位显示,其他各 位熄灭,由于余辉和人眼的“视觉暂留”作用,只要每位显示间隔足够短, 则可以造成“多位同时亮”的假象,达到同时显示的效果。
• LED不同位显示的时间间隔(扫描间隔)应根据实际情况而定。显示位数 多,将占大量的单片机时间,因此动态显示的实质是以牺牲单片机时间来 换取I/O端口的减少。
为了使数码管显示不同的符号或数字,要把某些段发光二极管点亮,就 要为LED数码管提供段码(字型码)。
LED数码管共计8段。正好是一个字节。习惯上是以“a”段对应段码字 节的最低位。各段与字节中各位对应关系如表9-1所示。
表9-1 段码与字节中各位的对应关系
代码位 D7
D6
D5
D4
D3
D2
D1
D0
图9-10 4×4矩阵式键盘结构
矩阵式(行列式)键盘的按键识别
• 矩阵式键盘按键的识别方法分为扫描法和反转法。
① 扫描法
第1步,识别键盘有无键按下: • 列线输出全0 • 然后输入行线状态,若行线状态为全1( 1111 )则没有键按下; • 若行线状态一定不为全为1,则一定有任一键按下。 第2步,识别出具体的键位: • 逐列扫描,先第一列输出为0,其他列为1,列编码为1110。然后输入行
考虑。也有的系统仅单独需要键盘或显示器。介绍几种实用的 键盘/显示器接口的设计方案。
9.3.1 利用AT89S51串行口实现的键盘/显 示器接口(举例)
使用AT89S51的串行口的方式0的输出方式,构成键盘/显示器 接口,如图9-13所示。
8个74LS164:74LS164(0)~74LS164(7)作为8位LED数码管的 段码输出口,AT89S51的P3.4、P3.5作为两行键的行状态输入 线,P3.3作为TXD引脚同步移位脉冲输出控制线,P3.3=0时, 与门封死,禁止同步移位脉冲输出。这种方案主程序可不必 扫描显示器,软件设计简单,使单片机有更多的时间处理其 他事务。

第4讲 单片机按键显示接口技术

第4讲 单片机按键显示接口技术

void fun_disp( unsigned char disp_number)
{ unsigned char decoder; decoder = disp_decode_tab[ disp_number]; //显示译码 DISP_PORT = decoder; } // 显示输出
2. 基于移位寄存器的静态显示
4.2.3 LED数码管的动态显示
动态显示:
各数码管在显示过程中轮流得到送显信号,与各数码管接口 的I/O口线是共用的。
动态显示特点:
有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时 间,编程复杂。(有多个LED时尤为突出)
工作原理:从P0口送段码,P1口送位选信号。段码虽同时到 达 6个LED,但一次仅一个LED被选中。利用“视觉暂留”, 每送一个字符并选中相应位线,延时一会儿,再送/选下一 个……循环扫描即可。
1) 74LS164介绍。
The SN74LS164 is a high speed 8-Bit Serial-In Parallel-Out Shift Register. Serial data is entered through a 2-Input AND gate synchronous with the LOW to HIGH transition of the clock. The device features an asynchronous Master Reset which clears the register setting all outputs LOW independent of the clock.
unsigned char disp_buf[6]; //显示缓存 unsigned char code seg_decode[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xff,0x00} unsigned char code bit_select[] = {0x00,0x01,0x02,0x04,0x08,0x10,0x20}; void dispscan(void) { unsigned char i,j; for (i=1; i<7; i++) { j = disp_buf[i-1]; //取出需显示的数 segport = seg_decode[j]; //送出段型码 bitport = bit_select[i]; //送出位选码 delayms(1); bitport=0x00; } }

单片机原理及接口技术结课报告——键盘输入及显示

单片机原理及接口技术结课报告——键盘输入及显示

单片机原理及接口技术结课报告——键盘输入及显示小组成员:第一章总体设计原理本设计是一个实现加、减、乘、除的计算器,它的硬件主要由四部分组成,一个AT89C51单片机芯片,一个八位共阳极的数码管,一个4*4的键盘,一个排阻(10K)做P0口的上拉电阻,它可以实现结果低于65535的加、减、乘、除运算。

——P2.7相连,P2口作为数码管的位控制端。

——P1.3管脚相连,程序运行时依次扫描各行,查询是否有键按下,如果有则进入键盘识别处理程序,实现相应的运算,然后通过数码管输出结果,如果没有按键就调用显示程序显示一个0,等待按键按下,在进入按键扫描程序。

执行过程:开机即显示0,等待键入数值,当键入数字,将通过数码管显示出来,在键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当在键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。

注:结果不能超出65535。

按键控制显示电路系统的总体原理框图为:第二章硬件设计2.1 系统所选芯片介绍AT89C51芯片是一种带有4K字节闪存的低电压、高性能CMOS 8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

AT89C51单片机模块是整个电路的核心,时钟信号与复位信号的产生以及程序的处理等任务都是由单片机来完成的。

时钟信号用来提供单片机片内各种微操作的时间基准,复位信后用来初始化单片机内部的某些特殊功能寄存器,使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。

图1 AT89C51单片机2.2显示器介绍LED(Light Emiting Diode)是发光二极管的缩写。

通常所说的LED显示器由7个发光二极管组成,因此也称为七段LED显示器,其排列形状如下图所示。

显示器还有一个圆点型发光二极管(图中dp),用于显示小数点。

通过其个发光二极管亮暗的不同组合,就可以显示多种数字、字母以及其他符号。

单片机原理及应用—键盘、显示器的接口设计

单片机原理及应用—键盘、显示器的接口设计
按键位于行、列的交叉点上。如图10-10所示。
按键数目较多的场合,行列式键盘与独立式键盘 相比,要节省很多的I/O口线。
(1)行列式键盘工作原理
无键按下,该行线为高电平,当有键按下时, 行线电平由列线的电平来决定。
由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。
个小数点“dp”段)。 有共阳极和共阴极两种。如图10-1所示。
为使LED显示不同的符号或数字,要为LED提供段码 (或称字型码)。
提供给LED显示器的段码(字型码)正好是一个字 节(8段)。各段与字节中各位对应关系如下:
按上述格式,8段LED的段码如表10-1所示。
表10-1 LED段码(8段)
第2步:行线输出为全低电平,则列线中电平由高变低 所在列为按键所在列。
结合上述两步,可确定按键所在行和列。 (3)键盘的编码
根据实际需要灵活编码。
二、 LED数码显示器接口原理
1 LED数码显示器接口原理 LED(Light Emitting Diode):发光二极管的缩写。
显示器前面冠以“LED”。 1.1 LED数码显示器的结构 常用的LED显示器为8段(或7段,8段比7段多了一
7.5 键盘、显示器的接口设计
输入外设:键盘 输出外设:LED显示器
一、 键盘接口原理 1. 键盘输入的特点
键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。
2. 按键的确认
检测列线电平 高电平:断开;低电平:闭合,
3.如何消除按键的抖动 常用软件来消除按键抖动。
基本思想:检测到有键按下,键对应的行线为低,软 件延时10ms后,行线如仍为低,则确认该行有键按下。

单片机原理及应用键盘与显示器接口

单片机原理及应用键盘与显示器接口

按键识别子程序
KEY: MOV DPTR, #7F00H ;8155命令口地址
MOV A, #03H
;置PA、PB口为输出,
MOVX @DPTR,A ;PC口为输入
MOV R4,#00H
;0→键号寄存器R4
MOV R2,#01H
;扫描模式01H→R2
KEY1:MOV DPTR,#7F01H
MOV A,R2
2、串键保护
由于操作不慎,可能会造成同时有几个键被按下,这种情况 称为串键。有三种处理串键的技术:两键同时按下、n键同时 按下和n键锁定。
“两键同时按下”技术是在两个键同时按下时产生保护作用。 最简单的办法是当只有一个键按下时才读取键盘的输出,最后 仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用 这种方法。另一种方法是当第一个按键未松开时,按第二个键 不产生选通信号。这种方法常藉助硬件来实现。
典型非编码键盘结构
非编码键盘大都采用按行、列排列的矩阵开关 结构,这种结构可以减少硬件和连线。
矩阵键盘接口
行扫描法识别按键
行扫描法是采用步进扫描方式,CPU通过输出口 把一个“步进的0”逐行加至键盘的行线上,然后通过 输入口检查列线的状态。由行线列线电平状态的组合 来确定是否有键按下,并确定被按键所处的行、列位 置。
1、反弹跳
当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖 动和弹跳,如下图所示,这是机械式开关的一个共同性问题。 消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用 软件延迟的方法。
采用RS触发器实现硬件反弹跳
当键数较多时经常用软件 延时的方法来反弹跳,如 流程图所示。当检出有键 按下后,先执行一个反颤 延时20ms的子程序,待前 沿弹跳消失后再转入键闭 合CLOSE子程序。然后再 判断此次按键是否松开, 如果没有,则进行等待。 若已松开,则又执行一次 延时20ms的子程序以消除 后沿弹跳的影响,再去检 测下次按键的闭合。

单片机接口技术ppt课件

单片机接口技术ppt课件

;显示缓冲区首址送R0
STAR: MOV R0,#00H
;显示缓冲区清零
INC
R0
DJNZ R2,STAR
CLR
A
;累加器清零
注:其它子程序参考教材
4. 实训分析与总结
例5.4与本实训相比,二者均是秒表,但差别较大。前者采用发光 二极管显示,后者采用七段码LED〔俗称数码管〕,后者显示更直观; 前者计时采用软件延时,后者采用定时器中断,后者更准确;前者功 能单一,程序一旦开场运转,中间过程无法控制,后者功能齐全,可 随时启动、停顿、清零,后者智能化程度更高。综上所述,后者更适 用。
7.1 键盘接口
按键的特点及输入原理 独立式按键 矩阵式按键
按键的特点及输入原理
❖ 按键的分类:

触点式:机械;无触点式:电气
❖ 键输入原理:

经过按键的接通与断开,产生两种相反的逻
辑形状
❖ 低电平“0〞与高电平“1〞。
❖ 键功能的实现:

对于一组键或一个键盘,需经过接口电路与
单片机相连。可采用查询或中断方式测试有无键按
键号送A
按键处理
3.实训程序
ORG 0000H AJMP MAIN
ORG 000BH
AJMP CONT
ห้องสมุดไป่ตู้
;◇◇◇◇◇◇◇◇◇◇◇主程序◇◇◇◇◇◇◇◇◇◇◇◇◇
;――――――――――初始化程序――――――――――――
MAIN: MOV TMOD,#61H ;置T0方式1定时,T1方式2计数
MOV TH0,#3CH
键按下/释放判别
KS: MOV MOV

MOV MOV CPL 有键按下
ANL RET

单片机接口技术

单片机接口技术
WR 、RD 分别与单片机的 WR 、 RD 相连。由此可确定8155的口
地址为
命令/状态口:0100H(P2未用口线规定为0)
A 口:0101H
B口:0102H
C口:0103H
第7章 单片机接口技术
PA0
P2.7
CS
PA1
P2.0
IO/M
PA2
RD
RD
PA3
WR
WR
PA4
ALE
ALE
PA5
P0.0
第7章 单片机接口技术 键按 下
前沿 抖动
后沿 抖动
闭合 稳定
图7.2 按键触点的机械抖动
第7章 单片机接口技术
第7章 单片机接口技术
第7章 单片机接口技术
第7章 单片机接口技术
软件上采取的措施是:在检测到有按键按下时,执行一 个10 ms左右(具体时间应视所使用的按键进行调整)的延时 程序后,再确认该键电平是否仍保持闭合状态电平,若仍保 持闭合状态电平,则确认该键处于闭合状态。同理,在检测 到该键释放后,也应采用相同的步骤进行确认,从而可消除 抖动的影响。
第7章 单片机接口技术
012 3 0
456 7 1
8 9 10 11 2
12 13 14 15 3
0 123
+ 5V
图7.5 矩阵式键盘结构
第7章 单片机接口技术
矩阵式键盘中,行、列线分别连接到按键开关的两端,行 线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平 状态;当有键按下时,行、列线将导通,此时,行线电平将由 与此行线相连的列线电平决定。这是识别按键是否按下的关键。 然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与 否均影响该键所在行线和列线的电平,各按键间将相互影响, 因此,必须将行线、列线信号配合起来作适当处理,才能确定 闭合键的位置。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四讲 单片机按键显示接口技术
4.1 单片机按键接口与编程
4.2 单片机LED数码管接口与编程
4.3 ZLG7289显示按键接口芯片使用
4.4 128-64点阵液晶模块使用
4.1 单片机按键接口与编程
4.1.1 键盘分类
@ 按键值编码方式分 (硬件)编码键盘与非(硬件)编码键盘。 @ 按键组连接方式分 独立连接键盘与矩阵连接键盘。
2.独立式按键的软件结构
有按键信号?
N
Y
延时等待20ms
仍有按键信号?
NYΒιβλιοθήκη 键盘处理按键释放? Y
N
(1)按键扫描函数; 返回按键值 #Include <reg51.h> #define NO_KEY 0XFF #define START #define END #define UP #define DOWN sbit sbit 0x0A 0x0B 0x0C 0x0D
1)设置显示缓冲区,存放待显示数据。 2)显示译码:程序存储器中建立字形码常数表,查表得出对应数 据的字形码。 3)输出显示:输出字形码到显示端口。
#include <reg51.h>
#define DISP_PORT P1 unsigned char code disp_decode_tab[ ]={0x3F,0x06, 0x5B, 0x4F, 0x06, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x00};
编码键盘: 采用专用的编码/译码器件,被按下的键 由该器件译码输出相应的键码/键值。 特点:增加了硬件开销,编码因选用器件而异,编 码固定,但编程简单。适用于规模大的键盘。
非编码键盘: 单片机系统多采用此类键盘 采用软件编/译码的方式,通过扫描,对每个被按下 的键判别输出相应的键码/键值。 特点:不增加硬件开销,编码灵活,适用于小规模 的键盘,特别是单片机系统。但编程较复杂,占CPU 时间,还须软件“消颤”。 独立连接键盘: 每键相互独立,各自与一条I/O线相 连,CPU可直接读取该I/O线的高/低电平状态。 特点:占I/O口线多,但判键速度快,多用于设置控 制键、功能键。适用于键数少的场合。
当LED字段引线与数据线连接,每个显示字形对应一个字形码。
P1.0~1.7 MCS-51
a b
h
a f g e d c h b
LED 的字形码(字段码)
COM
显示字符
共阴极 共阳极
0 1 8. ‘灭’ F U P.
3FH 06H FFH 00 71H 3EH F3H
C0H F9H 00H FFH 84H C1H 02H
2) 74LS164显示接口电路。
+5V VCC TxD RxD
A B
CLK
CLR
h g f e d c b a
74LS164
A B
CLK
CLR
h g f e d c b a
74LS164
A B
CLK
CLR
h g f e d c b a
74LS164
89C51 单片机
共阳LED 数码管
+5V
有几个LED就要几个74LS164,但只要数据不变,送一次 就保持住了,且不闪烁,编程十分简单。
3) 74LS164显示接口电路驱动程序设计。
1)设置显示缓冲区,存放待显示数据,可以是一个数组。 2)显示译码:程序存储器中建立字形码常数表,查表得出对应数 据的字形码,用常量数组实现。 3)输出显示:输出字形码到显示端口,利用循环语句实现。
#include <reg51.h> unsigned char disp_buf[4];// 定义为全局变量 unsigned char code seg_tab[] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x19, 0x61, 0xff }; void disp7seg (void) { unsigned char i,disp_number; for(i=0; i<4; i++) { disp_number = disp_buf[i]; SBUF = seg_tab[value]; //发送显示段码 while ( TI == 0 ); //等待发送完毕 TI = 0; } }
共阳极
共阴极
外形图
7段LED字型码(段码)
显示 字形
0 1 2 3 4 5 6 7 8 9 A B C D E F “灭”
dp a b c d e f g
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1
unsigned char disp_buf[6]; //显示缓存 unsigned char code seg_decode[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xff,0x00} unsigned char code bit_select[] = {0x00,0x01,0x02,0x04,0x08,0x10,0x20}; void dispscan(void) { unsigned char i,j; for (i=1; i<7; i++) { j = disp_buf[i-1]; //取出需显示的数 segport = seg_decode[j]; //送出段型码 bitport = bit_select[i]; //送出位选码 delayms(1); bitport=0x00; } }
2、键盘扫描程序的编写
键盘扫描程序一般流程: (1) 判别有无键按下。 (2) 延时。
(3) 键盘扫描取得闭合键的行、列值-键值。
(4) 用计算法或查表法得到键号。 *(5) 判断闭合键是否释放,如没释放则继续等待。 (6) 将闭合键键号保存, 然后返回。
开始 P1.0-P1.3 置零 P1.3-P.17 置高 N 判断是否 有键按下? Y 延时去抖 判断是否 有键按下? Y N
置扫描初值 输出行扫描信号 有键按下? N 修改行扫描信号 最后一行? Y 返回键值 Y 确定键值
N
4.2 单片机LED数码管接口与编程
4.2.1 LED显示器结构和字段码关系
由发光二极管组成,不同的发光段亮,可组成不同字型,其亮度
与电流有关。电流越大亮度越高,一般各管电流在2-5mA较合适。
1. LED显示器结构
矩阵连接键盘: 键按矩阵排列,各键处于矩阵行/列 的结点处,CPU通过对连在行(列)的I/O线送已知电平 的信号,然后读取列(行)线的状态信息。逐线扫描, 得出键值。 特点:键多时占用I/O口线少,但判键速度慢,多用于 设置数字键。适用于键数多的场合。
VC C
+5 V 0 1 5 9 13 1 2 6 10 14 2 3 7 11 15 3 0 1 2 3
keydata = KeyScan( );
if (keybuff != keydata;) keybuff = NO_KEY ;
return(keydata);
}
(3)等待按键释放函数
void Keyoff( void )
{ unsigned char keydata; do
{
keydata = KeyScan( );
4.2.3 LED数码管的动态显示
动态显示:
各数码管在显示过程中轮流得到送显信号,与各数码管接口 的I/O口线是共用的。
动态显示特点:
有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时 间,编程复杂。(有多个LED时尤为突出)
工作原理:从P0口送段码,P1口送位选信号。段码虽同时到 达 6个LED,但一次仅一个LED被选中。利用“视觉暂留”, 每送一个字符并选中相应位线,延时一会儿,再送/选下一 个……循环扫描即可。
void fun_disp( unsigned char disp_number)
{ unsigned char decoder; decoder = disp_decode_tab[ disp_number]; //显示译码 DISP_PORT = decoder; } // 显示输出
2. 基于移位寄存器的静态显示
P1.0 P1.1 P1.2 8 03 1 P1.3 P1.4 P1.5 P1.6 P1.7
4 8 12 0
4.1.2 键盘驱动程序所需要解决的三个问题
1、键抖动及处理 2、键盘状态的判断-是否有键按下 3、闭合键的识别-是哪个键按下了
1、键抖动及处理 (1) 软件延时去抖
有按键信号?
N
Y
延时等待20ms
段 代 码
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
7406 OC门 X 3
+5V
上拉 电阻 ×14
AT89C51
共阴 数码管
位 选 线
P1.5 P1.4 P1.3 P1.2 P1.2 P1.0
#include <reg51.h> #include "delay.h" #include "dispscan.h"
相关文档
最新文档