Proteus中实现单片机双机通信实验
- 格式:pdf
- 大小:3.43 MB
- 文档页数:4


前言单片机的通信接口是各台仪表之间或仪表与计算机之间进行信息交换和传输的联络装置。
主要有五种类型,串行通信接口、并行通信接口、USB接口、现场总线接口以及以太网接口。
串行通讯是单片机的一个重要应用。
本设计就是利用两块单片机来完成一个系统,实现单片机之间的串行通讯。
随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。
于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。
从智能家用电器到工业上的控制系统都采用了上位机与下位机基于串行通信的主从工作方式,这样就充分利用了微机分析处理能力强、速度快的特点及下位机(单片机)面向控制、使用灵活方便的优势。
利用多机通讯构成的分布式系统逐渐普及。
本实验就点对点的双机通信进行训练。
学习串口的工作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计方法。
1.总体设计方案1.1 串口通信的设计原理复位电路复位电路单片机单片机电源电路电源电路时钟电路时钟电路按键输入1位LED数码管显示电路图1 串口通信的设计原理框图本次设计用于两片89S51,PC机的串行口采用的是标准的RS232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS232的电气特性不匹配,因此为了使单片机的串行口能与RS232接口通信,必须将串行口的输入/输出电平进行转换。
通常用MAX232芯片来完成电平转换。
单片机的发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。
接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。
接收方接收后,在数码管上显示接收的信息,实现串口通讯数据的发送和接收,该系统可采用max232进行串口通讯数据传送。
可用LED显示发送的相应据。
1.2 数据传输方案比较与选折在串行通信中,数据是在两个站之间传送的。
基于单片机的双机通信[摘要]双机通信是单片机的一个重要应用。
本次课程设计就是要利用单片机来完成一个系统,实现两个单片机之间的有序通信。
本文详细介绍了关于基于单片机AT89C51实现的双机之间的通信的设计。
软件部分采用C语言编程实现接收部分和发射部分的功能,用Protues进行仿真。
软件设计完成后,将程序烧入单片机。
通信的结果实用数码管进行显示,数码管采用查表方式显示。
在通信过程中,使用通信协议进行通信。
[关键词]51单片机;串行通信;接口Two-machine communication based on single chip[Abstract]Dual machine communication is an important application of single chip. This course is designed to using single chip computer to complete a system, realize the orderly communication between two single-chip microcomputer. This paper introduces the realization based on single-chip microcomputer AT89C51 about the dual machine for communication between the design. Software part adopts the C programming language realization receiving part and emission, part of the Protues function, through simulation. The software design is completed, the procedure spread microcontroller. Communication results and practical to display, digital digital tube pipe, adopting look-up table display. In communication process, USES communication protocol to communicate.[Key words]51 SCM; serial communication; Interface目录基于单片机的双机通信 (I)Two-machine communication based on single chip (II)绪论 (2)1.课题背景 (3)1.1 双机通信简介 (3)1.1.1 双机通信接口的基本特点 (3)1.2 双机通信原理 (4)1.3 系统网络协议 (4)2.设计方案 (6)3.单片机与通信芯片介绍 (7)3.1 单片机技术介绍 (7)3.2 MAZ232芯片 (10)3.3 4×4键盘介绍 (11)3.3.1 4×4矩阵键盘工作原理 (11)3.3.2数码动态扫描显示电路 (12)3.4数码管工作原理 (13)4.设计步骤 (14)4.1 Keil和Proteus介绍和联调 (14)4.1.1 Proteus的介绍 (14)4.1.2 Keil的介绍 (15)4.2 软件设计 (16)4.3 硬件设计 (16)结论 (17)致谢 (18)参考文献 (19)附录I (20)附录II (27)附录III (28)绪论单片机作为微型计算机的一个分支,具有功能强、体积小、应用灵活等诸多优点,在工业控制、仪器仪表、通信、家用电器和国防科技等各个领域得到广泛的应用。
单片机实验三双机通信实验程序第一篇:单片机实验三双机通信实验程序实验三双机通信实验一、实验目的UART 串行通信接口技术应用二、实验实现的功能用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。
三、系统硬件设计实验所需硬件:电脑一台;开发板一块;串口通信线一根; USB线一根;四、系统软件设计实验所需软件:编译软件:keil uvision3;程序下载软件:STC_ISP_V480;试验程序:#include sbit W1=P0^0;sbit W2=P0^1;sbit W3=P0^2;sbit W4=P0^3;sbit D9=P3^2;sbit D10=P3^3;sbit D11=P3^4;sbit D12=P3^5;sbit DP=P1^7;code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};sfr P1M1=0x91;sfr P1M0=0x92;sbit H1=P3^6;sbit H2=P3^7;sbit L1=P0^5;sbit L2=P0^6;sbit L3=P0^7;unsigned char dat;unsigned char keynum;unsigned char keyscan();void display();void delay(void);L1=1;L2=1;L3=1;H1=0;if(L1==0)return 1;else if(L2==0)return 2;else if(L3==0)return 3;H1=1;H2=0;if(L1==0)return 4;else if(L2==0)return 5;else if(L3==0)return 6;H2=1;return 0;} unsigned char keyscan(){ static unsigned int ct=0;static unsigned char lastkey=0;unsigned char key;key=getkey();if(key==lastkey){ct++;if(ct==900){ct=0;lastkey=0;return key;} } else {第二篇:单片机串行通信实验实验四单片机串行通信实验一、实验目的1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。
基于Proteus仿真软件实现单片机与PC机多字节串行通信作者:王忠远张凤桐来源:《电脑知识与技术》2016年第36期摘要:Proteus电路设计仿真软件是世界上著名的EDA开发工具,在单片机中嵌入串行通信软件,利用仿真串口COMPIM与PC机通信。
本论文主要利用Proteus仿真软件制作单片机串行通信仿真电路,经过虚拟串口可以实现在同一台计算机上实现下位单片机与上位计算机仿真串行通信,上位计算机采用VB语言编辑界面,在单片机教学和电子产品开发中具有一定的参考价值。
关键词: Proteus;COMPIM;虚拟串口;MSComm中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)36-0261-02在单片机串行教学及电子产品开发时,通常涉及单片机(下位机)与计算机(上位机)的串行通信,利用串行通信上位机发送命令给下位机,下位机将待显示数据传到上位机上显示,本论文设计收发帧定长21个字节的串行通信,一帧包括2字节同步头、2字节结束字、1字节命令字、16字节数据。
上下位机通过一对虚拟串口进行连接实现双机通信。
1 Proteus仿真软件绘制串行通信电路(如图1)2 利用kile c51软件编写下位机程序代码#include#define uchar unsigned charsbit P1_1=P1^1;uchar Fhead=0xA5,Fend=0x5A,shead=0,send=0; //头尾字节,找到头尾标志uchar x,uartbuf,rdata[20]; //接收变量,接收缓冲21字节uchar temp,tdata[21]={0xa5,0xa5,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x5a,0x5a};uchar scount; //接收有效数据main(){ TMOD=0x20; PCON=0x00; SCON=0x50; //设置波特率为9600b/s,10位异步收发,启动定时器1TH1=0xfd; TL1=0xfd; TR1=1;EA=1; ES=1; //开启中断while(1){ if(send==1||P1_1==0) //接收到正确数据或按键按下时下位机发送数据到上位机{ tdata[0]=0xa5;tdata[1]=0xa5;tdata[19]=0x5a;tdata[20]=0x5a;for(temp=0;temp{ SBUF=tdata[temp]; while(TI==0);TI=0; }send=0; scount=0;while(P1_1==0);} } }void uart() interrupt 4 using 1{ if(RI==1){x=SBUF;if(x==Fhead && x==uartbuf) //找同步头{shead=1;scount=0;}if(x==Fend && x==uartbuf) //找结束字{shead=0;;send=1;}if(shead==1) //是同步头非结束字保存数据{rdata[scount]=x;tdata[scount+1]=x;scount++;}uartbuf=x; RI=0;}}3 上位机串行通信界面设计利用VB设计数据收发控制界面如图2,在设计时需要增加外部控件:在工程-部件中选择microsoft comm control 6.0控件,添加后在工具箱中出现电话机图标,拖入窗体即可使用。