97
侯侯侯 吉吉吉吉吉吉吉吉吉吉吉吉吉吉吉吉 微微微微微微微微微 1

吉林大学工学部计算机硬件基础课程 微机原理与接口技术

  • Upload
    dorjan

  • View
    161

  • Download
    0

Embed Size (px)

DESCRIPTION

吉林大学工学部计算机硬件基础课程 微机原理与接口技术. 侯彦利. 第 7 章 可编程接口芯片. 可编程定时 / 计数器 8253 可编程并行接口 8255A 串行通讯基本概念. 7.1 定时 / 计数器 8253 芯片. 常用定时方法: 软件定时:采用软件编程来实现定时和计数要求 , 通用灵活 , 但占用 CPU 时间; 硬件定时:采用专用的硬件电路来实现。 定时 / 计数器从计数方式上分为加法计数器和减法计数器。 计数器启动后与 CPU 并行工作,不占 CPU 时间。. CLK 0. D 7. ~. D 0. GATE 0. OUT 0. - PowerPoint PPT Presentation

Citation preview

Page 1: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

侯彦利

吉林大学工学部计算机硬件基础课程微机原理与接口技术 1

Page 2: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

2

可编程定时 / 计数器 8253可编程并行接口 8255A串行通讯基本概念

第 7 章 可编程接口芯片

Page 3: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

3

7.1 定时 / 计数器 8253 芯片常用定时方法:1. 软件定时:采用软件编程来实现定时和计数要求 , 通用灵活 , 但占用 CPU 时间;

2. 硬件定时:采用专用的硬件电路来实现。

定时 / 计数器从计数方式上分为加法计数器和减法计数器。

计数器启动后与 CPU 并行工作,不占 CPU 时间。

Page 4: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

4

D0D7~ 数 据

总 线缓冲器

读 / 写逻 辑

控 制寄存器

计数器0

计数器1

计数器2

片内总线RD

WRA0A1

CS

CLK0

GATE0

OUT0

CLK1

GATE1

OUT1

CLK2

GATE2

OUT2

可编程定时器 8253 的内部结构图

Page 5: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

5

8253 的功能: 具有三个功能完全相同的独立的 16 位减法计数器;

每个计数器都包括一个 16 位的初值寄存器、一个计数执行单元和一个输出锁存器;

每个计数器的计数时钟频率最高为: 2MHZ 每个计数器可以按十进制数或二进制数预置初值; 每个计数器有六种工作方式,可通过编程设定或改

变; 每个计数器的计数定时值,可由 CPU 随时读取;

初值寄存器 计数执行单元输出锁存器

CLK

GATE

OUT

Page 6: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

6

D0~D7 : 8 位双向数据线;CS :芯片选择;RD、WR :读写控制信号;A1 ,A0 :地址线;

A1A0=00 计数器 0

A1A0=01 计数器 1

A1A0=10 计数器 2

A1A0=11 控制寄存器CLK :计数器的时钟信号输入端 , 最高计数频率 2MHz ;GATE :门控信号;控制计数器的启动和停止;OUT :计数器输出信号;

8253 的引线及功能

Page 7: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

7

8253 的工作原理

当置入初值后,计数执行单元开始对输入脉冲 CLK进行减 1 计数,减到 0 时从 OUT 端输出一个信号;

整个过程可以重复进行;

初值寄存器 计数执行单元

输出锁存器

CLK

GATE

OUT

Page 8: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

8

计数器的启动的方法软启动:由程序指令启动。

MOV AX, 500 OUT 80H, AL

MOV AL, AH OUT 80H, AL

如果 GATE 为高电平,就启动计数;

硬件启动:由外部信号启动。写入初值后并不启动计数,门控信号 GATE 由低变高电平后,在 CLK 的下降沿开始计数;

Page 9: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

9

7.1.2 计数器的工作方式

8253 一共有 6 种工作方式;在多数工作方式下,计数器每启动一次只工作一个周

期;有两种工作方式可以进行自动重复计数;

MOV AL, 0B4HOUT 43H, AL ; 控制字送入控制寄存器MOV AX, 800OUT 42H, AL ; 计数初值低 8 位送入计数器MOV AL, AHOUT 42H, AL ; 计数初值高 8 位送入计数器

Page 10: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

10

方式 0 :计数结束中断软件启动、不自动重复计数方式;计数结束后, OUT 端输出

为高电平,可以作为中断请求信号使用;

1. 只计数一个周期;2. 在计数过程中 GATE 变为低电平,则暂停计数;3. 在计数过程中,可以随时修改计数初值;

WR

CLK

GATE

OUT

CW N=4

4 3 2 1 0

Page 11: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

11

注意, 8253 所有的 6 个工作方式都有下列共同点:⑴ 控制字写入计数器时, OUT 端进入初始状态,不同的工作

方式 OUT 端初始状态不一定相同。⑵ 计数初值写入计数器之后,暂存在初值寄存器中,要经过

一个时钟周期的上升沿和下降沿,计数初值才进入计数执行单元,开始计数。

