10MCS-51单片机常用接口电路

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0000H
START
000BH
T0_INT
SP,
#5FH
TMOD, #01H
TH0, #0F8H
TL0,
#30H
TR0
ET0
EA
DISP_W, #00H
DISP_BIT
DISPLAY
LOOP
;复位入口地址。
;跳到主程序。
;定时/计数器0中断入口地址-51使用统一编址的方式每一接口芯片中的 一个功能寄存器(端口)的地址就相当于一个RAM单 元。 10.1.3 I/O数据的几种传送方式
为实现和不同的外设的速度匹配,I/O接口必须 根据不同外设选择恰当的I/O数据传送方式。I/O数据 传送的几种传送方式是:
(1)同步传送 (2)查询传送 (3)中断传送。
;定时/计数器0工作于方式1。 ;设置定时2ms的定时器初值高位。 ;设置定时2ms的定时器初值低位。 ;允许T0计数。 ;允许T0中断。 ;开单片机中断。
;指向显示的第一个数码管。
;清除定时标志DISP_BIT。 ;调显示子程序。
T0_INT: MOV
MOV
SETB RETI
;显示子程序入口: DISPLAY: JB
d
c
b
a
段码如下表所示:
显示字符 0 1 2 3 4 5 6 7 8 9 A B
共阴极段码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77FH 7CH
共阳极段码 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H
显示字符 C D E F P U T y H L
第10章 MCS-51单片机常用接口电路 10.1 扩展I/O接口的设计 ➢MCS-51单片机要通过I/O接口来和外设交换信息。 ➢I/O扩展属于单片机系统扩展的一部分,MCS-51单 片机有P0~P3共4个8位的并行I/O口,由于P0和P2 在很多场合要用作16位的地址总线和8位的数据总 线,真正能用作I/O接口的只有P1口和P3口的部分 引脚。 ➢在具体应用设计中往往需要扩展I/O接口。
3.中断传送方式 外设准备好后,发中断请求,单片机进入数据
传送的中断服务程序,进行数据的传送。中断服务 完成后又返回主程序继续执行。工作效率高。. 10.1.4 扩展I/O接口电路的方法 扩展I/O接口的方法大体上有三种: ➢使用集成I/O接口芯片扩展I/O口 ➢使用74LSTTL电路扩展并行I/O口 ➢使用MCS-51单片机串口扩展I/O接口
1.同步传送方式(无条件传送) 当外设速度和单片机的速度相比拟时,常采用同
步传送方式,最典型的同步传送就是单片机和外部数 据存储器之间的数据传送。 2.查询传送方式(条件传送,异步式传送)
查询外设“准备好”后,再进行数据传送。 优点:通用性好,硬件连线和查询程序十分简单, 缺点:效率不高。
为提高效率,通常采用中断传送方式。
例:对上图中显示电路编程,系统时钟12MHz,要求使用定时器产生 2ms中断,定时控制显示刷新,在数码管上从左到右顺序显示“1234”。 数码管的位W1、W2、W3、W4分别接单片机的P1.0、 P1.1、P1.2、 P1.3,段码由串口通过74HC595扩展8位并口管理,单片机的P2.7口控 制74HC595的锁存信号LCLK。 分析:分析:对图10-7中显示电路,下表给出了动态显示“1234”的过 程,某一时刻,只有1位LED被选通显示,其余位则是熄灭的。人眼看到 的是4位稳定的同时显示的字符“1234”。另外,串口输出低位在前, 因此74HC595的QH对应输出段码的低位,所以“1”、“2”、“3”、 “4”的段码分别是9FH、25H、0DH、99H。
“灭” …
共阴极段码 共阳极段码
39H
C6H
5EH
A1H
79H
86H
71H
8EH
73H
8CH
3EH
C1H
31H
CEH
6EH
91H
76H
89H
38H
C7H
00H
FFH


