Download presentation
Presentation is loading. Please wait.
Published byVeronika Tanudjaja Modified 6年之前
1
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机显示器接口技术 单片机打印机接口技术 课时安排:7个课时
2
第7章 单片机I/O扩展及应用 7.1 单片机为什么需要I/O扩展 7.2 单片机简单I/O扩展 7.3 8255A可编程通用并行接口芯片
带RAM和定时器/计数器的可编程并行 接口芯片 可编程键盘/显示器接口芯片 7.6 MCS-51单片机键盘接口技术 7.7 MCS-51单片机显示器接口技术 7.8 MCS-51单片机打印机接口技术 思考题
3
7.1 单片机为什么需要I/O扩展 7.1.1 I/O口的直接使用 7.1.2 为什么要扩展I/O接口 7.1.3 I/O扩展的相关技术
4
7.1.1 I/O口的直接使用 1.无条件传送 ~ P1.0~P1.3 输入开关状态, 经P1.4~P1.7驱 动发光二极管,
K0 K1 K2 K3 L3 L2 L1 L0 图7-1 简单I/O应用电路连接 P1.0~P1.3 输入开关状态, 经P1.4~P1.7驱 动发光二极管, 使发光二极管显 示开关的状态。
5
2.中断方式数据传送 ~ 中断方式 实现上述同样 的功能。由开 关K在INT0端 口处产生外部 中断请求0,脉 冲边沿触发。 只要拨动开关
K,就读取K0 ~K3的状态, 驱动L0~L3的 亮灭。 P1.0 P1.3 P1.4 P1.7 ~ 开关 K0 K1 K2 K3 发光二极管 L3 L2 L1 L0 INT0 +5V K 图7-2 中断方式的简单I/O电路连接
6
ORG H START: AJMP MAIN ORG H AJMP EXTR ORG H MAIN: SETB IT0 SETB EX0 SETB EA HERE: AJMP HERE ORG H P1 EQU 90H EXTR: MOV A, #0FH MOV P1, A MOV A, P1 CPL A ANL A, #0FH SWAP A RETI
7
7.1.2 为什么要扩展I/O接口 1.单片机本身接口功能有限 2.单片机控制应用中的复杂接口要求 3.扩展I/O接口电路的功能
例如速度差异大、设备种类繁多、数据信号形式多种多 样。 3.扩展I/O接口电路的功能 例如速度协调、输出数据锁存、输入数据三态缓冲、数 据转换。
8
7.1.3 I/O扩展的相关技术 1.接口与端口 接口——是指计算机与外设之间在数据传送方面的联系,
因为其功能是通过电路实现的,因此称为接口电路。 在接口电路中,通常包含有数据寄存器、状态寄存器、 命令寄存器等,使得接口电路实现数据I/O传送过程中的界 面功能。 端口——通常把接口电路中那些可编址并能进行读或写 操作的寄存器称为端口(Port )。
9
对于输出设备的接口电路:要提供锁存器,当允许接收
2.数据总线隔离技术 数据总线连接着多个数据输入设备和多个数据输出设备, 但是在任一时刻,只能进行一个源和负载的数据传送,其它 不参与的设备在电性能上必须同数据总线隔开,这就需要解 决数据总线的隔离问题。 对于输出设备的接口电路:要提供锁存器,当允许接收 输出数据时闩锁打开,当不允许接收输出数据时闩锁关闭。 对于输入设备的接口电路:要使用三态(高电平、低电 平、高阻抗)缓冲电路,当三态缓冲器的输出为高或低电平 时,就是对数据总线的驱动状态;当三态缓冲器的输出为高 阻抗时,就是对总线的隔离状态。在隔离状态下,缓冲器对 数据总线不产生影响。
10
独立编址:即把I/O和存储器分开进行编址。这样在一个
在计算机中,凡是需要进行读/写操作的设备都存在编址 问题。在单片机中,有两个需要编址的子系统——即存储器和 接口电路。常用的编址方式有两种:独立编址、统一编址。 独立编址:即把I/O和存储器分开进行编址。这样在一个 单片机系统中就形成了两个独立的地址空间(存储器空间和 I/O地址空间),从而使存储器读/写操作和I/O操作是针对两 个不同的存储空间的数据操作。 统一编址:即把I/O接口中的寄存器和存储器中的存储单 元同等对待。即统一的地址空间既供存储器使用,又供I/O使 用。MCS-51单片机使用的就是统一编址方式。
11
7.1.4 单片机I/O控制方式 一个计算机系统的组成,除了CPU、存储器 外,还必须有外部设备。计算机通过输入/输出设
备和外界进行通信。计算机所用的数据以及现场 采集的各种信息都要通过输入设备送到计算机; 而计算的结果和计算机产生的各种控制信号又需 通过输出设备输出到外部设备。
12
又称同步传送,CPU和外设之间没有控制联络,传送比 较简单,但可靠性差。当外设任何时候都处于“准备好”状态 时就可以采用这种传送方式。
公共汽车方式 1. 无条件传送 又称同步传送,CPU和外设之间没有控制联络,传送比 较简单,但可靠性差。当外设任何时候都处于“准备好”状态 时就可以采用这种传送方式。 专车方式 2. 查询式传送 又称异步传送,CPU不断查询外设,得到“准备好”的信 息再进行数据传送,否则就等待。优点是可以很好地解决 CPU和外设地速度匹配问题。
13
利用CPU的中断功能,外设可以通过I/O端口提出中断请 求, 得到响应后在中断服务子程序中完成与CPU的数据交换。
TAXI方式 3. 中断传送 利用CPU的中断功能,外设可以通过I/O端口提出中断请 求, 得到响应后在中断服务子程序中完成与CPU的数据交换。 中断方式可以使CPU和多个外设各自并行工作,避免了CPU 不必要的等待和查询,大大提高了CPU的工作效率。且该方 式的实时性较好,适合于实时控制系统。 专列方式 4. DMA传送 DMA的含义是直接存储器存取,是以数据块为单位进行 数据传送,数据传送过程由DMA控制器控制完成,CPU不进 行干预,并且此时CPU让出三总线,当数据传送完成后, CPU再接管三总线。
14
7.2 单片机简单I/O扩展 1.简单输入口扩展 简单输入口扩展功能单一,只用于解决数据输入的缓冲
问题,实际就是一个三态缓冲器,以达到当输入设备被选通 时,使数据源能与数据总线直接连通;而当输入设备处于非 选通状态时,则把数据源与数据总线隔离,缓冲器输出呈高 阻抗状态。 通常使用芯片如74LS244来实现对输入数据的三态缓冲。 74LS244内部有2个4位的三态缓冲器,因此一片74LS244可以 扩展一个8位输入口(教材P175 图7.9)。
15
2.简单输出口扩展 输出口的主要功能是进行数据保持,或者说是 数据锁存。所以简单输出口扩展应使用锁存器芯片 实现。
通常使用芯片74LS377,该芯片是一个具有“使 能”控制端的8D锁存器(教材P177 图7.13)。
16
A可编程通用并行接口芯片 A 的内部结构与引脚 A的工作方式 A的控制字及初始化 A与系统的连接 A应用举例 思考题
17
7.3.1 8255A 的内部结构与引脚 8255A可编程并行输入/输出接口芯片是Intel公
司生产的标准外围接口电路。具有40条引脚,采用 双列直插式封装。它有A、B、C 三个端口,可以 通过编程的方法来设定端口的各种I/O功能。由于 它功能强,又能方便地与各种微机系统相接,而且 在连接外部设备时,通常不需要再附加外部电路, 所以得到了广泛的应用。
18
2) A组和B组控制电路:这是两组根据CPU的命令字控
可以通过软件将它们分别作为输入端口或输出端口,不过这3 个端口在不同的工作方式下有不同的功能及特点(如表7-2)。 2) A组和B组控制电路:这是两组根据CPU的命令字控 制8255A工作方式的电路。分别决定两组的工作方式,也可根 据CPU的命令字对端口C的每1位实现按位“复位”或“置位”。 A组控制电路控制端口A和端口C的高半字节(PC7~PC4)。 B组控制电路控制端口B和端口C的低半字节(PC3~PC0)。
19
图 A的内部结构图
20
表 A端口功能表
21
A的芯片引脚(如图7-16) (1) 与外设相连接的有:PA7~PA0:A口数据线 PB7~PB0:B口数据线 PC7~PC0:C口数据线 (2) 与CPU相连接的有:D7~D0:8255A的数据线 RESET:复位信号 :片选信号 :读信号 :写信号 CS RD WR A1、A0:端口选择信号(表7-3)
22
图 A的芯片引脚图
23
表 A端口选择表
24
A的工作方式 图 A的3种工作方式 (a)方式0; (b)方式1; (c)方式2
25
1. 方式0(基本输入/输出方式) 2. 方式1(选通输入/输出方式) 这种工作方式不需要任何选通信号,A口、B口及C口的
高4位和低4位都可以设定为输入或输出。 2. 方式1(选通输入/输出方式) 在这种方式下,A、B、C三个口将分为两组。A组包括 A口和C口的高4位,A口可由编程设定为输入口或输出口,C 口的高4位则用来作为输入/输出操作的控制和同步信号;B组 包括B口和C口的低4位, B口可由编程设定为输入口或输出口, C口的低4位则用来作为输入/输出操作的控制和同步信号。
26
图 方式1下的信号定义 (a)A口、B口均为输入时;(b)A口、B口均为输出时
27
② IBF(Input Buffer Full):输入缓冲器满信号
① STB(Strobe):选通信号 外设发出,送给8255A。 作用是将外设送来的数据锁存到8255A的输入端口。 ② IBF(Input Buffer Full):输入缓冲器满信号 8255A 发出,送给单片机。 当外设送来的数据送入输入端口后,8255A自动发出IBF,通知单片机可以来读取数据了。 ③ INTR(Interrupt Request):中断请求信号 8255A 发出,送给单片机。 用来向CPU发出中断申请。
28
④OBF(Output Buffer Full):输出缓冲器满信号
8255A发出,送给外设。 表示CPU送来的数据已进入8255A输出端口,可用来通知外设把数据取走。 ⑤ ACK:外设响应信号 外设发出,送给8255A。 作用是通知 8255A,输出端口的数据已被外设取走,可以传送下一个数据。
29
3. 方式2(双向数据传送方式) 这种工作方式下,A口为8位双向数据口,C口的PC3~ PC7用来作为输入/输出的控制同步信号。如下图所示,
5 | 19 方 式 2 下 的 信 号 定 义
30
7.3.3 8255A的控制字及初始化 1. 8255A的控制字 1) 工作方式控制字:用于确定各口的工作方式及数据
1) 工作方式控制字:用于确定各口的工作方式及数据 传送方向,其格式如图7-20(a)所示。 2) C口置位/复位控制字:可以很方便地使C口8位中的 任一位清0或置1,该控制字的格式如图7-20(b)所示。D7位 为该控制字的标志位,D7=0为C口置位/复位控制字。
31
图 A控制字格式 (a)工作方式控制字; (b)C口置位/复位控制字
32
2. 8255A的初始化 8255A初始化的内容就是向控制寄存器写入工作方式控 制字或C口置位/复位控制字。这两个控制字可按同一地址写
入且不受先后顺序限制。由于两个控制字因标志位的状态不 同,因此8255A能加以区分。 例:设置8255A的A口为方式0输入,B口为方式0输出,C 口高位部分为输出、低位部分为输入,设控制寄存器的地址 为03FFH。试编程对8255A进行初始化。
33
解:根据题意有,D0=1:C口低半部输入; D1=0:B口输出; D2=0:B口方式0; D3=0:C口高半部输出; D4=1:A口输入; D6D5=00:A口方式0; 因此8255A的工作方式控制字为 B即91H。 初始化程序段为: MOV DPTR,#03FFH MOV A,#91H MOVX @DPTR,A
34
7.3.4 8255A与系统的连接 8255A是Intel公司专为其主机配套设计制造 的标准化外围接口芯片,它与MCS-51单片机的
连接是比较简单方便的。图7-21所示为采用线选 法在8051单片机外围扩展8255A。
35
图 与8255A的连接
36
上图中,P0口为地址/数据复用口。数据通过P0口直接传
送,地址的低8位通过锁存器74LS373得到,地址的高8位则由 P2口传送。现采用线选法,地址线P2.7作为线选信号,直接与 8255A的片选端 相连,而A1、A0则与地址的最末2位相连。 于是可得到8255A各个端口的地址如下表所示, CS 表 A各端口的地址
37
7.3.5 8255A应用举例 例1:图7-21中,8255A的PA口接一组开关、PB口接一
分析:由图可知,8255A的PA口、PB口、PC口、控制口 的地址分别为0000H、0001H、0002H、0003H(或7FFCH、 7FFDH、7FFEH、7FFFH)。PA口选择方式0,输入。PB 口选择方式0,输出。PC口没有作特别限制,故8255A的方式 控制字为: B,即98H。
38
MOV DPTR, #7FFFH MOV A, #98H MOVX @DPTR, A MOV DPTR, #7FFCH MOVX A, @DPTR MOV DPTR, #7FFDH MOVX @DPTR, A ; 指向8255A控制字的地址 ; 把方式控制字写到累加器A中 ; 给8255A送方式控制字 ; 指向8255A的PA口地址 ; 从PA口读入开关的状态 ; 指向8255A的PB 口地址 ; 把开关的状态从PB口输出, 给 ; 指示灯显示
39
CS 例2:8255A作为连接打印机的接口。要求编制打印50 个字符的程序,该数据存于片内RAM从20H开始的50个连 续单元中。
P0.7直接与8255A的 端相连(通过地址锁存器)。 CS 8255A的端口地址:A口为7CH,B口为7DH,C口为7EH, 控制口为7FH(对悬空的地址线取“1”)。 由于A口输出;C口低字节输出、高字节输入;B口没有 使用。A口选择方式0。故控制字为: B,即88H。
40
图 A连接打印机的接口电路 8255A
41
解:根据题意,编制程序如下: MOV R0,#7FH ;指向8255A的控制口 MOV A,#88H ; A口输出,C口低出高入
注:打印机各信号线 DB0~DB7:数据线,单向传输,由单片机输入给打印机。 STB(STROBE):数据选通信号。在该信号的上升沿,数据线上的8位并行数据被打印机读入机内琐存。 BUSY:打印机忙状态信号。当BUSY=1时,表示打印机正忙于处理数据,此时,打印机不得使 STB=0。 解:根据题意,编制程序如下: MOV R0,#7FH ;指向8255A的控制口 MOV A,#88H ; A口输出,C口低出高入 MOVX @R0, A ;送入方式字 MOV R1,#20H ;R1指向数据区首址 MOV R2,#32H ;送数据块长度 LP1:MOV R0,#7EH ;指向C口
42
LP2:MOVX ;读入C口信息 JB ACC.7, LP2 ;若BUSY=1,继续查询 MOV R0, #7CH ;指向A口 MOV ;取RAM数据(片内到片外的数据传送) MOVX @R0, A ;数据输出到A口 INC R ;数据指针加1 MOV R0, #7FH ;指向控制口 MOV A, #00H ; C口置位/复位命令字(PC0=0) MOVX @R0, A ;在STB引脚产生低电平 MOV A, #01H ; 改变C口置位/复位命令字(PC0=1) MOVX @R0, A ;在STB引脚产生高电平 DJNZ R2, LP ;未完,则反复
43
7.4 8155带RAM和定时器/计数器 的可编程并行接口芯片
Intel公司研制的8155不仅具有两个8位的I/O端口(A口、B口)和一个6位的I/O端口(C口),而且还可以提供256 B的静态RAM存储器和一个14位的定时/计数器。8155和单片机的接口非常简单,目前被广泛应用。
44
的结构和引脚 8155有40个引脚,采用双列直插封装。 图 的引脚图和结构框图
45
我们对8155的引脚分类说明如下: (1) 地址/数据线AD0~AD7(8条):是低8位地址线和数据线的共用输入总线,常和51单片机的P0口相连,用于分时传送地址数据信息,当ALE=1时,传送的是地址。 (2) I/O口总线(22条):PA0~PA7、PB0~PB7分别为A、B口线,用于和外设之间传递数据;PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线。 (3) 控制总线(8条) RESET:复位线,通常与单片机的复位端相连,复位后,8155的3个端口都为输入方式。
46
RD, WR :读/写线,控制8155的读、写操作。 ALE:地址锁存线,高电平有效。它常和单片机的ALE端相连,在ALE的下降沿将单片机P0口输出的低8位地址信息锁存到8155内部的地址锁存器中。因此,单片机的P0口和8155连接时,无需外接锁存器。 CE :片选线,低电平有效。 IO/M:RAM或I/O口的选择线。当=0时,选中8155的256B RAM;当=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。
47
TIMERIN、TIMEROUT:定时/计数器的脉冲输入、输出线。TIMERIN是脉冲输入线,其输入脉冲对8155内部的14位定时/计数器减1;为输出线,当计数器计满回0时,8155从该线输出脉冲或方波,波形形状由计数器的工作方式决定。
48
2. 作片外RAM使用 当CE=0,IO/M=0时,8155只能做片外RAM使用,共256 B。其寻址范围由AD0~AD7的接法决定,这和前面讲到的片外RAM扩展时讨论的完全相同。当系统同时扩展片外RAM芯片时,要注意二者的统一编址。对这256B RAM的操作使用片外RAM的读/写指令“MOVX”。
49
3. 作扩展I/O口使用 当 CE=0,IO/M=1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分,表7-5为地址分配情况。 表 个内部寄存器的地址分配表 AD7~AD0 选中寄存器 A7 A6 A5 A4 A3 A2 A1 A0 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 内部命令/状态寄存器 PA口 PB口 PC口 定时/计数器低8位寄存器 定时/计数器高8位寄存器
50
(1) 命令寄存器 和接口芯片8255一样,芯片8155 I/O口的工作方式的确 定也是通过对8155的命令寄存器写入控制字来实现的。 8155控制字的格式如图7-10所示。 命令寄存器只能写入不能读出,也就是说,控制字只能 A写入命令寄存 器。
51
图 的控制字
52
(2) 状态寄存器:状态寄存器中存放有状态字,状态字反映了8155的工作情况,状态字的各位定义如图7-11所示.
图 的状态字
53
4. I/O口的工作方式 当使用8155的三个I/O端口时,它们可以工作于不同的方式,工作方式的选择取决于写入的控制字,如图7-10所示。其中,A、B口可以工作于基本I/O方式或选通I/O方式,C口可工作于基本I/O方式,也可以作为A、B选通方式时的控制联络线。 方式1、2时,A、B、C口都工作于基本I/O方式,可以直接和外设相连,采用“MOVX”类的指令进行输入/输出操作。 方式3时,A口为选通I/O方式,由C口的低三位作联络线,其余位作I/O线;B口为基本I/O方式。
54
方式4时,A、B口均为选通I/O方式,C口作为A、B口的联络线。其逻辑组态如图7-12所示。
图 方式4时的逻辑结构
55
C口的工作方式和各位的关系见表7-6 。 表7-6 C口的工作方式 方式1 方式2 方式3 方式4 PC0 PC1 PC2 PC3 PC4
方式1 方式2 方式3 方式4 PC0 PC1 PC2 PC3 PC4 PC5 全部为 输入 输出 A口中断请求 A口缓冲器满 A口选通 B口中断请求 B口缓冲器满 B口选通 表 C口的工作方式
56
5. 作定时/计数器使用 8155的可编程定时/计数器是一个14位的减法计数器,在TIMERIN端输入计数脉冲,计满时由 输出脉冲或方波,输出方式由定时器高8位寄存器中的M2、M1两位来决定。当TIMERIN接外脉冲时为计数方式,接系统时钟时为定时方式,实际使用时一定要注意芯片允许的最高计数频率! 定时/计数器的初始值和输出方式由高、低8位寄存器的内容决定,初始值14位,其余两位定义输出方式。其中,低8位寄存器存放计数初始值的低8位,高8位寄存器的格式如下: 输出方式 计数初始值高6位 M M1
57
1) 定时/计数器的输出方式 定时器的输出方式见表7-7。 表7-7 定时器的输出方式 M2 M1 方 式 波 形 0 0 0 1 1 0
定时器的输出方式见表7-7。 表7-7 定时器的输出方式 M2 M1 方 式 波 形 0 0 0 1 1 0 1 1 在一个计数周期输出单次方波 连续方波 在计满回0后输出的单个脉冲 连续脉冲
58
若定时器不工作,则开始计数;若定时器正在计数,则计满回0后按新输入的长度值开始计数
2) 定时/计数器的工作 8155对内部定时器的控制是由8155控制字的D7、D6位决定的(见图7-11),现总结如表7-8所示。 8155的控制字 定时/计数器工作情况 D7 D6 无操作,即不影响定时器的工作 立即停止定时器的计数 定时器计满回0后停止计数 若定时器不工作,则开始计数;若定时器正在计数,则计满回0后按新输入的长度值开始计数 表7-8 定时/计数器的工作情况
59
【例7-1】编写8155定时器作100分频器的程序。设8155命令寄存器的地址为0000H,定时器低字节寄存器的地址为0004H,定时器高字节寄存器的地址为0005H。
编程如下: ORG H MOV DPTR,#0004H ;指向定时器低字节寄存器地址 MOV A,#64H MOVX @DPTR, A ;装入定时器初值低8位值 INC DPTR ;指向定时器高字节寄存器地址 MOV A, #40H MOVX @DPTR,A ;设定时器输出方式为连续方波 MOV DPTR, #0000H ;指向命令寄存器地址 MOV A, #0C0H MOVX @DPTR, A ;装入命令字,开始计数 SJMP $
60
6. MCS-51单片机和8155的接口 MCS-51和8155的接口非常简单,因为8155内部有一个8位地址锁存器,故无需外接锁存器。在二者的连接中,8155的地址译码即片选端可以采用线选法、全译码等方法,这和8255类似。在整个单片机应用系统中要考虑与片外RAM及其它接口芯片的统一编址,确定8155的相关地址。图7-13为一个连接实例。
61
8051 8155 图7-13 8155和8051的接口电路 ALE RD PA WR P2.1 CE PB P2.2 IO/M 8 P0
RST RESET ALE RD WR P0 AD0~AD7 CE IO/M P2.1 P2.2 +5 V PA PB PC 8 图 和8051的接口电路
62
根据上述、的连接关系,可以确定地址如下:
8051: A A A A A A A A8 P P P P P P P P2.0 8155的 IO/M CE RAM: × × × × × × I/O口: × × × × × ×
63
8051: A A A A A A A A0 P P P P P P P P0.0 8155: AD AD0 I/O口: × × × × × × × × … … … … … … … … × × × × × × × ×
64
此时,8155内部RAM的地址范围为:0000H~00FFH,8155各端口的地址(设无关位为0,这些地址都不是惟一的)为:
A口 H B口 H C口 H 定时器低字节 0404H 定时器高字节 0405H
65
7.5 8279可编程键盘/显示器接口芯片 8279是可编程的键盘显示接口芯片,它能自动 完成键盘的扫描输入和LED扫描显示输出。
可编程键盘/显示器接口芯片 8279是可编程的键盘显示接口芯片,它能自动 完成键盘的扫描输入和LED扫描显示输出。 键盘部分提供的扫描方式,可以和具有64个触 点的键盘或传感器相连。能自动清除按键抖动,并 实现多键同时按下的保护。 显示部分按扫描方式工作,可以连接8位或16 位LED显示块。
66
一、8279的电路逻辑 1、芯片接口控制逻辑 8279的电路逻辑分为芯片接口控制逻辑、键盘接口控制 逻辑、显示器接口控制逻辑三部分。
芯片接口控制逻辑是8279和单片机的接口部分。主要包括: 数据缓冲器 -用于8279和单片机之间的数据传送。 I/O控制电路 - 用于接收单片机方面送来的控制信号,进而产生 8279内部的控制信号。 中断请求产生电路 - 如果有按键按下,则向单片机产生中断请求信号。
67
2、键盘接口控制逻辑 键盘接口控制逻辑是8279和键盘的接口部分。主要包括: 扫描电路 -用于为键盘提供行扫描输出信号。有两种输出形式,
即内部译码方式、外部译码方式。 扫描回送电路 - 输入每次扫描的列检测输入信号,以搜索闭合键。 去抖动及键码生成电路 - 大约延时10ms去抖动。并由键码生成电路将该键的行 列号、换挡键、控制键等状态结合起来,生成闭合键 的键码,送入FIFO 存储器区中。
68
键盘存储器区 FIFO RAM - 包括8个先进先出的存储单元,用于存储闭合键的键 码数据。 时序和控制逻辑 - 用于对键盘扫描进行控制。
69
3、显示器接口控制逻辑 显示器接口控制逻辑是8279和LED显示器的接口部分。主 要包括: 显示存储区
- 8279可以连接8位或16位的LED显示器。为给每位LED 提供显示数据,在8279芯片内部有一个16×8的RAM存 储区,其中每一个字节的RAM单元对应一位LED。 显示缓冲器 - 用于为显示器提供段控数据。使用时,8279自动对显 示器扫描,将显示缓冲器中的数据输出在LED上显示 出来。
70
二、8279内部结构和引脚 下图是8279的内部结构图,它主要分为6个部分: (1)I/O控制及数据缓冲器;
(2)控制与定时寄存器及定时控制; (3)扫描计数器; (4)回复缓冲器,键盘反弹与控制; (5)FIFO传感器RAM及其状态寄存器; (6)显示RAM和显示地址寄存器。
71
数据缓冲器 I/O控制 FIFO/传感器 RAM的 状态寄存器 控制与定 时寄存器 8×8FIFO/ 传感器RAM 键盘反弹 与控制 定时与
扫描计数器 回送 显示寄存器 显示 地址 寄存器 16×18 RAM D0~D7 RD WR CS A0 IRQ 时钟复位 OUTA0~OUTA3 OUTB0~OUTB3 BD SL0~SL3 RL0~RL7 SHIFT STB
72
键盘 接口 8279 CPU 显示 RL0~RL7 SHIFT CNTL/STB SL0~SL3 OUTA0~OUTA3
OUTB0~OUTB3 BD IRQ DB0~DB7 RD WR CS A0 RESET CLK 键盘 接口 显示 CPU
73
二、8279的命令字和状态字 8279有8个可编程的命令字,用来设定键盘和LED显示器的工作方式,实现对各种数据的读、写操作。
有1个状态字,用于反应键盘的FIFO RAM的工作状态。
74
1、键盘/显示方式设置命令 D K D4 D3:设定显示方式 00 8个字符显示,左入口; 01 16个字符显示,左入口;
D K D7 D6 D5 D4 D3 D2 D1 D0 D4 D3:设定显示方式 个字符显示,左入口; 个字符显示,左入口; 个字符显示,右入口; 个字符显示,右入口。 D2 D1 D0:设定七种键盘工作方式 编码扫描,双键锁定; 译码扫描,双键锁定; 编码扫描,N键轮回; 译码扫描,N键轮回; 编码扫描传感器矩阵; 译码扫描传感器矩阵; 选通输入,编码显示扫描; 选通输入,译码显示扫描。
75
2、编程时钟命令 3、读FIFO传感器RAM命令 1 P D4 D3 D2 D1 D0:设定对CLK端输入时钟的分频次数N N = 2~31
1 P D7 D6 D5 D4 D3 D2 D1 D0 D4 D3 D2 D1 D0:设定对CLK端输入时钟的分频次数N N = 2~31 3、读FIFO传感器RAM命令 1 AI X A D7 D6 D5 D4 D3 D2 D1 D0 D2 D1 D0:要读取的传感器RAM地址。 D4:自动地址增量标志,每读出一字节后,AAA地址自动加1。
76
4、读显示RAM命令 5、写显示RAM命令 1 AI A D3 D2 D1 D0:用来寻址显示RAM的16个存储单元。
1 AI A D7 D6 D5 D4 D3 D2 D1 D0 D3 D2 D1 D0:用来寻址显示RAM的16个存储单元。 D4:地址自动增量标志。 5、写显示RAM命令 1 AI A D7 D6 D5 D4 D3 D2 D1 D0 D3 D2 D1 D0:将要写入的显示RAM地址。 D4:地址自动增量标志。
77
6、显示禁止写入/消隐命令 7、结束中断/错误方式设置命令 1 X IW/A IW/B BL/A BL/B
X IW/A IW/B BL/A BL/B D7 D6 D5 D4 D3 D2 D1 D0 D3 D2:A、B组显示RAM写入屏蔽位,为1时显示RAM禁止写入。 D1 D0:消隐设置位。为1时输出消隐,为0时恢复显示。 7、结束中断/错误方式设置命令 1 E X D7 D6 D5 D4 D3 D2 D1 D0 D4:为1时有效。
78
8、清除命令 1 CD CF CA D4 D3 D2:用于设置清除RAM方式。 10X:将显示RAM全部清“0”;
CD CF CA D7 D6 D5 D4 D3 D2 D1 D0 D4 D3 D2:用于设置清除RAM方式。 10X:将显示RAM全部清“0”; 110: 将显示RAM清成20H; 111: 将显示RAM全部清“1”。 D1:用来置空FIFO RAM。 D0:为总清特征值。它兼有CD和CF的联合效用。
79
9、8279的状态字 DU S/E O U F N D7:为1表示显示无效。
D5、D4:数据超出,不足标志。 D3:为1时表示FIFO RAM中8个数据已满。 D2、D1、D0:指明FIFO RAM中的数据个数。
80
三、8279和8051的接口 下图是8051、8279与键盘、LED显示器的接口电路。
当有键按下时,8279可用中断方式通知8051。编程实现功能为:当有键00H~0FH按下时,完成键值获取,并用LED输出显示键值。
81
. 8279 位驱动 Y0 Y1 Y2 Y4 Y5 Y3 A B C SL0 SL1 SL2 段 驱 动 8051 D0 D7 ALE
RL0 . RL7 Y0 Y1 Y2 Y4 Y5 Y3 A B C SL0 SL1 SL2 段 驱 动 8051 74LS373 CLK A0 D0 D7 ALE P0.0 P0.7 8279 CE RD WR IRQ P2.5 INT0 OUTA3 OUTB0 74LS138
82
MCS-51单片机键盘接口技术 按键工作原理 独立式按键 矩阵式按键 键盘的工作方式
83
按键工作原理 1.按键的分类 按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。 按键照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。 编码键盘需要较多的硬件,价格较贵,一般的单片机应用系统较少采用,而主要采用非编码键盘。
84
2.键输入原理 在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。 对于一组键或一个键盘,总有一个接口电路与CPU相连。 CPU可以采用查询或中断方式了解有无将键输入,并检查是 哪一个键按下,将该键号送入累加器ACC,然后通过跳转指 令转入执行该键的功能程序,执行完后再返回主程序。
85
3.按键结构与特点 图 按键触点的机械抖动 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图7-14所示,抖动时间的长短与开关的机械特性有关,一般为510 ms。
86
在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。现主要介绍软件去抖的方法。 软件上采取的措施是:在检测到有按键按下时,执行一个10 ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。
87
4.按键编码 5.编址键盘程序 一组按键或键盘将采用某种编码方式,转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。
(1) 检测有无按键按下,并消除抖动。 (2) 每次处理一个按键。即其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。 (3) 准确输出按键值(或键号),以满足跳转指令要求。
88
7.6.2 独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。 1. 独立式按键结构
独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。 1. 独立式按键结构 独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态,如图7-15所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。
89
独立式按键电路
90
2. 独立式按键的软件结构 独立式按键的软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。
91
7.6.3 矩阵式按键 单片机系统中,若使用按键较多时,通常采用矩阵式(也称行列式)键盘。 1. 矩阵式键盘的结构及原理
矩阵式按键 单片机系统中,若使用按键较多时,通常采用矩阵式(也称行列式)键盘。 1. 矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如图7-16所示。 由图可知,一个4×4的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。
92
图 矩阵式键盘结构
93
. 下图即是 8051 与行列式键盘的接口电路。其中 P1 口作 键盘接口,P1.0~P1.3 作键盘的行扫描输出线,P1.4~P1.7
作列检测输入线。 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 8051 +5V 10kΩ . 图 与行列式键盘的接口电路
94
2. 键盘扫描程序的步骤 (1)行扫描法: 逐行扫描。单片机首先使P1.0接地,P1.1~P1.7为“1”, 即向P1口发送扫描码 0FEH,接着读入列检查信号, 若P1.4~P1.7全为“1”,表示不在第1行。接着使P1.1 接地, ……,这样逐行发“0”扫描码,直到找到按下键 所在行、列或查出无键按下。
95
线反转法比扫描法要简练,无论被按键是处于哪列,均可经过两步即能获得此按键所在的行列值:
(2)线反转法: 线反转法比扫描法要简练,无论被按键是处于哪列,均可经过两步即能获得此按键所在的行列值: 第一步:将行线P1.0~P1.3置低,列线置高,读列线状态,值为低的列即为按键按下的列。 第二步:将列线P1.4~P1.7置低,行线置高,读行线状态,值为低的行即为按键按下的行。
96
(3)对得到的行号和列号进行译码,得到机器
内部能够识别的键值。 例如:找到闭合键在第1行,第3列。如果每行 有4个按键,则该闭合键的键值为“1×4+3=7”。 得出键号后,就可以转入相应处理程序。
97
(4)按键的抖动处理。当用手按下一个键时,往往会出 现所按键在闭合位置和断开位置之间跳几下才能稳定到闭合
状态,释放一个键时,也有类似情况,我们称这种现象为键 抖动。若抖动问题不解决,就会引起对闭合键的多次读入。 对于键抖动最方便的解决方法是:当发现有键按下时, 不是立即进行逐行扫描,通常是延时 3-10ms 后再进行,这 样,延时一段时间后读取的就是稳定的按键信息。 t1 t0 t2 t3 t4
98
键盘的工作方式 键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。 (1) 编程扫描方式 编程扫描方式是利用CPU完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入的要求。在执行某一个键功能程序时,CPU不再响应其它键输入要求,直到CPU重新扫描键盘为止。
99
键盘扫描程序一般应包括以下内容: (1) 判别有无键按下。 (2) 键盘扫描取得闭合键的行、列值。 (3) 用计算法或查表法得到键值。 (4) 判断闭合键是否释放,如没释放则继续等待。 (5) 将闭合键键号保存,同时转去执行该闭合键的功能。
100
(2) 定时扫描方式 定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。定时扫描方式的硬件电路与编程扫描方式相同,程序流程图如图7-18所示。
101
图 定时扫描方式程序流程图
102
(3) 中断扫描方式 采用上述两种键盘扫描方式时,无论是否按键,CPU都要定时扫描键盘,而单片机应用系统工作时,并非经常需要键盘输入,因此,CPU经常处于空扫描状态。 为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。 图7-19是一种简易键盘接口电路。P1.4P1.7是键输出线,P1.0P1.3是扫描输入线。图中的4输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。
103
具体工作如下:当键盘无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,端为低电平,向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描子程序。
图 中断扫描键盘电路 +5V
104
键盘行扫法例程 KEYNUM DATA 40H LINE DATA 41H COLUM DATA 42H SCANCODE DATA 43H
ISNEWKEY BIT 40H ORG 0000H AJMP MAIN ORG 0003H AJMP INT_0 ORG 0030H MAIN: CLR ISNEWKEY MOV SCANCODE, #0FEH;;;;;初始化变量 SETB IT0 SETB EX0 SETB EA;;;;;;;;;开中断 L1: MOV P1, #0F0H;;;;;设置一次中断触发初始条件 JNB ISNEWKEY, $ MOV A, KEYNUM CPL A MOV DPTR, #TAB_NU MOVC MOV P2, #0FFH MOV P2, A LCALL DELAY SJMP L1 INT_0: LCALL SCA_CALC RETI SCA_CALC: MOV R7, #04H MOV LINE, #00H MOV COLUM, #00H MOV A, SCANCODE LOOP1: MOV P1, A MOV B, P1 JNB B.4, CALCKEY INC COLUM JNB B.5, CALCKEY JNB B.6, CALCKEY JNB B.7, CALCKEY DJNZ R7, SHIFTLA RET SHIFTLA: RL A INC LINE SJMP LOOP1 CALCKEY: LCALL DELAY;延时消抖 MOV B, P1 MOV R6, COLUM INC R6 MOV A, #08H RL A DJNZ R6, $-1 ANL A, B JNZ CALCRET MOV A, LINE ORL A, COLUM CPL A MOV KEYNUM, A SETB ISNEWKEY CALCRET: RET DELAY: MOV R3, #00H DJNZ R3, $
105
MCS-51单片机显示器接口技术 LED显示器 静态显示方式 动态显示方式
106
LED显示器 1. 数码管简介 (1) 数码管结构 七段数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0 9、字符A F、H、L、P、R、U、Y、符号“”及小数点“”。数码管的外形结构如图7-20(a)所示。数码管又分为共阴极和共阳极两种结构,分别如图7-20(b)和图7-20(c)所示。
107
图7-20 数码管结构图 (a) 外型结构;(b) 共阴极;(c)共阳极
108
(2) 数码管工作原理 共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
109
(3) 数码管字形编码 要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。对照图7-20(a),字型码各位定义为:数据线D0与a字段对应,D1与b字段对应……,依此类推。如使用共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮。如要显示“0”,共阳极数码管的字型编码应为: B(即C0H);共阴极数码管的字型编码应为: B(即3FH)。依此类推,可求得数码管字形编码如表7-9所示。
110
表7-9 数码管字型编码表 字型 共 阳 极 共 阴 极 g f e d c b a 字型码 G 1 C0H 3FH F9H 06H 2
表7-9 数码管字型编码表 显示字符 字型 共 阳 极 共 阴 极 dp g f e d c b a 字型码 G 1 C0H 3FH F9H 06H 2 A4H 5BH 3 B0H 4FH 4 99H 66H 5 92H 6DH 6 82H 7DH 7 F8H 07H 8 80H 7FH 9 90H 6FH A 88H 77H B 83H 7CH C C6H 39H
111
续表 字型 共 阳 极 共 阴 极 dp g f e d c b a 字型码 G D 1 A1H 5EH E 86H 79H F 8EH
显示字符 字型 共 阳 极 共 阴 极 dp g f e d c b a 字型码 G D 1 A1H 5EH E 86H 79H F 8EH 71H H 89H 76H L C7H 38H P 8CH 73H R CEH 31H U C1H 3EH Y 91H 6EH BFH 40H . 7FH 80H 熄灭 灭 FFH 00H
112
7.7.2 静态显示方式 静态显示是指数码管显示某一字符时,相应的发光二极管 恒定导通或恒定截止。
静态显示方式 静态显示是指数码管显示某一字符时,相应的发光二极管 恒定导通或恒定截止。 这种显示方式的各位数码管相互独立,公共端恒定接地 (共阴极)或接正电源(共阳极)。每个数码管的8个字段分 别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字 符即显示出来,并保持不变,直到I/O口输出新的段码。采用 静态显示方式,较小的电流即可获得较高的亮度,且占用CPU 时间少,编程简单,显示便于监测和控制,但其占用的口线多, 硬件电路复杂,成本高,只适合于显示位数较少的场合。
113
图7-21是一个静态显示的电路图。 可以直接利用单片机的并行输出口或输出琐存芯片,也 可以用单片机串行口扩展多片串入并出的移位寄存器作为静 态显示接口。如图7-21所示,图中在单片机串口处扩展了8片 串入并出琐存器 74LS164,发光二极管采用共阴极接法。
114
… . 图7-21 静态显示器接口 注:(1)74LS164 是串入并出移位寄存器;
TXD RXD MCS-51 74LS164 LED0共阴极 LED1共阴极 LED7共阴极 a b c d e f g . … 1,2 13 12 11 10 6 5 4 3 8 9 图7-21 静态显示器接口 注:(1)74LS164 是串入并出移位寄存器; (2)74LS164 的第1、2引脚是串行输入口;第3、4、5、 6、10、11、12、13引脚是并行输出口; (3)74LS164 的第8引脚是时钟信号输入口;第9引脚是 清零信号输入口。
115
; 指向存放LED7即将显示的数字的单元地址 ; 指向存放LED7即将显示的数字的单元地址 ; 一帧发送完后自动将TI置1,未发送完时为0
DIR: MOV R7, #08H MOV R0, #7FH DL0: MOV A, @R0 ADD A, #0BH MOVC A, @A+PC MOV SUBF, A DL1: JNB TI, DL1 CLR TI DEC R0 DJNZ R7, DL0 RET SEGTAB: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH DB 77H, 7CH, 39H, 5EH, 79H DB 71H, 40H, 73H, 1CH, 00H ; 定义8个内存单元用来存放待显示的数字 ; 指向存放LED7即将显示的数字的单元地址 ; 指向存放LED7即将显示的数字的单元地址 ; 变址寻址方式中的偏移量 ; 外部 ROM 数据传送指令 MOVC 2 3 1 ; SBUF 是串行口的输出缓冲器 ; 一帧发送完后自动将TI置1,未发送完时为0 ; 软件将TI清零 ; 指向下一位待显示的数据的存储单元地址 ; 检查是否8位数据已经串行发送完毕? ; 子程序返回指令 ; 0, 1, 2, 3, 4 ; 5, 6, 7, 8, 9 ; A, B, C, D, E ; F, -, P, , E ]
116
动态显示方式 1) 动态显示概念 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的位选线(公共阴极或阳极)由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。
117
采用动态显示方式比较节省I/O口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时间。
图中,数码管采用共阴极LED,8155的A口线经过8路驱动电路后接至数码管的各段。当A口线输出“1”时,驱动数码管发光。8155的B口线经过6路驱动电路后接至数码管的公共端。当C口线输出“0”时,选通相应位的数码管发光。
118
. 8155 图7-22 动态显示器接口 8051 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PA5 PA4 PA3
c d e f g . COM0 COM1 COM2 COM3 COM4 COM5 共阴极显示器 +5V 75452 7407 图7-22 动态显示器接口
119
DIR: MOV R0, #79H MOV R3, #FEH MOV A, R3 LDO: MOV DPTR, #7F01H MOVX @DPTR, A INC DPTR MOV A, @R0 ADD A, #0DH MOVC A, @A+PC DIR: MOVX @DPTR, A ACALL DL1 INC R0 MOV A, R3 JB ACC.5, LD1 RL A MOV R3, A SJMP LDO LD1: RET SEG: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH DB 77H, 7CH, 39H, 5EH, 79H DB 71H, 40H, 73H, 1CH, 00H DL1: MOV R7, #02H DL: MOV R6, #0FFH DL6: DJNZ R6, DL6 DJNZ R7, DL RET
121
MCS-51单片机打印机接口技术
123
思 考 题 1. 请用线选法在8051外部扩展两块2764芯片, 画出电路连接图 ? 2. 请用译码法在8051外部扩展两块2764芯片,
思 考 题 1. 请用线选法在8051外部扩展两块2764芯片, 画出电路连接图 ? 2. 请用译码法在8051外部扩展两块2764芯片, 画出电路连接图 ? A有哪几种工作方式?怎样选择其工作 方式 ?
124
√ √ 4. 试编程对8255A进行初始化,使其A口按方 式0输入;B口按方式1输出;C口上半部分按方式0
地址为0EF83H) ? 5. 80c51单片机内部有几个定时器/计数器?它 们是由哪些专用寄存器组成的 √ ? 6. 定时器/计数器用做定时方式时,其定时时 间与哪些因素有关?用作计数时,对外界计数频率 有何限制 √ ?
125
√ 7. 80c51单片机的定时器/计数器有哪几种工作 方式 ? 8. 在80C51单片机中,已知时钟频率为12MHz,
请编程使 P1.0 和 P1.1 引脚分别输出周期为 2ms 和 500μs 的方波 √ ? 9. 用80C51的定时器测量某正脉冲的宽度,采 用何种方式可得到最大量程?若时钟频率为6MHz, 求允许测量的最大脉冲宽度是多少 ?
126
1. 采用线选法在8051外部扩展两片2764的连接图如下: 线选法
127
2. 采用译码法在8051外部扩展两片2764的连接图如下: 译码法
128
3. 解:8255A有3种工作方式,即方式0、方式1、方式2。
1)方式0(基本输入/输出方式):这种工作方式不需要任何选通信 号,A口、B口及C口的高4位和低4位都可以设定为输入或输出。 2)方式1(选通输入/输出方式):在这种方式下,A、B、C三个口 将分为两组。A组包括A口和C口的高4位,A口可由编程设定为输入口或输 出口,C口的高4位则用来作为输入/输出操作的控制和同步信号;B组包 括B口和C口的低4位, B口可由编程设定为输入口或输出口,C口的低4位 则用来作为输入/输出操作的控制和同步信号。 3)方式2(双向数据传送方式):在这种工作方式下,A口为8位双向 数据口,C口的PC3~PC7用来作为输入/输出的控制同步信号。 8255A的工作方式是通过对控制口输入控制字的方式实现的。方式选 择控制字的格式与定义见书P74页,图5-10。
129
4. 解:根据题意,可得8255A的控制字为 B,即95H。于是,可编程如下: MOV DPTR, #0EF83H MOV A, #95H MOVX @DPTR, A
130
5. 80C51单片机内部设有2个16位的可编程定时器/计数
器,简称为T0和T1。它们由特殊功能寄存器TMOD、TCON、 TH0、TL0、TH1、TL1组成。 6. 80C51单片机内部的T/C用作定时功能时,其定时时 间与时钟周期、计数器的长度(如8位、13位、16位等)、定 时初值等因素有关。 作计数功能时,外部数据的最高计数频率为振荡频率 (即时钟周期)的1/24。
131
7. 80C51单片机的定时器/计数器有4种工作方式: (1)方式0是一个13位的T/C。当TL0的低5位溢出时向
TH0进位,而TH0溢出时将中断标志TF0置“1”,并申请中断。 (2)方式1是一个16位的T/C,操作几乎与方式0相同。 (3)方式2是能重复置初值的8位T/C。该方式具有自动恢 复初值的功能,适合作较精确的定时脉冲信号发生器。 (4)方式3只适用于T0,除了仅用8位寄存器TL0外,其功 能和操作方式与方式0、方式1完全相同。
132
8. 选用 T1 定时 250μs,工作方式设为 2,用 TL1 作为
8 位定时器,产生 250μs 的定时,定时初值 X 为: X = 256 - = 6 250μs 1μs 故 TH1=TL1=6H,TMOD=20H。编程如下: MOV TMOD, #20H MOV TH1, #06H MOV TL1, #06H SETB TR1 RPTA: MOV R2, #04H RPTB: JNB TF1, $ CLR TF1 CPL P1.1 DJNZ R2, RPTB CPL P1.0 LJMP RPTA
133
9.(1)将外部脉冲引至 INT0 引脚上,设 T0 为定时器
方式 1,GATE 位置为“1”,TR0 为 1。 一旦 INT0(P3.2)引脚上出现高电平,定时器即开始定 时,也就是它开始对时钟的机器周期进行计数,直至低电平 出现,此时读出 T0 值即可。 (2)由于定时器方式 1 的长度为 16 位,最大计数值为 65536,即正脉冲的宽度最大值不能超过 个机器周期。 如果时钟频率为 6MHz ,允许测量的最大脉冲宽度是: 65536×2μs=131.07ms。
Similar presentations