⑶ 通常在每个时钟脉冲的上升沿,采样门控信号 GATE 。不同的工作方式下,门控信号的作用不同。

⑷ 在时钟脉冲的下降沿,计数器减 1 。(5) 计数初值也叫时间常数。

Page 12: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

12

方式 1 :可重复触发的单稳态触发器

硬件启动、不自动重复的工作方式;当写入控制字后, OUT 端输出高电平。写入计数初值后计数

器并不开始工作;当 GATE 端由低到高触发后,在下一个CLK 脉冲的下降沿开始计数, OUT 端立刻由高到低,计数结束后 OUT 端输出高电平;

4 3 2 1 0

Page 13: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

13

Page 14: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

14

方式 1 的特点:GATE 的上升沿触发计数器,计数过程中 GATE 即

使变低也不影响计数;可重复触发;

OUT 端的负脉冲宽度 = 计数初值 N×TCLK

计数器 0CLK

GATEOUT

如果 CLK=2MHz ,则: fc= 2MHzTc=1/fc=0.5x10-6 ,如果时间常数 N=1000 ,则OUT 端的负脉冲宽度 =NxTc=1000x 0.5x10-6 =500us

4 3 2 1 0

Page 15: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

15

方式 2 :频率发生器也叫分频器;可以软件启动,也可以硬件启动,计数器自动重

复工作。在写入控制字和计数初值期间 GATE 一直为高电平,则在下一个 CLK 开始计数,既软启动;

若写入计数初值时 GATE 为低电平,则要等到 GATE 由低到高时才启动,即硬件启动;

一旦计数器启动,计数器可以自动重复工作; GATE 为低,停止计数;

WR

CLK

GATE

OUT

CW N=3

3 2 1 3 2 1

Page 16: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

16

写入控制字后, OUT 为高电平。如果 GATE 为高,写入初值后开始减 1 计数。当计数值减到 1 时, OUT 输出变为低电平,再经过一个 CLK 之后计数值减为 0 , OUT 变为高电平,接着自动重新装入初值, 计数器重复工作。

WR

CLK

GATE

OUT

CW N=3

3 2 1 3 2 1

Page 17: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

17

Page 18: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

18

【例题 7-2 】设 8253 的端口地址为: 40H~ 43H ,用计数器 2 作

频率发生器,二进制计数,输入脉冲信号为 2M ,计数初值为 800 ,输出脉冲信号的频率是多少?

控制字为: 10110100B=0B4H输出脉冲信号的频率为: FOUT=FCLK/

N=2X106/800=2500Hz

Page 19: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

19

初始化程序:MOV AL, 0B4HOUT 43H, AL ; 控制字送入控制寄存器MOV AX, 800OUT 42H, AL ; 计数初值低 8 位送入计数器 2MOV AL, AHOUT 42H, AL ; 计数初值高 8 位送入计数器 2 ,计数器启

动。

Page 20: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

20

可以软启动,也可以硬件启动,计数器自动重复工作;写入控制字后, OUT 为高电平。如果 GATE 为高,写入初值

后开始减 1 计数。当计数值减到 N/2 时, OUT 输出变为低电平,直到计数值减为 0 ;接着自动重新装入初值, OUT 变为高电平,计数器自动重复工作。

OUT 输出对称方波:

若计数初值为奇数, OUT 输出非对称方波:GATE 由高变低,停止计数。

N/2

( N+1) /2

方式 3 -方波发生器

Page 21: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

21

【例题 7-3 】设 8253 的端口地址为: FCF8H~ FCFFH ,利用计

数器 1 作方波发生器,给定 CLK1为 2MHz ,要求产生频率为 1KHz 的方波, BCD码计数。编程初始化 8253 。

计数器 1 工作在方式 3: 01110111B分频系数: N= FCLK/ FOUT =2×106/1000=2000

Page 22: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

22

程序设计如下:MOV DX, 0FCFBHMOV AL, 01110111B ;

OUT DX, AL MOV DX, 0FCF9H MOV AX, 2000H ;BCD码计数初值 OUT DX, AL ; 写入计数初值低字节 MOV AL, AH

OUT DX, AL ; 写入计数初值高字节,计数器启动

Page 23: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

23

方式 4 :软件触发选通

软件启动、不自动重复计数方式;写入控制字后, OUT 为高电平,计数器装入初值后即启动计数,计数结束时 OUT 输出宽度为 TCLK 的负脉冲,如下:WR

CLK

GATE

OUT

CW N=4

4 3 2 1 0

GATE 为低,停止计数。4 3 2 1

Page 24: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

24

方式 5 :硬件触发选通

硬件启动、不自动重复的工作方式。 GATE 的上升沿触发计数器;计数结束时,在OUT 端输出一个脉冲宽度为 TCLK 的负脉冲信号:

WR

CLK

GATE

OUT

CW N=5

4 3 2 1 0

GATE 的上升沿,将重新计数。

Page 25: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

25

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

数制选择:0 二进制1 BCD码

方式选择:000 -方式 0001 -方式 1X10 -方式 2X11 -方式 3100 -方式 4101 -方式 5

