双机通信课程设计
STC89C5单片机有一个全双工的异步串行通信口,串行结构如下:
①数据缓冲器(SBUF
接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同 一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。
②串行控制寄存器(SCON
SCO用于串行通信方式的选择,收发控制及状态指示,各位含义如下:
2.
整个双机通信系统以STC89C5洋片机为主控制器,由数码管为核心的数据显示模 块、2单片机的最小系统采用内部时钟方式:以XTAL1和XTAL2引脚外接晶振,构 成了自激振荡器并在单片机内部产生时钟脉冲信号,然后给晶振的每个脚分别外接一个30PF的电容,以此使晶振快速起振并且达到约12MHZ勺稳定频率。而在单片机的RST
RB8在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数 据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。
TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件 清零后才能继续发送。
RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件 清零后才能继续接收。
由串行口TXD端输出,直接由下位机的串行口数据接收端RXD接攵。需要注意的是一定 要保证主从机相同的数据传输速率,即要求设置相同的波特率。电路分为数码管显示模 块,以及单片机工作的基本复位、晶振模块。
2.
(1
一个是数据传送,另一个是数据转换。所谓数 所谓数据转换就是指单片机在接收数据时,如 单片机在发送数据时,如何把并行数据转换为
3输入移位寄存器
接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。
4波特率发生器
波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作 为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度 的物理量,定义为每秒钟传送的数据位数。
5电源控制寄存器PCON
其最高位为SMOD波特率倍增位,在串行口方式1、方式2、方式3时,波特率与SMO有关,当SMOD=tf,波特率提高一倍,复位时,SMOD=0
6波特率计算
当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢 出所需机器周期)。由于是定时方式,T1计数率=fORC/12。产生溢出所需机器周期数=模M-计数初值X。
(
双机通信系统通过主从单片机的串行口来实现数据的收发。主单片机通过开关电路
来启动发送程序,当开关按下时向从机发送一个数据, 从机通过接收中断来接收主机发 送过来的数据,并通过编写好的数据代码在LED数码管上显示主机发送过来的数据。同 时从机给主机发送一个应答信号来表示已经接收到了主机发送过来的数据,在主机接收
西安邮电大学
单片机课程设计报告书
题目:双机通信系统
、系统整体设计
1.
双机通信的实质就是解决两单片机串行通信问题。针对于89C52单片机全双工异步 串行通信口,我们采用单片机直接交叉互连的串行通信方式。
考虑到设计应用于短距离传输、两单片机具有相同的数据格式及电平且为使设计简 单,我们最终决定采用方式二单片机直接交叉连接的串行通信方式,上位机发送的数据
串行数据进行发送。单片机的串行通信使用的是异步串行通信, 所谓异步就是指发送端 和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字 符帧传送。字符帧由发送端一帧一帧地传送, 接收端通过传输线一帧一帧地接收。 而对 于两个单片机之间的串行通信,由于具有相同的数据格式及电平且是短距离通信则不必 要使用一些电平转化芯片(如max232等)便可直接实现串行通讯,需要注意的是两单 片机硬件要共地,软件中需要设置相同波特率
脚接上按键开关以及适当的电阻、 电容便构成按键与断电两用的复位电路。 具体电路如 图3.2.1-1所示:
图2单片机最小系统
4.
设计中,我们使用的是共阳的两位一体数码管并使用P2口控制数码管段选信号,
P1口选取两位为位选信号控制端。拿到数码管后,我们借助万用表进行测试,最终确 定为共阳型数码管,进一步测试便得出了该数码管对应的管脚分布图。
5.
最终实物如下图3所示。
图3双机通信系统设计实物图
四、软件系统实现
1.
图4双机通信系统的proteus仿真图
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0,SM1串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方 式0、1、2、3。串行接口工作方式特点见下表1.
表1串行口工作方式表
SM0
SM1
工
作方式
功能
波特率
0
0
0
8位同步移位寄存器(用于I/O扩展)
fORC/12
0
1
1
10位异步串行通信(UART
—三
、硬件电路设计及实现
1.
从硬件电路设计的目标出发,我们尽量考虑到可靠、高效、简洁的原则,在整个 系统设计过程中严格按照规范进行,做好各部分模块设计最优。简洁是指在满足了可靠、 高效的要求后,为了尽量在器件允许的范围内使电路设计导线无交叉,应使电路设计尽
量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻。在焊接电路 板时由于从机的数码管管脚排布无规律, 使得导线不能直接的焊接,我们尽量合理设计 元件排列和电路走线,使本系统达到设计要求。
应答并校验正确,以二极管显示,这样就完成了一个数据的通信过程,等待按键按下, 然后继续下一次数据的发送直到结束。
3.
图1双机通信系统结构图
、设计要求及任务
按键触发主机向从机发送数据。
从机以中断方式实时接收数据。
从机将接受到的数据显示并回送应答信息给主机。
主机查询回送信息并校验以判断是否继续发送。
制作硬件电路,并调试,最后实现双机通信系统功能。
可变(T1溢出率
*2SMOD/32
1
0
2
11位异步串行通信(UART
fORC/64或fORC/32
1
1
3
11位异步串行通信(UART
可变(T1溢出率
*2SMOD/32
SM2多机通信控制位。
REN接收允许控制位。软件置1允许接收;软件置0禁止接收。
TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。