最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机串口通信

来源:动视网 责编:小OO 时间:2025-09-23 18:20:08
文档

单片机串口通信

单片机课程设计报告题目:单片机串口通信院(系)工学院专业电子信息工程年级10-1姓名学号指导教师2013年12月6日电子信息工程专业10级学生单片机原理课程设计任务书课程设计题目七、单片机串口通信指导教师职称高级工程师设计任务和要求:1.基本要求(1)采用RS485接口作为通信接口(2)两个单片机可以单向数据通信(3)通信波特率大于96002.设计步骤(1)使用Proteus按设计要求绘制电路图。(2)按要求编写相应程序。(3)使用Proteus仿真程序,对程序进行调试。(4)撰写课程设计报告
推荐度:
导读单片机课程设计报告题目:单片机串口通信院(系)工学院专业电子信息工程年级10-1姓名学号指导教师2013年12月6日电子信息工程专业10级学生单片机原理课程设计任务书课程设计题目七、单片机串口通信指导教师职称高级工程师设计任务和要求:1.基本要求(1)采用RS485接口作为通信接口(2)两个单片机可以单向数据通信(3)通信波特率大于96002.设计步骤(1)使用Proteus按设计要求绘制电路图。(2)按要求编写相应程序。(3)使用Proteus仿真程序,对程序进行调试。(4)撰写课程设计报告
单片机课程设计报告

题目: 单片机串口通信

院  (系)   工学院                       

专    业     电子信息工程                       

年    级     10-1                     

姓    名       学  号          

指导教师                            

             

  2013 年 12 月 6 日

电子信息工程专业10级学生单片机原理课程设计任务书

课程设计题目七、单片机串口通信
指导教师职称高级工程师
设计任务和要求:

1.基本要求

(1)采用RS485接口作为通信接口

(2)两个单片机可以单向数据通信

(3)通信波特率大于9600

2.设计步骤

(1) 使用Proteus按设计要求绘制电路图。

(2) 按要求编写相应程序。

(3) 使用Proteus仿真程序,对程序进行调试。

(4) 撰写课程设计报告

3.撰写课程设计报告

课程设计报告内容包括题目、摘要、目录、正文、结论、致谢、参考文献等。

学生在完成上述全部工作之后,应将全部内容以先后顺序写成设计报告一份,阐述整个设计内容,要求重点突出、特色鲜明、语言简练、文字通畅,字迹工整。报告书以A4纸打印,装订成册(文字不少于3000 字)。

                                                                                    

                                                                                    (2013年秋季)

摘要………………………………………………………………………………………2

英文摘要…………………………………………………………………………………3

一  总体设计……………………………………………………………………………4

1   设计要求……………………………………………………………………………4

2   设计方案……………………………………………………………………………4

二  硬件设计……………………………………………………………………………4

1   51单片机串行通信功能 …………………………………………………………4

2   MAX232芯片…………………………………………………………………………6

3   整体电路设计………………………………………………………………………7

三  软件设计……………………………………………………………………………8

1  串行通信软件实现……………………………………………………………………8

2  程序流程图……………………………………………………………………………8

四  联合调试……………………………………………………………………………11

五  结语…………………………………………………………………………………11

六  附录…………………………………………………………………………………12

摘要

串行通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现双片单片机串行通信。通信的结果实用数码管进行显示,数码管采用查表方式显示。两个单片机之间采用RS485进行双机通信。在通信过程中,使用通信协议进行通信。

关键词:51单片机,串行通信,接口

一、总体设计

1.设计要求:

两片单片机之间进行串行通信,发送端将0~f循环发送到接收端,并在接收端显示。

2.设计方案:

本次设计,对于两片C51,采用RS485进行双机通信。发送方的数据由串行口TXD段输出,经过电平转换芯片MAX485将TTL电平转换为RS485电平输出,经过传输线将信号传送到接收端。接收方也使用MAX485芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,在数码管上显示接收的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。

软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。

二、硬件设计

1.51单片机串行通信功能

图1.ATC51

计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。

51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

(1)数据缓冲器(SBUF)

接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。

(2)串行控制寄存器(PCON)

SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:

SM0SM1SM2RENTB8RB8TIRI
SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。串行接口工作方式特点见下表

SM0SM1工作方式功能波特率
 0008位同步移位寄存器(用于I/O扩展)fORC/12

01110位异步串行通信(UART)可变(T1溢出率*2SMOD/32)

10211位异步串行通信(UART)fORC/或fORC/32

11311位异步串行通信(UART)可变(T1溢出率*2SMOD/32)

SM2:多机通信控制位。

REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。

TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。

RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。

TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。

RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。

(3)输入移位寄存器

接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。

(4)波特率发生器

波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。

(5)电源控制寄存器PCON

其最高位为SMOD。

