收藏 分销(赏)

-双机间的串口双向通信设计.doc

上传人:a199****6536 文档编号:2405528 上传时间:2024-05-29 格式:DOC 页数:21 大小:166.53KB
下载 相关 举报
-双机间的串口双向通信设计.doc_第1页
第1页 / 共21页
-双机间的串口双向通信设计.doc_第2页
第2页 / 共21页
-双机间的串口双向通信设计.doc_第3页
第3页 / 共21页
-双机间的串口双向通信设计.doc_第4页
第4页 / 共21页
-双机间的串口双向通信设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、单片机应用课程设计任务书 学 院计算机与信息工程专 业网络工程课程名称单片机应用课程设计 题 目双机间的串口双向通信设计完成期限自2014年12月22日至2015年1月4日内容及任务一、设计内容及要求: 两个单片机(称为甲机和乙机)之间采用方式1双向串行通信。(1) 甲机的K1按键可通过串口控制乙机的LED1点亮,LED2灭,甲机的K2按键控制乙机LED1灭,LED2点亮,甲机的K3按键控制乙机的LED1和LED2全亮。(2) 乙机的K2按键课控制串口向甲机发送按下的次数,按下的次数通过串口显示在甲机P0口的数码管上。二、项目设计思路1、查找资料,熟悉单片机。2、设计单片机电路图以及程序。3、

2、编译软件,烧写软件,调试,最后完成工作。三、具体成果形式和要求1.甲机的K1按键可以控制乙机的LED1点亮,LED2灭;2.甲机的K2按键可以控制乙机的LED2点亮,LED1灭;3.甲机的K3按键可以控制乙机的LED1、LED2点亮;4. 乙机的K2按键按下的次数可显示在甲机P0口数码管上。四、具体成果形式和要求完成设计说明书,提交仿真电路和可执行代码。进度安排起止日期工作内容 12.22-12.24查找资料 12.25-12.27绘制仿真电路图并编写代码 12.28-12.29调试并修改代码 12.29-1.4答辩并进行文档的书写及修改主要参考资料1 尹毅峰,刘龙江.单片机原理及应用M.北京

3、:北京理工大学出版社,2010.2 李广第.单片机基础.第1版.北京:北京航空航天大学出版社,1999 3 何立民.单片机高级教程.第1版北京:北京航空航天大学出版社,2001 4 陈堂敏.刘焕平主编.单片机原理与应用M.北京:北京理工大学出版社,2007. 5 沈美明.温动蝉编著.IBM-PC汇编语言程序设计M.北京:清华大学出版社,1994.6 戴佳.51单片机C语言应用程序设计 M.北京:电子工业出版社, 20087 刘文涛.单片机语言C51典型应用设计M.北京:人民邮电出版社,20058 尹勇.Vision2单片机应用程序开发指南M.北京:科学出版社,2005指导教师意见(签字): 年

4、 月 日系(教研室)主任意见(签字): 年 月 日单片机应用课程设计任务书 学院名称: 计算机与信息工程学院 班级名称: 学生姓名: 学 号: 题 目: 双机间的串口双向通信设计 指导教师: 起止日期: 目录一、绪论41.1设计背景4二、相关知识42.1 双机通信简介42.2 单片机AT89C51介绍42.3串口通信5三、总体设计63.1 设计要求6四、硬件设计74.1.整体电路74.2复位电路74.3.控制电路8五、软件设计85.1甲机软件设计95.2乙机软件设计10六、测试及运行11心得与感受14参考文献15指导教师评语16附录:源程序17一、 绪论1.1设计背景随着电子技术的飞速发展,单

5、片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。对于一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠, 数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。但在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往 往需要两个或多个单片机系统协同工作。这就对单片机通信提出了

6、更高要求。单片机之间的通信可以分为两大类:并行通信和串行通信。串行通信传输线少,长距离传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。二、 相关知识2.1 双机通信简介两台机器的通信方式可分为单工通信、半双工通信、双工通信,他们的通信原理及通信方式为:1.单工通信:是指消息只能单方向传输的工作方式。单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;接收端 只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。通信双方采用单工通信属