10.2.2 LED显示器工作原理 下图是4位 LED显示器的结构原理图。
N个LED显示块有N位位选线和8×N根段码线。
段码线控制显示的字型, 位选线控制该显示位的亮或暗。 静态显示和动态显示两种显示方式。 1. 静态显示方式
3.实现和不同外设的速度匹配 大多数的外设的速度很慢,无法和µs量级的单片
机速度相比。单片机只有在确认外设已为数据传送做 好准备的前提下才能进行I/O操作。想知道外设是否 准备好,需I/O接口电路与外设之间传送状态信息。 10.1.2 I/O端口的编址方法 I/O端口:简称I/O口,指具有端口地址的寄存器或缓 冲器。 I/O 接口:是指单片机与外设间的I/O接口芯片。一 个I/O接口芯片可以有多个I/O端口,分为:(1)数 据口(2)命令口(3)状态口。
MOV R0, #30H START: CLR P1.7
;设置内部RAM数据区首址。 ;并行置入数据,S/L=0。
SETB P1.7 MOV R2, #02H
RXDAT :MOV SCON ,#10H
WAIT: JNB RI, WAIT CLR RI MOV A, SBUF MOV @R0, A INC R0 DJNZ R2, RXDAT
MOVX @DPTR,A 输入程序段:
;WR*为低,数据经74LS273口输出
MOV DPTR,#7FFFH ;I/O地址→DPTR
MOVX A,@DPTR
;RD*为低,74LS244口
;数据读入内部RAM
10.1.6 用单片机的串口扩展并行I/O口 1.用单片机的串口扩展并行输入口
对上图的硬件电路编写程序,从16位扩展口读入1组数 据(2字节),并把它们转存到内部RAM 30H开始的单元。 汇编程序如下:
10.2.1 LED显示器接口原理 1. LED显示器的结构
共阴结构
共阳结构
外形
7段发光二极管,再加上1个小数点位,共计8段。因此提供给LED显
示器的段码(或字型码)正好是1个字节。段码字节中各个位与段之间对
应关系如表所示。
代码位 D7 D6 D5 D4 D3 D2 D1 D0
显示段 dp g
f
e
10.1.1 I/O接口的功能
1. 输入数据三态缓冲
输入设备向单片机输入数据时,但数据总线上面可能“挂” 有多个数据源,为不发生冲突,只允许当前正在进行数据传送 的数据源使用数据总线,其余的应处于隔离状态。 2. 输出数据锁存
由于单片机工作速度快,数据在数据总线上保留的时间十 分短暂,无法满足慢速外设的数据接收。I/O电路应具有数据 输出锁存器,以保证接收设备接收。
;定时标志为1,跳到DISP1。
;定时标志为0,子程序直接返回。 ;显示位计数置初值。
A,
#30H ;取显示缓存首地址。
A, R2 R0, A, R3,
R2
A @R0 #08H
;取当前要显示的段码地址。 ;位计数加1。 ;当前显示缓存地址送R0。 ;去要显示内容的段码。
I/O端口编址是给所有I/O接口中的寄存器编址。
I/O端口编址两种方式:独立编址与统一编址。
1.独立编址方式 I/O寄存器地址空间和存储器地址空间分开编址,
但需专门读写I/O的指令和控制信号。 2.统一编址方式
I/O寄存器与数据存储器单元同等对待,统一编 址。不需要专门的I/O指令,直接使用访问数据存储 器的指令进行I/O操作,简单、方便且功能强。
DISP1:
RET MOV
MOV
ADD INC MOV MOV MOV
MOV
MOV
TH0, #0F8H ;设置定时2ms的定时器初值高位。
TL0, #30H
;设置定时2ms的定时器初值低位。
DISP_BIT ;定时中断到置位定时显示标志DISP_BIT。 ;中断返回。
DISP_BI T,
R2,
DISP1 #00H
对图中的硬件电路编写程序,将内部RAM单元30H、31H的 内容经串行口由74HC595并行输出子程序。汇编程序如下:
START :MOV MOV
MOV SEND: MOV
MOV WAIT: JNB
CLR
R7, #02H R0, #30H SCON ,#00H A, @R0 SBUF ,A TI, WAIT
程序代码:
LCLK
EQU
W_IO
EQU
DISP_BIT BIT
DISP_W 主程序: START:
LOOP:
EQU
ORG LJMP ORG LJMP MOV MOV MOV MOV SETB SETB SETB MOV CLR LCALL LJMP
0A7H 90H 00H
2FH
;LCLK接到单片机的P2.7。 ; P1口为位码控制口。 ;定义位变量DISP_BIT对应于RAM的 20H最低位,用来管理定时显示。 ;位计数,用来指示下一个要显示的数码管位。
TI
;设置要发送的字节个数 ;设置地址指针 ;设置串行口为方式0
;启动串行口发送过程 ;1帧数据未发送完,循环等待
INC R0 DJNZ R7,
SETB P1.7 CLR P1.7 RET
SEND
;取下一个数
;未发送完,继续,发送完从子程序 返回 ;允许移位寄存器输出到QA~QH ;锁存输出
10.2 MCS-51单片机与LED显示电路接口
各位的公共端连接在一起(接地或+5V)。 每 位的段码线(a~dp)分别与一个8位的锁存器输出 相连。
显示字符一确定,相应锁存器的段码输出将维 持不变,直到送入另一个段码为止。显示的亮度高。 4位静态LED显示器电路。该电路各位可独立显示。
对上图所示的静态扫描显示电路进行编程,SDI接到单片机的P1.0, SCLK接到单片机的P1.1,LCLK接到单片机的P1.2。要显示的段码存在30H、 31H、32H、33H四个连续的内部RAM单元,先送出的单元显示在后。
;I/O接口定义:
SDI
EQU
SCLK
EQU
LCLK
EQU
;显示子程序入口: DISPLAY : MOV
DISP1:
MOV
ADD
INC MOV
MOV
MOV
DISP2:
RRC
MOV
SETB
CLR DJNZ
CJNE
SETB
CLR
RET
90H 91H 92H
R2, A, A, R2 R0, A, R3, A SDI, SCLK SCLK R3, R2, LCLK LCLK
;允许串行移位S/L=1。 ;设置每组字节数,即外扩 74HC165的个数。 ;设置串口方式0,允许接收,启动 接收过程。 ;未接收完1帧,循环等待。 ;清RI标志,准备下次接收。 ;读入数据。
;送至RAM缓冲区。 ;指向下一个地址。
;未读完1组数据,继续。
2.用单片机的串口扩展并行输出口
使用单片机的串口扩展并行输出口,要用到串行-并行移 位寄存器74HC595,74HC595是串行输入8位并行输出带锁存功 能的移位寄存器。下图是利用74 HC595扩展2个8位并行输出 口的接口电路。
电路的工作原理如下: 当P2.0=0,WR*=0(RD*=1)选中写74LS273, 8031
通过P0口输出数据到74LS273; 当P2.0=0,RD*=0(WR*=1)时选中读74LS244, 某开
关按下时则对应位输入为“0”。
输出程序段:
MOV A,#data ;数据→A
MOV DPTR,#7FFFH;I/O地址→DPTR
10.1.5 用缓冲器和锁存器扩展并行I/O口
利用74LS273和74LS244,将P0口扩展成简单的输 入、输出口的电路。
74LS273输出端接8个LED发光二极管,以显示8个 按钮开关状态,某位低电平时二极管发光。74LS244是 缓冲驱动器,扩展输入口,接8个按钮开关。
74LS273和74LS244的工作受8031的P2.0、RD*、 WR*三条控制线控制。
DISP2 #04H,
;输出1个移位脉冲。 ;判断1个字节输出是否完成。
DISP1 ; ;将74HC595内移位寄存器输出锁存输出。 ;完成4位显示返回。
2. 动态显示方式
所有位的段码线相应段并在一起,由一个8位I/O 口控制,形成段码线的多路复用,各位的公共端分别由 相应的I/O线控制,形成各位的分时选通。
#00H #30H R2
A @R0 #08H
C
;SDI接到单片机的P1.0。 ;SCLK接到单片机的P1.1。 ;LCLK接到单片机的P1.2。
;显示位计数置初值。 ;取显示缓存首地址。 ;取当前要显示的段码地址。 ;位计数加1。 ;当前显示缓存地址送R0。 ;去要显示内容的段码。 ;设置循环次数,8次移位输出完整1个字节。 ;累加器移出低位至进位标志。 ;将溢出的低位送给SDI(P1.0)。
相关文档
最新文档