(6)波特率计算

当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率= fORC/12。产生溢出所需机器周期数=模M-计数初值X。

2.MAX485芯片

用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。此时可利用 RS485标准总线接口,将单片机输出的TTL电平转换为RS485标准电平(逻辑1为-15—-5V;逻辑0为+5-—+15V)。用RS485可将传输距离提高到15m,如果想远距离传输,可以采用RS422或者RS485。

    电平转换芯片MAX485是美信公司(MAXIM)生产,专用于进行将TTL电平转换为RS485电平的芯片,MAX485内部有泵电源,能将+5V电源电压在芯片内提高到RS485电平所需的+10V或者-10V电平。

图2.电平转换芯片MAX485

3.整体电路设计

最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX485将TTL电平转换为RS485电平输出,经过传输线将信号传送到接收端。接收方也使用MAX485芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,通过P1口在数码管上显示接收的信息。

图3.串行通信电路

三、软件设计

通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。

1.串行通信软件实现

(1)串行口工作于方式1;用定时器1产生9600bit/s的波特率,工作于方式2。

(2)功能:将本机ROM中数码表TAB[16]中的16个数发送到从机,并保存在从机内部ROM中,从机收到这16个数据后送到一个数码管循环显示。

(3)通信协议:主机首先发送连络信号(AAH),从机接收到之后返回一个连络信号(BBH)表示从机已准备好接收。

(4)通信过程使用第九位发送奇偶校验位。

(5)从机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00H,否则返回FFH。

(6)主机发送一个数据后,等待从机返回数据;若为00H,则继续发送下一个数据,若为FFH,则重新发送数据。

2.程序流程图

(1)发送端程序流程图

主程序开始

从机是否回答BBH?

程序初始化

主机发送AAH

N

主机发送数据,检验和

输出完成?

N

清除标志位

接收方程序流程图

主程序开始

检验和相等?

程序初始化

接收数据,计算检验和

N

发送00H至主机

接收完成?

N

清除标志位

发送FFH,

重新接收

显示

四、联合调试

在protues上进行仿真实验。首先使用KeilC将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数据完整的显示了出来。

图4.仿真图

五、结论

经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。经过课程设计,在查阅资料的过程中,学习了基于单片机的C语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。通过这次课程设计,锻炼了自己思考的能力。

七 参考文献

[1] 谭浩强:《C程序设计(第二版)》,清华大学出版社,2001年。

[2] 胡汉才:《单片机原理及接口技术》,清华大学出版社,1996年。

[3] 谢沅清、解月珍:《电子技术基础》,人民邮电出版社,1999年。

[4] 孙江宏: 《Protel 99 电路设计与应用》,机械工业出版社,2001年。

[5] 何立民: 《单片机应用技术选编》,北京航空航天大学出版社,2006年。

[6] 张毅刚、彭喜源:《MCS-51单片机应用设计》,哈尔滨工业大学出版社,1997年。

[7] 黄亮:“基于ATC51单片机的串口通信程序的设计”,《电子制作》,2006年07期。

六、     附录

1.主机发送程序

#include

unsigned char i;

void main()

{

   TMOD=0X20;

   TH1=0XFE;

   TL1=0XFE;

   SCON=0XD0;

   PCON=0X80;

   TR1=1;

    while(1)

    {

        i=P2;

               SBUF=i;

         while(TI==0);

         TI=0;

         while(P2==i)  ;

    }

            

 }

主机接受程序

#include

void main()

{

    unsigned char i;

    TMOD=0X20;

    TH1=0XFE;

    TL1=0XFE;

    SCON=0XD0;

    PCON=0X80;

    TR1=1;

    while(1)

    {

       while(RI==0);

       RI=0;

       i=SBUF;

       P2=i;

    }

}

电气信息工程系单片机课程设计成绩评定表

专业:  电子信息工程     班级:   10-1      学号:   10043134   姓名: 王桂鹏    

课题名称七、单片机串口通信

 设计任务与要求

基本要求

1)采用RS485接口作为通信接口

2)两个单片机可以单向数据通信

3)通信波特率大于9600

指导教师评语

      

成绩:                        指导教师:

时间:  2013 年12 月6 日

文档

单片机串口通信

单片机课程设计报告题目:单片机串口通信院(系)工学院专业电子信息工程年级10-1姓名学号指导教师2013年12月6日电子信息工程专业10级学生单片机原理课程设计任务书课程设计题目七、单片机串口通信指导教师职称高级工程师设计任务和要求:1.基本要求(1)采用RS485接口作为通信接口(2)两个单片机可以单向数据通信(3)通信波特率大于96002.设计步骤(1)使用Proteus按设计要求绘制电路图。(2)按要求编写相应程序。(3)使用Proteus仿真程序,对程序进行调试。(4)撰写课程设计报告
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top