基于PC与单片机的串行通信系统设计.docx

上传人:b****5 文档编号:27727959 上传时间:2023-07-04 格式:DOCX 页数:51 大小:1.17MB
下载 相关 举报
基于PC与单片机的串行通信系统设计.docx_第1页
第1页 / 共51页
基于PC与单片机的串行通信系统设计.docx_第2页
第2页 / 共51页
基于PC与单片机的串行通信系统设计.docx_第3页
第3页 / 共51页
基于PC与单片机的串行通信系统设计.docx_第4页
第4页 / 共51页
基于PC与单片机的串行通信系统设计.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

基于PC与单片机的串行通信系统设计.docx

《基于PC与单片机的串行通信系统设计.docx》由会员分享,可在线阅读,更多相关《基于PC与单片机的串行通信系统设计.docx(51页珍藏版)》请在冰豆网上搜索。

基于PC与单片机的串行通信系统设计.docx

基于PC与单片机的串行通信系统设计

 

基于PC与单片机的串行通信系统设计

毕业论文

 

此文档为word格式,下载后可随意编辑

摘要

计算机技术在其发展过程中形成两个重要分支:

通用计算机领域,现在以Pc机为代表,着重发展海量高速数值运算技术,而其控制能力是有限的;嵌入式计算机领域,现在以单片机为代表,着重发展计算机的控制技术,而其计算机速度是有限的。

在目前的许多实时工业控制和数据采集系统中,常常采用PC机做上位机和多个单片机做下位机的主从式系统。

在主从分布式控制系统中,单片机主要完成实时数据采集,被采集数据经初步处理后通过串口传送给主机。

主机将从机发送来的数据进行处理后随时向用户提供各种统计报表和整个控制过程的具体数据。

主机同时根据从从机接收的过程参数进行判断处理并给从机(单片机)发送各种控制命令。

它既利用了单片机的价格低、功能强、抗干扰能力强、温限宽和面向控制等优点,又利用PC机操作系统的高级用户界面、多任务、自动内存管理等特点。

单片机与微机的串行通信可以弥补单片机在数据处理方面的不足和PC机在控制方面的欠缺。

本设计主要介绍如何实现一台微机与一台单片机之间的串行通信。

在硬件设计方面,用MAX232芯片完成单片机TTL电平到RS-232双向电平的转换;用数字式温度传感器DS1820来采集外界温度,测量结果以数字量方式串行传送,温度用数码管显示出来。

通过串口RS232进行串口通信把温度数据传送给PC机,在软件设计方面,PC机采用VB语言编程,使用VB提供的一个名为Mscomm的通信控件来实现串行口收发数据;单片机方面用中断方式完成数据的接收和发送。

关键词:

温度采集;单片机;智能化温度传感器DS1820;VB串口通信

 

ABSTRACT

Computertechnologyintheirdevelopmentprocesstoformtwomajorbranches:

thefieldofgeneral-purposecomputer,nowrepresentedbyPcmachine,focusonthedevelopmentofmassivehigh-speednumericalcomputingtechnology,anditscontrolislimited;thefieldofembeddedcomputer,andnowtosingle-chiprepresented,focusonthedevelopmentofcomputercontroltechnology,andthecomputerspeedislimited.Manyinthecurrentreal-timeindustrialcontrolanddataacquisitionsystemareoftenusedsingle-chiptodoPCandmanysingle-chipmachinetodounderthemaster-slavesystem.Inthemainfromthedistributedcontrolsystem,single-chipreal-timemainlycompletedataacquisition,datahavebeencollectedaftertheinitialtransfertothehostthroughtheserialport.Hostwillsenddataatanytimeafterprocessingtoprovideuserswithavarietyofstatisticalreportsandtheentirecontrolprocessspecificdata.Atthesametimefromthehostmachinetoreceivefromtheprocessparametersandtodeterminetheprocessingfromthemachine(singlechip)tosendvariouscontrolcommands.Itistheuseofasingle-chiplowprice,function,andanti-interferenceability,andwidetemperaturelimits,forthecontroletcandPCoperatingsystemsusehigh-leveluserinterface,multi-tasking,automaticmemorymanagementandsoon.Single-chipserialcommunicationwiththecomputercanmakeupsingle-chipinthedataprocessingandthelackofPC-gapsinthecontrol.

