




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第7章单片机的串行通信技术常用的数据通信包括两种形式:并行通信和串行通信。7.1串行通信概述 7.1.1数据通信 7.1.2异步通信和同步通信 7.1.3波特率的概念和串行通信的传输方向 7.2串行口的结构组成及控制寄存器 7.3串行通信工作方式及应用举例 7.4串行通信设计应用举例(1)发送数据过程(中断法) 内部数据并行写入SBUF发→数据串行送出→中断标志位TI硬件置1→CPU响应中断→软件清零TI,写入下一数据→(2)接收数据的过程(中断法) 外界数据串行送入移位寄存器→数据并行送入SBUF收→标志位RI硬件置1→CPU响应中断→RI软件清零,读走数据→同步时钟和传送数据的关系: 发送数据时,发送时钟的下降沿将数据串行移位输出; (1)串行数据缓冲器,SBUF(2)串口控制寄存器,SCON(98H)(3)电源控制寄存器,PCON(87H)八位同步移位寄存器方式——用于扩展并行I/O接口74LS164为8位串并转换移位寄存器DIP14 能将串行输入数据转为并行输出74LS164真值表实例1利用74LS164扩展并行输出口,并实现发光二极管循环控制功能接线原理:数据发送端A(B)——RXD; 同步时钟端CLK——TXD; 数据清除端CLR——P1.0#include<reg51.h> sbitMR=P1^0; voiddelay(){unsignedinti;//延时 for(i=0;i<20000;i++){} } voidmain(){ unsignedcharindex,LED;//定义LED指针和显示字模 SCON=0; //设置串行模块工作在方式0 MR=1;//CLEAR端=1,允许输入数据 while(1){ LED=0xFE; for(index=0;index<8;index++){ SBUF=LED;//控制L0灯点亮 do{}while(!TI);//通过TI查询判别数据是否输出结束 LED=((LED<<1)|1);//左移1位,末位置1 if(LED==0xff)LED=0xfe;//若已循环一遍,准备重新开始 delay(); } } }实例1运行效果10位数据异步通讯方式——用于双机通信发送条件:由SBUF=counter即可启动发送过程 发送完成:硬件TI置1通常,指定T1为波特率时钟发生器(波特率时钟可变)一般初始化过程实验程序:编写一段程序,利用单片机的串行口向PC机发送字符串。使用串口方式1双机通信协议 通行方式:例如异步串行通信 波特率:例如2400b/s 发机要求发送的呼叫信号:例如10H 收机同意接收的应答信号:例如20H 收机不同意接收的应答信号:例如30H 告知数据正确的应答信号:例如0FH 通信结束标志信号:例如0AH ……实例2: 要求设计一个双机通信方案,甲机发送数据,乙机接收数据。两机的振荡频率为12MHz,波特率设置为2.4k,工作在串口方式1。 甲机循环发送0-15的数字,乙机接收后返回接收值。若发送值与返回值相等,继续发送下一数字,否则重复发送当前数字。 发送值和接收值应显示在LED数码管上; 采用查询法检查收发是否完成。实例2电路原理图实例2程序流程图实例2参考程序实例2参考程序实例2运行效果方式2和方式3的数据帧都是11位——用于多机通信 格式为: 一个起始位,8个数据位,一个可编程位和一个停止位可编程位可以由软件置1或清0; 发送时第9位在TB8中,连同八位数据通过串口发出。 收到数据后,数据存入接收SBUF内,可编程位存入RB8中。可编程位还可用作为对接收到的数据进行校验使用;常用校验方法:在可编程位装入发送数据的奇偶校验位。例如,欲发送数据45H(01000101B),发送数据包含二进制数1的个数为奇数,因此奇偶校验位P=1,在发送数据45H时,将P=1赋值到可编程位TB8,连同数据共同发出。对方接收后,只要将实际数据的奇偶关系与RB8进行对比,即可知道收发过程是否有误。方式2的波特率为固定数值:实验程序:编写一段程序,利用单片机的串行口向PC机发送字符串。要求:使用串口方式2,TB8为发送数据的奇偶校验位。使用串口方式2本章小结

17****21
实名认证
内容提供者


最近下载