第六章  单片机并行
This presentation is the property of its rightful owner.
Sponsored Links
1 / 49

第六章 单片机并行 I/O 口扩展 PowerPoint PPT Presentation


  • 84 Views
  • Uploaded on
  • Presentation posted in: General

第六章 单片机并行 I/O 口扩展. 6.1 单片机 I/O 接口技术概述. 一、 为什么要扩展 I/O 接口. 锁存器. 实质是触发器。 锁存信号有效时,输出随输入变化;无效时,输出不随输入变化,而保持上次的结果,即锁存。 用于单片机输出口扩展。. 三态缓冲器. 控制信号. 实质是门电路。不能保存数据。 使能有效时,输出随输入变化;无效时,输出呈现高阻状态,相当于和总线隔离。 用于单片机输入口扩展。. 二、单片机 I/O 扩展编址技术. MOVX. 三、 I/O 数据传送方式. 6.2 单片机简单 I/O 扩展.

Download Presentation

第六章 单片机并行 I/O 口扩展

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


I o

第六章 单片机并行I/O口扩展


I o

6.1 单片机I/O接口技术概述

一、为什么要扩展I/O接口


I o

锁存器

实质是触发器。

锁存信号有效时,输出随输入变化;无效时,输出不随输入变化,而保持上次的结果,即锁存。

用于单片机输出口扩展。


I o

三态缓冲器

控制信号

实质是门电路。不能保存数据。

使能有效时,输出随输入变化;无效时,输出呈现高阻状态,相当于和总线隔离。

用于单片机输入口扩展。


I o

二、单片机I/O扩展编址技术

MOVX


I o

三、I/O数据传送方式


I o

6.2单片机简单I/O扩展

常用的MCS-51并行I/O扩展方法有:

采用74系列器件扩展简单的I/O口;

采用可编程的的并行接口电路(如8255)扩展I/O口。


I o

6.2.1简单输入口扩展


I o

RD

8051

74LS244

Y

P0

数据输入

外设

A

1G

2G

74LS244与单片机接口电路

只扩展了一片74LS244,也没有外部RAM。当读外部RAM时,就选中244,进行数据输入。

MOVX A, @DPTR

DRTP可以任意,即0000~FFFFH。


I o

实验3.3 电路

要访问74LS244,P2.7必须为0,故74LS244的地址范围为 0000~7FFFH。

MOVX A, @DPTR


I o

8051

G

G

G

G

G

D800H

~

DFFFH

F000H

~

F7FFH

E800H

~

EFFFH

B800H

~

BFFFH

7800H

~

7FFFH


I o

6.2.2简单输出口扩展

典型芯片:74LS273

带复位功能的8D触发器。


I o

WR

8051

74LS273

MR

P0

D

数据输出

外设

Q

CLK

74LS273与单片机接口电路

只扩展了一片74LS273,也没有外部RAM。当写外部RAM时,就选中273,进行数据输出。

MOVX @DPTR, A

DPTR可以任意,即0000~FFFFH。


I o

实验3.3电路

要访问74LS273,P2.7必须为0,故273的地址范围为 0000~7FFFH。

MOVX @DPTR, A


I o

G


I o

8051

CLK

MR

输出口----利用锁存器扩展;

输入口----利用缓冲器扩展


I o

6.3单片机LED数码管接口技术

6.3.1 LED结构及原理

D7 D6 D5 D4 D3 D2 D1 D0

如共阳极时,输出1 1 1 1 1 0 0 0即F8H时,显示数字7


I o

8051

P0.0

P0.7


I o

I/O(1)

I/O(2)

a b c d e f g dp

a b c d e f g dp

6.3.2 LED显示方式

一、静态显示

公共端直接接地(共阴极)或接电源(共阳极);

各段选线分别与I/O口线相连.

要显示字符,直接在I/O线送相应的字段码。


I o

1位数码管


I o

查表程序结构

MOV A,#00

MOV DPTR, #TAB

MOVC A, @A+DPTR

MOV P0, A

SJMP $

TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H

DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H


I o

采用延时程序:0~9每隔1s循环显示

ORG 0000H

START:MOV 50H,#00

MOV DPTR,#TABLE ;DPTR指向段码表首地址

S1: MOVA,50H

MOVCA,@A+DPTR ;查表取得段码

CJNEA,#01H,S2 ;判断段码是否为结束符

SJMPSTART

S2: MOVP0,A ;段码送数码管显示

LCALL DELAY ;延时

INC50H

SJMPS1

DELAY: MOV R5,#50 ;延时子程序

D2: MOV R6,#20

D1: MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

DJNZ R5,D2

RET

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段码表

DB 01H ;结束符


I o

采用中断方式:0~9每隔1s循环显示

ORG 0000H

AJMP START

ORG 000BH

AJMP TIMET0

START: MOV R3,#20

MOV TMOD,#01H

MOV TH0,#9EH

MOV TL0,#58H

SETB EA

SETB ET0

SETB TR0

MOV 50H,#00H ;

MOV A,50H

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

SJMP $

TIMET0: MOV TH0,#9EH

MOV TL0,#58H

DJNZ R3, OVFLOW

MOV R3,#20

INC 50H

MOV A,50H

