基于RS232数据采集系统设计论文.doc

上传人:仙人指路1688 文档编号:4141495 上传时间:2023-04-07 格式:DOC 页数:20 大小:245KB
返回 下载 相关 举报
基于RS232数据采集系统设计论文.doc_第1页
第1页 / 共20页
基于RS232数据采集系统设计论文.doc_第2页
第2页 / 共20页
基于RS232数据采集系统设计论文.doc_第3页
第3页 / 共20页
基于RS232数据采集系统设计论文.doc_第4页
第4页 / 共20页
基于RS232数据采集系统设计论文.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《基于RS232数据采集系统设计论文.doc》由会员分享,可在线阅读,更多相关《基于RS232数据采集系统设计论文.doc(20页珍藏版)》请在三一办公上搜索。

1、 论文题目: 基于RS232数据采集系统设计 目录摘要1关键字11绪论21.1系统开发背景21.2 端口技术应用展望21.3 课题研究目的与意义22系统的硬件设计32.1 系统的结构框图32.1.1 数据采集32.1.2 晶振电路42.1.3 单片机复位42.1.4 字符显示模块52.1.5 串口通信62.2 系统连线图72.3 系统的工作原理73系统的软件设计83.1 单片机的中断83.1.1实现单片机的中断83.1.2 单片机中断过程93.2 单片机定时器103.2.1 定时器控制寄存器TMOD103.2.2 定时工作方式0103.3 系统程序流程图10结束语13致谢14参考文献15附录1

2、6附录A 单片机串口通信程序清单16附录B 系统原理图18基于RS232数据采集系统设计摘要:本文从串行接口及其通信的基础知识入手,阐述了基于RS232的数据采集系统的设计。全文数据采集系统的设计、数据采集终端的硬件设计、软件的设计三部分组成。综合论述系统的功能设计和原理,并介绍了数据采集系统的发展背景、单片机技术、RS232串行接口通信,给出了系统整体构架。分析了数据采集系统的功能,采用软硬件相结合的方法完成数据的采集和显示功能。关键字:RS232;数据采集;单片机Abstract:This article from the serial interface and start with t

3、he basics of communication on the RS232-based data acquisition system design. The full text of the data acquisition system design, data collection terminal hardware design, software design is composed of three parts. A synthesis of system design and theory, and presented the data acquisition system

4、development background, single-chip technology, RS232 serial interface communication, given the overall framework of the system. Analysis of the data acquisition system using a combination of hardware and software methods of data collection and display.Keywords:RS232;Data Acquisition;Singel-chip1绪论

5、串行通信接口标准经过使用和发展,目前已经有几种。在串行通信时,要求通信双方都采用一个标准接口使不同的设备可以方便连接起来进行通信。但都是在RS-232标准的基础上经过改进而形成的,RS-232以其方便、经济的实现特点,一直深受工程界的青睐。并且RS232串行接口是微机系统种常用的外部总线标准接口,它是PC机与通信应用中最广泛的一种接口,通过RS232以实现计算机之间、计算机与设备之间相互通信。几乎每台计算机都有一两个串行接口,用来与调制解调器、实验室设备、工控设备、POS终端等进行数据传输。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-2

6、32C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用1。1.1系统开发背景近年来,利用智能化数字式温度传感器以实现温度信息的在线检测已成为温度检测技术的一种发展趋势。数字化技术推动了信息化的革命,在传感器的器件结构上采用数字化技术,使信息的采集更加方便。对于温度信号采集系统,传统的模拟温度传感器多为铂电阻、铜电阻等。每一个传输线至少有两根导线,带补偿接法需要三根导线。如果对50路温度信号进行检测,就需要100根导线接到采集端口,然后还要经过电桥电路、信号放大、通道选择、A心转换等,才能将温度信号供计算机处理2。而DS1820新型单总线数字温度传感器,采用3脚(或8脚)

