上位机和下位机通信.doc

上传人:b****2 文档编号:1639978 上传时间:2022-10-23 格式:DOC 页数:38 大小:1.59MB
下载 相关 举报
上位机和下位机通信.doc_第1页
第1页 / 共38页
上位机和下位机通信.doc_第2页
第2页 / 共38页
上位机和下位机通信.doc_第3页
第3页 / 共38页
上位机和下位机通信.doc_第4页
第4页 / 共38页
上位机和下位机通信.doc_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

上位机和下位机通信.doc

《上位机和下位机通信.doc》由会员分享,可在线阅读,更多相关《上位机和下位机通信.doc(38页珍藏版)》请在冰豆网上搜索。

上位机和下位机通信.doc

目录

摘要

1引言 1

2结构设计与方案选择 2

2.1设计任务 2

2.1.1单片机的选择 2

2.1.2电平转换 2

2.1.1单片机的选择 2

2.1.3单片机与pc机通信原理 2

2.2软件方案选择 2

2.2.1上位机编程方案选择 3

2.2.2单片机编程方案选择 3

2.3总体方案选择 2

3硬件设计 8

3.1单片机主要特性 5

3.2MAX232电平芯片介绍10 10

3.3硬件电路设计图 11

3.3.1PC机与单片机通信接口电路设计框图 11

3.3.2整体设计原理图 11

4软件设计 12

4.1上位机程序设计 12

4.2下位机程序设计 13

5软硬件调试部分 21

5.1PROTEUS软件仿真 21

5.1.1Protues简介 21

5.1.2Protues仿真电路图 22

5.2VC软件仿真 21

结束语..........................................................................................................................27

致谢..............................................................................................................................28

参考文献......................................................................................................................29

摘要

本文主要描述了利用PC机与AT89C51单片机之间的通信程序设计实现温度显示。

并详述了在VC6.0环境下,上位机利用MSCOMM通信控件与单片机之间串口通信实现温度显示。

由单片机采集一个温度信号,将采集到的温度信号传送给PC机显示,PC机用VC6.0编写程序,单片机程序用C语言编写,最后用PROTUES软件进行仿真实现温度显示。

关键词:

单片机MSCOMM控件VC6.0AT89C51温度显示

1引言

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。

现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。

加之单片机的计算能力有限,难以进行复杂的数据处理。

因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。

2方案选择

2.1硬件方案选择

2.1.1单片机的选择

本设计采用的是AT89C51单片机,AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

它是一种高效微控制器,因为它更经济实惠,用起来灵活方便,而且习惯了用这种型号的单片机,所以选择AT89C51单片机。

2.1.2电平转换

本设计采用MAX232芯片进行电平转换,MAX232芯片是美信公司专门为电脑的RS232标准串口设计的接口电路,使用+5V单电源供电,它的作用就是完成TTL电平与RS232电平的转换。

PC机的串行口采用的是标准的RS232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS232的电气特性不匹配,因此为了使单片机的串行口能与RS232接口通信,必须将串行口的输入/输出电平进行转换。

通常用MAX232芯片来完成电平转换。

2.1.3单片机与pc机通信原理

MCS-51单片机有一个全双工的串行通讯口UART。

利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。

所以单片机和PC机之间可以方便地进行串口通讯。

单片机串口有3条引线:

TXD(发送数据)、RXD(接收数据)和GND(信号地)。

因此在通信距离较短时可采用零MO·

DEM方式,简单三连线结构。

IBM—PC机有两个标准的RS.232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和

RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了Pc机与MCS-51机之间能可靠地进行串行通信,需要用电平转换芯片,我们采用了MAXIM公司生产的专用芯片MAX232进行转换。

电路如图所示。

图2.2MAX232工作原理图

2.2软件方案选择

2.2.1上位机编程方案选择

本设计采用VC6.0++来实现编程,上位机与单片机进行通信的程序编写可用VB、VC等软件。

