《单片机串行口的应用》由会员分享,可在线阅读,更多相关《单片机串行口的应用(80页珍藏版)》请在金锄头文库上搜索。
1、yiher串行口的应用第八章2018/7/291yiher 本章内容 硬件部分:认识 8x51串行口、串行数据 转并行数据IC、并行数据转串行数据IC, 以及MAX232系列等。 程序与实践部分: mode 0串行口的接收 与发送、其它工作方式的应用、两个 8x51最小系统的互传应 用、多处理器通 信、RS-232通信等。 Date2例說89S51-C語言89S51-C语言yiher 串行口的思考 串行口一次传输一个bit,并行口一次传输一个 byte,谁快? 使用串行口的场合越来越多,使用并行口场合 越来越少,为什么? 并行口快要被串行口完全取代,而消失了! 并行端口的最后一块版图打印机端口
2、,逐渐 被USB与Ethernet并吞。低成本 简单Date3例說89S51-C語言89S51-C语言yiher 串行口常见名称 通用异步传输 ,UART(Universal Asynchronous Receiver-Transmitter), 也可称为通用异步串行口 ,就是微控制 器里常用的通信方式。 RS-232C是一种串行口的通信接口,在 RS-232C里,传输 的准位提升,使传输 距里增加、抗噪声能力提高,为微型计算 机里常见的接口。Date4例說89S51-C語言89S51-C语言yiher 单工及双工 串行式数据传输 里,有单工及双工之分 ,单工就是一条线只能有一种用途,例如 输
3、出线就只能发送数据、输入线就只能 接收数据。而双工就是在同一条在线,可 接收数据,也可发送数据。 Date5例說89S51-C語言89S51-C语言yiher 半双工与全双工 若在系统上,只有一条传输线 ,而在该 传输线 同一个时间 里,不是进行数据接 收,就是数据发送,称之为“半双工”。 若在系统上有两条传输线 ,而这两条传 输在线,可同时进 行数据接收与发送, 称之为“全双工”。 Date6例說89S51-C語言89S51-C语言yiher 波特率 通常以每秒传输 多少位(bit per second, 简称bps)表示串行式数据传输 的速率, 若每个传输单 元为1 bit时,又称为波特
4、率(baud rate)。 Date7例說89S51-C語言89S51-C语言yiher 8051的串行发送数据 在8051里,若要通过串行口发送数据, 只要把8位数据放入串行缓冲器(SBUF)即 可,8051就会帮我们把这些数据,一个 位一个位送出去。 Date8例說89S51-C語言89S51-C语言yiher 8051的串行接收数据 在8051里,若要通过串行口接收数据, 则8051会自动接收串行数据,数据收集 在串行缓冲器里,当8位数据到齐(串行缓 冲器满了),8051就会中断,要我们把这 笔数据提走。 Date9例說89S51-C語言89S51-C语言yiher 串行口的四种工作方式
5、 mode 0:此方式属于半双工同步传输,其波特 率为系统时钟 脉冲的12分之1,即fOSC/12,以 12MHz的系统为例,则其波特率为1Mbps。 mode 1或mode 3:此方式为可变波特率的异 步数据传输,主要是为了配合所连接系统的时 序,以达到不同系统的数据传输。 mode 2:此方式提供两种不同波特率的选择, 即fOSC/32或fOSC/64,其中的fOSC为系统时钟 脉冲 ,属于异步数据传输。Date10例說89S51-C語言89S51-C语言yiher mode 0接收数据 Date11例說89S51-C語言89S51-C语言yiher mode 0发送数据 Date12例說
6、89S51-C語言89S51-C语言yiher mode 1串行数据传输 Date13例說89S51-C語言89S51-C语言yiher mode 1的数据格式 Date14例說89S51-C語言89S51-C语言yiher mode 2的数据格式 Date15例說89S51-C語言89S51-C语言yiher SCON寄存器 Date16例說89S51-C語言89S51-C语言yiher 方式设置Date17例說89S51-C語言89S51-C语言yiher Timer 1产生的常用波特率表 fO SC 波特率11.05921214.74561620SMOD1500x400x300x00-3
7、000xa00x980x800x750x5206000xd00xcc0xc00xbb0xa9012000xe80xe60xe00xde0xd5024000xf40xf30xf00xef0xea04800-0xf30xef0xef-148000xfa-0xf8-0xf5096000xfd-0xfc-09600-0xf51192000xfd-0xfc-138400-0xfe-76800-0xff-Date18例說89S51-C語言89S51-C语言yiherTimer 2应用在波特率产生方式示意图 Date19例說89S51-C語言89S51-C语言yiher Timer 2产生的常用波特率表 f
8、OSC 波特率611.059212161100xf9- 0x5 7-0xee- 0x3 f 3000xfd- 0x8 f0xfb- 0x8 00xfb- 0x1 e0xf9- 0x7 d 6000xfe- 0xc 80xfd- 0xc 00xfd- 0x8 f0xfc- 0xb f 12000xff- 0x6 40xfe- 0xe 00xfe- 0xc 80xfe- 0x5 f 24000xff- 0xb 20xff- 0x7 00xff- 0x6 40xff- 0x3 0 48000xff- 0xd 90xff- 0xb 80xff- 0xb 20xff- 0x9 8 9600-0xff-
9、0xd c0xff- 0xd 90xff- 0xc c 19200-0xff- 0xe e-0xff- 0xe 6 38400-0xff- 0xf 7-0xff- 0xf 3 76800-0xff- 0xfa-Date20例說89S51-C語言89S51-C语言yiher 帧错误检测 示意图 Date21例說89S51-C語言89S51-C语言yiher UART mode 1 时序图 Date22例說89S51-C語言89S51-C语言yiher UART mode 2/3 时序图 Date23例說89S51-C語言89S51-C语言yiher 自动地址识别功能 由于在mode 0下,SM2
10、=1没有作用,所以无法 在mode 0下执行自动地址识别功能。 在mode 1时,stop bit取代第九位,当接收的地 址与自己的地址相符,且stop bit是个正确的停 止位(1),则RI位将自动设置为1。 在mode 2或mode 3时,直接将第九位置入 SCON寄存器的 RB8位,然后接收stop bit。若 将SCON寄存器的SM2位设置为1,则接收到 stop bit,且RB8=1时,将产生中断。 Date24例說89S51-C語言89S51-C语言yiher 产生自己的地址(given address) 0 代表不使用1 代表使用 SADDR值x 代表可为任意值Date25例說8
11、9S51-C語言89S51-C语言yiher SADDR与SADEN设置范例 x 代表可为任意值0 代表不使用1 代表使用 SADDR值0 代表不使用1 代表使用 SADDR值 0 代表不使用1 代表使用 SADDR值Date26例說89S51-C語言89S51-C语言yiher 产生广播地址(broadcast address) OR 运算Date27例說89S51-C語言89S51-C语言yiher 主从式处理器结构 Date28例說89S51-C語言89S51-C语言yiher 主处理器从处理器 由处理器A送出目的处理器的地址字节,其中 第九位(bit 9)为1(即bit 9=1),代表
12、该帧数据为 地址字节。 每个处理器都可以接收到地址字节(bit 9=1),且 会产生中断。在中断子程序里,将接收到的地 址字节与自己的地址相比较。若相符合,则 SM2位设置为1;不相符合,则SM2位设置为0 。 处理器A再送出数据字节(bit 9=0),而SM2=1的 处理器,接收到的是数据字节时,将会产生中 断子程序里,将读取所接收到的数据字节。当 然,SM2=0的处理器,接收到的是数据字节时 ,将不会产生中断。 Date29例說89S51-C語言89S51-C语言yiher 广播 由处理器A送出广播地址字节,其中第九位(bit 9) 为1(即bit 9=1),代表该帧数据为地址字节。 每个
13、处理器都可以接收到地址字节(bit 9=1),且 会产生中断。在中断子程序里,所接收到的广播 地址字节与自己的地址一定符合,所以SM2位设 置为1。 处理器A再送出数据字节(bit 9=0),而所有处理 器的SM2=1,接收到的是数据字节时,将会产 生中断子程序里,将读取所接收到的数据字节。 Date30例說89S51-C語言89S51-C语言yiher 噪声容限(Noise Margin) TTL VIL=0.8V、VOL=0.4V VNML=VIL-VOL=0.4V VIH=2V、VOH=3.5V VNMH=VOH-VIH=1.5V CMOS VIL=0.3VDD、VOL 0V VNML=
14、VIL-VOL=0.3VDD VIH=0.7VDD、VOH VDD VNMH=VOH- VIH=0.3VDDDate31例說89S51-C語言89S51-C语言yiher MAX232/MAX3232 Date32例說89S51-C語言89S51-C语言yiher MAX3232的电容建议表 Date33例說89S51-C語言89S51-C语言yiher RS232线路 Date34例說89S51-C語言89S51-C语言yiher 74164引脚图 Date35例說89S51-C語言89S51-C语言yiher 74164时序图 Date36例說89S51-C語言89S51-C语言yiher
15、 74165引脚图 Date37例說89S51-C語言89S51-C语言yiher 74165真值表 输 入输 出shift /loadclock inhibitclockserialinput并行输 入 AHoutout0ahhh100QhoQho101QnQn100QnQn11QhoQhoDate38例說89S51-C語言89S51-C语言yiher 实例演练8-8-1并行数据转串行数据实验Date39例說89S51-C語言89S51-C语言yiher并行数据转串行数据实验电 路 图 Date40例說89S51-C語言89S51-C语言yiher流程图 Date41例說89S51-C語言8
16、9S51-C语言yiher mode 0串行输入实验 (ch08-8-1.c)Date42例說89S51-C語言89S51-C语言yiher 实例演练8-8-2串行数据转并行数据实 验Date43例說89S51-C語言89S51-C语言yiher串行数据转并行数据实验电 路 图 Date44例說89S51-C語言89S51-C语言yiher 流程图 Date45例說89S51-C語言89S51-C语言yiher m ode 0串行输出实验 (ch08-8-2.c)Date46例說89S51-C語言89S51-C语言yiher 实例演练8-8-3MODE 1自传实验Date47例說89S51-C語言89S51-C语言yiher 自传实验电 路图 Date48例說89S51-C語言89S51-C语言yiher 8-8-3 mode 1实例演练Date49例說89S