7、封装,从DS1820读出或写入数据仅需要一根I/O口线。1.2 端口技术应用展望随着人类社会的发展,利用计算机设备实现生产过程自动化成为了提高生产力、减轻劳动强度有效手段。由于大量设备的使用,必须随时知道实际的情况,这就是监控,通过计算机辅助数据采集过程可以实现对数据自动处理。了解设备的信息后,为追求利润的最大化,使用者必须针对不同的具体情况,发出不同的指令,这就是控制。接口硬件将传感器的输出信号进行处理,并将处理好的结果传送给计算机,计算机根据一定的准则做出相应的指令,从而对该生产过程加以控制,这就构成了工业上利用十分广泛的监控系统。端口通信在工业生产中应用广泛。现在尽快有很多速度更快、效率

8、更高的端口的出现,但是这些新的端口可以通过转换电路实现与传统串口通信的转换,从而灵活地满足工业生产方面的需要。因此,在端口技术的未来将会更加美好3。1.3 课题研究目的与意义本次设计的目的就是以数字传感器DS1820作为前端,采集温度经过单片机处理后,再采用串口通信,把温度显示在VC编辑的计算机界面上,实现与计算机的通信。新型数字化、网络化传感器在工程中的应用具有极其重要的意义。这类传感器是各种参量送入计算机系统,进行智能监测、控制的最前端。随着科技的发展,数字化、网络化传感器应用日益广泛,以其传统方式不可比拟的优势渐渐成为技术的趋势和主流。2系统的硬件设计2.1 系统的结构框图基于RS232

9、数据采集系统总体设计方框图如图2.1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用LCD1602显示模块以RS232串口传送数据实现与PC之间的通信。图2.1系统总体方框图2.1.1 数据采集可编程温度传感器DS18B20,他能代替模拟温度传感器和信号处理电路,直接与单片机沟通,完成温度采集和数据处理。DS18B20与AT89S52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。数据采集由温度传感器DS18B20采集被控对象的实时温度, 提供给AT89S52的P2.0口作为数据输入。DS18B20是DALLAS

10、公司生产的一线式数字温度传感器,温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,支持3V5.5V的电压范围,使系统设计更灵活、方便;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存4。AT89S52单片机微控器,内藏2K的可程序化Flas

11、h存储体,内部有128B字节的数据存储器空间,可直接推动LED,与8051完全相同,有15个可程序化的I/O点,分别是P1端口与部分P3端口。温度采集电路如图2.2。图2.2温度采集电路2.1.2 晶振电路单片机的晶振电路是一种典型电路,本设计使用比较常用的内部时钟方式。内部时钟方式的电路如图2.3。图2.3 晶振电路内部时钟的晶振频率一般都选择在4MHz12MHz之间,外接两个谐振电容。该电容的典型值为30PF,但是在实际应用时,需要根据实际起振情况选择。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用5。2.1.3 单片机复位

12、单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值。值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的韧始化部分是十分必要的。说明:表中符号*为随机状态;A00H,表明累加器已被清零;PSW00H,表明选寄存器0组为工作寄存器组;SP07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3FFH,表

13、明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;IP00000B,表明各个中断源处于低优先级;IE000000B,表明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。AT89S52单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,AT89S52单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。AT89S52单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,(在特殊寄存器介

14、绍时再做详细说明)至于内部RAM内部的数据则不变6。2.1.4 字符显示模块显示电路是为了给使用者提示而设置的。考虑到显示电路可读性和直观性,并且能使用户更方便的执行储存温度、显示温度等操作。在本次设计中将采用1602液晶显示屏。 1602是一种字符型液晶显示模块,专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是0100000

15、1B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如“A”。显示电路如图2.4。图2.4 LCD显示电路2.1.5 串口通信1.RS232协议标准RS232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5V+15V,负电平在-5V-15V电平。当无数据传输时,线上为TTL电平,从开始数据传输到结束,线上电平从TTL电平到RS232电平再返回TTL电平。接收器典型的电平在+3V+12V与-3V-12V。由于发送电平与接收电平的差仅为

