第4讲 单片机按键显示接口技术
单片机 键盘 显示器接口-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章键盘、显示接口技术

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

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编程)单片机的开关检测、键盘输入 与显示的接口设计

下面讨论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课件

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时, 与门封死,禁止同步移位脉冲输出。这种方案主程序可不必 扫描显示器,软件设计简单,使单片机有更多的时间处理其 他事务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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"