当前位置:文档之家› 第4章 并行IO口的应用与扩展讲解

第4章 并行IO口的应用与扩展讲解

计算法转换按键的键号: 键号(值)=行号×每行的按键个数+列号
对应的4×4矩阵键盘的按键键号,如表8-1所示。
(4)键盘的扫描方式
通常,键盘扫描方式有3种,即编程扫描、定 时扫描和中断扫描。
1). 编程扫描方式
只有当单片机空闲时,才调用键盘扫描子程序, 扫描键盘。
键盘扫描程序一般应包括以下内容: 判别有无键按下。 有键按下,用软件延时的方法消除按键抖动的影响。 键盘扫描取得闭合键的位置码,既行、列值。 用计算法或查表法将键的位置码转换为键值(0、1、 2…F)。 返回闭合键的键值。
求 输出“1”或“0”数据,这就是程序控制外设
并行I/O口的直接应用举例
从P1.0~P1.3 输入开关状态,再经P1.4~P1.7输出
去驱动发光二极管,使发光二极管显示开关的状态。
+5V
P1.0 P1.1 P1.2 P1.3
89C51
P1.4 P1.5 P1.6 P1.7
100 4
5.1k 4 K0
二、并行接口的三种操作:
1.输出锁存:输出将使数据写入输出锁存器。
输出指令:MOV P1,A MOV P1.0,C
2.输入三态:输入从I/O引脚上输入信号,读信号打开,引脚
信号通过下三态门进入内部总线。为保证可靠
输入,先写入“1”。
MOV P1,#0FFH ;使输出驱动器截止
MOV A,P1
;输入
B3
A4
B4Βιβλιοθήκη A5B5A6
B6
+5A7
B7
DIR E
U6 7 4ALS2 45
18 a 17 b 16 c 15 d 14 e 13 f 12 g 11 dp
+5
1
19
6 7 8
12 14
J P2 12 34
SN74 AS00
6
5 4
U1 0B
3
2 1
U1 0A
S1 10 S2
5 S3 10 S4
5 S5 10 S6
A
;A高低半字节交换
P1,A ;开关状态输出
AJMP MAIN
END
4.3 LED显示器的扩展
单片机应用系统中,常常使用发光二极管( LED)来指示系统运行状态,使用数码管显示检测 参数和数据。显示程序涉及到硬件电路的连接,显 示结果最为直观,所以,学习单片机显示程序编写 有利于提高读者的学习兴趣,同时也为后续调试较 大程序提供故障诊断的方法。
K1 K2 K3
LED0
LED1
接成灌电流形
LED2
式,能增加驱
LED3
动能力,使二
+5V 极管更亮些。
控制程序如下:
ORG 0000H
AJMP
MAIN
ORG 0030H
MAIN:MOV MOV
MOV SWAP MOV
A,#0FFH
P1,A ;熄灭发光二极管,
; P1口低位写 “1”
A,P1 ;读入开关状态
R12 1K
S2
R11 1K
+5
1 2 3 +5 6 4 5
A
Y0
B
Y1
C
Y2
Y3
G1
Y4
G2A Y5
G2B Y6
Y7
15 2 14 3 13 4 12 5 11 6 10 7 98 79
A0 A1 A2 A3 A4 A5 A6 A7
B0 B1 B2 B3 B4 B5 B6 B7
18 S1 17 S2 16 S3 15 S4 14 S5 13 S6 12
1.独立式键盘接口 各键相互独立,每个 按键各接一根输入线, 通过检测输入线的电平 状态可很容易判断哪个 键被按下。
此种接口适于键数较少或操作速度较高的场合。
2. 矩阵式键盘接口
由行线和列线组成,按键位于行、列的交叉点上。
如图所示。
+5V
X3 12 13 14 15
X2 8 9 10 11
按键 输出
3.如何消除按键的抖动 常用软件来消除按键抖动。
基本思想:检测到有键按下,键对应的行线为低,软 件延时10ms后,行线如仍为低,则确认该行有键按下。
有键松开时,行线变高,软件延时10ms后,行线仍为 高,说明按键已松开。
采取以上措施,躲开了两个抖动期t1和t3的影响。
4.4.2 键盘接口的工作原理 独立式按键接口和矩阵式键盘接口。
0
0
1
F
0
1
1
1
0
0
0
1
H
0
1
1
1
0
0
0
1
P
1
1
1
1
0
0
1
1
十六进制代码
共阴
共阳
3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H 76H 73H
C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H C6H A1H 86H 8EH 89H 8CH
特点:CPU需不停的扫描键盘,工作效率较低。
2). 定时扫描方式
利用单片机内的定时器,产生10ms的定时中断,对 键盘进行扫描。
3).中断扫描方式
只有在键盘有键按 下时,才执行键盘扫 描程序,
如无键按下,单片 机将不理睬键盘。
4.4.3.键输入过程与软件结构
(2) 、按键的识别方法
常用的为扫描法
图8-5中6号键被按下为例,来说明此键是如何被 识别出来的。
扫描法进行按键识别的方法,分两步进行:
第1步:识别键盘有无键按下
把所有列线置0,检查各 行线电平是否有变化,如有 变化,说明有键按下,如无 变化,则无键按下。
第2步:如有键被按下,识 别出具体的按键。
P0~P3的复位状态均为FFH,自动处于输入状态。
3.读-修改-写: 修改输出锁存器的内容。锁存器中的数据通过
上三态门进入内部总线,修改后再写入到锁存
器中。
读-修改-写指令:并行口为目的操作数的指令:
如:ANL P1,A
4.2 并行I/O口的直接应用 首先,在应用设计中应理解,计算机内由 数字电路组成只存在两种TTL电平,高电平 3.5~5V和低 电平0V,对应着的数字为“1”和 “0”。 外设的状态要通过电路转换成高、低电 平,计算机才能识别(如开关电路)。 计算机输出数据“1”即输出3.5V~5V,输出 数据“0”即输出0V,根据外设需要的电平要
C16 18
3 0PF Y1
XTAL2
C17 19
1 1. 0 59 2 MHz 3 0PF
XTAL1
2 0 Vss
U1
P1. 5 P1. 6 P1. 7
INT0 /P3 .2 T0/P3. 4
40
39
2
38
3
37
4
36
5
35
6
34
7
33
8
32
9
3 1 R6 1 0K +5
A0
B0
A1
B1
A2
B2
A3
单片机应用系统中,最常用的是七段式LED显 示器,又称数码管。
4.3.1 LED数码显示器的结构与原理
常见数码管的管脚排列如下图(a)所示,其中COM为公共
点。根据内部发光二极管的接线形式,可分为共阴极型(图(b))
和共阳极型(图(c))。
g f GND a b
a
b
a
c
fgb
d
edc
e
dp
f
1234
+5V
100Ω×8
共阴极 LED
所有位的段码线相应段并在一起,由一个8位I/O口控制,各位 的公共端分别由相应的I/O线控制。分时轮流选通数码管的公共端, 使得各数码管轮流导通,在选通的LED 上得到显示字形码。
一个接口完成字形码的输出(字形选择),另一接口完成各数码 管的轮流点亮(字位选择)。
2.动态显示:
11
+5
U7 SN74 ALS1 3 8
DIR E
1 19
U8 7 4ALS2 45
4.4 矩阵式键盘的扩展
4.4.1 键盘接口原理 1. 键盘输入的特点
键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合,输出波 形如图。
2. 按键的确认
检测行线电平 高电平:断开;低电平:闭合,
5
DS1
DS2
a b c d e f g dp
DS1 a b c d e f g dp
a fb
g
a fb
g
a fb
g
a fb
g
DS3 a b c d e f g dp
a
f
b
g
a fb
g
e
c
d dp
com1
e
c
d dp
com2
e
c
d dp
com1
e
c
d dp
com2
e
c
d dp
com1
e
c
d dp
com2
依次把某一列置低电平, 其余各列为高电平,检查各 行线电平的变化,如果某行 线电平为低,可确定此行列 交叉点处的按键被按 下。
扫描结果:列线Y2为低 电平,行线X1为低电平
(3)键盘的编码
可采用依次排列键号的方式对按键进行编码。以图8-5中的 4×4键盘为例,可将键号编码为:0、1、2、…F等16个键 号。编码相互转换可通过计算或查表的方法实现。
相关主题