由于VB作为面向对象的编程工具不够完全,效率比VC低,提供的命令语言环境较弱,通过串口设备一次最多只能交换16B的数据,对较大数据量的传输存在很大的局限性,很难实现较为复杂的数据处理,VC6.0++是一种功能强大的面向对象的Windows编程开发平台。

VC6.0的优点是界面简洁,占用资源少,操作方便。

所以本设计采用VC作为串口编程工具。

2.2.2单片机编程方案选择

本设计单片机的编程选择C语言编写,因为它简洁紧凑、灵活方便、运算符丰富、数据结构丰富、C是结构式语言、C语法限制不太严格,程序设计自由度大、C语言允许直接访问物理地址,可以直接对硬件进行操作、C语言程序生成代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低10へ20%、C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。

所以我选用C语言来编写此程序。

2.3总体方案选择

温度传感器测量出来的温度值由单片机采集出来,然后单片机再将采集出的温度数据处理后,通过串行口发送给上位机。

AT89C5111

PC机

MAX232

图2.1总体设计方案流程图

3硬件设计

3.1单片机主要特性

·与MCS-51兼容  

·4K字节可编程闪烁存储器  

·寿命:

1000写/擦循环  

·数据保留时间:

10年  

·全静态工作:

0Hz-24MHz 

·三级程序存储器锁定  

·128×8位内部RAM  

·32可编程I/O线  

·两个16位定时器/计数器  

·5个中断源  

·可编程串行通道  

·低功耗的闲置和掉电模式  

·片内振荡器和时钟电路

单片机AT89C51的引脚说明:

图3.1AT89C51的引脚排列

引脚描述:

VCC:

电源电压

GND:

P0口:

P0口是一组8位漏极开路双向I/O口,即地址/数据总线复用口。

作为输出口时,每一个管脚都能够驱动8个TTL电路。

当“1”被写入P0口时,每个管脚都能够作为高阻抗输入端。

P0口还能够在访问外部数据存储器或程序存储器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。

P0口在闪烁编程时,P0口接收指令,在程序校验时,输出指令,需要接电阻。

P1口:

P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL电路。

对端口写“1”,通过内部的电阻把端口拉到高电平,此时可作为输入口。

因为内部有电阻,某个引脚被外部信号拉低时输出一个电流。

闪烁编程时和程序校验时,P1口接收低8位地址。

P2口:

P2口是一个内部带有上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL电路。

对端口写“1”,通过内部的电阻把端口拉到高电平,此时,可作为输入口。

因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器时,P2口线上的内容在整个运行期间不变。

闪烁编程或校验时,P2口接收高位地址和其它控制信号。

P3口:

P3口是一组带有内部电阻的8位双向I/O口,P3口输出缓冲故可驱动4个TTL电路。

对P3口写如“1”时,它们被内部电阻拉到高电平并可作为输入端时,被外部拉低的P3口将用电阻输出电流。

P3口除了作为一般的I/O口外,更重要的用途是它的第二功能,如下表所示

端口引脚

第二功能

P3.0

RXD

P3.1

TXD

P3.2

INT0

P3.3

INT1

P3.4

T0

P3.5

T1

P3.6

WR

P3.7

RD

表2..1P3口第二功能

P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。

RST:

复位输入。

当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。

ALE/:

当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。

如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。

这个位置后只有一条MOVX和MOVC指令ALE才会被应用。

此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:

程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器时,这两次有效的PSEN信号不出现。

EA/VPP:

外部访问允许。

欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。

需要注意的是:

如果加密位LBI被编程,复位时内部会锁存EA端状态。

如EA端为高电平,CPU则执行内部程序存储器中的指令。

闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。

XTAL1:

震荡器反相放大器及内部时钟发生器的输入端。

XTAL2:

震荡器反相放大器的输出端。

时钟震荡器:

AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。

外接石英晶体及电容C1,C2接在放大器的反馈回路中构成并联震荡电路。

对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。

如果使用石英晶体,我们推荐电容使用30PF±10PF,而如果使用陶瓷振荡器建议选择40PF±10PF。

用户也可以采用外部时钟。

采用外部时钟的电路如图示。

这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1