计数初值长度选择:00 -计数器中的数据锁存于缓冲器01 -只读 / 写低 8 位 ,高 8 位默认为 010 -只读 / 写高 8 位,低 8 位默认为 011 -先读 / 写低 8 位 后读 / 写高 8 位

计数器选择:00 -选计数器001 -选计数器110 -选计数器211 -无效

8253 的控制字

二进制计数范围: 0000~ 65536H ;初值 =0000 ,为最大计数值十进制计数范围: 0000~ 10000 ;初值 =0000 ,为最大计数值;

Page 26: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

26

例如:利用计数器 1 作频率发生器,给定 CLK1为 2MHz ,要求产生频率为 1KHz 的脉冲。计数器 1 工作在方式 2:

0111X100B

时间常数 N= fc/fo =2×106/(1×103)=2000

程序设计如下: MOV AL,01110100B ;

OUT 83H,AL MOV AX,2000 ;先写入低字节计数值, OUT 81H,AL MOV AL,AH ;后写入高字节计数值

OUT 81H,AL… ; OUT 输出脉冲周期为 1ms

Page 27: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

27

例如:利用计数器 2 作脉冲发生器,给定 CLK2为1MHz ,要求产生周期为 20ms 的方波。

计数器 2 工作在方式 3 : 1011X110B 计数初值 N = fc/fo=1×106 ×20×10-

3=20000=4E20H 程序设计如下:

MOV AL,10110110B ;# 2 ,方式 3 ,二进制 OUT 83H,AL MOV AL,20H :先写入低字节计数值 OUT 82H,AL MOV AL,4EH ;后写入高字节计数值 OUT 82H,AL

… ; OUT 输出周期为 20ms 的方波

Page 28: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

28

8253 与系统的连接

D0D7~

A1

A0

IOR

IOW

D0D7~

RD

WR

A1

A0

8253GATE0

GATE1

GATE2

OUT0

OUT1

OUT2

CLK0

CLK1

CLK2CS

&

&

≥1

G

G2A

G2B

CB

A

Y0

IOWIOR

A3

A4

A5

A6

A7

A2

A8

A9

A10

A11

A12

A13

A14

A15

系统总线信号

74LS138

Page 29: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

29

7.1.3 8253 的应用

8253 的初始化编程,主要设置两方面的内容,一是写入控制字,二是写入计数初值。

控制字写入 8253 的控制寄存器。 3 个控制字可以连续写入控制寄存器。

写入计数初值时注意两个问题:一是 3 个计数初值应写入相应的计数器中,不可混乱,二是要符合控制字的要求。

Page 30: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

30

【例 7-4 】8253 与计算机系统的连接如图所示,三个计数器使用情况如下:CNT0 :对外部事件计数,计满 100 次向 CPU 发出中断请求。CNT1 :产生 1kHz 方波。CNT2 :标准定时,定时时间为 1s 。

Page 31: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

31

送8259的IR0端

中断请求信号

G

G2A

G2B

CBA

74LS138

&

≥1

D0 —D7

CSY7

IOW

A1

A3

A4

A5

A6

A7

A2

A8

A10

A11

A12

A13

A14

A9

A15

A0

IOR

A1

A0

D0 —D7

RDWR

&

8253

GATE0

GATE1+5V

CLK0

CLK1

OUT0

OUT1

GATE2

外部事件产生源

CLK2

OUT2

2MHz1KHz方波

Page 32: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

32

计数器 0应设置为方式 0 ,完成计数功能。计数器 1应设置为方式 3, CLK1 输入的时钟脉冲频

率为 2MHz ,输出频率为 1kHz 的方波,周期为1ms ;计数器 1 的计数初值为 2000 。

计数器 2 设置为方式 0 ,完成定时功能,定时 1秒,利用 OUT2向 CPU 发出一次中断请求,其输入时钟频率为 1kHz ,计数初值应为 1000 。

8253 的端口地址为 01FC~01FFH 。

Page 33: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

33

START : MOV DX, 01FFH MOV AL, 10H OUT DX, AL ; 计数器 0 工作在方式 0 MOV DX, 01FCH MOV AL, 100 OUT DX, AL ; 计数器 0 置初值 MOV DX, 01FFH MOV AL, 76H OUT DX, AL ; 计数器 1 工作在方式 3 MOV DX, 01FDH MOV AX, 2000 OUT DX, AL MOV AL, AH OUT DX, AL ; 计数器 1 置初值

Page 34: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

34

MOV DX, 01FFH MOV AL, 0B0H OUT DX, AL ; 计数器 2 工作在方式 0 MOV DX, 01FEH MOV AX, 1000 OUT DX, AL MOV AL, AH OUT DX, AL ; 计数器 2 置初值

Page 35: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

35

【例题 7-6 】在 IBM PC/XT 中定时器 / 计数器芯片 8253 ,其计数器 0( CNT0)工作在方式 3, GATE0固定为高电平, OUT0 作为中断请求信号接至 8259A 中断控制器的 IRQ0 ,作为定时中断,用于时钟的时间基准。

