Presentation is loading. Please wait.

Presentation is loading. Please wait.

9.3 AT89C51串行接口的应用与编程 工作方式0的应用

Similar presentations


Presentation on theme: "9.3 AT89C51串行接口的应用与编程 工作方式0的应用"— Presentation transcript:

1 9.3 AT89C51串行接口的应用与编程 9.3.1 工作方式0的应用
工作方式0的应用 串行口工作方式0主要用于扩展并行I/O口,扩展成并行输出口时,需要外接一片8位串行输入并行输出的同步移位寄存器74HC164或CD4094。扩展成并行输入口时,需要外接一片或几片并行输入串行输出的同步移位寄存器74HC165或CD4014。

2 数据的串行输出或输入可采用中断方式,也可采用查询标志位TI、RI的方法,在移位初始化时,要进行相应的设置。
[例9.1] 利用串行口工作在方式0,外扩一片74HC164构成一个三位LED动态显示器,并将内部RAM显示单元65H、66H、67H中的内容输出显示。如图9-14所示。

3 图9-14 串行动态显示图

4 主程序如下: ORG 0100H STPRT: MOV SCON,#00H ;串行口初始化为方式0 SETB P ;消去最高显示位 SETB P1.1 MOV SBUF,65H ;传送最低显示位 JNB TI,$ ;传送没结束,等待

5 CLR P ;最低位显示 CLR TI ;清中断标志位 LCALL DSSJ ;调延时子程序,维持状态 SETB P ;消去最低显示位 MOV SBUF,66H ;传送中间显示位 JNB TI,$ ;等待传送结束 CLR P ;显示中间位 CLR TI ;清中断标志位

6 LCALL DSSJ ;调延时子程序,维持状态
SETB P ;消去中间显示位 MOV SBUF,67H ;传送最高显示位 JNB TI,$ ;等待传送结束 CLR P ;显示最高显示位 CLR TI ;清中断标志位 RET

7 [例9.2] 利用串行口工作方式0,扩展一片并行输入串行输出的移位寄存器74LS165,如图9-15所示,构成一个8位并行输入口,输入8位开关量(每一开关量代表不同功能,如启动、停止等),并将其存入固定单元60H中。

8 图9-15 串行口扩展输入并行口

9 串行口工作在方式0,且处于接收状态,则REN置为“1”,SCON的控制字为10H,并行数据采用间隔调用子程序的方式读入,程序如下:

10 START: CLR P ;输入并行数据 SETB P ;允许串行移位,等待移位脉冲 MOV SCON ,#10H ;设串行口方式0,启动接收 JNB RI,$ ;等待接收一帧数据 CLR RI ;清中断标志位 MOV A,SBUF ;读入接收数据 MOV 60H,A ;存入固定单元 RET

11 工作方式1的应用 串行方式1主要用于异步双机通信,波特率由定时器T1产生。 [例9.3] 利用串行口方式1实现一个数据块的传送,数据块存在内部RAM的60H~6FH中,波特率选为2400,并形成和校验数据一起发送。

12 串行口工作为方式1,且处于发送的单工模式,则SCON控制字为40H。方式1的波特率由T1产生,设T1工作于方式2自动重装初值模式,晶振频率为 MHz时,计数初值为F4H。用于和校验的算术和存放在70H中,并在数据块的末尾传送出去。 通过上面的分析,采用查询法传送数据块的子程序如下:

13 MOV TMOD,#20H ;设置T1为工作方式2 MOV TL1,#0F4H ;给T1送初值 MOV TH1,#0F4H SETB TR1 MOV SCON,#40H ;设置串行口为工作方式1 MOV R0,#60H ;数据块首址送R0 MOV R1,#10H ;数据块长度送R1 MOV 70H,#00H

14 DWFP:MOV MOV SBUF,A ;发送数据 ADD A,70H ;对和校验求和 MOV 70H,A JNB TI,$ ;未发送完等待 CLR TI

15 INC R0 DJNZ R1,DWFP MOV SBUF,A ;发送和校验 JNB TI,$ CLR TI RET

16 工作方式2与工作方式3的应用 方式2和方式3都是11位异步通信方式,所不同处仅在于波特率。方式2的波特率只有固定的两种,而方式3的波特率则可由用户设定。 [例9.4] 利用串行口方式2编制一发送程序,将片内RAM中60H~6FH单元的数据串行发送出去,第九数据位TB8作奇偶校验位。 根据要求,将串行口设置为方式2、单工发送,则SCON控制字为80H。波特率选为fosc/64。采用中断方式发送的主程序和中断程序如下:

17 ORG H AJMP ZCX ;转主程序 NOP 0RG H ;串行中断程序 INC R ;被发送数据地址增1 MOV ;取出待发数据 MOV C,PSW ;将奇偶位送TB8 MOV TB8,C MOV SBUF,A ;发送数据 DJNZ R1,CSJS ;判断是否发送完 CLR ES ;发送完关中断

18 CSJS: CLR TI ;清中断标志 RETI NOP ZCX1: ORG H ;主程序 MOV SP,#20H ;置堆栈指针 MOV SCON,#80H ;串行口设置为方式2 MOV PCON,#00H ;波特率选为fosc/64 MOV R0,#60H ;数据块首址送R0

19 MOV R1,#10H ;数据块长度送R1 SETB EA ;开总中断 SETB ES ;开串行口中断 MOV ;取出待发数据 MOV C,PSW ;将奇偶位送TB8 MOV TB8,C MOV SBUF,A ;发送数据 SJMP ¥ ;等待中断

