2012~2013学年第一学期《单片机原理与应用》课程设计报告题目:双机之间的串行通信设计专业:通信工程班级:10通信2姓名:余诗长、杨号、苏李闯舒怀、汪才锐、潘升旗指导教师:周珍艮、崔雪英电气工程系2012年10月27日I《单片机原理与应用》任务书课题名称双机之间的串行通信设计指导教师(职称)周珍艮(副教授)崔雪英(讲师)执行时间2012~2013学年第一学期第8周学生姓名学号承担任务余诗长10009131084双机串行电路设计杨号1009131082主机模块设计苏李闯1009131052仿真调试舒怀1009131050键盘扫描输入模块设计及整理录入汪才锐1009131056从机模块设计潘升旗1009131046仿真调试设计目的1、了解串行通信的工作原理2、了解键盘设定的工作原理3、掌握80C51的定时器1计数器1的编程4、掌握仿真软件的仿真设计要求两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。串行口工作方式为方式1的全双工串行通信。II摘要串行通信时单片机的一个重要运用,本次课程设计就是要利用单片机来完成一个系统摘要,实现双片单片机串行通信。通信的结果使用数码管进行显示,数码管采用查表方式显示。两个单片机之间采用RS232进行双机通信。在通信过程中使用通信协议进行通信。两片单片机之间进行串行通信,发送端将0~f循环发送到接收端,并在收端显示。本次设计,对于两片89c51,采用RS232进行双机通信。发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接收方接收后,在数码管上显示接受的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。软件部分,通过通信协议进行发送接受,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB(16)中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机:否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。关键字51单片机串行通信接口III目录《单片机原理与应用》.............................................................................................................1课程设计报告....................................................................................................................1《单片机原理与应用》任务书...............................................................................................I摘要.........................................................................................................................................II目录......................................................................................................................................III第1章双机之间的串行通信设计原理............................................................................1第2章双机之间的串行通信设计.....................................................................................22.1硬件设计......................................................................................................................22.2主机模块设计.............................................................................................................22.3从机模块设计.............................................................................................................42.4键盘扫面子程序设计...............................................................................................4第3章仿真...............................................................................................................63.1仿真软件的了解........................................................................................................63.2仿真过程操作.............................................................................................................63.3运行测试......................................................................................................................6总结.......................................................................................................................................7参考文献................................................................................................................................8附录.......................................................................................................................................9答辩记录及评分表...................................................................................................................141第1章双机之间的串行通信设计原理两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器T1计数初值TH1、TL1进行设定。故本题目本质上是通过键盘扫描得到设定的波特率,从而载入相应的T1计数初值TH1、TL1实现的。示例程序中将0xaa从主机传输到从机,并显示在从机的数码管上实现串口通讯的验证。如串口通讯线路过长,可考虑采用MAX232进行电平转换,以延长传输距离。值得注意的是,为了减少计算载入初值时的误差,本项目最好采取11.0592MHz的晶振。我们设计以AT89C51单片机为核心,利用其内部的串行口,通过硬件与软件相结合的方式,实现双机的全双工的串行通信。硬件电路包括键盘电路,显示电路,单片机主控电路,串行通信线和电源电路。软件包括键盘扫描程序,显示程序,发送程序和接受程序。发送和接收都采用中断方式。由于两个单片机应用系统相距很近,近程通信时,可以不使用调制解调器,将它们的串行口直接相连就可以实现全双工的串行通信。电路设计如图1所示。图1系统整体电路图2第2章双机之间的串行通信设计本系统利用单片机的串行口,由软件和硬件两部分协调实现两单片机的串行数据传输。硬件电路以AT89C51单片机为核心,外围电路包括键盘电路(数据的输入),显示电路(数据的输出)。工作在硬件电路基础上的软件主要完成数据的输入,存储,显示,发送和接收。由于两单片机相距很近,可以直接将其串行口相连。系统整体电路图如图2所示。图2系统整体电路框图2.1硬件设计系统组成下面就以主号机为例,介绍硬件。硬件电路包括AT89C51单片机,共阳性LED数码管以及传输线。AT89C51是一个低电压,低功耗,高性能CMOS8位单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外设中断口,2个16位可编程定时计数器,2个全双工串行通信口。AT89C51可以按照常规的方法进行编程,也可以在线编程。片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统。2.2主机模块设计此系统欲实现双机的全双工的串行通信。甲乙两机的内部软件是完全相同的,主机和从机都能发送和接收数据信息,能同时进行数据交换。假设主机为发3送方,从机为接收方。当按下发送按键时,主机开始发送数据,存储在R7中并通过显示器显示。按下从机的接收按键,从机开始接收数据,每接收一个数值就直接送到显示器显示。本设计通过键盘输入数据。利用软件控制键盘进行加1或者减1操作,可以使其输入0~F之间的任意一个数。主机主程序如图3所示。图3主机主程序流程图设置串行口通讯方式及波特率开始检测键盘输入读入键值串行口发送键码选择波特率有无结束42.3从机模块设计从机从主机接收数据,并在送至显示器显示。从机主程序如图4所示。图4从机主程序流程图2.4键盘扫面子程序设计键盘扫面程序是通过软件的操作对键盘输入的逐行逐列进行扫描设置,从而达到确定输入的键值,通过键盘扫描程序可以确定其输入0~F之间的任意一个数。开始设置串行口通讯方式及其波特率RI=?读入数据保存数码管显示选择波特率01结束5键盘扫面程序如图5所示。图5键盘扫面程序流程图开始列置零读行状态确定行值确定键码查表键盘输入保存输入内容非零下一列零返回6第3章仿真3.1仿真软件的了解Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。3.2仿真过程操作加载目标代码文件打开元器件单片机属性窗口,在“ProgramFile”栏中添加上面编译好的目标代码文件;在“ClockFrequency”栏中输入晶振频率为11.0592MHz。3.3运行测试启动仿真结果如图6所示,二极管间隔点亮了,表明通讯成功了。图6整体仿真结果图7总结通过这一次的课程设计,我不仅仅学到了专业知识,更