CJNE A,#0AH,NEXT

MOV 50H,#00H

NEXT:MOV A,50H

MOVC A,@A+DPTR

MOV P0,A

OVFLOW: RETI

TABLE: DB 3FH,06H,5BH

DB 4FH, 66H,6DH,7DH

DB 07H,7FH,6FH

END


I o

2位数码管静态显示

a

P0

Dp

a

P1

Dp


I o

利用74LS273扩展I/O口进行2位数码管静态显示

273

a

Q0

WR

P2.7

P2.6

P0

D

Q7

Dp

CLK

≥1

1

273

a

Q0

D

Q7

Dp

CLK

≥1

1


I o

00~59每隔1s循环显示


I o

LE

LE

LE

LE 为高电平时,Q 随 D 而变。当 LE 为低电平时,Q被锁存。


I o

I/O(1)

D3

D2

D1

D0

I/O(2)

二、动态扫描显示


I o

动态扫描显示

将所有数码管的段选线并接在一起,用一个IO口控制;

公共端不是直接接地(共阴极)或电源(共阳极),而是通过相应的I/O口线控制.

编程时,需要输出段选和位选信号。位选信号选中其中一个数码管,然后输出段码,使该数码管显示所需要的内容,其它数码管处于熄灭状态,延时一段时间后,再选中另一个数码管,并输出对应段码,高速交替。

从计算机的角度看, LED是一个一个的显示,但由于人的视觉暂留作用,只要交替显示的时间足够快,看起来所有的数码管都是一起显示的。


I o

P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0

8051

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0


I o

显示缓冲区:55H~50H

要显示的数所存放的RAM地址;

显示缓冲区指针:R0,初始值为50H;

位选控制:R1,初始值为0FEH。


I o

注意:

在轮流显示过程中,每位数码管的点亮时间为1~2ms。若延时时间长,会出现闪烁现象,若延时时间太短,则会出现显示暗且有重影。

随时更新显示缓冲区内容,再调用显示子程序即可显示。


I o

6.4单片机键盘接口技术

键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.

  • 非编码键盘又分为:

    独立键盘和行列式(又称为矩阵式)键盘。


I o

VCC

P1.1

K

GND

6.4.1 独立按键

I/O口用于输入;

按键的一端接地,另一端与单片机的任一I/O口相连。

开始时先给I/O赋一高电平,然后让单片机不断地检测该I/O口是否变为低电平,一旦检测到低电平说明按键按下,就可执行相应的指令。


I o

VCC

VCC

8051

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

8051

GND

GND

INT0

独立按键与单片机的接口电路

独立按键就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线。

查询方式

中断方式


I o

查询方式独立按键程序

START:MOV P1,#0FFH

MOV A, P1

JNB ACC.0,K0 ;检测0号键

JNB ACC.1,K1 ;检测1号键

JNB ACC.2,K2 ;检测2号键

JNB ACC.3,K3 ;检测3号键

JNB ACC.4,K4 ;检测4号键

JNB ACC.5,K5 ;检测5号键

JNB ACC.6,K6 ;检测6号键

JNB ACC.7,K7 ;检测7号键

JMP START ;无键按下返回,再顺次检测

K0: AJMP KEY0 ;入口地址表

K1: AJMP KEY1

……

K7: AJIMP KEY7


I o

KEY0:…… ;0号键功能程序

JMP START ;0号键功能程序执行完返回

KEY1:…… ;1号键功能程序

JMP START ;1号键功能程序执行完返回

……

KEY7:…… ;7号键功能程序

JMP START ;7号键功能程序执行完返回


I o

按下对应的键点亮对应的灯


I o

6.4.2 矩阵式键盘

矩阵式键盘又叫行列式键盘。用I/O口线组成行、

列结构,键位设置在行列的交点上。

例如4×4的行、列结构可组成16个键的键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。


I o

P1.0

P1.1

P1.2

P1.3

P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.6

P2.7

矩阵式键盘及其接口

8051

4×4

4×8


I o

矩阵式键盘的工作过程

第一步是CPU首先检测键盘上是否有键按下;

第二步是再识别是哪一个键按下。

一、判断是否有键按下

方法是:将列线送入全扫描字0,读行线状态判别。

列线输出0000,然后读入行线状态,

若没有键按下,则行线状态为全1( 1111 );

若有任一键按下,则行线状态不为全(1111)。


I o

二、识别哪一个键按下

  • 方法是:逐列扫描。

  • 列线逐列输出0,然后读入行线状态,

  • 若行线状态为全1,则此列没有键按下,继续扫描下一列。

  • 若行线状态不为全为1,则有一键按下。

  • 键号:将所有键从左到右从上到下的顺序进行编号。

    键号=行号×8+列号


I o

说明

按键都是机械弹性开关,由于机械触点的弹性作用,一个按键在闭合和断开的瞬间伴随有一连串的抖动,抖动时间长短一般为5~10ms。抖动过程中不能进行状态输入,需要进行去抖动处理。

单片机应用系统常采用软件延时方法去抖动。


I o

入口

键号入栈保存

有键按下?

N

按键抬起?

N

Y

延时12ms

Y

键号送A

N

有键按下?

返回

Y

键盘扫描程序流程图


  • Login