20 [例9. 5] 试编制串行口在方式3下接收数据块的程序。设单片机晶振为11
[例9.5] 试编制串行口在方式3下接收数据块的程序。设单片机晶振为 MHZ,波特率为2400 b/s,接收数据存在片内RAM的40H起始单元的一段区间内,数据块长度由发送方先发送过来(不超过允许值),每接收一个数据都核对其奇偶校验位,正确存储数据,否则给出出错标志。 根据要求,设T1工作于方式2,当SMOD=0时,T1计数初值为F4H。采用查询法编制的程序如下:

21 START: MOV TMOD,#20H ;置T1工作于方式2
MOV TH1,#0F4H ;置T1计数初值 MOV TL1,#0F4H SETB TR ;启动T1 MOV SCON,#0D0H ;置串行口工作于方式3允许接收 MOV PCON,#00H ;设SMOD=0

22 MOV R0,#40H ;接收数据区首址送R0 JNB RI,¥ ;等待接收数据块长度字节 CLR RI ;接收后清RI MOV A,SBUF ;将数据块长度读入后存入R1中 MOV R1,A OR0: JNB RI,¥ ;等待接收数据 CLR RI ;接收一个字符后清RI

23 MOV A,SBUF ;将接收字符读入A JB PSW.0,OR ;进行奇偶位校验 JB RB8,OR3 SJMP OR2 OR1: JNB RB8,OR3 OR2: MOV @R0,A ;校验正确存接收数据

24 INC R ;存储单元地址增1 CLR PSW ;设置正确的标志 DJNZ R1,OR ;没接收完继续接收 SJMP $ ;接收完停机 OR3: SETB PSW.5 ;置校验出错标志 SJMP $ ;停机

25 9.4 PC机与单片机间的串行通信 9.4.1 RS-232C总线标准

26 表9-3 RS-232C信号引脚定义 引 脚 定 义(助记符) 引 脚 1 保护地(PG) 14 辅助通道发送数据(STXD) 2
引 脚 定 义(助记符) 引 脚 1 保护地(PG) 14 辅助通道发送数据(STXD) 2 发送数据(TXD) 15 发送时钟(TXC) 3 接收数据(RXD) 16 辅助通道接收数据(SRXD) 4 请求发送(RTS) 17 接收时钟(RXC) 5 清除发送(CTS) 18 未定义 6 数据准备好(DSR) 19 辅助通道请求发送(SRTS) 7 信号地(GND) 20 数据终端准备就绪(DTR) 8 接收线路信号检测(DCD) 21 信号质量检测 9 22 音响指示(RI) 10 23 数据信号速率选择 11 24 发送时钟 12 辅助通道接收线信号检测(SDCD) 25 13 辅助通道允许发送(SCTS)

27 表9-3中定义的许多信号线是为通信业务联系或信息控制而设置的,在计算机串行通信中主要使用以下一些信号:
(1) 数据传输信号:发送数据(TXD),接收数据(RXD)。 (2) 调制解调器控制信号:请求发送(RTS),清除发送(CTS),数据准备好(DSR),数据终端准备就绪 (DTR)。 (3) 时钟信号:发送时钟(TXC),接收时钟(RXC)。 (4) 地线:保护地(PG),信号地(GND)。

28 RS-232C总线的其他标准规定如下: (1)  RS-232C总线标准逻辑电平:+5~+15 V表示逻辑“0”,-15~-5 V表示逻辑“1”,噪声容限为2 V。 (2) 标准数据传输速率:50 b/s、75 b/s、110 b/s、300 b/s、600 b/s、1200 b/s、2400 b/s、4800 b/s、9600 b/s、 b/s。 RS-232C接口电路 1. MAX232接口电路 MAX232芯片是MAXIM公司生产的具有两路接收器和驱动器的IC芯片,其内部有一个电源电压变换器,可以将输入+5 V的电压变换成RS-232C输出电平所需的±12 V电压。

29 MAX232芯片的引脚结构如图9-16所示。其中管脚1~6(C1+、V+、C1-、C2+、C2-、V-)用于电源电压转换,只要在外部接入相应电解电容即可;管脚7~10和管脚11~14构成两组TTL信号电平与RS-232C信号电平的转换电路,对应管脚可直接与单片机串行口的TTL电平引脚和PC机的RS232电平引脚相连。具体连接可参看图9-17。

30 图9-16 MAX232引脚图

31 2.PC机与AT89C51单片机串行通信电路 图9-17是由芯片MAX232实现PC机与AT89C51单片机串行通信的典型接线图。图中外接电解电容C1、C2、C3、C4用于电源电压变换,提高抗干扰能力,它们可以取相同数值电容1.0 μF/16 V。电容C5用于对+5 V电源的噪声干扰进行滤波,其值一般为0.1 μF。

32 图9-17 用MAX232实现串行通信接口电路图

33 3.PC机与多个单片机间的串行通信 图9-18表示一台PC机与多个单片机间的串行通信电路。这种通信系统一般为主从结构,PC机为主机,单片机为从机。主从机间的信号电平转换由MAX232芯片实现。

34 图9-18 PC机和多个单片机串行通信电路


Download ppt "9.3 AT89C51串行接口的应用与编程 工作方式0的应用"

Similar presentations


Ads by Google