thedesignIntroduceshowtoachieveasingle-chipmicrocomputerwithaserialcommunicationbetween.Inhardwaredesign,completewithsingle-chipMAX232chipTTLleveltoRS-232two-wayconversionlevel;withDS1820digitaltemperaturesensortocapturetheoutsidetemperature,themeasurementresultstotheserialdigitaltransmissionmethods.Temperaturecontrolwithdigitaldisplay.ThroughtheRS232serialportforserialcommunicationtotransmittemperaturedatatoPC,insoftwaredesign,PCmachinesusingVBprogramminglanguage,theuseofVBprovidedacommunicationcontrolMscommtoachievetheserialporttosendandreceivedata;singlechipuseinterruptedmannerwithregardtothereceiveandtransmitdata.

Keyword:

temperaturecollect;SCM;DS1820;CorrespondenceofserialinVB

第一章绪论

1.1背景和意义

随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要。

这里所说的通信是只计算机与外界的信息交换。

因此,通信既包括计算机与计算机之间,也包括计算机和外部设备之间、计算机与单片机之间的信息交换。

由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。

对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等、上位机与下位机之间的通信,采用串行方式交换数据也很普遍。

在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式。

所以串行接口是微机应用系统常用的接口。

串行通信广泛应用于Internet、电信、金融、工业控制、服务业、终端连线及其他应用领域,在不同的应用领域,串行通信可以与其他通信方式相结合、与Access或Mssql数据库相结合、与WinSock通信相结合,方便的与SMS模块、Modem、Rabbit2000潜入式系统、PLC通信程序、MATLAB环境等进行通信,所以研究基于windows的串口通信软件设计具有很强应用价值

1.2目的和内容

本次设计的目的就是以数字传感器DS1820作为前端,采集温度经过单片机处理后,再采用串口通信,把温度显示在VB编辑的计算机界面上,实现与PC与计算机的串行通信。

本系统的设计包括硬件和软件两大部分。

系统的硬件部分大致可分为四部分:

DS1820温度采集部分、单片机处理部分、显示电路部分、与计算机串口通信部分。

系统的软件部分分为五大部分:

读取DS1820的内部数据部分、单片机对温度的处理部分、数码显示部分、串口通信部分、VB界面部分。

1.3发展前景

近年来,由于PC机(个人计算机)优越的性价比和丰富的软件资源,已成为计算机应用的主流机种。

而单片机在工业控制系统中也越来越得到广泛的应用,它以价格低、功能全、体积小、抗干扰能力强、开发应用方便等特点已渗透到各个开发领域。

特别是利用其能直接进行全双工通信的特点,在数据采集、智能仪表仪器、家用电器和过程控制中作为智能前沿机。

但由于单片机计算能力有限,难以进行复杂的数据处理,因此应用高性能的计算机对系统的所有智能前沿机进行管理和控制,已成为一种发展方向。

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

所以计算机与单片机之间的数据通信越发显得重要。

单片机与PC机串行通信的方式有并行通信和串行通信。

并行通信就是数据的各位同时进行传送。

其特点是传送速度快、效率高,数据有多少位,就需要有多少根传输线。

当数据位数较多和传送距离较远时,就会导致通信线路成本提高,因此它适合于短距离传输。

而串行通信就是数据一位一位地按顺序进行传送,其特点是只需一对传输线就可以实现通信,当传输的数据较多、距离较远时,它可以显著减少传输线,降低通信成本。

串行通信是指按照逐位顺序传递数据的通信方式,由于仅需三根传输线传送信息且通信距离相对较远,所以在控制领域的现场监测、分布控制等场合有着重要的应用价值

 

