49
第2第 MCS-51 第第第第第第第第第第第第 第2第 MCS51 第第第第第第第第第第第 2.1 MCS-51 第第第第第第第第 2.2 MCS-51 第第第第第第第第 2.3 第第 LED 第第第第第 2.4 第第第第

第 2 章 MCS51 单片机内部并行口及应用

  • Upload
    fraley

  • View
    92

  • Download
    0

Embed Size (px)

DESCRIPTION

第 2 章 MCS51 单片机内部并行口及应用. 2.1 MCS-51 单片机并行口结构 2.2 MCS-51 单片机并行口应用 2.3 七段 LED 显示器接口 2.4 键盘接口. 1.1 MCS-51 单片机并行口结构. 1.1.1 P0 口结构 1.1.2 P1 口结构 1.1.3 P2 口结构 1.1.4 P3 口结构. 1.1.1 P0 口结构. +5V. 地址 / 数据控制线. 读锁存. &. P0.0. D. Q. DB0.0. 锁存器. CP. Q. 写控制信号. 转换开关. 读引脚. 作用 : - PowerPoint PPT Presentation

Citation preview

Page 1: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

第 2 章 MCS51 单片机内部并行口及应用

2.1 MCS-51 单片机并行口结构

2.2 MCS-51 单片机并行口应用

2.3 七段LED显示器接口

2.4 键盘接口

Page 2: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.1 MCS-51 单片机并行口结构

1.1.1 P0口结构

1.1.2 P1口结构

1.1.3 P2口结构

1.1.4 P3口结构

Page 3: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.1.1 P0 口结构

返回

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

地址 / 数据控制线 +5V

P0.0

转换开关

锁存器

作用 :

1 、外扩芯片时, P0 口不再做 I/O 口使用,而是先传送地址,后传送数据。2 、没有外扩芯片时, P0 口可以直接作为输入口或输出口使用。

Page 4: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

P0 口直接做输出口时,输出信息的过程:(将 0送到 P0.0 的过程 )

返回

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

地址 / 数据控制线 +5V

P0.0

转换开关

锁存器

0

0

0 1

0

注意 : P0 口做输出口时,内部数据经过锁存器送到 P00---P07 上。由于上管始终截止,而当下管也截止时, P00—P07 被架空,没有标准的高电平,所以 P0 口作输出口使用时,必须外接上拉电阻。

Page 5: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用P0 口直接做输入口时,输入信息的过程:(将 P0.0 处的 1送入 DB0.0 的过程 )

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

地址 / 数据控制线 +5V

P0.0

转换开关

锁存器

0

0

1

注意 :

1 、 P0 口作输入口时, P00—P07 上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置 1 ,否则总是读到 0 。2 、 CPU 对 P0 口的读操作有 2 种:读引脚和读—改—写锁存器。

1

当 CPU 执行 MOV A , P0 或 JB/JN

B P0.x ,标号 时,产生读引脚控制信号,此时读的是引脚的状态 。

