欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    at89c51双机串口通信课程设计.doc

    • 资源ID:33468570       资源大小:1.05MB        全文页数:17页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    at89c51双机串口通信课程设计.doc

    -作者xxxx-日期xxxxat89c51双机串口通信课程设计【精品文档】课程设计报告书设计名称: 计算机控制技术 题 目: AT89C51的串口通信 学生姓名: XXX 专 业: 计算机科学与技术 班 别: 计科本XXX班 学 号: XXXXXXXX 指导老师: XXX 日 期: 2012 年 7 月 12 日一、主要内容:本课程设计利用两片AT89C51实现双机串口通信;主机发送并显示 10 以下的随机数,从机显示该数的阶乘值,通过开关改变主机输出的数值。设计电路并编写一个串行口方式1收发程序,实现两片AT89C51之间的通信,甲机将数据发送到乙机并显示出来,同样,乙机也可将数据发送到甲机显示出来。二、硬件电路设计及描述1、方案选择及设计思想 单片机(从机)单片机(主机)显示阶乘值显示发的数 2、工作原理在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可分为三种制式。1). 单工制式(Simplex)单工制式是指甲乙双方通信只能单向传送数据。单工制式如图1所示。2). 半双工制式(Half duplex) 半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能发送。半双工制式如图2所示。3). 全双工制式(Full duplex) 全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。全双工制式如图3所示。AT89C51内部有一个可编程全双工串行通信接口。该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。下面将对其内部结构、工作方式以及波特率进行介绍。图4 AT89C51串行口结构框图 串口通信方式11)方式1发送 方式1输出时,数据由TXD输出,一帧信息为10位,1位起始位0,8位数据位(先低位)和1位停止位1。当执行一条数据写发送缓冲器SBUF的指令,就启动发送。图中TX时钟的频率就是发送的波特率。发送开始时,内部发送控制信号变为有效。将起始位向TXD输出,此后,每经过一个TX时钟周期,便产生一个移位脉冲,并由TXD输出一个数据位。8位数据位全部发送完毕后,置“1” TI。2)方式1接收 数据从RXD(P3.0)脚输入。当检测到起始位的负跳变时,开始接收数据。定时控制信号有两种):接收移位时钟(RX时钟,频率和波特率相同)和位检测器采样脉冲(频率是RX时钟的16倍,1位数据期间,有16个采样脉冲),当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样(第7、8、9个脉冲时采样)进行表决以确认是否是真正的起始位(负跳变)的开始。当一帧数据接收完,须同时满足两个条件,接收才真正有效。 RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 SM2=0或收到的停止位=1(方式1时,停止位已进入RB8),则收到的数据装入SBUF和RB8(RB8装入停止位),且置“1”中断标志RI。若这两个条件不同时满足,收到的数据将丢失。波特率波特率(band rate)是异步通信中每秒钟传送的二进制数码的位数(比特数),单位是位/秒。 作用:1、反映串行通信的速率; 2、反映对传输通道的要求:波特率越高,要求的传输通道的频带宽度就越宽异步通信:波特率为每秒传送的字符数和每个字符位数的乘积。方式 1、3: 波特率=2SMOD×(T1溢出率)/32对波特率需要说明的是,当串行口工作在方式1或方式3,且要求波特率按规范取1200、2400、4800、9600时,若采用晶振12MHz和6MHz,按上述公式算出的T1定时初值将不是一个整数,因此会产生波特率误差而影响串行通信的同步性能。解决的方法只有调整单片机的晶振频率fosc,为此有一种频率为11.0592MHz的晶振,这样可使计算出的T1初值为整数。表9-2列出了串行方式1或方式3在不同晶振时的常用波特率和误差。 用两块AT89C51模拟主机和从机,在主机的P2口低4位处设4个按键,并连上高电平,通过按键来给P2口输入09的随机数,在主机的程序里编写的程序主要实现检测P2口的数值,并通过LED显示出来,然后把这个数发出到从机去。在从机里,先通过中断程序取出接收到的数据,然后处理,通过P1来控制片选,P2口来扫描输出高低电平,让LED显示接收到的数的阶乘值。2、原理电路图,各元器件之间的实际连接关系图5 原理电路图3、元器件清单列表:单片机(AT89C51)两片 U1 U2按键开关6个 K1 K2 K3 K4 K5 K6电容6个 C1(20pf) C2(20pf) C3(22uf) C4(20pf) C5(22pf) C6(20pf)电阻两个(1K) R1 R21位的共阴LED数码管1个 2位的共阳LED数码管1个4位的共阳LED数码管1个12Mhz的晶振两个 X1 X2三、软件设计源程序代码发送程序:#include <reg51.h>void csh()P2=0;SM0=0;SM1=1;/通信方式设为方式1REN=1;TI=0;RI=0;PCON=0;TH1=0xFd;TL1=0XFd;TMOD=0X20;EA=1;ET1=0;ES=1;TR1=1;/初始化设置void main()int i,j;char c=0;csh();while(1)ES=0;TI=0;c=P2;/检测P2口输入的数据if(P2=0) P1=0x3f; if(P2=1) P1=6; if(P2=2) P1=0x5b; if(P2=3) P1=0x4f;if(P2=4) P1=0x66;if(P2=5) P1=0x6d;if(P2=6) P1=0x7d;if(P2=7) P1=7;if(P2=8) P1=0x7f;if(P2=9) P1=0x6f;/通过P1口输出并显示输入的数据SBUF=c;/把检测到的数据放到发送缓存区发送while(!TI);TI=0;ES=1;for(j=0;j<30;j+)for(i=0;i<5000;i+)/可以设置延时的长短来改变发送数据的快慢;接收程序#include <reg51.h>int c=0;void csh()P2=0xFF;SM0=0;SM1=1;/通信方式设为方式1 REN=1;TI=0;/ 清串口发送中断标志 RI=0; PCON=0; /波特率不倍增TH1=0xFd; /*设定初值,波特率9600 TL1=0XFd;TMOD=0X20; /设置定时器1为工作方式2, 8-bit 自动装载方式 ET1=0; /禁止T1中断EA=1;ES=1; /开串口中断TR1=1; /启动定时器T1/初始化设置void delay1ms(int count) int i; int j; for(i=0;i<count;i+) for(j=0;j<120;j+); /定义一个延时函数 void intrr() interrupt 4 char temp;temp=SBUF; c=temp;/进入中断取出接收到的数据 RI=0; ES=1;void main() csh();while(1) if(c<=1) P1=1; P2=0xF9; delay1ms(2); P1=2; P2=0x40; delay1ms(2); P1=4; P2=0x40; delay1ms(2); P1=8; P2=0x40; delay1ms(2); P1=0x10; P2=0x40; delay1ms(2); P1=0x20; P2=0x40; delay1ms(2); ;/显示000001 if(c=2) P1=1; P2=0x24; delay1ms(2); P1=2; P2=0x40; delay1ms(2); P1=4; P2=0x40; delay1ms(2); P1=8; P2=0x40; delay1ms(2); P1=0x10; P2=0x40; delay1ms(2); P1=0x20; P2=0x40; delay1ms(2); ;/显示000002 if(c=3) P1=1; P2=2; delay1ms(2); P1=2; P2=0x40; delay1ms(2); P1=4; P2=0x40; delay1ms(2); P1=8; P2=0x40; delay1ms(2); P1=0x10; P2=0x40; delay1ms(2); P1=0x20; P2=0x40; delay1ms(2); ;/显示000006 if(c=4) P1=1; P2=0x19; delay1ms(2); P1=2; P2=0x24; delay1ms(2); P1=4; P2=0x40; delay1ms(2); P1=8; P2=0x40; delay1ms(2); P1=0x10; P2=0x40; delay1ms(2); P1=0x20; P2=0x40; delay1ms(2); ;/显示000024 if(c=5) P1=1; P2=0x40; delay1ms(2); P1=2; P2=0x24; delay1ms(2); P1=4; P2=0xF9; delay1ms(2); P1=8; P2=0x40; delay1ms(2); P1=0x10; P2=0x40; delay1ms(2); P1=0x20; P2=0x40; delay1ms(1); ;/显示000120 if(c=6) P1=1; P2=0x40; delay1ms(2); P1=2; P2=0x24; delay1ms(2); P1=4; P2=0x78; delay1ms(2); P1=8; P2=0x40; delay1ms(2); P1=0x10; P2=0x40; delay1ms(2); P1=0x20; P2=0x40; delay1ms(2); ;/显示000720 if(c=7) P1=1; P2=0x40; delay1ms(2); P1=2; P2=0x19; delay1ms(2); P1=4; P2=0x40; delay1ms(2); P1=8; P2=0x12; delay1ms(2); P1=0x10; P2=0x40; delay1ms(2); P1=0x20; P2=0x40; delay1ms(2); ;/显示005040 if(c=8) P1=1; P2=0x40; delay1ms(2); P1=2; P2=0x24; delay1ms(2); P1=4; P2=0x30; delay1ms(2); P1=8; P2=0x40; delay1ms(2); P1=0x10; P2=0x19; delay1ms(2); P1=0x20; P2=0x40; delay1ms(2); ;/显示40320 if(c=9) P1=1; P2=0x40; delay1ms(3); P1=2; P2=0; delay1ms(3); P1=4; P2=0; delay1ms(3); P1=8; P2=0x24; delay1ms(3); P1=0x10; P2=2; delay1ms(3); P1=0x20; P2=0x30; delay1ms(2); ;/显示362880 ;/对接收到的数据处理,通过P1、P2口控制输出显示该数的阶乘四实验体会:在此次计算机控制技术课程设计,从编辑程序到调试仿真到在试验箱中做实验,从理论到实践,我学到了很多很多的的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到很多问题,但经过老师的耐心指导和我自己的努力,问题都一一解决了!此外在设计的过程中还发现了自己的很多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,不仅对keil、proteus软件以及试验箱操作有了进一步的了解,而且对计算机控制技术也有的深入的认识和理解,把以前所学过的知识都重新温故了一遍。【精品文档】

    注意事项

    本文(at89c51双机串口通信课程设计.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开