第二章主要器件介绍

2.1温度传感器DS18203

DS1820是美国DALLAS公司推出的单总线专用芯片之一。

单总线是指将地址线、数据线、控制线合为一根信号线,并且允许在这根信号线上挂接多个器件,每一器件均能在适当的时间驱动该总线。

图2-1DS18B20的管角排列

DS1820管脚排列如图2-1所示。

DS1820有两种可供选择的供电方式。

图2-2寄生电源方式

第一种是寄生电源方式,如图2-2所示。

DS1820内部电容在I/O线为高电平时贮存能量,在I/O线为低电平时消耗能量,并在I/O信号线再为高电平时能量得图1,DS1820的管脚排列得到补充。

这样,DS1820在不需要外部提供能量的情况下就可以完成各项操作命令。

值得注意的是,

采用此种方法时UDD引脚必须接地。

使用寄生电源的优点是:

1)远程温度检测无需本地电源;2)缺少正常电源条件下也可读ROM。

图2-3外接电源方式

第二种供电方式是外接电源方式,如图2-3所示。

此方法可以使所有使用外部电源的DS1820同时完成温度变换。

就两种方式相比较而言,寄生电源方式少用一根导线,但它完成温度测量所需的时间较长,而外部电源方式测量速度则要快些。

DS1820内部结构框图如图2-4所示。

它包括三个主要的数据部件:

1)64位ROM;2)温度传感器;3)非易失性温度告警触发器TH和TL。

其中64位ROM中,开始的8位是单线产品系列编码(DS1820编码是10H),接着是48位唯一的序列号,最后8位是开始56位的CRC校验码。

64位ROM和ROM操作控制部分允许DS1820作为单个单线器件工作并遵循单线协议。

完成温度变换后,所测温度值与储存在TH和TL内的触发值比较,如果测温结果高于TH或低于TL,DS1820内部的告警标志就被置位,表示温度值超出测量范围。

图2-4DS18B20内部框图

图2-5DS18B20的引脚排列及详细的引脚说明

2.1.1DS1820的工作原理

DS1820的温度测量电路方框图如图2-6所示。

图2-6温度测量电路方框图

低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。

高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。

初始时,温度寄存器被预置成-55℃值,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行直到计数器2计数到0时便停止。

初始时,计数器1预置的是与-55℃相对应的一个预置值。

以后,计数器1每一个循环的预置数都由斜率累加器提供。

为了补偿振荡器温度特性的非线性性,斜率累加器

提供的预置数也随温度相应变化。

计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需的计数个数。

图中比较器的作用是以四舍五入的量化方式确定温度寄存器的最低有效位。

在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。

这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最末位代表0.5℃,四舍五入最大量化误差为±1/2LSB即±0.25℃。

温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式

表示温度值。

测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第1字节(全“0”或全“1”),8位温度数据占用第2字节,共16位数据,与温度对应关系见表1。

表2-1DS18B20温度、数据对应关系表

由表1可见,从暂存存储器第1、2字节读取的温度值其最低有效位LSB代表0.5℃,最大量化误差为±1/2LSB即±0.25℃。

如果想得到更高精度的温度值,可以采用下面介绍的方法。

2.1.2、指令系统

一,ROM命令

每次复位后必须先执行一条ROM指令。

ReadROM[33H]适用于单片,可以读出64位地址,当有多于一片的DS1820在线时,读出的将是各片地址相与的结果。

MatchROM[55H]适用多片DS1820,紧跟该命令之后要输入64位地址,与该地址对应的DS1820响应以后的读写命令。

SkipROM[0CCH]通用于单片,它忽略64位地址。

SearchROM[0F0H]系统初始时可能不知道究竟挂接了几片DS1820,用该命令可以确认DS1820的个数和对应的64位地址。

搜寻的过程较为繁琐,限于篇幅,请查阅参考文献。