16、23V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传输距离最大为约15m,最高速率为20kbps。2.MAX232简介RS232用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态规定不通,因此要用RS232总线进行串行通信时需外接电路以实现电平转换。在发送端用驱动器将TTL电平转换成RS232电平,在接收端用接收器将RS232电平再转换成TTL电平。MAX232内部有电荷汞电压转换器,可将+5V电源变换成RS232所需的10V电压,以实现电压的转换,既符合RS232的技术,又可实现+5V单电源供电,所以MAX收发器电路给短距离串行通信带来极大的方便7。3.硬件连接 单片机有一

17、个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,采用专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。采用三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。电路如图2.5所示,MAX232的第11脚和单片机的11脚连接,第12脚和单片机的10脚连接,第15脚和单片机的20脚连接。图2.5 串口通信电路2.2 系统连线图图2.6 系统连线图2.3

18、系统的工作原理基于RS232数据采集系统由AT89S52、DS18B20温度传感器、LCD1602显示模块和MAX232组成。软件主要是单片机对DS18B20读写控制使之读出当前的温度值并实现与PC机的通信。此设计主要是采集温度并在计算机上显示,利用DS18B20传感器实现对温度的采样并通过AT89S52芯片对数据进行处理,然后利用字符型液晶显示模块,配以电平转换芯片MAX232完成与PC的通信。数据采集系统主要以AT89S52芯片为核心,它控制温度传感器DS18B20复位和读写操作。对温度进行采集,按时序直接从温度传感器读入温度值的数字信号(这就是所测的温度值,因为DS18B20是最新单线数

19、字温度传感器),最后存入内存。由于精度准确、分辨率高、抗干扰性好、无须校验。由于所读出的数据格式为二进制数的补码,所以先求出温度值的原码(当然正数是不必转换)。在显示温度值时,还需要进行十进制的转换,字符代码的转换。MAX232是一个核心芯片,通过DS18B20温度传感器进行采集温度放入单片机内存,采集到的温度将以二进制补码的形式出现,然后通过编写程序将二进制补码的形式转换为字符的形式,通过字符型液晶显示模块将温度显示出来,最后利用MAX232 内部电荷汞电压转换器,完成电压转换,使温度在计算机界面显示出来。3系统的软件设计3.1 单片机的中断中断属于一种对事件的实时处理过程。中断源可能随时停

20、止CPU当前的工作,转而去处理中断服务程序,待中断服务程序完成后,再返回原来工作的断点处,继续原来的工作。 3.1.1实现单片机的中断在单片机上有两个引脚,名称为INT0、INT1,也就是P3.2、P3.3这两个引脚。外部的中断信号通过这两个引脚输入到单片机。和单片机的定时器一样,对中断系统的处理需要通过89C51的软件编程实现。51单片机中断系统的结构由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器IE、IP、TCON和SCON来控制中断申请、中断的开关和各种中断源的优先级确定。1.中断方式和标志位单片机的中断标志和方式的选择是通过

21、TCON的低4位控制字实现的。TCON中的低4位用于外部中断的控制,高4位是T0、T1控制字。TCON中的控制字如表3.1。表3.1 TCON中的控制字TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0IE1IT1IE0IT02.中断允许寄存器IE在单片机中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的,其各位如表3.2。表3.2 中断允许寄存位IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0EAXXESET1EX1ET0EX03.5个中断源的优先级单片机的中断服务入口地址如下

22、,他们的自然优先级由高到低排列。外中断0:0003H。定时器0:000BH。外中断1:0013H。定时器1:001BH。串口:0023H。单片机采用了自然优先级和人工设置高、低优先级的策略,即可以由程序员设定哪些中断是高优先级、哪些中断是低优先级。单片机的优先级的设定只有两级,我们可以用指令对优先级进行设置,如表3.3。中断优先级中由中断优先级寄存器IP来设置,IP中某位设为1,相应的中断就是高优先级,否则就是低优先级8。表3.3 指令优先级-IP.4IP.3IP.2IP.1IP.0EAXXPSPT1PX1PT0PX03.1.2 单片机中断过程单片机的中断过程:一是中断响应条件,二是中断响应过

