文档详情

--串行口与串行通信.ppt

发布:2017-09-10约9.24千字共51页下载文档
文本预览下载声明
特点:串行口做同步移位寄存器用,其波特率为 fosc/12.在这种模式下RXD(P3.0)做数据口;TXD(P3.1)做移位脉冲输出端.在移位过程中,先移数据的低位. 注意:移位脉冲的频率就是模式0的波特率. 模式0的主要功能是:可以使用一个串行口来扩展出8位、16位等并行口,且理论上可以扩展n*8位的并行口. 74LS164 方式1时序图 方式2/3时序图 模式2、3带奇偶校验位的数据传送,必须令SM2=0。 当接收到数据后,用指令对 PSW.0位进行判断。将此结果与RB8中的数据进行“异或”,看结果是否与约定的相符合。 串行口工作方式的应用 1、方式0的应用 2、双机通信 两台单片机通信,如果距离较近,接口只需“发送线TXD、接收线RXD和地线” 三根线即可。 若距离较远,需使用标准接口电路,如:RS232、RS422、RS485等 单片机串口线能和个人电脑 直接通信吗? RS-232C总线标准与接口电路 1. 电气特性 由于RS-232-C接收器和发送器之间有公共信号地,不可能使用双端信号(差分信号),这样,共模噪声就会耦合到系统中。 为了可靠传输信号,不得不增大信号幅度,采用负逻辑: 低电平在 -5V~ -15V 之间为逻辑“1” 高电平在 +5V~ +15V 之间为逻辑“0” 波特率=(2SMOD/32)?T1的溢出率 ? 初值 X = 2n - 2SMOD ? fosc 32 ? 波特率 ? 12 ?RxD引脚为接收端,TxD引脚为发送端,由波特率 发生器T1控制发送速度,不同于方式0:收/发都 需要由TxD送出移位时钟。 ?T1作波特率发生器时初始化包括: 选定时器工作方式2(TMOD选8位自动重装); 将计算(或查表)出的初值X赋给TH1,TL1; 启动T1 (SETB TR1); 对T1不要开中断 !! 工作方式1的接收/发送 ?串行口的初始化包括: 对SCON选工作方式 对PCON设波特率加倍位“SMOD”(缺省值=0) 如果是接收数据,仍要先置“1”REN位 ?由于波特率固定,一般用于单片机间通讯。 数据由8+1位组成,通常附加的一位 (TB8/RB8)用于“奇偶校验”。 工作方式2: 9位UART(1+8+1+1位)两种波特率 ?方式2的波特率 = fosc ? 2SMOD/64 即: fosc ?1/32 或 fosc ?1/64 两种 此工作方式与其他串行通讯设备连接困难, 因此不常用。 发送时序 写入 SBUF TXD输出 TI RXD输入 接收时序 RI D0 D1 D2 D3 D4 D5 D6 TB8 停止位 起始位 D7 D0 D1 D2 D3 D4 D5 D6 RB8 停止位 起始位 D7 检测 负跳变 ?奇偶校验是检验串行通信双方传输的数据正确与否的一个措施,并不能保证通信数据的传输一定正确。 换言之:如果奇偶校验发生错误,表明数据传输一定出错了;如果奇偶校验没有出错,绝不等于数据传输完全正确。 ?奇校验:8位有效数据连同1位附加位中, 二进制“1”的个数为奇数 偶校验:8位有效数据连同1位附加位中, 二进制“1”的个数为偶数 ?约定接收采用奇校验 若接收到的9位数据中“1”的个数为奇数, 则表明接收正确,取出8位有效数据即可; 若接收到的9位数据中“1”的个数为偶数, 则表明接收出错!应当进行出错处理。 ?约定发送采用奇校验 若发送的8位有效数据中“1”的个数为偶数, 则要人为添加一个附加位“1”一起发送; 若发送的8位有效数据中“1”的个数为奇数, 则要人为添加一个附加位“0”一起发送。 采用偶校验时,处理方法与奇校验相反 回顾: 程序状态字寄存器PSW中有一个奇偶状态位 P CY AC F0 RS0 OV P RS1 PSW.7 PSW.0 P (PSW.0):奇偶状态位。 P=1 表示目前累加器中 “1”的个数为奇数 P=0 表示目前累加器中 “1”的个数为偶数 CPU随时监视着Acc的“1”的个数并自动反映在 P 工作方式2 的奇偶校验用法 ? 选用偶校验方式发送 如果 A 中的数的1的个数是奇数(P=1), 将TB8写成“1”一起发出去; 反之:若(P=0)则写TB8=“0”发出去。 ?选用偶校验方式接收 若收到的数中P=0,且检查到RB8=0就可能对了 若收到的数中P=1,且检查到RB8=1就可能对了 若P=0且RB8=1或P=1且RB8=0就一定出错了! 串口方式2 的奇偶校
显示全部
相似文档