计数器 1 工作在方式 2, GATE1固定为高电平, OUT1 的输出作为定时(约 15us)信号,用于刷新动态 RAM ,在 2ms 内可以有 132 次刷新( 128 次是系统的最低要求)。

Page 36: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

36

计数器 2 工作在方式 3 ,输出 1KHZ 的方波,作为扬声器的音频信号源, GATE2由 8255的 PB0 控制, OUT2与 8255的 PB1 相与,这样利用 8255的PB0、 PB1 同时为高电平的时间来控制喇叭发长音还是发短音。

三个计数器的输入时钟频率一样,为 F=1.19MHZ

Page 37: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

37

74LS138

D0 —D7

CS

IOW

IOR

A1A0

D0 —D7

RD

WR

8253

GATE0

GATE1+5V

CLK0

CLK1

OUT0

OUT1

GATE2

送8259的IR0端

CLK2

OUT2

F

自8255PB0

&

自8255PB1

Page 38: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

38

8253 的端口地址为 040H~ 043H, 8255 的端口地址为 60H~63H, ROM- BIOS对 8253 的编程如下:

计数器 0 用于定时中断:MOV AL, 00110110B ;OUT 43H, ALMOV AL, 0 ; 计数初值为 0000 ,即为最大。OUT 40H, ALOUT 40H, AL

Page 39: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

39

计数器 1 用于动态 RAM 的刷新:MOV AL, 01010100BOUT 43H, ALMOV AL, 18 ; 计数初值为 18OUT 41H, AL

Page 40: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

40

计数器 2 用于产生 1KHZ 的方波送至扬声器发声,声响子程序为 BEEP ,入口地址为 FFA08H :

BEEP PROC NEARMOV AL, 10110110B OUT 43H, ALMOV AX, 1331 ; 计数初值为 1331OUT 42H, ALMOV AL, AHOUT 42H, ALIN AL, 61H ; 读取 8255B 端口MOV AH, AL ; 存在 AH

Page 41: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

41

OR AL, 03H OUT 61H, AL ; 输出至 8255的 B 端口,使扬声器

发声SUB CX, CX ; 设置延时参数

G7: LOOP G7MOV BH, 0DEC BX ;BL 的值为控制长短声, BL= 6(长), BL= 1

(短)JNZ G7MOV AL, AH ;恢复 8255B 端口值,停止发声OUT 61H, ALRET

BEEP ENDP

Page 42: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

42

例 7-2写出 8253 的初始化程序。其 3 个计数器的时钟频率均为 2MHz ,计数器 0 在定时 100us 后产生中断请求;计数器 1 用于产生周期为 10us 的对称方波,计数器2每 1 ms产生一个负脉冲, BCD码计数。

计数器 0 :方式 0 ,时间常数 =100us/0.5us=200控制字为: 00110000B

计数器 1 :方式 3 ,输出方波信号,时间常数 =10us/0.5us=20控制字为: 01110110B

计数器 2 :方式 2 ,时间常数为 = 1ms/0.5us=2000控制字为: 10110101B

Page 43: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

43

MOV DX,0FF07H ; MOV AL,30H

OUT DX,AL MOV AL,76H

OUT DX,AL MOV AL,0B5H OUT DX,AL MOV DX,0FF04H ; 计数器 0 MOV AX,200 ;先写入低字节计数值,

OUT DX,AL MOV AL,AH

OUT DX,AL

8253 的编程

Page 44: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

44

MOV DX,0FF05H ; 计数器 1 MOV AX,20

OUT DX,AL MOV AL,AH

OUT DX,ALMOV DX,0FF06H ; 计数器 2 , BCD码

计数 MOV AL, 00H

OUT DX,AL MOV AL,20H

OUT DX,AL

Page 45: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

45

8253 的编程

例 7-1 IBM-PC/XT 中使用了一片 8253 ,其 3 个计数器的输入时钟频率均为 1.19MHz 。

计数器 0 ( CNT0)为系统的电子钟提供时间基准,它的输出作为系统的中断源,接到 8259的 IR0 端。

计数器 1( CNT1)用于 DRAM 的定时刷新;计数器 2( CNT2)作为扬声器的音频信号源,输出

不同频率的方波信号。8253 的端口地址设为 40H, 41H, 42H,43H

Page 46: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

46

分析计数器 0 :方式 3 ,输出方波信号,时间常数 =

65536 ,置入 0000H, 1.19MHz/65536=18.2Hz ,每秒产生 18.2 次中断请求;

计数器 1 :方式 2 ,分频系数为 18, OUT1 的输出脉冲频率为 1.19/18 ,即 DRAM 的定时刷新周期为15us ;

计数器 2 :方式 3 ,控制扬声器发出 1KHz 的声音,时间常数为: 1.19MHz/1KHz=1190=04A6H

Page 47: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

47

CNT0:MOV AL,00110110BOUT 43H,AL

MOV AL,00H OUT 40H,AL OUT 40H,ALCNT1: MOV AL, 01010100B

