赞
踩
计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换 。可以分为两大类:并行通信与串行通信。并行通信通常是将数据字节的各位用多条数据线同时进行传送 。控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
异步通信与同步通信
传输方向
串行通信常见的错误校验
传输速率
比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。
80C51串行口的结构
80C51串行口的控制寄存器
方式0的波特率 = fosc/12
方式2的波特率 =(2SMOD/64)· fosc
方式1的波特率 =(2SMOD/32)·(T1溢出率)
方式3的波特率 =(2SMOD/32)·(T1溢出率)
当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。
T1 溢出率 = fosc /{12×[256 -(TH1)]}
串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:
#include "reg52.h" typedef unsigned char u8; typedef unsigned int u16; void UsartInit() { TMOD|=0X20; TH1=0XF3; TL1=0XF3; PCON=0X80; TR1=1; SCON=0X50; ES=1; EA=1; } void main(){ UsartInit(); while(1); } void Usart() interrupt 4 { u8 receiveData; receiveData=SBUF; RI=0; SBUF=receiveData; while(!TI); TI=0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。