课题十一单片机与计算机通信_第1页
课题十一单片机与计算机通信_第2页
课题十一单片机与计算机通信_第3页
课题十一单片机与计算机通信_第4页
课题十一单片机与计算机通信_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课题十一课题十一 单片机串口通信单片机串口通信任务一 PC机与单片机串行通信任务二 单片机与单片机串行通信课题十一课题十一 单片机串口通信单片机串口通信任务一 PC机与单片机串行通信机与单片机串行通信 单片机系统接收电脑PC机串口发过来的ASCII码,并在液晶LCD1602上显示出来;同时把收到的ASCII码回传给PC机串口,以验证串口接收、发送数据的正确性。单片机LCD显示电路复位电路时钟电路电源电路串行口通信电路图7.1 单片机串行通信控制系统组成方框图 计算机串行通信基础通信:并行通信与串行通信 并行通信特点特点:传送控制简单、速度快,但传输线较多,成本高。:传送控制简单、速度快,但传输

2、线较多,成本高。 串行通信特点特点:传送控制复杂、速度慢,传输线少,成本低:传送控制复杂、速度慢,传输线少,成本低 异步通信与同步通信收、发设备时钟独立,以字符(帧)为单位传输 1.1 串行通信的基本概念异步通信 异步通信帧格式起始位(位);起始位(位);数据位(位);数据位(位);奇偶校验位(位,可无校验位);奇偶校验位(位,可无校验位);停止位(位)。停止位(位)。 特点 易于实现 效率不高 同步通信(发、收时钟直接连接,效率高。板内元件间的SPI接口) 串行通信的传输方向单工 半双工 全双工 80C51有1个全双工串行口 信号的调制与解调DTEDTE:数据:数据终端终端设备设备DCEDC

3、E:数据:数据通信通信设备设备 调制解调器调制解调器v 调制调制v 解调解调 串行通信的错误校验奇偶校验奇偶校验 发送字符时发送字符时,数据位尾随,数据位尾随1 1位奇偶校验位(位奇偶校验位(1 1或或0 0)。)。奇校验时奇校验时,数据中,数据中“1”1”的个数与校的个数与校验位验位“1”1”的个数之和应为奇数;的个数之和应为奇数;偶校验时偶校验时,数据中数据中“1”1”的个数与校验位的个数与校验位“1”1”的个数之的个数之和应为偶数。和应为偶数。接收字符时接收字符时,对,对“1”1”的个数进行校验,若的个数进行校验,若发现不一致,则说明传输数据过程中出现了发现不一致,则说明传输数据过程中出

