双机串行通信单片机单片机课程设计说明书_第1页
双机串行通信单片机单片机课程设计说明书_第2页
双机串行通信单片机单片机课程设计说明书_第3页
双机串行通信单片机单片机课程设计说明书_第4页
双机串行通信单片机单片机课程设计说明书_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、长 春 大 学双机串行通信串行通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现双片单片机串行通信。通信的结果实用数码管进行显示,数码管采用查表方式显示。两个单片机之间采用rs232进行双机通信。在通信过程中,使用通信协议进行通信。关键词:51单片机,串行通信,接口abstractserial communication is an important application of single chip. this course is designed to using single chip computer to complete a system, the r

2、ealization biplate microcontroller serial communication. communication results and practical to display, digital digital tube pipe, adopting look-up table display. two microcontroller between adopt rs232 for dual-computer communications. in communication process, uses communication protocol to commu

3、nicate. key words: 51 scm, serial communication, interface 目录第1章 准备工作11.1设计目的11.2设计要求11.3设计方案1第2章 设计步骤及原理22.1 硬件设计22.1.1 51单片机串行通信功能22.1.2 max232芯片42.1.3 整体电路设计42.2软件设计62.2.1串行通信软件实现62.2.2 程序流程图72.3联合调试9第3章 设计总结及心得10第4章 附录114.1 主机发送程序114.2 从机接收程序124.3 系统电路图14参考文献16致 谢17第1章 准备工作1.1设计目的(1)训练学生正确的应用单片机

4、,培养解决工业控制、工业检测等领域具体问题的初步能力。(2)让学生通过所做课题,熟悉单片微机应用系统开发、研制的过程、软硬件设计的方法、工作内容、工作步骤。(3)进行基本技能训练,是理论联系实际,提高动手能力和分析问题、解决问题的能力。1.2设计要求设计之前应对各芯片的引脚及原理进行预习,了解其基本的使用方法并初步制定设计方案,方案应实现两片单片机之间进行串行通信,发送端将0f循环发送到接收端,并在接收端显示。1.3设计方案本次设计,对于两片89c51,采用rs232进行双机通信。发送方的数据由串行口txd段输出,经过电平转换芯片max232将ttl电平转换为rs232电平输出,经过传输线将信

5、号传送到接收端。接收方也使用max232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,在数码管上显示接收的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。软件部分,通过通信协议进行发送接收,主机先送aah给从机,当从机接收到aah后,向主机回答bbh。主机收到bbh后就把数码表tab16中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00h给主机;否则发送ffh给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。第2章 设计步骤及原理2.1 硬件设计2.1.1 51单片