OUT 43H,AL MOV AL,18 OUT 41H,ALCNT2: MOV AL, 10110110B

OUT 43H,AL MOV AL,A6H OUT 42H,AL MOV AL,04H

OUT 42H,AL…

Page 48: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

48

7.2 可编程并行接口芯片 8255

CPU 与外设的数据交换,有并行和串行传送方式。接口可分为并行接口和串行接口。 8255A 是通用 8 位可编程并行输入输出接口芯片;

Page 49: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

49

1234567891011121314151617181920

4039383736353433323130292827262524232221

PA3PA2PA1PA0RDCSGNDA0A1PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2

PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3

引脚及功能 :40 引脚 , 单一 +5V 电源,双列直插式;D7~ D0 :数据信号线;CS :片选信号;A0A1 口地址选择信号;WR :写信号;RD :读信号线;Reset 复位信号高电平有效;

8255 复位后,各端口都被预置为输入状态。PA0 ~ PA7 : 端口 A 的 8 条输入输出线PB0 ~ PB7 : 端口 B 的 8 条输入或输出线PC0 ~ PC7 : 端口 C 的 8 条输入或输出线,也可以用作控制信号的输出或状态信号的输入线;

Page 50: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

50

内部结构

PA7 ~PA0

PC7 ~PC4

PB7 ~PB0

PC3 ~PC0

A 组端口 AA 组

控制电路缓

冲器

B 组控制电路

读 / 写控制逻辑

A 组端口 C高 4 位B 组

端口 C低 4 位

B 组端口 B

内部逻辑 外设接口

RDWRA1A0RESET

CS

D7 ~D0

I/O

I/O

I/O

I/O

Page 51: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

51

端口地址8255A 包含 A 口、 B 口、 C 口三个独立的数据端口,

及一个控制端口。各端口地址如下:A1A0=00 A 口A1A0=01 B 口A1A0=10 C 口A1A0=11 控制端口

Page 52: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

52

数据端口的特点A 口、 B 口、 C 口可以作为三个独立的数据输入输出

通道(端口)单独使用;也可以将 A 口、 B 口作为数据输入输出口, C 口输出

控制信号或输入状态信号;A口 ---- 具有数据输入输出功能,且能锁存;B口 ---- 具有数据输入输出功能,且能锁存;C口 ---- 具有数据输入输出功能,输出时可以锁存;C 口的主要特点是可以按位进行操作;可以分为 2个 4

位的端口;既可以传送数据也可以用来输出控制信号或输入状态信号;

Page 53: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

53

8255 与系统的连接示意图

系统总线信号

IOR

IOW

A0

A1

D0~D7

A0

A2

A15

A1

D0~D7

CS

A口

B 口

C口

译码

WR

RD

Page 54: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

54

8255 的工作方式

8255 有三种工作方式:方式 0 、方式 1 、方式 2 ;方式 0 ,基本输入输出方式适合于三个端口;作为输出口时它具有锁存功能,

作为输入时不能锁存;A 口、 C 口的高 4 位、 B 口以及 C 口的低四位可分别定义为输入或输出,各端口相互独立,故共有 16

种组合。C 口可以按位进行置位和复位。

Page 55: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

55

方式 0 最适用于无条件传送方式;也能用于查询工作方式,这时常将 C 口的高 4 位定义

为输入口,输入外设的状态信号,而将 C 口的低四位定义为输出口,输出控制信息;这时可用 A、 B

口传送数据;

方式 0 不能工作在中断方式;

Page 56: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

56

方式 1 :选通输入输出方式: A 口、 B 口作为数据的输入口或

输出口,但数据的输入输出要在控制信号的控制下,控制信号由 C 口的某些位来提供;

方式 1 适用于程序查询和中断控制方式,它不能工作在无条件传送方式下;

Page 57: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

57

方式 1下 A 口、 B 口均为输出

C 口的 6条线作为选通控制信号: PC3 、PC6 、PC7

配合 A 口, PC0、 PC1、 PC2配合 B 口;

接 8259

OBF :输出缓冲器满信号;ACK :外设收到数据的应答信号;INTE :中断允许状态;INTR :中断请求信号;

INTEA

PC7

PC6

PC3&

PA7~PA0

PC4PC5

IOW

OBFA

ACKA

INTRA

IOW

OBF

INTR

ACK

输出

Page 58: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

58

IOW

OBF

INTR

ACK

输出

INTEB

PC1

PC2

PC0&

PB7~PB0

IOW

OBFB

ACKB

INTRB 接 8259

Page 59: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

59

方式 1下 A 口、 B 口均为输入

STBA

IBFA

STB :输入选通信号;外设用它将数据锁存于输入数据缓冲器中;IBF :数据输入缓冲器满, STB 的应答信号;INTR :中断请求信号 INTR ;INTE :中断允许信号;

INTEAPC4

PC5

PC3

PA7~PA0

PC6PC7

IOR

INTRA&

INTEBPC2

PC1

PC0

PB7~PB0

IOR

STBB

