单片机双机点对点通信设计
- 格式:doc
- 大小:20.50 KB
- 文档页数:4
西安邮电大学单片机课程设计报告书题目:双机通信院系名称:自动化学院学生姓名:专业名称:测控技术与仪器班级:时间:2012年 5 月 21 日至 6 月 1 日一、设计目的利用所学单片机知识解决实际问题。
二、设计要求1.用两片单片机,实现双机通信;2.利用与A(主机)连接的按键控制与B(从机)连接的数码管,每按一次键,主机LED亮同时数码管显示数据,随后从机LED亮,伴随着数码管显示与主机相同的数据;3.同理,用与B机连接的按键控制与A机连接的数码管。
1. STC89C52单片机介绍(1)STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。
(2)外部时钟电路(3)复位电路(4)系统硬件结构图(5)硬件仿真图(6)系统软件流程图及程序代码程序流程图程序代码如下:#include <reg52.h>#define uchar unsigned charsbit COM1 = P2^1;sbit COM2 = P2^0;sbit LED = P1^0;uchar ch, x = 0;uchar ge, shi;uchar const NUM[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; void delay_ms(uchar ms);void initModule(void);void sendOneChar(uchar ch);**************函数功能:发送数据*********** void sendOneChar(uchar ch){ES = 0;SBUF = ch;while(!TI);TI = 0;ES = 1;}void initModule(){TMOD = 0x20;TH1 = 0xfd;TL1 = 0xfd;SCON = 0x50;COM1 = 0;COM2 = 0;LED = 1;}**************函数功能:延迟************ void delay_ms(uchar ms){uchar i, j;for (i=0; i<ms; i++)for(j=0;j<110;j++);}*************主函数************void main(){initModule();EX0 = 1;IT0 = 1;ES = 1;EA = 1;TR1 = 1;P0 = NUM[0];while(1){}}void button() interrupt 0{uchar num = 0;delay_ms(20);if (INT0 == 0){LED = 0;delay_ms(500);LED = 1;x++;if(x==25){x=0;}}shi = x / 10;ge = x % 10;while (num < 20){COM1 = 1;P0 = NUM[shi];delay_ms(15);COM1 = 0;COM2 = 1;P0 = NUM[ge];delay_ms(15);COM2 = 0;num++;}sendOneChar(x);}void read() interrupt 4 {uchar num = 0;RI = 0;LED = 0;delay_ms(300);LED = 1;shi = SBUF / 10;ge = SBUF % 10;while (num < 20){COM1 = 1;P0 = NUM[shi];delay_ms(15);COM1 = 0;COM2 = 1;P0 = NUM[ge];delay_ms(15);COM2 = 0;num++;}}五、问题分析与解决方法问题一:仿真问题仿真图画好之后,开始运行,发光二极管没有反应。
文献综述电子信息工程单片机双机通信系统设计1. 前言随着计算机技术的快速发展和广泛应用,从智能的家用电器到工业上的集散控制系统都采用上位机与下位机基于串行通信的主从工作方式,这样就充分利用了微型计算机分析处理能力强、速度快的特点及下位机面向控制、使用灵活方便的优势。
[1]51系列的单片机内部包含有数据存储器、程序存储器、两个16位的定时器/计数器、通用异步串行收发器这些资源。
在广泛的应用中,单独一片单片机所能完成的任务是有限的,因此而常常需要扩充I/O接口、定时器/计数器、串行通信接口、存储器等器件。
一个系统中使用两个或两个以上的单片机时,单片机之间就需要通过互连进行数据的通信。
51系列的单片机带有串口,利用串口进行互连通信极为方便,并且能够减少端口的数量。
但如果系统要求扩充的资源是对外连接的串口,串口上可以外接串行输入并行输出的移位寄存器74LS164,或外接并行输入串行输出的移位寄存器74LS165。
[2-6]为了增加通信距离,减少通道中电源的干扰,可以在通信上路采取光电隔离的方法进行双机串行通信。
2. 主题双机通信系统设计中,单片机内部的串行接口是全双工的,它在接收数据的过程中同时能够发送数据。
两个串行接口数据缓冲器可以通过特殊功能寄存器SBUF访问,写入SBUF的数据用于发送,接收的数据从SBUF中读出。
常用的数据传输方式有单工、半双工、全双工,本设计采用单工的传输方式。
串行通信有两种形式,(1)异步通信:这种通信方式的特点是接收器和发送器都有各自独立的时钟,然而它们之间的工作不是同步的,异步通信方式用一帧表示一个几位的字符,其内容排布:首先一个起始位,接着几个数据位,最后紧跟的是一个停止位。
(2)同步通信:这种通信方式的特点是发送端和接收端由共同的一个时钟源控制,为了解决在异步通信方式中每传输单位字符要加上起始位和停止位从而占用大量传输时间的情况,同步传输通信方式会去掉起始位和停止位,与传输数据块时会首先送出同步字符标志来控制数据的发送。
单片机点对点通讯程序(c51)#include#define uchar unsigned char#define TR 1uchar idata buf[10];uchar pf;void init(void){TMOD=0X20; /*定时方式2*/TH1=0XE8; /*波特率*/TL1=0XE8;PCON=0X00;TR1=1;SCON=0X50;}void send(uchar idata *d){uchar i;do{SBUF=0XAA; /*发送联络信号*/while(TI==0);TI=0; /*等待发送出去*/while(RI==0);RI=0; /*等待B机回答*/}while((SBUF^0xbb)!=0); /*B机未准备好,继续联络*/ do{pf=0; /*清校验和*/for(i=0;i<16;i++){SBUF=d[i];pf+=d[i]; /*求校验和*/while(TI==0);TI=0;}SBUF=pf; /*发送校验和,并等待B机回答*/while(TI==0);TI=0;while(RI==0);RI=0;}while(SBUF!=0); /*回答出错,重发*/}void receive(uchar idata *d){ uchar i;do{while(RI==0);RI=0;}while((SBUF^0xaa)!=0); /*判断A机有无请求*/ SBUF=0xbb; /*发应答信号*/while(TI==0);TI=0;while(1){pf=0; /*清校验和*/for(i=0;i<16;i++){while(RI==0);RI=0;d[i]=SBUF;pf+=d[i]; /*求检验和*/}while(RI==0);RI=0; /*接收A机校验和*/if((SBUF^pf)==0) /*比较校验和*/{SBUF=0x00;break;} /*相同发“00”*/else{SBUF=0xff; /*出错发“FF”,重新接收*/ while(TI==0);TI=0;}}}void main(void){init();if(TR==0){send(buf);}else{receive(buf);}}。
一设计题目:双机通信系统二实验描述:设计一个双机通信系统,实现按键数据的互发及显示功能。
三实验要求:利用两片8051单片机完成双机通信(A机和B机),A、B机发至对方数据可用数码管显示,通信过程用按键控制,发送内容自定。
四实验元件:ST89C51(两片)、电容(30PF*4、10UF*4)、数码管(共阳)、晶振(11.059 2MHZ)、小按键等。
五具体设计:1:设计介绍1.1 串行通信介绍广义地讲,终端(如计算机等)与其他终端、终端与外部设备(如打印机、显示器等)之间的信息交换称为数据通信(Data Communication)。
数据通信方式有两种:串行通信和并行通信。
并行通信:数据的各位同时进行传送(接收和发送),其优点是传递速度快、效率高,多用在实时、快速的场合。
串行通信:数据逐位传送,优点是数据只需要一根数据线就能完成传送,联结介质简单,成本低。
1.2 8051简介51内部结构:8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,·中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
·数据存储器(RAM):8051内部有128个8位用户数据存储单元8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
·程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
·定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
51单片机双机串行通信设计51单片机是一款广泛应用于嵌入式系统中的微控制器,具有高性能和低功耗的特点。
在一些场景中,需要使用51单片机之间进行双机串行通信,以实现数据传输和协同工作。
本文将介绍51单片机双机串行通信的设计,包括硬件连接和软件编程。
一、硬件连接1.串行通信口选择:51单片机具有多个串行通信口,如UART、SPI 和I2C等。
在双机串行通信中,可以选择其中一个串行通信口作为数据传输的接口。
一般来说,UART是最常用的串行通信口之一,因为它的硬件接口简单且易于使用。
2.引脚连接:选定UART口作为串行通信口后,需要将两个单片机之间的TX(发送)和RX(接收)引脚相连。
具体的引脚连接方式取决于所使用的单片机和外设,但一般原则上是将两个单片机的TX和RX引脚交叉连接。
二、软件编程1.串行通信初始化:首先需要通过软件编程来初始化串行通信口。
在51单片机中,可以通过设置相应的寄存器来配置波特率和其他参数。
具体的初始化代码可以使用C语言编写,并根据所使用的开发工具进行相应的配置。
2.发送数据:发送数据时,可以通过写入相应的寄存器来传输数据。
在51单片机中,通过将数据写入UART的发送寄存器,即可将数据发送出去。
发送数据的代码通常包括以下几个步骤:(1)设置发送寄存器;(2)等待数据发送完成;(3)清除数据发送完成标志位。
3.接收数据:接收数据时,需要通过读取相应的寄存器来获取接收到的数据。
在51单片机中,可以通过读取UART的接收寄存器,即可获取到接收到的数据。
接收数据的代码通常包括以下几个步骤:(1)等待数据接收完成;(2)读取接收寄存器中的数据;(3)清除数据接收完成标志位。
4.数据处理:接收到数据后,可以进行相应的数据处理。
根据具体的应用场景,可以对接收到的数据进行解析、计算或其他操作。
数据处理的代码可以根据具体的需求进行编写。
5.中断服务程序:在双机串行通信中,使用中断可以提高通信的效率。
课程设计任务书说明:1、学院、专业、年级均填全称。
2、本表除签名外均可采用计算机打印。
本表不够,可另附页,但应在页脚添加页码。
电子综合实习报告书----单片机双机通信系统的设计一、引言由于MCS51系列单片机具有性能稳定、工作可靠、价格低廉等特点,因此其应用相当广泛。
一个MCS51系列的单片机(如Atmel89c51)内部包含有RAM、FLASH ROM、两个或者三个16位的定时器/计数器、一个通用异步串行通信控制器(UART)等多种资源。
但即便如此,在一些相对复杂的单片机应用系统中,仅仅一个单片机资源还是不够的,因此而常常需要扩充I/O接口、定时器/计数器、串行通信接口、RAM、ROM等。
采用通用的标准器件进行扩充是通常的做法,但将单片机本身作为一个通用的扩充器件来使用,也不失为一个好的方法。
在这种情况下,一个系统中就使用了两个或两个以上的单片机,而单片机之间就要通过互连来进行数据通信。
MCS51系列的单片机(以下简称单片机)都带有串口,利用串口进行互连通信极为方便,其各种连接方式在许多书籍和资料上都有介绍,在此不再重述。
但如果系统要求扩充的资源是对外连接的串口,或对相互之间的数据传送有一定的速度要求,则单片机的串口就不能用作系统内两单片机的通信接口了。
所幸的是,单片机的并行端口也能相互连接来进行数据通信。
根据单片机端口内部结构的特点,这些端口的端口线可以直接相连,从而使两单片机之间并行通信接口的实现不用另外的硬件电路设备。
此次设计就是针对上述情况展开的。
系统结构框图如图(1)所示。
二、键盘设计1、硬件接线部分考虑到此次设计要求用到的按键数比较多(0~9,A~F共16个按键),为了节约I/O资源,采用行列式键盘,如图(2)所示图(2)按键编排如图(3)所示图(3)2、4×4矩阵键盘识别处理按键设置在行列式交点上,行列线分别连接到按键开关的两端。
当行线通过上拉电阻接+5伏时,被钳位在高电平状态,事先认为设定好行线和列线的序号。
前言单片机的通信接口是各台仪表之间或仪表与计算机之间进行信息交换和传输的联络装置。
主要有五种类型,串行通信接口、并行通信接口、USB接口、现场总线接口以及以太网接口。
串行通讯是单片机的一个重要应用。
本设计就是利用两块单片机来完成一个系统,实现单片机之间的串行通讯。
随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。
于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。
从智能家用电器到工业上的控制系统都采用了上位机与下位机基于串行通信的主从工作方式,这样就充分利用了微机分析处理能力强、速度快的特点及下位机(单片机)面向控制、使用灵活方便的优势。
利用多机通讯构成的分布式系统逐渐普及。
本实验就点对点的双机通信进行训练。
学习串口的工作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计方法。
1.总体设计方案1.1 串口通信的设计原理复位电路复位电路单片机单片机电源电路电源电路时钟电路时钟电路按键输入1位LED数码管显示电路图1 串口通信的设计原理框图本次设计用于两片89S51,PC机的串行口采用的是标准的RS232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS232的电气特性不匹配,因此为了使单片机的串行口能与RS232接口通信,必须将串行口的输入/输出电平进行转换。
通常用MAX232芯片来完成电平转换。
单片机的发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。
接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。
接收方接收后,在数码管上显示接收的信息,实现串口通讯数据的发送和接收,该系统可采用max232进行串口通讯数据传送。
可用LED显示发送的相应据。
1.2 数据传输方案比较与选折在串行通信中,数据是在两个站之间传送的。
单片机双机通信系统课程设计一.课程设计的目的及基本要求:实践课程是使学生融会贯通本课程所学专业理论知识,完成一个较完整的设计计算和安装调试过程,以加深学生对所学理论的理解与应用,认识和熟悉元器件和电子测量仪器的性能指标,了解解决实际问题的一般过程,培养学生综合运用基础理论知识和专业知识去解决实际工程设计问题的能力。
通过电子技术的综合性工程训练,使学生达到以下的目的和要求:1、结合模拟电路、数字电路、可编程逻辑器件、单片机电子线路CAD等课程中所学的理论知识,按要求独立设计方案,培养学生独立分析与解决问题的能力;2、学会查阅相关手册和资料,通过查阅手册和资料,进一步熟悉常用电子器件的类型和特性,并掌握合理选用的原则;3、学会使用常用电子元器件(包括中规模芯片、专用芯片和可编程器件);4、掌握基本的现代电子技术设计工具和EDA(Electronicdesign automation)技术;5、掌握电子电路的安装与调试技术,进一步熟悉电子仪器的使用方法;6、认真撰写总结报告,培养严谨的作风和科学的态度;二.课程设计的主要内容:课题十九单片机双机通信系统基本要求:设计两个单片机最小系统,能实现有线通信,一 23方为发送,另一方为接收。
提高要求:两个单片机最小系统能相互通信,并能实现校验。
三.具体要求和时间安排:每一个学生在教师指导下,独立完成一个应用系统。
工作量如下:1、电路原理图(A3幅面)1张,要求Protel软件绘制;2、pcb版图(A3及以上幅面)1张;3、设计说明书(20-30页)1本,内含能编译通过的源程序(有必要的注释)。
23目录一、前言 (4)二、键盘设计 (5)1、硬件接线部分 (5)2、4×4矩阵键盘识别处理 (7)3、键盘识别处理程序 (8)三、单片机的选择及其程序设计 (10)1、单片机型号的选择 (10)2、协议设计 (10)3、双机连接电路图 (11)4、甲机程序 (11)5、乙机程序 (16)四、数码管显示设计 (16)23五、总体电路图 (21)六、设计小结 (22)七、参考文献 (23)一.前言由于MCS51系列单片机具有性能稳定、工作可靠、价格低廉等特点,因此其应用相当广泛。