23、程。首先介绍中断响应的条件。单片机工作时,在每个机器周期中都会去查询一下各个中断标记,从而判断是否有中断申请。如果中断的标志位是1,就说明有中断请求了。了解了上述中断的过程,就不难了解中断响应的条件了。但是在下列3种情况下,CPU将不响应中断的请求:1.单片机正在处理一个同级或更高级别的中断请求。2.现行的机器周期正执行当前多字节指令。3.当前正执行的指令是返回指令(RETI)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才响应中断。知道了中断响应的条件后,可以进一步了解中断响应过程。单片机响应中断时,首先把当前指令的下一条指令的地址送入堆栈,保护断点。然后根据中断标记,将相应的中断

24、入口地址送入程序指针,程序转到中断入口处继续执行。中断程序完成后,一定要执行一条RETI指令,执行这条指令后,单片机将会把堆栈中保存着的地址取出,程序就会从主程序的中断处继续往下执行。3.2 单片机定时器3.2.1 定时器控制寄存器TMODTMOD寄存器为8位寄存器,其高4位用于选择TI的工作方式,低4位用于选择T0的工作方式。 TF1:定时器1溢出标志位。当字时器1计忙溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。TR1:定时器1运行控制位。当软件清“0”关闭定时器1。当GATE=1,且INT1为高电平时,TR1置“1”启动

25、定时器1;当GATE=0,TR1置“1”启动定时器1。TF0:定时器0溢出标志。其功能及操作情况通TF1。IE1:外部中断1请求标志。IT1:外部中断1出发方式选择位。IE0:外部中断0请求标志。IT0:外部中断出发方式选择位。3.2.2 定时工作方式0当TMOD中M1M0=00时,定时/技术器工作在方式0。方式0为13位定时计数方式,由THx提供高8位、TLx提供低5位的技术初值,最大技术值为M=8192,每启动计算前需预置计数初值。当C/T=0时,工作于定时器方式,以振荡的12分频信号作为计数脉冲;当C/T=1时,工作于计数器方式,对外部脉冲输入端T0或T1输入的脉冲计数。计数脉冲能否加到

26、计数器上,受到启动控制信号。当GATE=0时,只要TRx=1,则定时/计数器启动工作。当GATE=1时,TRx=1和INT1=1同时满足才能启动,此时启动受到双重控制。启动后计数器立即加1计数,当13位计数满时,中断溢出标志TFx置1,产生中断请求,表示定时时间到或计数次数到。若允许中断且CPU开中断,则CPU响应中断,转向中断服务程序,同时TFx自动清0。3.3 系统程序流程图1.上位机之间采用串口通信,单片机程序主要包括串口初始化、波特率及数据格式设置,在此系统中波特率设为9600bit/s,传输数据设为8,奇偶校验设为N(无奇偶校验)即可;单片机通过检测串口控制寄存器SCON中的接收中断

27、标志位RI的状态来决定是否要进行通信。系统串口通信程序如图3.1。图3.1 系统串口通信流程图2.读出温度子程序的主要功能是读出RAM中的9字节。单片机先发送SD18B20复位命令使其复位,然后发送跳过ROM命令、发送读取温度命令,在读出时须进行CRC校验,校验有错时不进行温度数据的改写,当校验正确时,则将读出的字节移入温度暂存器中。读温度的子程序流程图3.2。图3.2 温度子程序流程图结束语根据本设计理论分析与实验结果表明:本文所采用的原理方法与测试结果是正确的,达到了题目设计要求。同时该实验系统为学生学习单片机软件编程提供了一个硬件实验环境。学生可以结合该实验系统的硬件对各模块分别进行学习

28、和软件的编写与调试,如针对LCD显示编写相应的显示实验程序;针对输入温度信号编写采集程序等。在此基础上,将各个程序模块链接为系统控制程序,进行调试,从而建立单片机与PC机通信的整体概念。致谢在这里首先要感谢我的导师李泽平老师。李老师平日里工作繁多,但在我做毕业设计的每个阶段,从外出实习到查阅资料,设计草案的确定和修改,中期检查,后期详细设计,装配草图等整个过程中都给予了我悉心的指导。我的设计较为复杂烦琐,但是李老师仍然细心地纠正图纸中的错误。除了敬佩李老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。 然后还要感谢大学四年来所有的老师,为我们打