IBFB

INTRB&

Page 60: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

60

方式 2 :双向传输方式,只有 A 口可以工作在这种方式下。既

能发送数据,又能接收数据;它还要利用 C 口的 5条线作为控制信号线; A 口的输入输出均具有数据锁存能力,数据的输入输出均可以引起中断;

方式 2 适用于程序查询和中断控制方式。它不能工作在无条件传送方式下。这时 B 口可以工作在方式 0 或方式 1 , C 口剩余的

3 条线可以作为输入输出线或方式 1 下的控制线。

Page 61: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

61

控制字

7 6 5 4 3 2 1 0

功能控制0 :位操作1 :方式选择

A组方式选择00 :方式 001 :方式 11X :方式 2

控制 A口 8 位0 :输出1 :输入

控制 C 口高 4 位0 :输出1 :输入

B组方式选择0 :方式 01 :方式 1

控制 B口 8 位0 :输出1 :输入

控制 C 口低 4 位0 :输出1 :输入

1. 方式选择控制字:

Page 62: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

62

【例题 7-6 】设 8255 的端口地址为 FBC0~FBC3H, A 口设置方式

0 输入, B 口方式 0 输出, C 口高 4 位方式 0 输出,C 口低 4 位方式 0 输入。

控制字为: 10010001B 8255 初始化程序为: MOV DX, 0FBC3HMOV AL, 91HOUT DX, AL

Page 63: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

63

方式选择控制字例

A 口、 B 口工作在方式 0 下: A 口输出、 B 口输入则:10000010

A 口工作在方式 0 、 B 口工作在方式 1 下: A 口输出、B 口输入则: 10000110

A 口工作在方式 1 、 B 口工作在方式 0 下: A 口输入、B 口输出则: 10110000

方式选择控制字: 80H, B4H

Page 64: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

64

2. 按位操作控制字

7 6 5 4 3 2 1 0

置位 / 复位0 :复位1 :置位

C 口的位选择0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7

无关0

设置 PC0 为置位,则:00000001设置 PC4 为复位,则:00001000设置 PC3 为置位,则:00000111

设控制端口的地址为:FFF7H, 则:MOV DX,0FFF7HMOV AL,08HOUT DX,ALMOV AL,07HOUT DX,AL

Page 65: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

65

【例题 7-7 】设 8255 的端口地址为 FBC0~FBC3H, A 口设置方式

0 输出, B 口方式 0 输入, C 口高 4 位方式 0 输出,C 口低 4 位方式 0 输入,利用 C口 PC5产生连续的方波信号,信号的高、低电平宽度可调用延时子程序 DELAY 实现。

Page 66: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

66

控制字为: 10000011B 8255 初始化程序为:

MOV DX, 0FBC3HMOV AL, 83HOUT DX, AL

FB : MOV AL, 0BHOUT DX, AL ;PC5 置位CALL DELAY ;维持高电平MOV AL, 0AHOUT DX, AL ;PC5=0CALL DELAY ;维持低电平JMP FB ;连续输出方波信号

Page 67: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

67

4 . 8255与 CPU 的连接8255的 D7~ D0 分别与系统总线的 D7~ D0 相连, RD、WR 分别与系统总线的 IOR和 IOW 相连, A1、 A0 与系统地址线 A1、 A0 相连, CS由系统地址总线 A2~A15译码生成。

Page 68: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

68

8255 的应用

A2

A3

A4

IOR

IOW

A10

A12

A13

A14

A15

A5

A6

A7

A8

A9

A11

IOR

IOW

A1

A0

RESET

G1

G2A

G2B

C

B

A

Y0

74LS138

RD

WRA1

A0

CS

8255

RESETA 口

B 口

C 口

D0

D7

~ D0

D7

~

PA0

PA7~

PC0

PC7

~

PB0

PB7

~

&

≥1

&

Page 69: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

69

8255 的端口地址为 F080~F083H 。

Page 70: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

70

8255A的 PA0~PA7 端接有开关 K0~K7, PB0~PB7 接有 8 支 LED 发光管。端口 A 、 B 均工作在方式 0 下,根据开关状态控制 LED灯的显示。

1. 请确定 8255A 的各端口地址,写出控制字;2. 编程控制:当 K 全闭合时, 8 支灯亮;当有一个

以上 K 断开时, 8 支灯灭。

Page 71: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

71

CS

A1A0

WR

RD

PA0

PA7

PB0

PB1

PB7

3: 8ABC

G1G2AG2B

WR

A7A6A5

A4A3A2A1A0

Y4…..

+5V

+5V

…..

IO/MRD

K0

K7

D0~D7

地址:84H,85H,86H,87H方式控制字:10010000=90H

Page 72: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

72

编程:START: MOV AL,90H

OUT 87H,ALSTATES: IN AL,84H

AND AL,0FFHJZ HIGH ;当 K 全闭合时, 8支灯亮 ;

MOV AL,0FFH ;有一个以上 K 断开,

OUT 85H,AL ; 8支灯灭 ;

JMP DONEHIGH: MOV AL,0

