武汉理工大学基于C语言的上下位机通信设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务书

学生姓名:专业班级:信息工程1004班

指导教师:郑林工作单位:信息工程学院

题目: 基于C语言的上下位机通信设计

初始条件:

1.计算机及WINDOWS 7操作系统

2.VC++6.、Keil uVision4、STC_ISP等软件

3.开发语言:C++ /C语言

4.HL—1型综合单片机开发板、DS18B20温度传感器

要求完成的主要任务:

设计一个基于C语言的上下位机通信设计。

功能如下:

(1)上位PC机与下位单片机模块通信

(2)上位机能通过下位机控制板块上的指示灯;

(3)下位机可把温度等信息传给上位机

要求:

1. 按《武汉理工大学课程设计工作规范》要求撰写课程设计说明书

2. 根据设计任务,能够讲解及显示自己的设计

3. 最终完成内容包括设计说明书和交程序备份

时间安排:

2013年6月 11号—— 12号选题及调研

2013年6月 13号—— 19号软件设计及编程调试

2013年6月 20号—— 21号撰写设计说明书

2013年6月22号答辩

指导教师签名:年月日系主任(或责任教师)签名:年月日

目录

摘要 (1)

1设计任务 (3)

2方案选择 (4)

2.1硬件方案选择 (4)

2.2软件方案选择 (4)

2.2.1 上位机编程方案选择 (4)

2.2.2 单片机编程方案选择 (5)

2.3 总体方案选择 (5)

3 详细设计 (6)

3.1 单片机部分 (6)

3.1.1下位机硬件设计 (6)

3.1.2下位机程序设计 (8)

3.2 PC机部分 (9)

4 调试与运行 (13)

5 总结 (14)

参考文献 (15)

附录

摘要

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

现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。本文主要描述了利用PC机与STC89C52单片机之间的通信程序设计实现温度显示。并详述了在VC6.0环境下,上位机利用串口调试程序与单片机之间串口通信实现温度显示。由单片机采集一个温度信号,将采集到的温度信号传送给PC机显示,PC机用VC6.0编写程序,单片机程序用C语言编写。通常PC机和单片机之间的通信是通过串行总线RS-232实现的。因此采用一种以MAX232为核心的通信接口电路。该接口电路适用于由一台PC机与多个STC89C52单片机串行通信的设计,其原理和方法同样适用于PC机与其它单片机之间的串行数据通信。

关键词:单片机串口通信VC6.0 STC89C52温度显示DS18B20

1.设计任务

在当今的工业控制系统中,各种数据的采集和执行机构的控制都是由下位机或探测站来完成。由于单片机具有体积小、价格低廉、可应用于恶劣工业环境的特点,在分布式控制系统中大多采用单片机作为下位机来进行数据采集和现场控制。在这些应用中,单片机只是直接面向被控对象底层。而对采集到的数据进行进一步分析和处理的工作是由功能强大的主控PC机来完成的。因此,PC机和单片机之间就有着大量的数据交换。

51单片机与PC机之间的通信协议

在许多场合的测控系统中,约定PC机和8051单片机的通信协议为:

Number+Command+Length+Data+Check

Number:下位机的机号,若设计中有3台下位机,即Number 取01H,02H,03H,分别代表:#1,#2,#3号下位机;

Command:本次命令的代码;Length:本次发送数据段的字节数;

Data:要发送的数据段;

Check:1字节的校验码。

本设计只考虑一个8051单片机,故可对上述通信协议进行简化。

具体任务要求:基于C语言的上下位机通信设计

主要功能:

(1)上位PC机与下位单片机模块通信

(2)上位机能通过下位机控制板块上的指示灯;

(3)下位机可把温度等信息传给上位机

系统环境:

Windows xp / windows 7

软件:

VC++6.0、Keil uVision4、STC官方烧录工具(STC-ISP)

2方案选择

2.1硬件方案选择

本设计采用的是STC89C52单片机,STC89C52是一种带8K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。STC89C52使用经典的MCS-51内核,它是一种高效微控制器,因为它更经济实惠,用起来灵活方便,而且习惯了用这种型号的单片机,所以选择STC89C52单片机。

本设计采用MAX232芯片进行电平转换,MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5V单电源供电,它的作用就是完成TTL电平与RS-232电平的转换。PC机的串行口采用的是标准的RS-232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS-232的电气特性不匹配,因此为了使单片机的串行口能与RS-232接口通信,必须将串行口的输入/输出电平进行转换。通常用MAX232芯片来完成电平转换。

MCS-51单片机有一个全双工的串行通讯口UART。利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据)、RXD(接收数据)和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM—PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL 电平;为了PC机与MCS-51机之间能可靠地进行串行通信,需要用电平转换芯片,我们采用了MAXIM公司生产的专用芯片MAX232进行转换。

2.2软件方案选择

2.2.1上位机编程方案选择

本设计采用VC6.0++来实现编程,上位机与单片机进行通信的程序编写可用VB、VC等软件。由于VB作为面向对象的编程工具不够完全,效率比VC低,提供的命令语言环境较弱,通过串口设备一次最多只能交换16B的数据,对较大数据量的传输存在很大的局限性,很难实现较为复杂的数据处理,VC6.0++是一种功能强大的面向对象的Windows编程开发平台。VC6.0的优点是界面简洁,

相关文档
最新文档