29、下专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。 最后感谢电子信息工程学院和我的母校咸宁学院四年来对我的大力栽培。参考文献1张宏林.Visual C+串口通信与工程实践M.北京:人民邮电出版社,20082李群芳,肖春.单片机原理、接口及应用-嵌入式系统技术基础M.北京:清华大学出版社,20063曹巧媛.单片机原理及应用系统M.北京:电子工业出版社,20034徐文进,张阿卜.智能温度传感器DS18B20在多路测温中的应用现代电子技术J. 20045沈德全.MCS-51系列单片机接口电路与应用程序实例M.北京:北京航空航天大学出版社,20016张

30、毅坤,陈善久,裘雪红.单片微机计算机原理及应用M.西安:西安电子科技出版社,19987何立民.MCS-51系列单片机应用系统设计M.北京:北京航空航天大学出版社,19908杨将新.单片机程序设计及应用从基础到实践M.北京:电子工业出版社,20069李长林.Visual Basic串口通信技术与典型实例M.北京:清华大学出版社,200610宋建成.可编程逻辑器件原理与应用M.北京:科学出版社,200411黄仁欣,马彪.单片机原理及应用M.北京:北京航空航天出版社,200512崔东剑,秦永左.单片机软硬件设计与工程M.北京:中国商业出版社,200213李朝青.单片机学习指导M.北京:北京航空航天出

31、版社,200514孟风果,曹振军.单片机应用自学通M.北京:中国电力出版社,200515West Germany. Intersection Without Signals M.Proceeding of an International Workshop 16-18 March,1998,30-4016Richardon B, Rodriquez D.ITS in developing countries: strategic opportunitiesJ.In ITS Quartely,1997,5(3),7-15附录附录A 单片机串口通信程序清单:includeiom16v.h incl

32、ude #definebaud9600/波特率 #definefosc8000000/晶振8MHZ /*初始化函数*/ voidUSART_Init(void) /*设置波特率*/ /UBRR=51; /UBRRH=(unsignedchar)(baud8); /UBRRL=(unsignedchar)(baud); UBRRL=(fosc/16/baud-1)%256; UBRRH=(fosc/16/baud-1)/256; /*接收器和发送器使能*/ UCSRB=(1RXEN)|(1TXEN); /*设置数据帧格式*/ UCsrc=/blog/(1;URSEL)|(1USBS)|(3UCS

33、Z0);/8个数据位,2个停止位 /*数据发送函数(58位)*/ voidUSART_Transmit(unsignedchardata) /*等待发送缓冲器为空*/ while(!(UCSRA&(1UDRE)/UDRE为时缓冲器为空 ; /*将数据放入缓冲器,发送数据*/ UDR=data; /*数据接受函数(58位)*/ unsignedcharUSART_Receive(void) /*等待接受数据*/ while(!(UCSRA&(1RXC)/接受缓冲器中有未读出的数据时RXC置位,否则清零 ; /*从缓冲器中获取并返回数据*/ returnUDR; /*字符串发送函数(不含回车换行)

34、*/ voidUSART_Transmit_string(unsignedchar*s) while(*s) USART_Transmit(*s); s+; voidmain() unsignedchari; unsignedchar*p1,*p2; unsignedchara=Thekeyis:; unsignedcharb=Pleasepressanykey; p1=a; p2=b; USART_Init(); /USART_Transmit_string(p2); /USART_Transmit(0x0d);/回车换行 /USART_Transmit(0x0a); while(1) i=USART_Receive(); if(i!=0) /USART_Transmit_string(p1); USART_Transmit(i); /USART_Transmit(0x0d);/回车换行 /USART_Transmit(0x0a); 附录B 系统原理图

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号