OUT 85H,ALDONE :JMP STATES

Page 73: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

73

另 :测试开关状态,控制相应的灯亮或灭;START: MOV AL,90H

OUT 87H,ALAGAIN: IN AL,84H

OUT 85H,ALJMP AGAIN

Page 74: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

74

【例题 7-8 】利用 8255的 A 口与打印机相连,将内存缓冲区

BUFF 中的 2K 个字符打印输出。试完成相应的软硬件设计。

Page 75: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

75

8255 控制打印机D0~ D7

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9A10

A11

A12

A13

A14

A15

IOWIOR

IOWIOR

RESET

≥1

&

74LS138

ABC

G2A

G1

G2B

Y0

&

&

A0

A1

WR

RD

RESET

D0

|D7

PA0

|PA7

PC6

PC1

CS

8255

D0

|D7

STROBE

BUSY

FBC0HFBC1HFBC2HFBC3H

Page 76: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

76

数据

STROBE

BUSY

Page 77: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

77

编制程序如下:START:MOV AX, SEG BUFF

MOV DS, AXMOV SI, OFFSET BUFFMOV CX, 2048MOV DX, 0FBC3HMOV AL, 81H ;8255A 初始化OUT DX, AL ; C 口高位方式 0 输出,低位方式 0

输入MOV AL, 0DH ;OUT DX, AL ;使 PC6 置位,即使选通无效

Page 78: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

78

WAIT: MOV DX, 0FBC2H IN AL, DX ; 输入打印机的状态

TEST AL, 02H ;检测 PC1 是否为 1JNZ WAIT ; 为忙则等待MOV DX, 0FBC0H

MOV AL,[SI]OUT DX, AL ;从 A 口输出数据MOV DX, 0FBC3HMOV AL, 0CHOUT DX, AL ;STROBE 信号为低电平MOV AL, 0DHOUT DX, AL ; STROBE 信号为高电平INC SI ; 修改指针,指向下一个字符LOOP WAIT

DONE: MOV AH, 4CHINT 21H

Page 79: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

79

用 8255 实现键盘接口

CPU 总线

8255

PC7

PC6

PC5

PC4

PC3

PC1

PC2

PC0

行 3

行 2

行 1

行 0

列 0列 1列 2列 3

K

R×4

R×4

+ 5V

矩阵式键盘接口电路原理图

Page 80: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

80

扫描法逐行输出 0 ,然后读入列值,检查有无为 0 的位;具体步骤:1. PC7~PC4 输出全 0 ,从 PC3~PC0 读入,若读入

的数据有一位为 0 ,表明有键按下;2. 延时 20ms去抖动,重复第一步动作,若还有键闭合,则认为确实有键闭合;否则返回第一步;

3. 查找被确认的键;从第 0 行开始逐行输出 0 ,然后读入列值,检查有无为 0 的位;若无,键值加 4 ,转下一行;

Page 81: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

81

反转法1. 将 PC7~PC4 设定为输出, PC3~PC0 设定为输入。然后 PC7~PC4 输出全 0 ,从 PC3~PC0 读入列值,若读入的数据有一位为 0 ,表明该列有键按下,保存列值;

2. 将 PC7~PC4 设定为输入, PC3~PC0 设定为输出。把保存的列值从 PC3~PC0 输出,从 PC7~PC4 读入行值,读入的数据必有一位为 0 ,保存行值。将行值和列值组合在一起,用查表的方法得到按键的键值。

Page 82: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

82

编程:设 8255 的端口地址为 40H、 41H、 42H、43H

START: MOV AL,10000001B ;方式 0, C 口高 4 位输出,低 4 位输入OUT 43H,ALMOV AL,0OUT 42H,AL

WAIT1: IN AL,42HAND AL,0FH ;取低 4 位CMP AL,0FHJZ WALT1MOV AH,ALMOV AL,10001000B ;方式 0, C 口高 4 位输入,低 4

位输出OUT 43H,ALMOV AL,AHOUT 42H,ALIN AL,42HAND AL,0F0H ;取高 4 位OR AL,AH… ;查表求出按键的键号

Page 83: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

83

7.4 串行通信7.4.1 串行通讯的基本概念CPU 与外设之间的信息交换,在每一个时间单位仅传

送一位信息,信息的所有位按顺序一位一位地传送,称为串行通信。

1. 串行通信的传送方式单工:单方向传送半双工:采用分时传送的办法全双工:发送和接收同时进行

A 发送器 B 接收器

单工

发送器

接收器

发送器接收器

半双工

发送器接收器

发送器接收器

全双工

Page 84: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

84

2. 调制与解调计算机远距离的通信可以借助电话电缆来传输信息。发送:把数字信号调制在载波信号。接收:把载波信号解调成数字信号。3 种调制方法:调频、调幅、调相。调频是把数字“ 1” 与“ 0”调制成两个频率不同的模拟信号;调幅是把数字“ 1” 与“ 0”调制成不同幅度的模拟信

号,频率保持不变;调相是把数字“ 1” 与“ 0”调制成不同相位的模拟信

