at89c51双机串口通信课程设计.doc
《at89c51双机串口通信课程设计.doc》由会员分享,可在线阅读,更多相关《at89c51双机串口通信课程设计.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-作者xxxx-日期xxxxat89c51双机串口通信课程设计【精品文档】课程设计报告书设计名称: 计算机控制技术 题 目: AT89C51的串口通信 学生姓名: XXX 专 业: 计算机科学与技术 班 别: 计科本XXX班 学 号: XXXXXXXX 指导老师: XXX 日 期: 2012 年 7 月 12 日一、主要内容:本课程设计利用两片AT89C51实现双机串口通信;主机发送并显示 10 以下的随机数,从机显示该数的阶乘值,通过开关改变主机输出的数值。设计电路并编写一个串行口方式1收发程序,实现两片AT89C51之间的通信,甲机将数据发送到乙机并显示出来,同样,乙机也可将数据发送到甲机
2、显示出来。二、硬件电路设计及描述1、方案选择及设计思想 单片机(从机)单片机(主机)显示阶乘值显示发的数 2、工作原理在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可分为三种制式。1). 单工制式(Simplex)单工制式是指甲乙双方通信只能单向传送数据。单工制式如图1所示。2). 半双工制式(Half duplex) 半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能发送。半双工制式如图2所示。3). 全双工制式(Full duplex) 全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为
3、发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。全双工制式如图3所示。AT89C51内部有一个可编程全双工串行通信接口。该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。下面将对其内部结构、工作方式以及波特率进行介绍。图4 AT89C51串行口结构框图 串口通信方式11)方式1发送 方式1输出时,数据由TXD输出,一帧信息为10位,1位起始位0,8位数据位(先低位)和1位停止位1。当执行一条数据写发送缓冲器SBUF的指令,就启动发送。图中TX时钟的频率就是发送的波特率。发送开始时,内部发送控制信号变为有效。将起始位向TXD输出,此后,每经过一个TX时钟周期
4、,便产生一个移位脉冲,并由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中的
5、数据已被取走,说明“接收SBUF”已空。 SM2=0或收到的停止位=1(方式1时,停止位已进入RB8),则收到的数据装入SBUF和RB8(RB8装入停止位),且置“1”中断标志RI。若这两个条件不同时满足,收到的数据将丢失。波特率波特率(band rate)是异步通信中每秒钟传送的二进制数码的位数(比特数),单位是位/秒。 作用:1、反映串行通信的速率; 2、反映对传输通道的要求:波特率越高,要求的传输通道的频带宽度就越宽异步通信:波特率为每秒传送的字符数和每个字符位数的乘积。方式 1、3: 波特率=2SMOD(T1溢出率)/32对波特率需要说明的是,当串行口工作在方式1或方式3,且要求波特率
6、按规范取1200、2400、4800、9600时,若采用晶振12MHz和6MHz,按上述公式算出的T1定时初值将不是一个整数,因此会产生波特率误差而影响串行通信的同步性能。解决的方法只有调整单片机的晶振频率fosc,为此有一种频率为11.0592MHz的晶振,这样可使计算出的T1初值为整数。表9-2列出了串行方式1或方式3在不同晶振时的常用波特率和误差。 用两块AT89C51模拟主机和从机,在主机的P2口低4位处设4个按键,并连上高电平,通过按键来给P2口输入09的随机数,在主机的程序里编写的程序主要实现检测P2口的数值,并通过LED显示出来,然后把这个数发出到从机去。在从机里,先通过中断程序
7、取出接收到的数据,然后处理,通过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 void csh()P
8、2=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)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- at89c51 双机 串口 通信 课程设计
限制150内