4、现了差错。差错。 代码和校验代码和校验 发送方发送方将所发数据块求和(或各字节异或),将所发数据块求和(或各字节异或),产生的产生的校验和字节校验和字节附加到数据块的末尾。附加到数据块的末尾。 接收方接收方在接收数据时要对在接收数据时要对数据块(除校验字节数据块(除校验字节外)求和(或各字节异或),外)求和(或各字节异或),将所得的结果与将所得的结果与收到的收到的“校验和校验和”进行比较,相符则无差错,进行比较,相符则无差错,否则就认为传送过程出现了差错。否则就认为传送过程出现了差错。 传输速率与传输距离传输速率传输速率比特率比特率:每秒钟传送的信息量。单位:位秒(:每秒钟传送的信息量。单位:

5、位秒(bpsbps) 波特率波特率:每秒钟传送码元数目,单位:波特(:每秒钟传送码元数目,单位:波特(Baud) 基带传输基带传输(每个码元带有(每个码元带有“1”1”或或“0”0”这这1 bit1 bit信息,信息,传码率与传信率相同),传码率与传信率相同),波特率和比特率是相同的波特率和比特率是相同的。 常用波特率为:常用波特率为:24002400、48004800、 96009600、14.4K14.4K、19.2K19.2K等等 传输距离与传输速率的关系传输距离与传输速率的关系传输距离随波特率的增加而减小。传输距离随波特率的增加而减小。 1.2 串行通信接口标准RS-232CRS-23

6、2C定义的是定义的是DTEDTE与与DCEDCE间的接口标准。间的接口标准。 机械特性DB-25DB-25(阳头)连接器(阳头)连接器 DB-9DB-9(阳头)连接器(阳头)连接器 阳头阳头通常用于通常用于计算机侧计算机侧,阴头阴头用于用于连接线侧连接线侧 功能特性插针序号信号名称功能信号方向1 PGND保护接地 2(3)TXD发送数据(串行输出)DTEDCE 3(2)RXD接收数据(串行输入)DTEDCE 4(7)RTS请求发送DTEDCE 5(8)CTS允许发送DTEDCE 6(6)DSRDCE就绪(数据建立就绪)DTEDCE 7(5) SGND信号接地 8(1)DCD载波检测DTEDCE

7、 20(4)DTRDTE就绪(数据终端准备就绪)DTEDCE 22(9) RI振铃指示DTEDCE 电气特性RS-232CRS-232C采用负逻辑电平,规定(采用负逻辑电平,规定(-3-3-25V-25V)为逻辑)为逻辑“1”1”,(+3+3+25V+25V)为逻辑)为逻辑“0”0”。-3V-3V+3V+3V是未定义的过渡区。是未定义的过渡区。试比较:试比较: 电平转换电路(如电平转换电路(如MAX232MAX232)。)。 过程特性远远程通信,需要调制解调器程通信,需要调制解调器 近近程通信,不需要调制解调器程通信,不需要调制解调器 无联络线方式无联络线方式 联络线短接(伪连接)方式联络线短

8、接(伪连接)方式 RS-232C电平与TTL电平转换驱动电路早期常用早期常用MC1488MC1488、MC1489 MC1489 近期常用近期常用MAXM232MAXM232: 片内带有自升压电路片内带有自升压电路 仅需仅需+5V+5V电源电源 内含内含2 2个发送器,个发送器,2 2个接收器个接收器 采用RS-232C接口存在的问题 传输距离短、速率低传输距离短、速率低 通常不超过通常不超过1515米,速率米,速率20Kbps 20Kbps 有电平偏移有电平偏移 RS-232RS-232收发共地,地电流会使电平偏移出现逻辑错误。收发共地,地电流会使电平偏移出现逻辑错误。 抗干扰能力差抗干扰能

9、力差 RS-232RS-232常用单端输入,易混入干扰。(常用单端输入,易混入干扰。(故用大摆幅故用大摆幅) 新标准新标准RS-485RS-485改善了传输特性,应用广泛!改善了传输特性,应用广泛! 1.2 80C51单片机的串行口1.2.1 80C51串行口的结构 1 1个个全双工全双工串口:通信串口:通信或或接口扩展接口扩展 接收发送缓冲器接收发送缓冲器逻辑同名、物理分开;逻辑同名、物理分开;接收双缓冲。接收双缓冲。 1.2.2 80C51串行口的控制寄存器 串行口控制寄存器SCONSM0和SM1:工作方式选择位76543210SCONSM0SM1SM2RENTB8RB8TIRI字节地址:

10、98HSM0SM1方 式说 明波特率000移位寄存器fosc/1201110位UART(8位数据)可变10211位UART(9位数据)fosc/64或fosc/3211311位UART(9位数据)可变SM2:多机通信控制位SM2=1SM2=1时时, ,接收机处于接收机处于地址帧地址帧筛选筛选状态。若状态。若RB8RB81 1,该地址帧信息可进入,该地址帧信息可进入SBUFSBUF,并使,并使RIRI为为1 1,进,进而在中断服务中再进行地址号比较而在中断服务中再进行地址号比较; ;若若RB8RB80 0,该帧不是地址帧,应丢掉,且保持该帧不是地址帧,应丢掉,且保持RI=0RI=0。 SM2=0

11、SM2=0时,接收机处于时,接收机处于地址帧筛选被禁止地址帧筛选被禁止状态。状态。不论收到的不论收到的RB8RB8为为0 0或或1 1,均可以使收到的信息进,均可以使收到的信息进入入SBUFSBUF,并使,并使RI=1RI=1。此时的此时的RB8RB8通常为校验位通常为校验位。 REN:串行接收使能位,软件置1时,启动接收过程。TB8:多机方式发送的第9位多机方式的地址多机方式的地址/ /数据帧标志。也可作为奇偶校验位。数据帧标志。也可作为奇偶校验位。 RB8:多机方式接收的第9位多机方式的地址多机方式的地址/ /数据帧标志。也可作为奇偶校验位。数据帧标志。也可作为奇偶校验位。 TI:发送中断

12、标志位,要由软件清0RI:接收中断标志位,要由软件清0 电源控制寄存器电源控制寄存器PCON PCON SMOD:波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。 76543210PCONSMOD字节地址:97H1.2.3 80C51串行口的工作方式 方式方式0 0:同步移位寄存器,用于扩展并行口:同步移位寄存器,用于扩展并行口 RXD:输入或输出引脚 TXD:移位脉冲输出接收和方式都是8位波特率固定为:fosc/12数据输数据输出出: CLRCLR用于对用于对74LS16474LS164清清0 0 74LS164串

13、口转并口程序Led左移:#include #include #define uint unsigned int#define uchar unsigned charvoid Delay(uint x) uchar i;while(x-) for(i=0;i120;i+);void main() uchar c = 0 x80;SCON = 0 x00;TI = 1;while(1) c = _crol_(c,1);SBUF = c;while(TI=0);TI = 0;Delay(400);数据输数据输入入: S/LS/L负脉冲将并行数负脉冲将并行数据装入,据装入,高电平时启高电平时启动单片机

14、进行数据输动单片机进行数据输入。入。 74LS165并口转串口开关模拟#include #include #include #define uint unsigned int#define uchar unsigned charsbit SPL = P25;void Delay(uint x) uchar i;while(x-)for(i=0;i120;i+);void main() SCON = 0 x10;while(1) SPL = 0;SPL = 1;while(RI = 0);RI = 0;P0 = SBUF;Delay(20); 方式方式1 1:1010位帧,用于位帧,用于双双机通

15、信机通信 起始位:1位 数据位:8位停止位:1位串行串行发送发送:(写:(写SBUFSBUF启动发送过程)启动发送过程) 串行串行接收接收:( (置置REN=1REN=1启动接收过程启动接收过程) ) 方式方式2 2和方式和方式3 3:1111位帧,用于位帧,用于多多机通信机通信 起始位:1位 数据位:9位停止位:1位串行串行发送发送:(写:(写SBUFSBUF启动发送过程)启动发送过程) 串行串行接收接收:( (置置REN=1REN=1启动接收过程启动接收过程) ) 1.2.4 80C51波特率确定与初始化步骤 波特率的确定波特率的确定 波特率的计算固定固定波特率:波特率: 方式0波特率=

16、fosc/12 方式2波特率=(2SMOD/64)* fosc可变可变波特率:波特率: 方式1波特率=(2SMOD/32)*(T1溢出率) 方式3波特率=(2SMOD/32)*(T1溢出率) T1 T1 溢出率溢出率 = fosc= fosc /12 /12256 256 (TH1TH1) 波特率的选择波特率的选择 波特率要选择波特率要选择标称值标称值,由于,由于TH1TH1的初值是整数,为了的初值是整数,为了减小波特率计算误差,晶振频率要选为减小波特率计算误差,晶振频率要选为11.059211.0592MHzMHz。 方式方式1 1和方式和方式3 3波特率与波特率与TH1TH1初值的对应关系

17、:初值的对应关系: 波特率/(b/s)19.2 k9600480024001200TH1初值FDHFDHFAHF4HE8HSMOD10000 串行口初始化步骤串行口初始化步骤 确定T1的工作方式(TMOD)计算T1的初值,装载TH1、TL1启动T1(置位TR1)确定串行口工作方式(SCON)串口中断设置(IE、IP)1.3 单片机与PC机间的通信硬件连接 直接连接直接连接交叉连接交叉连接图7.7 串行通信模块与单片机的接口电路原理图【项目实践】图7.5 MAX232芯片引脚图图7.5 MAX232芯片内部框图1算法设计 编写单片机异步通信程序步骤如下: (1) 设置串口工作方式。 此时需对串行

18、控制器SCON中的SM0、SM1进行设置。PC机与单片机的通信中一般选择串口工作在方式1下。 串行控制器SCON(98H)的格式如下所示:SM0 SMlSM2 REN TB8 RB8TIRI (2) 选择波特率发生器。选择定时器l或定时器2做为其波特率发生器。 【活动三】软件设计【活动三】软件设计 (3) 设置定时器工作方式。 当选择定时器1做为波特率发生器时,需设置其方式寄存器TMOD 为计数方式并选择相应的工作方式(一般选择方式2以避免重装定时器初值);当选择定时器2做为波特率发生器时,需将T2CON设置为波特率发生器工作方式。 (4) 设置波特率参数。 影响波特率的参数有二,一是特殊寄存

19、器PCON的SMOD位,另一个是相应定时器初值。 (5) 允许串行中断。 因在程序中我们一般采有中断接收方式,故应设EAl、ES=1。 (6) 允许接收数据。 设置SCON中的REN为1。表示允许串行口接收数据。 (7) 允许定时/计数器工作。 此时开启定时/计数器,使其产生波特率。 (8) 编写串行中断服务程序。 当有数据到达串口时,系统将自动执行所编写的中断服务程序。 (9) 收/发相应数据。 注意的是发送操作完成需将T1清零,接收工作完成后需将R1清零。 串口发送数据用单片机接收:#include void main()REN=1;SM0=0;SM1=1;TMOD=0X20;TH1=0X

20、FD;TL1=0XFD;TR1=1;if(RI=1)P1=SBUF;RI=0; 2程序设计 (1) 主程序设计 主程序主要完成硬件初始化、子程序调用等功能。 初始化 首先调用LCD子程序,设置LCD的DDRAM地址。 串口收发数据 当串口接收到数据,则继续等待串口接收数据;若RI为1,表明串口成功接收数据,进入串口中断服务子程序,单片机接收数据。并将串口成功接收数据标志位RI清零,调用LCD显示接收数据子程序,在LCD上显示单片机从串口接收到的数据。 主程序设计流程图如图7.5所示。【项目实践】主程序设计流程图如图7.5所示。【项目实践】图6.5 主程序设计流程图【项目实践】 (2) 串口接收

21、发送数据中断服务子程序设计 TI为0,把串口接收缓冲器SBUF中的数据写入串口接收数据单元RECDATA,再把该数据送到串口发送缓冲器SBUF中,传给PC机,置串口成功接收数据标志位TI为1,表明串口成功接收发送数据,最后中断子程序返回。串口收发数据。【项目实践】#include #define uchar unsigned char#define uint unsigned int sbit lcden=P22;sbit lcdrs=P20;sbit lcdrw=P21;uchar num,shu,recdata;uchar code table=recdata;void delay(uin

22、t z) uint x,y; for (x=z;x0;x-) for(y=110;y0;y-); void write_com(uchar com) lcdrs=0; P1=com; delay(5); lcden=1; delay(5); lcden=0; void init() lcden=0; write_com(0 x38); write_com(0 x0c); write_com(0 x0f); write_com(0 x06); write_com(0 x01); void write_data(uchar date) lcdrs=1; P1=date; delay(5); lcd

23、en=1; delay(5); lcden=0; void main()lcdrw=0; init (); REN=1; SM0=0; SM1=1;TMOD=0X20;TH1=0XFD;TL1=0XFD;TR1=1;EA=1;ES=1;while(1)write_com(0 x80);for(num=0;num8;num+) write_data (tablenum); write_com(0 x80+0 x40);write_data(shu); void ck() interrupt 4 RI=0; shu=SBUF; SBUF=shu;硬件连接近程连接近程连接(直连)(直连)任务二 单片机与单片机间的通信 远程连接远程连接( (电平转换电平转换) )电平转换器件与接线电平转换器件与接线单片机双机通信 甲机控制乙机LED闪烁,乙机控制甲机数码管 甲机:#include #define uint unsigned int#define uchar unsigned charsbit LED1 = P10;s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论