《单片机原理与应用》-胡辉-电子教案第8章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LOOP:
MOV DPTR,#0FEFFH MOVX A,@DPTR MOVX @DPTR,A
SJMP LOOP
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
89C51
1
WR P2.0
RD
1
D0 D1 D2 D3 D4 D5 D6 D7
74LS273
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
• MOVX A,@DPTR;再读键状态
• XRL A,37H ;和延时前的状态一样吗?
• JZ KS1
;一样,则转去查询键号
•
• KSK1: SETB P1.0 ;开始扫描第2列,8~F号键
•
CLR P1.1
•
MOVX A,@DPTR;读入按键状态
•
MOV 37H,A
;暂存按键状态
•
CPL A
•
• (1)清除显示器 • (2)光标归位指令 • (3)设置字符进入模式 • (4)显示器开关 • (5)显示光标移动位 • (6)功能设置 • (7)CG RAM地址设置 • (8)DD RAM地址设置 • (9)忙碌标志读取 • (10)写数据到CG RAN或DD RAM中 • (11)从CG RAM或DD RAM中读取数据
&
K
+5V
&
1k
8.1.2 P0口的扩展
• 扩展I/O接口所用的芯片主要有通用可编程 I/O芯片和TTL、CMOS锁存器、三态门电 路芯片两大类。采用TTL电路或CMOS电路 锁存器、三态门电路作为简单I/O口扩展芯 片。
• 可以作为I/O口扩展芯片使用的TTL芯片有: 373、377、244、245、273、374等。
• (2)以软件为主的接口方法
PB0 PB1
PB2
8155 PB3
PB4 PB5 PB6 PB7
R 8 a
b
c
驱动器
d
e
f
g
dp
8.2.2 LED的静态显示
2位显示12、34、56、78
• • MAIN: • • LOOP: • • • •
ORG MOV MOV MOV CALL ADD DJNZ AJMP
1. LCD介绍
• CD可以分为两种类型,一种是文字模式,另一 种为绘图模式。
• 2.LCD特性
• +5V供电,亮度可调整。 • 内藏振荡电路,系统内含重置电路 • 提供的控制命令有清除显示器、字符闪烁、光
标闪烁、显示移位等多种功能。 • 显示数据RAM共有80个字节。 • 字符产生器ROM有160个5×7点阵字型。 • 字符产生器RAM可由用户自行定义8个5×7的
1.独立式按键结构
每个按键单独占有一
P1.0
P1.1
根I/O接口引线。输入每
根I/O接口引线的信号对 P1.7
应某个数据。
+5v
&
开关 +5v
&
键盘的可靠性
消抖动电路
“1”
“0”
抖动时间 <10ms
开关动作时间
>100ms
I/O
接
单
口
片
机
<10ms
消除抖动电路
独立式按键接口程序设计
键盘处理程序任务 1)键输入
g f GND a b
a fgb edc
dp 1234
e d GND c dp
共阴极
a
R 8
a
b
b
c
c
d
d
e
e
f
f
g
g
dp
dp
共阳极
+5v
R 8
十六进制数字形代码表
2.LED显示器接口方法
• (1)以硬件为主的接口方法
D0
锁存器
D1
D2
D3
I/O 接口
+5v
R 8
a
b
译码
c
驱动器
d
e
f
g
dp
地址译码器 A0 … … A7
JMP @A+DPTR
A=01H
01#按键
...
应用程序
A=NNH
NN#按键 应用程序
(1) 键的输入方法
1. 扫描法 列线输出,行线输入。列线逐行输出0,某
行有按键,行线输入有0,若无按键,行线输 入全部为1。 2. 反转法 行列线交换输入、输出,两步获取按键号。 3. 中断扫描方式 有按键按下时发出中断请求信号,提高CPU的 效率。
1.矩阵式键盘电路的结构及工作原理
• 一个4×4的
行、列结构 可以构成一 个含有16个 按键的键盘。
X3 X2 X1
12 13 14 15 8 9 10 11 4 56 7
+5V
X0 0 1 2 3
Y0 Y1 Y2 Y3
• 扫描方法:先令列线Y0为低电平(0),其余 3根列线Y1、Y2、Y3都为高电平,读行线状 态。如果X0、X1、X2、X3都为高电平,则 Y0这一列上没有键闭合,如果读出的行线状 态不全为高电平,则为低电平的行线和Y0相 交的键处于闭合状态;如果Y0这一列上没有 键闭合,接着使列线Y1为低电平,其余列线 为高电平。用同样的方法检查Y1这一列上有 无键闭合,依次类推,最后使列线Y3为低电 平,其余列线为高电平,检查Y3这一列有无
7.LCD接口设计
• 4位控制方式电路
P0.0 P0.1 P0.2
8051 P0.3
P0.4 P0.5 P0.6 P0.7
P1.0
LED 1k
+5V
10k 8
P0.7 P0.5
P0.1 P0.0
D7 D5
14 12
10
EN RS
8 6 4
2
13 11
D6 D4
P0.6 P0.4
9
7 5 3
R/W VO
• 此区域只有64字节,可将用户自行设计的字型写 入LCD中,一个字的大小为57点阵,共可以存储 8个字型,其显示码为00H到07H。
• 5.控制方式
• 通过CPU来控制LCD模块。LCD模块其内 部可以看成有两组寄存器,一个为指令寄 存器,一个为数据寄存器,由RS引脚来控 制。
6.LCD控制指令
JNB ACC.7,TAB7 ;为7转7号键首地址
SJMP L1
;再次读入键状态
LJMP OPR0
;转向0号功能键程序
LJMP OPR1
8.3.2 矩阵式键盘的扩展
• 键盘上的键按行列构成矩阵,在行列的交 点上都对应有一个键。
键输入过程与软件结构
键扫描
N
有无键按下
Y
查键号
A=00H
00#按键 应用程序
键闭合。
2.键盘接口举例
• 8×2行列式键盘扫描接口电路
P1.0 P1.1
P0.0 P0.1 P0.2
8051 P0.3
P0.4 P0.5 P0.6 P0.7 P2.7
RD
74HC245
B0
A0
B1
A1
B2
A2
B3
A3
B4
A4
B5
A5
B6
A6
B7
A7
DIR E
1
08
19 2A 3B
4C 5D
6E 7F
有按键信号? N Y
延时等待10ms
仍有按键信号? N Y
键盘处理
按键释放?
N
Y
2.独立式按键的软件编制键盘
• START: MOV A,#0FFH ;置输入方式
•
MOV P1,A
• L1: • •
MOV A,P1
;输入键状态
CJNE A,#0FFH,L3 ;有键按下转L3
LCALL DELAY ;延时5ms,省略
检查键盘是否有键被按下,消除按键抖 动。确定被按键的键号,获取键号。硬件电 路消除抖动或软件消除抖动。
2)键译码
键号为键盘位置码,根据键号查表得 出被按键的键值。键值:数字键0~9、字符 键0AH~0FH、功能键10H~ 。
3)键处理 根据键值转移到不同程序段。若键
值属于数字、字符键,则调用显示数字 和字符的子程序。若键值属于功能键, 则进行多分支转移,执行各个功能程序 段。
LED0 LED1 LED2 LED3 LED4 LED5 LED6 LED7
CLR
Q0
D0
Q1
D1
74LS244
Q2
D2
Q3
D3
Q4
D4
Q5
D5
Q6
D6
Q7
D7
G
+5V
5.1k 8 K0 K1 K2 K3 K4 K5 K6 K7
8.2 显示器的扩展
8.2 显示器的扩展
• 1.LED显示器的结构与原理
• 4.LCD内部的内存
• LCD内部存储器共分为3种:
• (1)固定字型ROM,称为CG ROM。CG ROM 内存储着192个57点阵的字型,这些字型均已经 固定。
• (2)数据显示RAM,称为DD RAM。DD RAM 内用来存储写至LCD内部的字符。
• (3)用户自定义字型RAM,称为CG RAM
R 8
VCC
键盘扫描的程序(采用查询方法)
• KS:MOV DPTR,#7FFFH ;键扫描程序
•
CLR P1.0 ;先扫描第1列(即0~7号键)
•
MOVX A,@DPTR;读入按键状态
•
MOV 37H,A ;暂存按键状态
• CPL A
;
• JZ KSK1 ;0~7号键没有键操作,则跳
• LCALL DL20 ;0~7号键有操作,延时去抖
0000H R2,#00H A,R2 R7,#04H A,#11H P2,A DEL A ,#11H P2,A DEL A,#1FH R7,LOOP MAIN
8.2.4 LCD显示器的扩展
• 液晶显示器LCD(Liquid Crystal Display) 是一种低功耗的显示器件,在计算机、万 用表、袖珍式仪表和低功耗应用系统中得 到广泛使用。
点阵字型。
3.引脚说明
• (1)双向数据总线,D0~D7都有效 • (2)RS:寄存器选择控制位,当RS=0时,并且做写
入的动作时,可以写入指令寄存器,若RS=0,且做读 取的动作时,可以读取忙标志及地址计数器的内容。 如果RS=1则用于读取数据寄存器。 • (3)R/W:LCD读写控制线,R/W=0时,LCD执行 写入的动作,R/W=1时则做读取的动作。 • (4)EN:启动控制线,高电平动作。 • (5)VCC:电源正端。 • (6)VO:亮度调整电压输入控制端,当输入0V时字 符显示最亮。 • (7)GND:电源端地。
1 +5V
SDEC LCD 162 +5V
8.3 键盘的扩展
• 键盘是计算机不可缺少的输入设备,是实 现人机对话的纽带。按其结构形式键盘可 分为非编码键盘和编码键盘,前者用软件 方法产生键码,而后者则用硬件方法产生 键码。
• 非编码键盘分为独立式键盘和矩阵式键盘。
8.3.1 独立式键盘的扩展
+5v
5.1k 4 K0 K1 K2 K3
LED0 LED1 LED2 LED3
+5V
பைடு நூலகம்
2.中断方式的数据传送
P1.0 P1.1 P1.2 P1.3
89C51
P1.4 P1.5 P1.6 P1.7
INT0
+5V
5.1k 4 K0
K1 K2 K3
100 4
LED0 LED1 LED2 LED3
+5V 1k
•
CPL A
•
JNZ KS1 ;按键没有松开,则等待松开
•
MOV A,37H ;查询有键操作的键号
第8章 I/O口的应用与扩展
8.1 基本I/O的应用与扩展
MCS-51系列单片机的四个8位双向口,都具有数
据I/O操作功能,因此可进行简单的I/O应用。
8.1.1 P1口的应用
1.数据的
+5V
无条件传送
P1.0 P1.1 P1.2 P1.3
89C51
P1.4 P1.5 P1.6 P1.7
100 4
• • L3:
SJMP L1 LCALL DELLAY ;延时5ms
•
LCALL DELLAY ;延时5ms
•
MOV A,P1
;再读P1口
•
CJNE A,#0FFH,L2 ;确实有键按下转L2
• • L2:
SJMP L1
;误读键,返回
JNB ACC.0,TAB0 ;为0转0号键首地址
• • • • • • • • • TAB0: • TAB1:
JNB ACC.1,TAB1 ;为1转1号键首地址
JNB ACC.2,TAB2 ;为2转2号键首地址
JNB ACC.3,TAB3 ;为3转3号键首地址
JNB ACC.4,TAB4 ;为4转4号键首地址
JNB ACC.5,TAB5 ;为5转5号键首地址
JNB ACC.6,TAB6 ;为6转6号键首地址
JZ KSK2;8~F号键没有键操作,则跳
•
LCALL DL20 ;8~F号键有操作,延时
•
MOVX A,@DPTR ;再读键状态
•
XRL A,37H ;和延时前的状态一样吗?
•
JZ KS1
;一样,则转去查询键号
• KSK2: AJMP 则跳
KS9 ;8~F号键也不存在操作,
•
KS1: MOVX
A,@DPTR ;再读按键状态
(2) 按键处理 程序:
有按键输入? 延时消抖 确有按键?
键扫描求键号 延时等待 按键释放?
键译码求键值 是数字键?
修改显示缓冲区 跳转各功能程序
(3) 中断扫描方式
2.键盘输入接口与软件应解决的任务
• (1)键开关的可靠输入 • 抖动的处理有硬件处理和软件处理两种。 • (2)按键编码与键号定义 • (3)键盘检测与编制键盘程序 •
0000H A,#12H R7,#04H P2,A DEL A,#22H R7,LOOP MAIN
8.2.3 LED的动态显示
2位显示12、34、56、78
• • MAIN: • • • LOOP: • • • • • • • •
ORG MOV MOV MOV ADD MOV CALL ADD MOV CALL ANL DJNZ AJMP