7、于点到点的通信。根据收发频率的异同,单工 通信可分为同频通信和异频通信。2.半双工通信:这种通信方式可以实现双向的通信,但不能在两个方向 上同时进行,必须轮流交替地进行。也就是说,通信信道的每一段都可以 是发送端,也可以是接端。但同一时刻里,信息只能有一个传输方向。如日常生活中的例子有步话机通信等。3.双工通信:双工通信是指在同一时刻信息可以进行双向传输,和打电话一 样,说的同时也能听,边说边听。这种发射机和接收机分别在两个不同的 频率上能同时进行工作的双工机也称为异频双工机。双工机的特点是使用 方便,但线路设计较复杂,价格也较高。2.2 单片机AT89C51介绍AT89C51 是一个低功耗,

8、高性CMOS 8 位单片机,片内含 8k Bytes ISP(In-system programmable)的可反复擦1000次的Flash只读程序存储器,器件采用 ATMEL公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和 ISP Flash存储单元功能强大的微型计算机AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51 具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes 的随机存取数据存储器(RAM),32 个外部双向输入/输出(I/O)口,5个中断优先级

9、2层中断嵌套中断,2个16 位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。另外,AT89C51 可降至 0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 AT89C51 芯片DIP双列直插式封装引脚如图 2. 1 所示。图 2.1 AT89C51 引脚排列2.3串口通信串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字

10、节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。串口通信的程序设计也是相对比较简单的,容易上手,串口通信的基本程序框图如下图2.3所示:串口初始

11、化发送或接收读取数据命令等待接收数据Ifbuffer=23?数据处理及显示关闭串口N图2.2 串口通信的程序框图三、 总体设计3.1 设计要求本次设计是用两个单片机(称为甲机和乙机)之间采用方式1双向串行通信。甲机的K1按键可通过串口控制乙机的LED1点亮,LED2灭,甲机的K2按键控制乙机LED1灭,LED2点亮,甲机的K3按键控制乙机的LED1和LED2全亮。乙机的K2按键课控制串口向甲机发送按下的次数,按下的次数通过串口显示在甲机P0口的数码管上。根据以上要求,我所设计的系统框架如图3.1所示:图3.1 系统框架图四、 硬件设计4.1.整体电路根据设计要求,我们在Proteus仿真软件平

12、台下,选取元件at89c51两个、开关四个、LED两个、8位数码管一个以及其它元件若干,画出系统整体电路如图3.2.1所示:图4.1 系统整体电路在电路中,我们将数码管与单片机 U1 的 P0 口连接构成系统的开关记数显式电路的部分; 将 开关与单片机 P3 接口连接组成系统的按键电路,用来对显示器的控制;LED 的 段选端与单片机 U2 的 P2 口连接构成系统的 LED 显示系统;单片机左边部分电路与单片机构成系统的复位电路。4.2、复位电路将元器件如电路设计图如图 3.2 所示连接并 与单片机相连, 构成复位电路。 如果实现了灯的亮灭控制,点击图 3.2中的开关,使电路恢复到未开始状态.

13、图 4.2 复位电路4.3.控制电路将开关 K2,K3 分别连接两个反相器,并分别把两个开关连接 P1.0 和 P1.1;将K1连接 P3.2,三个开关接地,此电路为开关分别控制两个LED灯亮。开关控制电路设计图如图3.2.3所示。图4.3 控制电路五、 软件设计本系统是通过利用AT89c51芯片进行的模拟电路实现的,利用八位晶体显示器来计数乙机的按键按下次数,利用两个LED来给出甲机按键按下的相应动作。具体过程如下:先初始化显示器和LED,然后甲机或者乙机选择发送或者接收,发送方发送的数据通过缓冲池将数据传递给接收方,接收方接收到数据后,随即给出相应的动作。双机间的串口双向通信设计的流程图如

14、图5.1所示:开始初始化发送方发送数据接收方接收数据并显示是否重置结束YN图5.1 串口双向通信设计的流程图5.1 甲机软件设计本模块主要是甲机的发送和接收程序,发送和接收数据都会在是sbuf缓冲池中,其主要代码如下:switch(NUM) / 甲机发送给乙机的数据case 1: TRANSPORT(1); break;case 2: TRANSPORT(2);break;case 3: TRANSPORT(3);break;void S() interrupt 4 / 甲机接收乙机发送的数据if(RI)RI=0; if(SBUF=0&SBUF=9) P0=CSBUF;else P0=0x00