6、机串行通信功能图1.at89c51计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。51单片机的串行接口是一个全双工的接口,它可以作为uart(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:(1)数据缓冲器(sbuf)接受或发送的数据都要先送到sbuf缓存。有两个,一个缓存,另一个接受,用

7、同一直接地址99h,发送时用指令将数据送到sbuf即可启动发送;接收时用指令将sbuf中接收到的数据取出。(2)串行控制寄存器(pcon)scon用于串行通信方式的选择,收发控制及状态指示,各位含义如下:sm0sm1sm2rentb8rb8tirism0,sm1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。串行接口工作方式特点见下表sm0sm1工作方式功能波特率 0008位同步移位寄存器(用于i/o扩展)forc/1201110位异步串行通信(uart)可变(t1溢出率*2smod/32)10211位异步串行通信(uart)forc/64或forc/

8、3211311位异步串行通信(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)输入移位寄存器接收的数据

9、先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收sbuf中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器t1作为波特率发生器,t1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。(5)电源控制寄存器pcon其最高位为smod。(6)波特率计算当定时器t1工作在定时方式的时候,定时器t1溢出率=(t1计数率)/(产生溢出所需机器周期)。由于是定时方式,t1计数率= forc/12。产生溢出所需机器周期数=模m-计数初值x。2.1.2 max232芯片用8051串行接口通信,如果两台8051单片机之间

10、的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接口直接相连,利用其自身的ttl电平(0-5v)直接传输数据信息。如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。此时可利用 rs232标准总线接口,将单片机输出的ttl电平转换为rs232标准电平(逻辑1为-15-5v;逻辑0为+5-+15v)。用rs232可将传输距离提高到15m,如果想远距离传输,可以采用rs422或者rs485。电平转换芯片max232是美信公司(maxim)生产,专用于进行将ttl电平转换为rs232电平的芯片,max232内部有泵

11、电源,能将+5v电源电压在芯片内提高到rs232电平所需的+10v或者-10v电平。图2.电平转换芯片max2322.1.3 整体电路设计最终设计电路如下图3所示,发送方的数据由串行口txd段输出,经过电平转换芯片max232将ttl电平转换为rs232电平输出,经过传输线将信号传送到接收端。接收方也使用max232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,通过p1口在数码管上显示接收的信息。图3.串行通信电路2.2软件设计通过通信协议进行发送接收,主机先送aah给从机,当从机接收到aah后,向主机回答bbh。主机收到bbh后就把数码表tab16中的10个数据送给从机,并

12、发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00h给主机;否则发送ffh给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。 2.2.1串行通信软件实现(1)串行口工作于方式1;用定时器1产生9600bit/s的波特率,工作于方式2。(2)功能:将本机rom中数码表tab16中的16个数发送到从机,并保存在从机内部rom中,从机收到这16个数据后送到一个数码管循环显示。(3)通信协议:主机首先发送连络信号(aah),从机接收到之后返回一个连络信号(bbh)表示从机已准备好接收。(4)通信过程使用第九位发送奇偶校验位。(5)从

13、机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00h,否则返回ffh。(6)主机发送一个数据后,等待从机返回数据;若为00h,则继续发送下一个数据,若为ffh,则重新发送数据。2.2.2 程序流程图(1)发送端程序流程图主程序开始从机是否回答bbh?程序初始化主机发送aahn主机发送数据,检验和输出完成?n清除标志位 (2)接收方程序流程图主程序开始检验和相等?程序初始化接收数据,计算检验和n发送00h至主机接收完成?n清除标志位发送ffh,重新接收显示2.3联合调试在protues上进行仿真实验。首先使用keilc将编写完成的程序编译生成hex文件,将hex文件烧录到两片单片机

14、中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数据完整的显示了出来。图4.仿真图第3章 设计总结及心得经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。经过课程设计,在查阅资料的过程中,学习了基于单片机的c语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。通过这次课程设计,锻炼了自己独立思考的能力。第4章 附

15、录4.1 主机发送程序#include <reg51.h>#define uchar unsigned char void init();void send();uchartab16 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar i,sum;int j;main() init(); send(); void init(void) ea=1; es=1; tmod=0x20; th1=0xfd; tl1=0xfd; pcon=0x00; scon=0x50

16、; tr1=1; void send(void)do sbuf=0xaa; while(!ti); ti=0; while(!ri); ri=0; while(sbuf0xbb)!=0);do sum=0; for(i=0;i<=15;i+) sbuf=tabi; sum+=tabi;while(!ti);ti=0;sbuf=sum;while(!ti);ti=0;while(!ri);ri=0;while(sbuf!=0);4.2 从机接收程序#include<reg51.h>#define uchar unsigned char#define uint unsigned

17、intvoid delay(int );void receive(void) ;void init(void);uchar i,sum;int j;uchartab16 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void main() init(); receive(); void init(void) ea=1; es=1; tmod=0x20; th1=0xfd; tl1=0xfd; pcon=0x00; scon=0x50; tr1=1; void delay(int

18、 x)int i,j;for(i=0;i<x;i+)for(j=1;j<=150;j+ );void receive(void) uchar tabs16; do while(!ri);ri=0; while(sbuf0xaa)!=0); sbuf=0xbb; while(!ti);ti=0; while(1) sum=0; for(i=0;i<=15;i+) while(!ri);ri=0; tabsi=sbuf; sum+=tabsi; while(!ri);ri=0; if(sbufsum)=0) sbuf=0x00; while(!ti); ti=0; break; else sbuf=0xff; while(!ti); ti=0; while(1) for(i=0;i<=15;i+) p1=tabsi; delay(500);4.3 系统电路图参考文献(1)单片机课程设计指导杨居义著,清华大学出版社,2009年9月(2)单片机原理及应用林立等著,电子工业出版社,2009年7月致 谢首先感谢指导老师,在我的学习过程中他们给了我很大的帮助,帮助我理解不懂的地方,帮助我纠正了很多无法解决的错误,使我最终能够完成这个课程设计。在此对

温馨提示

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

评论

0/150

提交评论