AlarmSearch[0ECH]执行后,只有温度超过设定的高限或低于设定的低限的片子才响应此命令,接下来的搜寻过程同执行SearchROM命令后相同。

二,RAM指令

以下指令必须先执行一条ROM命令后才能使用。

ConverT[44H]执行后开始进行温度转换,转换时间最长为500ms,使用寄生电源时数据线至少保持500ms的高电平。

转换后的结果保存在内部9字节的笔记本中。

ReadScratchpad[0BEH]读内部笔记本中9字节的内容。

WriteScratchpad[4EH]向笔记本的第3和第4字节写上下限数据,紧跟该命令后是传送两字节的数据。

CopyScratchpad[48H]将笔记本的第3和第4字节存入EEP2ROM。

RecallE2[0B8H]将EEPROM中内容恢复到笔记本中第3和第4字节,每次上电自动执行一次此命令。

ReadPowerSupply[0B4H]

读DS1820的供电模式,如果采用寄生模式,DS1820发送0,如果采用外接电源,DS1820发送1。

2.2单片机介绍

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲:

一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机是了解计算机原理与结构的最佳选择。

单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。

我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!

......它主要是作为控制部分的核心部件。

它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。

单片机是靠程序的,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!

但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!

只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?

很多高级的语言已经达到了可视化编程的水平为什么不用呢?

原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。

一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!

对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。

单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。

一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。

可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。

不过,这种电脑,通常是指个人计算机,简称PC机。

它由主机、键盘、显示器等组成。

还有一类计算机,大多数人却不怎么熟悉。

这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。

顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。

因为它体积小,通常都藏在被控机械的“肚子”里。

它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。

究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

主要功能特性:

兼容MCS51指令系统·8k可反复擦写(>1000次)FlashROM

32个双向I/O口·256x8bit内部RAM

3个16位可编程定时/计数器中断·时钟频率0-24MHz

2个串行中断·可编程UART串行通道

2个外部中断源·共6个中断源

2个读写中断口线·3级加密位

低功耗空闲和掉电模式·软件设置睡眠和唤醒功能

AT89C52是标准的40引脚双列直插式集成电路芯片,引脚分布如图2-7所示:

图2-7

P0.0~P0.7P0口8位双向口线(在引脚的39~32号端子)

P1.0~P1.7P1口8位双向口线(在引脚的1~8号端子)。

P2.0~P2.7P2口8位双向口线(在引脚的21~28号端子)。

P3.0~P3.7P2口8位双向口线(在引脚的10~17号端子)。

P0口有三个功能:

(1)外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)

(2)外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)

(3)不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

P1口只做I/O口使用:

其内部有上拉电阻。

P2口有两个功能:

(1)扩展外部存储器时,当作地址总线使用

(2)做一般I/O口使用,其内部有上拉电阻;

P3口有两个功能:

除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。

有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,

即:

编程脉冲:

30脚(ALE/PROG)

编程电压(25V):

31脚(EA/Vpp)

ALE地址锁存控制信号:

在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。

参见图2(8051扩展2KBEEPROM电路,在图中ALE与4LS373锁存器的G相连接,当CPU对外部进

存取时,用以锁住地址的低位地址,即P0口输出。

由于ALE是以晶振六分之一的固定频率输出的正脉冲,当系统中未使用外部存储器时,ALE脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用。

PSEN外部程序存储器读选通信号:

在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。

1、内部ROM读取时,PSEN不动作;

2、外部ROM读取时,在每个机器周期会动作两次;

3、外部RAM读取时,两个PSEN脉冲被跳过不会输出;

4、外接ROM时,与ROM的OE脚相接。

EA/VPP访问和序存储器控制信号

1、接高电平时:

CPU读取内部程序存储器(ROM)

扩展外部ROM:

当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。

2、接低电平时:

CPU读取外部程序存储器(ROM)。

3、87

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

当前位置:首页 > 求职职场 > 简历

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

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