15、;甲机的函数流程图如5.2所示:发送接收开始接收或者发送初始化K1K2K3重置键k4乙机是否发送开始计数数码管显示结束选择开关发送给乙机图5.2 甲机流程图5.2 乙机软件设计本模块主要是乙机发送并接收甲机的数据,其数据也是在sbuf缓冲池中,主要代码如下:if(K2=0) /乙机发送给甲机的数据while(K2=0);NumX=+NumX%11;SBUF=NumX;while(TI=0);TI=0;void S() interrupt 4 /中断if(RI)RI=0;switch(SBUF) /乙机接收甲机的数据,并给出相应的LED动作,其中LED低电平有效case1:LED1=0;LED2

16、=1;break;case2:LED1=1;LED2=0;break;case3:LED1=0;LED2=0;break;乙机程序流程图如下4.2所示:发送接收开始接收或者发送初始化甲机是否发送判断接收数据LED显示结束按下按键发送给甲机图5.3 乙机流程图六、 测试及运行打开Proteus软件,将在keil中建立好的工程打开。然后将程序编译所生成的.Hex文件烧写到单片机芯片中。点击甲机的K1按键可发送字符“1”,通过缓冲池,乙机接收到甲机发送的字符“1”,乙机会使LED1点亮,LED2灭,如图6.1所示:图6.1 乙机结果图点击甲机的K1按键可发送字符“2”,通过缓冲池,乙机接收到甲机发送

17、的字符“2”,乙机会使LED2点亮,LED1灭,如图6.2所示:图6.2 乙机结果图点击甲机的K1按键可发送字符“3”,通过缓冲池,乙机接收到甲机发送的字符“3”,乙机会使LED2、LED1均点亮,如图6.3所示:图6.3 乙机结果图点击乙机的K2键,通过sbuf,甲机会记下乙机K2的点击次数,甲机的数码管上就会出现乙机的K2键按下次数的相应的数字,如图6.4所示:图6.4 甲机的数码管显示结果心得与感受两周的课程设计结束了,通过此次课程设计,使我更加扎实的掌握了有关单片机设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查 终于找出了原因所在,也暴露出了前

18、期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检验修改环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在不懈的努力下,终于迎刃而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收喜悦,也永远不可能得到社会及他人对你的

19、认可!参考文献1 尹毅峰,刘龙江.单片机原理及应用M.北京:北京理工大学出版社,2010.2 李广第.单片机基础M.北京:北京航空航天大学出版社,1999 3 何立民.单片机高级教程M北京:北京航空航天大学出版社,20014 陈堂敏.刘焕平主编.单片机原理与应用M.北京:北京理工大学出版社,2007. 5 沈美明.温动蝉编著.IBM-PC汇编语言程序设计M.北京:清华大学出版社,1994.6 戴佳.51单片机C语言应用程序设计 M.北京:电子工业出版社, 20087 刘文涛.单片机语言C51典型应用设计M.北京:人民邮电出版社,20058 尹勇.Vision2单片机应用程序开发指南M.北京:科

20、学出版社,2005学生签名: 填表日期: 年 月 日指导教师评语成绩评定指导教师签名: 填表日期: 年 月 日附录:源程序1.甲机源程序#include#define uchar unsigned char#define uint unsigned intsbit K1=P32;sbit K2=P33;sbit K3=P11;uchar NUM=0;uchar code C=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void Delay(uint ms)uchar i;while(ms-)for(i=0;i=0&SBUF=9) P0=C

21、SBUF;else P0=0x00;2.乙机源程序#include#define uchar unsigned char#define uint unsigned intsbit LED1=P20;sbit K2=P33;sbit LED2=P21;uchar NumX=-1;void Delay(uint ms)uchar i;while(ms-)for(i=0;i120;i+);void main()LED1=1;LED2=1;SCON=0x50;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;RI=0;TI=0;TR1=1;IE=0x90;while(1)Delay(100);if(K2=0)while(K2=0);NumX=+NumX%11;SBUF=NumX;while(TI=0);TI=0;void S() interrupt 4if(RI)RI=0;switch(SBUF)case1:LED1=0;LED2=1;break;case2:LED1=1;LED2=0;break;case3:LED1=0;LED2=0;break;21

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服