当 CPU 执行读—改—写指令(以端口为目的操作数的 ANL 、 ORL 、 XRL 、DEC 、 INC SETB 、 CLR 等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。

返回

Page 6: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.1.2 P1 口结构

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

+5V

P1.0

锁存器

作用 :

P1 口只能可以直接作为输入口或输出口使用。

返回

Page 7: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

返回

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

+5V

P1.0

锁存器

P1 口直接做输出口时,输出信息的过程:(将 1 送到 P1.0 的过程 )

1

0 0

1

注意: P1 口做输出口时,内部数据经过锁存器送到 P10---P17 上。由于内部有上拉电阻,所以 P1 口作输出口使用时,不用外接上拉电阻。

Page 8: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

+5V

P1.0

锁存器

P1 口直接做输入口时,输入信息的过程: (将 P1.0 处的 0送入 DB0.0 的过程 )

0

0

注意 :

1 、 P1 口作输入口时, P10—P17 上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置 1 ,否则总是读到 0 。2 、 CPU 对 P1 口的读操作有 2 种:读引脚和读—改—写锁存器。

当 CPU 执行 MOV A , P1 或 JB/JN

B P1.x ,标号 时,产生读引脚控制信号,此时读的是引脚的状态 。

当 CPU 执行读—改—写指令(以端口为目的操作数的 ANL 、 ORL 、 XRL 、 D

EC 、 INC 、 SETB 、 CLR 等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。

返回

Page 9: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.1.3 P2 口结构

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

地址控制线 +5V

P2.0

转换开关锁存器

作用 :

1 、外扩芯片时, P2 口不再做 I/O 口使用,而是传送高 8 位地址。2 、没有外扩芯片时, P2 口可以直接作为输入口或输出口使用。

返回

Page 10: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

返回

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

地址控制线 +5V

P2.0

转换开关锁存器

P2 口直接做输出口时,输出信息的过程:(将 0送到 P2.0 的过程 )

0

0

0

1

0

注意: P2 口做输出口时,内部数据经过锁存器送到 P20---P27 上。由于内部有上拉电阻,所以 P2 口作输出口使用时,不用外接上拉电阻。

Page 11: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

地址控制线 +5V

P2.0

转换开关锁存器

P2 口直接做输入口时,输入信息的过程:(将 P2.0 处的 0送入 DB0.0 的过程 )

0

0

0

注意 :

1 、 P2 口作输入口时, P20—P27 上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置 1 ,否则总是读到 0 。2 、 CPU 对 P2 口的读操作有 2 种:读引脚和读—改—写锁存器。

当 CPU 执行 MOV A , P2 或 JB/JN

B P2.x ,标号 时,产生读引脚控制信号,此时读的是引脚的状态 。

当 CPU 执行读—改—写指令(以端口为目的操作数的 ANL 、 ORL 、 XRL 、 D

EC 、 INC 、 SETB 、 CLR 等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。

返回

Page 12: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.1.4 P3 口结构

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

+5V

P3.0

锁存器

第二功能输出

第二功能输入

作用 :

1 、 P3 口可以直接作为输入口或输出口使用。2 、 P3 口的引脚又具有第二功能。

1 .当使用单片机内部串行口时,若 CPU 执行 MOV A , SBUF 指令,则 P3.0(RXD)

作为接收信号线,接收由外界串行输入的数据;若 CPU 执行 MOV SBUF , A 指令,则 P3.1(TXD) 作为发送信号线,串行发送数据至外界。 2 .当单片机使用外中断时, P3.2 ( INT0 )作为外中断 0 的中断请求输入线, 3.3(I

NT1) 作为外中断 1 的中断请求输入线。3 .当单片机使用定时器,且定时器工作于计数方式时, P3.4 ( T0 )作为定时器 0

的计数脉冲输入线, P3.5(T1) 作为定时器 1 的计数脉冲输入线。4 .当单片机外扩 RAM 或 I/O 接口芯片时, P3.6 ( WR )作为 RAM 或 I/O 接口芯片的写控制信号, P3.7(RD) 作为 RAM 或 I/O 接口芯片的读控制信号。 当 P3 口的一些引脚没有作为第二功能使用时,这些引脚就被释放,直接作为 I/O

口线使用。

返回

Page 13: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

返回

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

+5V

P3.0

锁存器

第二功能输出

第二功能输入

P3 口直接做输出口时,输出信息的过程:(将 1送到 P3.0 的过程 )

1

0

0

1

注意: P3 口做输出口时,内部数据经过锁存器送到 P30---P37 上。由于内部有上拉电阻,所以 P2 口作输出口使用时,不用外接上拉电阻。

Page 14: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

D

CP

Q

Q

读引脚

读锁存

写控制信号

DB0.0

+5V

P3.0

锁存器

第二功能输出

第二功能输入

0

P3 口直接做输入口时,输入信息的过程:(将 P3.0 处的 0送入 DB0.0 的过程 )

0

注意 :

1 、 P3 口作输入口时, P30—P37 上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置 1 ,否则总是读到 0 。2 、 CPU 对 P3 口的读操作有 2 种:读引脚和读—改—写锁存器。

当 CPU 执行 MOV A , P3 或 JB/JN

B P3.x ,标号 时,产生读引脚控制信号,此时读的是引脚的状态 。

当 CPU 执行读—改—写指令(以端口为目的操作数的 ANL 、 ORL 、 XRL 、 D

EC 、 INC 、 SETB 、 CLR 等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。

返回

Page 15: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.2 MCS-51 单片机并行口的应用

1.2.1 直接做输出口

1.2.2 直接做输入口

在没有外扩任何芯片时, MCS-51 单片机内部并行口可以作为输出口,直接与输出外设连接,常用的输出外设是发光二极管; MCS-51 单片机内部并行口也可以作为输入口,直接与输入外设连接,常用的输入外设是开关。

例 1 例 2

例 1 例 2

Page 16: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.2.1 直接做输出口

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

89C51 +5V

电阻的作用是当流过发光二极管的电流过大时,它就会被烧坏。这个电阻可以限制流过发光二极管的电流,因此这个电阻叫作限流电阻。限流电阻阻值的计算方法如下: R=(5-1.75)/Id ; Id 是流过发光二极管的电流,一般从 8mA 到 20mA ,其值越大,发光二极管越亮,但不能太大,当流过发光二极管的电流超过20mA 时,容易烧坏发光二极管。例 1 :用 89C51 的 P1 口驱动 8 个发光二极管,使 8 个发光二极管由左向右轮流点亮。试画出连接图,编制驱动程序。

解:

1 、画电路图

2 、编程

思考

mov a,#0feh up: mov p1,a lcall delay rl a sjmp updelay1: mov r7,#2delay11: mov r6,#250 djnz r6,$ djnz r7,delay11 ret

Page 17: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

例 1 :用 89C51 的 P1 口驱动 8 个发光二极管,使 8 个发光二极管由左向右轮流点亮。试画出连接图,编制驱动程序。思考: ① 如果用 P0 口驱动发光二极管,则如何修改?② 如果使 8 个发光二极管由右向左轮流点亮,则如何修改?③ 如果使 8 个发光二极管闪亮,则如何修改?④ 如果使 8 个发光二极管由内向外轮流点亮,则如何修改?⑤ 如果使 8 个发光二极管由右向左依次点亮,则如何修改?⑥ 如果使延时时间延长或缩短,会出现什么现象?预习实验并思考:熟悉实验板上与发光二极管有关的电路。编制驱动程序,实现如下操作:⑴ 由左向右轮流点亮⑵ 由外向里轮流点亮 ⑶ 由右向左依次点亮⑷ 闪亮

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

89C51 +5V

Page 18: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.2.1 直接做输出口

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

89C51

+5V

例 2 :用 8051 的 P1 口驱动 1 个数码管,制成 1 位秒表 .试画出连接图,编制驱动程序。 解:1 、画电路图2 、编程

思考

a

b

c

d

e

f

g

Dp

ab

c

de

f g

Dp

UP0 : MOV R7 , #10 MOV R2,#00H MOV DPTR,#TAB UP: MOV A,R2 MOVC A,@A+DPTR MOV P1 , A LCALL D1S INC R2 DJNZ R7 , UP SJMP UP0TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H

Page 19: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

例 2 :用 8051 的 P1 口驱动 1 个数码管,制成 1 位秒表 . 试画出连接图,编制驱动程序。思考: ① 如果用 P2 口驱动发光二极管,公共端接 P3.0 ,则如何修改? ② 如果制成 0.1S 的表,则如何修改?

P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.6

P2.7

89C51

P3.0

a

b

c

d

e

f

g

Dp

CLR P3.0UP0 : MOV R7 , #10 MOV R2,#00H MOV DPTR,#TAB UP: MOV A,R2 MOVC A,@A+DPTR MOV P2 , A LCALL D1S INC R2 DJNZ R7 , UP SJMP UP0TAB: DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H,80H,98H

Page 20: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.2.2 直接做输入口

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

89C51

+5V

例 1 :用 89C51 的 P1 口传送 8 个开关状态,用 P2 口显示 8个开关状态,若开关合则对应灯亮,试画出连接图,编制驱动程序。解:1 、画电路图

MOV P1 , #0FF

H

UP : MOV A ,P1

MOV P2 ,A

SJMP UP

P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.6

P2.7

+5V

开关处的电阻称为上拉电阻,它的作用是当开关断开时,使 P3 口的电压上拉为准确的高电平,避免悬空状态。

2 、编程

强调:8051 内部并行口直接作为输入口时,必须先将口锁存器置 1 。 思考

Page 21: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

89C51

MOV P1 , #0FF

H

UP : MOV A ,P1

CPL A

MOV P2 ,A

SJMP UP

P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.6

P2.7

+5V

思考:如果将发光二极管反接,则如何修改程序?

Page 22: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.2.2 直接做输入口

89C51 +5V

例 2 :用 8051 的 P1 口驱动 8 个发光二极管, P3.4 接一个开关 K1 ,当开关按下时, 8 个发光二极管由左向右轮流点亮;开关断开时, 8 个发光二极管不亮。试画出连接图,编制驱动程序。 解:1 、画电路图 P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

2 、编程

+5V

P3.4 mov p3,#0ffh up0: mov a,#0feh up1: jb p3.4,up1 mov p1,a lcall delay1 rl a sjmp up1 delay1: mov r7,#2 delay11: mov r6,#250 djnz r6,$ djnz r7,delay11 ret 思考

Page 23: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

例 2 :用 8051 的 P1 口驱动 8 个发光二极管, P3.4 接一个开关 K1 ,当开关按下时, 8 个发光二极管由左向右轮流点亮;开关断开时, 8 个发光二极管不亮。试画出连接图,编制驱动程序。思考:① 在上述程序中,开关必须一直按着,灯才能轮流点亮,当开关断开时,停留在某个灯点亮状态。如果当开关断开时,灯全灭,如何修改程序?② 如果开关作为启动开关,开关按下并抬起时,灯才开始轮流点亮,则如何编程?预习实验熟悉实验板上与发光二极管和开关有关的电路。编制驱动程序,实现如下操作:1 .读入 4 个按键并使对应的 LED 点亮。2 . K1 按下时, LED 每 2 个为一组由右向左依次点亮。3 . K2 按下并抬起时, LED 由内向外轮流点亮。

P3.2

P3.3

P3.4

P3.5

+5V

Page 24: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.3 七段 LED 显示器接口

1.3.1 数码管简介

1.3.2 单个七段 LED 数码管的接口

1.3.3 多个七段 LED 数码管的接口

在单片机控制系统中显示器是必不可少的外设。常用的显示器有发光二极管,数码管和液晶显示器。本节介绍数码管接口。

Page 25: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.3.1 数码管简介 组成: LED 数码管由 7 段或 8 段发光二极管组成,在平面上排成 8 字

型。

分类:有共阴极和共阳极两种。

COM

a

b

c

d

e

f

g

Dp

COM

a

b

c

d

e

f

g

Dp

显示原理:使某些段点亮而另一些段不亮就可以显示 0---9 , A---F 等字型。使某段点亮必须具备 2 个条件:① 共阴极管的公共端接地和共阳极管的公共端接电源。② 共阴极管的控制端接电源和共阳极管的控制端接地。

共阳极 共阴极

ab

c

de

f g

Dp

Page 26: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.3.2 单个七段 LED 数码管的接口

单个七段 LED 数码管与单片机的连接方法有 2 种:

1 、软译码连接法

2 、硬译码连接法a

b

c

de

f g

Dp

Page 27: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

软译码连接法在软译码连接法下, LED 数码管与单片机的连接图 :

ab

c

de

f g

Dp

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

89C51

+5V

a

b

c

d

e

f

g

Dp

1 、欲使 LED 数码管显示 2 ,试编程。 MOV P1,#01011011B

注意:字形与字形码的区别,字形是欲显示的数或字符的形状;字形码是为了在数码管上显示数或字符, CPU 应该送出的数据。字形转换成字形码的 2种方法:软译码法和硬译码法。2、编程让 LED 数码管显示 30H 单元的内容( 30H 单元的内容在 0—9 之间)。 UP: MOV A , 30H

MOV DPTR , #TAB

MOVC A , @A+DPTR

MOV P1,A

SJMP UP

TAB : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H

共阳极 LED

Page 28: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

硬译码连接法

在硬译码连接法下, LED 数码管与单片机的连接图 :

ab

c

de

f g

Dp

P1.0P1.1P1.2P1.3

ABCD

89C51利用 BCD 码—七段码译码器实现字形到字形码的转换。常用的BCD 码—七段码译码器有 74LS

48 和 74LS47 。 编程让 LED 数码管显示 30H

单元的内容( 30H 单元的内容在 0—9 之间)。 MOV P1,30H

LTRBORBI

abcdefg

P1.4P1.5P1.6P1.7

COM

abcdefg

74LS48 共阴极 LED

+5V

注意:在硬译码连接法下,直接送欲显示的数即可,字形到字形码的转换是用硬件实现的。

思考:如果 7448 的 ABCD 接到 8051 的 P14—P17 ,则如何修改程序?答案

Page 29: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.3.3 多个七段 LED 数码管的接口

多个数码管与 CPU 的连接方法有 4 种:

1 、静态软译码连接法

2 、静态硬译码连接法

3 、动态硬译码连接法

4 、动态软译码连接法

ab

c

de

f g

Dp

Page 30: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

静态软译码连接法

在静态软译码连接法下, 4 个 LED 数码管与单片机的连接图 :

ab

c

de

f g

Dp

Dp

P0.0P0.1P0.2P0.3

89C51

P0.4P0.5P0.6P0.7

COM

abcdefg

共阴极 LED

Dp

P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7

COM

abcdefg

Dp

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

COM

abcdefg

Dp

P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7

COM

abcdefg

1 、编程在 4 个七段 LED 数码管上显示 1234 。 MOV P

0 , #06HMOV P

1 , #5BHMOV P

2 , #4FHMOV P

3 , #66HSJMP $

2 、编程在 4 个七段 LED 数码管上显示 30H ,31H , 32H , 33H 单元中存放的 1 位 BCD 码的内容 。

MOV DPTR , #TAB UP0: MOV A , 30H MOVC A,@A+DPTR MOV P0 , A MOV A , 31H MOVC A,@A+DPTR MOV P1 , A MOV A , 32H MOVC A,@A+DPTR MOV P2 , A MOV A , 33H MOVC A,@A+DPTR MOV P3 , A SJMP UP0TAB : DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,

6FH

思考:编程在 4 个七段 LED 数码管上显示 30H , 31H 单元中的内容。( 30H , 31H 单元中分别存有 2 位 BCD 码)。答案

Page 31: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

静态硬译码连接法

在静态硬译码连接法下, 4 个 LED 数码管与单片机的连接图 :

ab

c

de

f g

Dp

P2.0P2.1P2.2P2.3

89C51

Dp

P2.4P2.5P2.6P2.7

COM

abcdefg

Dp

P1.0P1.1P1.2P1.3

COM

abcdefg

P1.4P1.5P1.6P1.7

ABCD

LTRBORBI

abcdef

g

74LS47

+5V

Dp

COM

abcdefg

ABCD

LTRBORBI

abcdef

g

74LS47

+5V

ABCD

LTRBORBI

abcdefg

74LS47

+5V

Dp

COM

abcdefg

ABCD

LTRBORBI

abcdefg

74LS47

+5V

编程在 4 个七段 LED 数码管上显示 30H , 31H 单元中的内容。( 30H , 31H 单元中分别存有 2 位 BCD 码)。

思考:编程在 4 个七段 LED 数码管上显示 30H ,31H , 32H , 33H 单元中存放的 1 位 BCD 码的内容 。

+5V

+5V

+5V

+5V

程 序

答 案

Page 32: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

动态硬译码连接法

在动态硬译码连接法下, 4 个 LED 数码管与单片机的连接图 :

ab

c

de

f g

DpP2.0P2.1P2.2P2.3

89C51

P2.4P2.5P2.6P2.7

COM

a b c d e fg

ABCD

LTRBORBI

abcdef

g

74LS48

+5V

COM

a b c d e fg

COM

a b c d e fg

COM

a b c d e fg

例: 编程在 4 个七段 LED 数码管上显示 1234 。 在动态连接法下,数码管公共端均受控。驱动程序的编制充分利用了人眼的视觉滞留效应,循环扫描各数码管,使各数码管不是连续显示,但给人的视觉印象是连续地在显示。每个数码管的显示时间不得低于 1ms ,不亮的时间不能超过 20 ms 。 利用人眼的视觉滞留现象,实现让 4 个七段 LED 数码管上不同时显示 1234 ,但人眼看到的效果却是同时显示 1234 。

1 2 3 4

思考:编程在 4 个七段 LED 数码管上显示30H , 31H , 32H , 33H 单元中的内容。

程 序

答 案

Page 33: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

动态软译码连接法

在动态软译码连接法下, 4 个 LED 数码管与单片机的连接图 :

ab

c

d

e

f g

DpP2.0P2.1P2.2P2.3

89C51

P3.0P3.1P3.2P3.3

COM

a b c d e fg

驱动器

COM

a b c d e fg

COM

a b c d e fg

COM

a b c d e fg1 2 3 4

P2.4P2.5P2.6P2.7

例: 编程在 4 个七段 LED 数码管上显示 1234 。例:编程在 4 个七段 LED 数码管上显示 30H , 31H , 32H , 33H 单元中的内容。

程 序

程 序

Page 34: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.4 键盘接口

1.4.1 键盘类型

1.4.2 非编码键盘与单片机的接口

1.4.3 矩阵非编码键盘与单片机的接口

键盘是单片机控制系统最常用、最简单的输入设备。用户可以通过键盘输入数据或命令,实现简单的人机通信。

Page 35: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.4.1 键盘类型

单片机控制系统所用的键盘有编码键盘和非编码键盘两种。

1 、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。

2 、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。

非编码键盘的键开关可以排列成线性形式或矩阵形式,因此非编码键盘

有线性非编码键盘和矩阵非编码键盘两种。

Page 36: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.4.1 键盘类型

单片机控制系统所用的键盘有编码键盘和非编码键盘两种。

1 、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。

2 、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。

非编码键盘的键开关可以排列成线性形式或矩阵形式,因此非编码键盘

有线性非编码键盘和矩阵非编码键盘两种。

Page 37: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.4.1 键盘类型

单片机控制系统所用的键盘有编码键盘和非编码键盘两种。

1 、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。

2 、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。

非编码键盘的键开关可以排列成线性形式或矩阵形式,因此非编码键盘

有线性非编码键盘和矩阵非编码键盘两种。

Page 38: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

1.4.2 非编码键盘与单片机的接口 线性非编码键盘的键开关排成一行或一列的形式,它与单片机的接口电路如图所示:

K1

K2

K3

K4

P1.1

P1.0

P1.2

P1.3

89C51

+5V线性非编码键盘的工作原理:当键未被按下时,与此键相连的 I/O 线获得高电平;当键被按下时,与此键相连的 I/O 线获得低电平,单片机只要读取 I/O 口状态,就可以获取按键信息,识别有无键按下和哪个键被按下。 键处理程序如下: MOV P1,#0FFH UP1: MOV A,P1 ;读 I/O 口状态 ANL A,#0FH ;屏蔽无用位 CJNE A,#0FH,NEXT1 ;有闭合键? SJMP UP1 NEXT1: LCALL D10ms ;延时 10ms去抖动 MOV A,P1 ;再读 I/O 口状态 ANL A,#0FH CJNE A,#0FH,NEXT2 ;有闭合键? SJMP UP1 NEXT2 : JB P1.0,NEXT3 ; K1 按下? LCALL K1 ; K1 键处理程序 NEXT3: JB P1.1,NEXT4 ; K2 按下? LCALL K2 ; K2 键处理程序 NEXT4: JB P1.2,NEXT5 ; K3 按下? LCALL K3 ; K3 键处理程序 NEXT5: JB P1.3,UP1 ; K4 按下? LCALL K4 ; K4 键处理程序 LJMP UP1

Page 39: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

例 某单片机控制系统, P1 口接有 8 发光二极管, P3.0 、 P3.1 、 P3.2 、 P3.3 接有 4 个开关 K1 、 K2 、 K3 、 K4 ,试画出接口电路,并编程使得当 K1 按下时 8 个发光二极管全亮;当 K2 按下时 8 个发光二极管闪亮;当 K3 按下时 8 个发光二极管由左向右点亮;当 K4 按下时 8 个发光二极管全灭。

K1

K2

K3

K4

P3.1

P3.0

P3.2

P3.3

89C51

+5V

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7程 序

Page 40: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用 MOV B , #01H

MOV P3 , #0FFH

MOV P1 , #00H

UP1: MOV A,P3

ANL A,#0FH

CJNE A,#0FH,NEXT1

SJMP UP1

NEXT1: LCALL D10ms

MOV A,P3

ANL A,#0FH

CJNE A,#0FH,NEXT2

SJMP UP1

NEXT2 : JB P3.0,NEXT3

LCALL K1

NEXT3: JB P3.1,NEXT4

LCALL K2

NEXT4: JB P3.2,NEXT5

LCALL K3

NEXT5: JB P3.3,UP1

LCALL K4

LJMP UP1

程 序子程序

K1 : MOV P1 , #0FFH

RET

K2 : MOV P1 , #0FFH

LCALL D2S

MOV P1 , #00H

LCALL D2S

RET

K3 : MOV P1 , B

LCALL D2S

MOV A , B

RL A

MOV B , A

RET

K4 : MOV P1 , #00H

RET

Page 41: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用a

b

c

de

f g

DpP1.0P1.1P1.2P1.3

ABCD

89C51

LTRBORBI

abcdefg

P1.4P1.5P1.6P1.7 COM

abcdefg

74LS48 共阴极 LED

+5V

UP : MOV A , 30H

SWAP A

MOV P1 , A

SJMP UP

思考:如果 7448 的 ABCD 接到 8051 的 P14—P17 ,则如何修改程序?

Page 42: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用a

b

c

de

f g

Dp

Dp

P0.0P0.1P0.2P0.3

89C51

P0.4P0.5P0.6P0.7

COM

abcdefg

共阴极 LED

Dp

P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7

COM

abcdefg

Dp

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

COM

abcdefg

Dp

P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7

COM

abcdefg

MOV DPTR , #TAB UP0: MOV A , 30H ANL A , #0FH MOVC A,@A+DPTR MOV P0 , A MOV A , 30H SWAP A ANL A , #0FH MOVC A,@A+DPTR MOV P1 , A MOV A , 31H ANL A , #0FH MOVC A,@A+DPTR MOV P2 , A MOV A , 31H SWAP A ANL A , #0FH MOVC A,@A+DPTR MOV P3 , A SJMP UP0TAB : DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,

6FH

思考:编程在 4 个七段 LED 数码管上显示 30H , 31H 单元中的内容。( 30H , 31H 单元中分别存有 2 位 BCD 码)。

Page 43: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用 ab

c

de

f g

Dp

P2.0P2.1P2.2P2.3

89C51

Dp

P2.4P2.5P2.6P2.7

COM

abcdefg

Dp

P1.0P1.1P1.2P1.3

COM

abcdefg

P1.4P1.5P1.6P1.7

ABCD

LTRBORBI

abcdef

g

74LS47

+5V

Dp

COM

abcdefg

ABCD

LTRBORBI

abcdef

g

74LS47

+5V

ABCD

LTRBORBI

abcdefg

74LS47

+5V

Dp

COM

abcdefg

ABCD

LTRBORBI

abcdefg

74LS47

+5V

编程在 4 个七段 LED 数码管上显示 30H , 31H 单元中的内容。( 30H , 31H 单元中分别存有 2位 BCD 码)。 UP : MOV P1 , 30H

MOV P2 , 31H

SJMP UP

+5V

+5V

+5V

+5V

Page 44: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用a

b

c

de

f g

Dp

P2.0P2.1P2.2P2.3

89C51

Dp

P2.4P2.5P2.6P2.7

COM

abcdefg

Dp

P1.0P1.1P1.2P1.3

COM

abcdefg

P1.4P1.5P1.6P1.7

ABCD

LTRBORBI

abcdef

g

74LS47

+5V

Dp

COM

abcdefg

ABCD

LTRBORBI

abcdef

g

74LS47

+5V

ABCD

LTRBORBI

abcdefg

74LS47

+5V

Dp

COM

abcdefg

ABCD

LTRBORBI

abcdefg

74LS47

+5V

思考:编程在 4 个七段 LED 数码管上显示 30H , 31H , 32H , 33H 单元中存放的 1 位 BCD 码的内容 。

+5V

+5V

+5V

+5V

UP : MOV A , 31

H

SWAP A

ORL A , 30H

MOV P1 , A

MOV A , 33H SWAP A ORL A , 32H MOV P2 , A SJMP UP

Page 45: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用a

b

c

de

f g

DpP2.0P2.1P2.2P2.3

89C51

P2.4P2.5P2.6P2.7

COM

a b c d e fg

ABCD

LTRBORBI

abcdef

g

74LS48

+5V

COM

a b c d e fg

COM

a b c d e fg

COM

a b c d e fg

例: 编程在 4 个七段 LED 数码管上显示 1234 。

1 2 3 4

START:MOV P2,#11100001B

LCALL D2MS

MOV P2,#11010010B

LCALL D2MS

MOV P2,#10110011B

LCALL D2MS

MOV P2,#01110100B

LCALL D2MS

SJMP START

Page 46: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用a

b

c

de

f g

DpP2.0P2.1P2.2P2.3

89C51

P2.4P2.5P2.6P2.7

COM

a b c d e fg

ABCD

LTRBORBI

abcdef

g

74LS48

+5V

COM

a b c d e fg

COM

a b c d e fg

COM

a b c d e fg3 4

START: MOV R0,#30H

MOV R7,#4

MOV R2,#0E0H

UP: MOV A,@R0

ORL A , R2

MOV P1,A

LCALL D2MS

INC R0

MOV A,R2

RL A

MOV R2,A

DJNZ R7,UP

SJMP START

思考:编程在 4 个七段 LED 数码管上显示 30H , 31

H , 32H , 33H 单元中的内容。

Page 47: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用a

b

c

d

e

f g

DpP2.0P2.1P2.2P2.3

89C51

P3.0P3.1P3.2P3.3

COM

a b c d e fg

驱动器

COM

a b c d e fg

COM

a b c d e fg

COM

a b c d e fg1 2 3 4

P2.4P2.5P2.6P2.7

例: 编程在 4 个七段 LED 数码管上显示 1234 。UP:MOV P1,#06H

MOV P3,#0FEH

LCALL D2Ms

MOV P1,#5BH

MOV P3,#0FDH

LCALL D2mS

MOV P1,#4FH

MOV P3,#0FBH

LCALL D2mS

MOV P1,#66H

MOV P3,#0F7H

LCALL D2mS

SJMP UP

Page 48: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

ab

c

d

e

f g

DpP2.0P2.1P2.2P2.3

89C51

P3.0P3.1P3.2P3.3

COM

a b c d e fg

驱动器

COM

a b c d e fg

COM

a b c d e fg

COM

a b c d e fg3 4

P2.4P2.5P2.6P2.7

例:编程在 4 个七段 LED 数码管上显示 30H , 31H , 32H , 33H 单元中的内容。 START: MOV R0,#30H

MOV R7,#4

MOV R2,#0FEH

MOV DPTR,#TAB

UP: MOV A,@R0

MOVC A,@A+DPTR

MOV P1,A

MOV P3,R2

LCALL D2MS

INC R0

MOV A,R2

RL A

MOV R2,A

DJNZ R7,UP

SJMP START

TAB : DB 3FH,06H,5BH,4FH

DB 66H,6DH,7DH,07H

DB 7FH,6FH

Page 49: 第 2 章     MCS51 单片机内部并行口及应用

第 2 章 MCS-51 单片机内部并行口及其应用

习题与思考:

用 8051 实现如下功能:

4 个开关, 1 个蜂鸣器,当 4 个开关的状态与 30H 单元的低四位相同时,蜂鸣器以 100Hz 的频率响 5 下,否则蜂鸣器不响。

在动态硬译码连接法下,编程:

1 .在 4 个数码管上同时显示 8

2 .在 4 个数码管上轮流显示 3

3 .在 4 个数码管上依次显示 5

实验板上数码管电路如下:

欲使最右边的数码管显示 3 ,试编程。

② 欲使最右边的数码管显示 30H 单元的内容( 30H 单元的内容在 0—9 之间),试编程,

编制一位秒表的驱动程序。

预习实验板上数码管电路,编程:

① 在 4 个数码管上显示秒数

实现分秒表

预习实验板上数码管电路和按键电路,编程:

K1 按下时,最右面数码管的显示数加 1 ; K2 按下时,最右面数码管的显示数减 1 。

K1 按下时, 4 个数码管的显示数加 1 ; K2 按下时, 4 个数码管的显示数减 1

返回