号,频率和幅度保持不变;

Page 85: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

85

3. 同步通信和异步通信串行通信中有同步通信和异步通信两种基本方式。同步通信及规程:定义:由若干个字符组成一个信息组,字符间无间隔,称为帧。发送端和接收端的时钟信号频率和相位始终保持一致。

数据格式:单、双同步格式、 SDLC 同步数据链路控制规程、 HDLC 高级数据链路控制规程;

传送速率:可达几百K 波特

同步信息 数据 校验信息

CRC1数据 N CRC2数据 2……数据 1SYN2SYN1

CRC1数据 N CRC2数据 3……数据 2数据 1SYN1

Page 86: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

86

异步通信方式及规程定义:一个字符作为一个独立的信息单元,称为帧;

字符间的间隔时间不固定 ,字符内位和位的间隔时间固定;

格式:起始位、数据位、奇偶校验位、停止位;

传送速率: 用波特率表示 bps

奇偶校验位

停止位

空闲位

起始位起始位

数据位 5 ~8

高位低位

0 1 1 00 1 1 1 0000 1

Page 87: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

87

波特率是指每秒传送信息的位数。异步通信波特率: 75- 19200 波特,分为 10级;75, 110, 150, 300, 600, 1200, 2400, 4800,

9600, 19200如:每秒传送 120 个字符( 1 个起始位、 7 个数据位、

1 个奇偶校验、 1 个停止位,共计 10 位) 波特率= 10位 ×120 字符 /秒= 1200位 /秒

Page 88: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

88

7.4.2 串行通信的接口标准RS-232-C标准

是 EIA 电子工业协会推荐的串行通信接口标准,接口的两端称为 DTE和 DCE, 25 芯。

特点:信号线少;多种传送速率

50、 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19.2K , 33.6K, 56K ;

传送距离远;基带传输 30~50M负逻辑: 1 -5~-15V

0 +5~+15V

2 TXD 发送3 RXD 接受7 GND

Page 89: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

89

计算机 MODEM MODEM 计算机电话网

DTE DCE DTEDCE

RS-232-C

Page 90: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

90

7.4.3 可编程串行通信接口 8250

8250为 UART :通用异步通信收发器;它支持异步通信规程;芯片内部设置时钟发生器,通

过编程可设置数据的传送波特率;它提供 MODEM 所需的控制信号,接收来自 MODEM的状态信息等等。

功能 :1. 通用异步收发器;2. RS-232-C标准;3. 单工、半双工、全双工;4. 方便与 MODEM连接;

Page 91: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

91

作业:1、 3、 4、 5、 6、 9、 10、 11、 12

Page 92: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

92

接收数据寄存器

发送移位寄存器

发送数据寄存器

接收移位寄存器

数据缓冲寄存器

读写控制逻辑

MODEM控制逻辑

接收控制逻辑

发送控制逻辑

Page 93: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

93

利用计数器 1 作脉冲发生器,给定 CLK1为 2MHz ,产生频率为 1KHz 的脉冲。利用计数器 2 作脉冲发生器,给定 CLK2为 1MHz ,产生周期为 20ms的方波。

端口地址 80H 81H 82H 83H计数器 1 工作在方式 2 :

计数初值= 2×106/(1×103)=2000 控制字: 01110101计数器 2 工作在方式 3 :

计数初值= 1×106/(20×103)=20000 控制字: 10110110

Page 94: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

94

程序设计如下:ST: MOV AL,01110101B ;# 1 ,方式 2, BCD码 OUT 83H,AL MOV AL,00H ;先写入低字节计数值, OUT 81H,AL MOV AL,20H ;后写入高字节计数值

OUT 81H,AL MOV AL,10110110B ;# 2 ,方式 3 ,二进制 OUT 83H,AL ; MOV AL,20H :先写入低字节计数值 OUT 82H,AL MOV AL,4EH ;后写入高字节计数值 OUT 82H,AL HLT

Page 95: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

95

引脚 符号 功能 方向

23456782022

TXDRXDRTSCTSDSRGEDDCDDTRRI

发送数据接收数据请求发送清除发送数据设备准备好信号地数据载波检测数据终端准备好震铃信号

输出输入输出输入输入

输入输出输入

Page 96: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

96

8255

D0D1

D7

CS

A1A0

WRRD

PB0

PB1

PB2

PB3

PB4

PB5

PB6

PB7

3: 8CBA

G1G2AG2B

IOW

A7A6A5

A4A3A2A1A0

Y4

VCC

例: 8255的 B 端口接有 8 支彩灯,在方式0 下顺序点亮,每灯亮 1 秒,循环工作。

IOR

口地址: 90H 、 91H、 92H、 93H

Page 97: 吉林大学工学部计算机硬件基础课程 微机原理与接口技术

97

程序如下:方式控制字 :10000000程序如下:

MOV AL,80HOUT 93H,ALMOV AL,01H

AGAIN: OUT 91H,ALCALL DELAY ;延时 1 秒ROL AL,1JMP AGAIN