《基于单片机的数据采集系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数据采集系统设计.docx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科毕业论文(设计、创作) 题目: 基于单片机的数据采集系统设计 学生姓名: 学号: 0231002007 所在院系: 信息与通信技术系 专业: 电子信息工程 入学时间: 2010 年 9 月导师姓名: 职称/学位: 讲师/博士 导师所在单位: 完成时间: 2014 年 5 月安徽三联学院教务处 制35 / 41基于单片机的数据采集系统设计摘 要:本篇论文讲述了在单片机的基础上的数据采集系统的设计,在此设计过程中需要的硬件很多,但主要是以单片机为核心。单片机的作用有很多,而且能够满足本设计所需要的功能即数据的采集和通信之间的控制。本设计分为软硬件两个模块,其中后者除了上面所提到的单片机以外还有
2、A/D模数转换模块,显示模块,和串行接口等一些模块接口部分。数据采集并且响应主机的命令主要是从机的职能。如果打算通过从机采集到的数据进行模数转换,重要一点是使用模数转换器也就是即将用到的ADC0809(8分辨率的D/A转换集成芯片)将8路被测电压进行模数转换,串行口将转变后的数据传输到上位机,数据的接受,处理和显示都是由上位机负责,所采集的数据利用LED(Light Emitting Diode,即发光二极管)来显示。在该系统中,软件是在设计过程中充当着重要的角色。其中软件部分主要是在KEIL环境下使用我们之前学习过的C语言进行对数据采集系统、模数转换系统、数据显示、数据通信等程序的设计。关键
3、词:数据采集系统;89C52; ADC0809;MAX232; LEDDesign of data acquisition system based on SCMAbstract:The film tells the paper on the basis of data collected microcontroller collection system design, hardware design process requires a microcontroller core is mainly, connection between analog and digital domains
4、 of data acquisition system is an indispensable bridge. In this study, based on the single-chip microcomputer data acquisition is as the center of gravity, so the microcontroller core part of the hardware of this system. In order to realize data acquisition and communication control to choose modula
5、r design USES MCU to complete, also includes A/D analog-to-digital conversion module, display module, and serial interface section. Data acquisition and command response of the host is mainly from the machine functions. If want to use data were collected from the machine, modulus conversion, importa
6、nt is to use the measured voltage will be 8 road of adc, modulus conversion, serial port to transmit the data after a switch to PC, data receiving, processing and display are made by PC, data collected by the use of LED to display. The main part of which software is in KEIL environment, using C lang
7、uage for data acquisition system, analog-digital conversion system, the data show that the design of data communications and other procedures.Keyword:Data acquisition;AT89C52;ADC0809; MAX232;LED目 录第一章 绪论11.1 研究背景及其目的意义11.2 国内外研究现状11.3 该课题研究的主要内容1第二章 数据采集32.1 数据采集系统32.2 方案论证32.2.1 A/D模数转换的选择32.2.2单片机
8、的选择42.2.3 串行口的选择42.2.4 显示部分42.2.5 按键4第三章 硬件部分63.1 主机部分63.1.1 主机部分原理图设计63.1.2 单片机73.1.3 LED数码显示器的应用原理83.2 从机部分83.2.1 从机的电路原理图设计83.2.2 单片机之间的通信93.2.3 模数转换器ADC080911第四章 软件部分134.1 简介KeilUvision2134.2 主机程序设计214.3 从机部分程序设计21第五章 结束语23参考文献25附录126附录231 第一章 绪论1.1 研究背景及其目的意义二十世纪五十年代就开始出现了数据采集系统。第一次的运用是在美国而且很成功
9、这就使得渐渐地数据采集得到了初步认可,这种系统拥有高速性和一定的灵活性,最重要的是它能够解决传统不能解决的任务。二十世纪七十年代后期,因为有了微型机的迅速成长,出现了由采集器仪表和计算机结合起来的数据采集系统。也就在这个阶段,该系统取得了飞快的成长,并且分为工业现场数据采集系统和实验室数据采集系统。二十世纪九十年代至今,由于集成电路的发展越来越迅速,并且技术也越来越发达,数据采集技术也得到了快速的发展。如今,数据采集技术不仅仅只是科学研究已经在生活工作的各个领域得到了广泛的应用。在当今社会计算机技术较快成长的情况下,数据采集技术也有了很好的发展。在生产过程中,因为使用该系统采集记录生产过程中所
10、需要的数据,对提高产品质量降低生产成本起到了很大的作用。在专门进行研究过程中,使用该技术能够取得大量的动态信息。无论在什么应用领域,如若应用该技术工作效率和经济效益就能够得到很大的提高。 1.2 国内外研究现状随着计算机信息等技术的迅速成长,也使得数据采集技术取得快速成长。目前,数据采集已被广泛应用于就业,通信,智能化和网络化仪器,测绘,勘探,工业控制等领域。数据采集能够降低雇佣成本,简化了工作任务,节约生产成本。我国也对数据采集系统有了很深的研究和广泛的应用,比如,目前我国正在使用的用于对地震的动态进行观测的TDE-324C型地震数据采集系统,随着科学技术的不断进步,该系统已经发展的更为完善
11、。因为受到了需求的影响,目前世界上最新的机载数据采集系统也出现飞速的成长趋势以用来完善飞行质量和速度满足飞行实验应用的需要。1.3 该课题研究的主要内容如今科学技术的发展,人们对计算机的使用越来越普遍,数据采集检测开始走进了人们的日常生活,在一些监控温度、湿度和压力工业和农业等需要对数据进行采集的场所也开始了比较普遍的应用。工业控制系统的对数据采集的要求较高,所以关键是数据采集。单片机由于功能强大,所以该系统往往是用一些独立的功能来完成整个的测量和控制系统,整个系统都可能受到数据采集性能特征的影响。虽然到现在为止很多都是采用以计算机为主要的可编程数据采集处理技术,而且在此期间数据采集技术得了飞
12、速的成长。可是这并不会影响本文设计的主题即对以单片机为核心的数据采集系统的发展,单片机所具有的多功能、良好的抗干扰能力、较高的可靠性、灵活性好、易开发等优点,使得以它为基础的数据采集普遍的用于很多场所。由于以前科学技术水平的有限数据采集系统并没有来自上位机的支持,因此不管想要采用哪种类型的数据存储器,它的容量都是可计算出,因为不得不进行下一次的数据采集不得不对以前的数据进行覆盖刷新,这不会有利于用户分析整体数据,因此不能准确地掌握生产过程的状态。为了帮助工农业的一些场所需要大量数据采集解决这个问题,本论文是使用主从结构的通信方式进行数据采集,具体的步骤是模拟量是由下位机采集,单片机的主要责任是
13、采集八路数据,再回答由主机发送的命令,上位机的主要任务是对接收的数据进行有效处理和清晰的显示,最后主机与从机之间用的串行口连接。因此,用户可以写上所需的计算机程序,并在文件中的数据的有效的查询和分析,这在长期正常运行,检查工业过程是很有帮助的。第二章 数据采集2.1 数据采集系统数据采集,也被称为数据获取,主要是应用一种设备,从外在环境采集到一些所需要的资源,然后将这些资源送入到系统的内部。目前数据采集技术已广泛应用在各个领域。在此系统中要进行模数转换即需要把模拟数据转化为数字数据,完成此任务需要的是AD模数转换器,其需要考虑的指标有:转换速率sps、分辨率bit、输入信号范围、电源电压、输出
14、接口、封装、参考源、输入通道、功耗。AT89C52是此系统的最根本的处理系统,它的功能较为强大,任务也比较繁杂主要是读取数据、处理和逻辑控制,传输数据等一些操作。此设计中使用的单片机是AT89C52。主机和从机之间进行通信主要是由MAX232完成,经过一些对比它的串行口使用的是RS-232-C。该系统显示部分选用了生活中比较常见也应用较多的LED数码管来显示数据。实现此论文需用的系统框图如图2.1所示。图2.1系统框图2.2 方案论证2.2.1 A/D模数转换的选择当前利用最多模数转换器的主要有三种类型:(1)逐次逼近式A/D转换器(2)双积分式A/D转换器(3)V/F型A/D转换器1。以上三
15、种类型转换器的性价比的对比下,本论文采用的数模转换器是逐渐逼近式A/D转换器-ADC0809。2.2.2单片机的选择我们生活中所用到的单片机其实就是一个微型计算机,它也是一种集成电路芯片,此芯片把CPU、RAM、ROM等一些元器件的功能在一块硅片上集中起来并具有非常强大而特殊的功能的健全的系统。AT89C52有其对应的组译和编译软件编译程序,本文是利用KEIL把程序下载到AT89C52内。本论文所需用到的主要的硬件是单片机而我选择的是AT89C52。2.2.3 串行口的选择所谓的串行口是用来作为通信时使用的接口,所以又叫做串行通信接口,国家对电气标准这一方面有着明确的规定,所以它的标准也是按照
16、国家规定的电气标准进行分类的,其中主要包括RS-232-C、RS-422、RS485、USB等等一些。 RS-232-C、RS-422与RS-485标准仅仅对接口的电气特性提出原则要求,并没有触及接外挂程式、电缆或协议。本次设计实现主机和从机之间的通信我使用的是RS-232-C接口,它有很多的功能最为主要的功能是充当电平与TTL电平转换的驱动电路。而此接口我选用的转换芯片是MAX232,它是由美信公司设计而成的专门为该串口设计的芯片。2.2.4 显示部分平时是我们所接触的二极管最多的就是发光二极管,其又叫做8段发光二极管数码显示器,原因是由于它有7个的作用是显示字符,一个用于显示小数点,共八个
17、数码管。LED的2种显示方式按照科学的划分方法分别为动态扫描显示法和静态扫描显示法。从性价比的角度来考虑,大部分的用户使用是前者。2.2.5 按键我们目前使用的键盘是最大和最重要的输入设备,键盘可以把我们需要数据输入到计算机中,然后就可以发出命令到电脑。按键有很多分类其中依据按键的识别方法分类有2种按键:编码按键与非编码按键。非编码键盘只是供应按键开关的矩阵,输入识别的关键,并确定关键代码,以及抖动等功能由软件实现,非编码键盘的硬件电路是非常简单的,能够广泛应用于微型计算机。本设计使用的是矩阵按键,矩阵的按键接口的主要特点:更复杂的电路连接,但增加的I / O端口利用率,更复杂的软件编程。适用
18、于需要使用较多的按键的场所。非编码按键如图2.2所示:图2.2 矩阵式按键接口图第三章 硬件部分3.1 主机部分 主机部分是该系统的重要组成部分,同时它的任务也比较重,它的主要责任有数据处理和显示,主机与从机的通信采用RS-232-C。主机部分所需的元器件主要是51系列单片机、串行口转换芯片、发光二极管、按键等等。3.1.1 主机部分原理图设计本系统主机对从机有一个指令,因此要用到按键,将按键的一个端口接地另一个端口接在单片机的P3.4引脚上,若P3.4为“0”时(0为低电平,1为高电平)时就表明按键按下。主机任务还有将从机采集的数据进行一定程度的采样处理,并通过LED技术使其在数码管上显示出
19、来,此系统中一共用了2个74HC573芯片,其中一个与单片机的P2.7引脚相连接,目的是用于位选;另一个用于段选,是与单片机的P2.6引脚进行连接。AT89C52的P0口的8位数据线和两个锁存器的D0-D7相接,和段选的相接的主要作用是显示LED上的详细数字,和位选的相接主要作用是显示在哪个数码管上。主机和从机之间使用RS-232-C进行串行口主机和从机之间的通信。主机和从机的相连就是使用MAX232,方案设计过程中,主要将单片机的引脚P3.1,P3.2与串行口的引脚11,12连接,将串行口的13,14引脚分别与D9M的3,6引脚相连。其原理图如图3.1所示。图3.1 主机部分电路原理图3.1
20、.2 单片机(1)单片机的概述单片机其实就是一个微型计算机,它也是一种集成电路芯片,此芯片把CPU、RAM、ROM等一些元器件的功能在一块硅片上集中起来并具有非常强大而特殊的功能的健全的系统。(2)简介AT89C52AT89S52具有的功能为: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,两个数据指针,三个16 位定时器/计数器,一个6向量两级中断结构,全双工串行口,片内晶振及时钟电路。并且,AT89S52 可降至0Hz 静态逻辑操作,支持两种软件可选择节电模式。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机将停止一切工作,直至下一个中断或硬件复位为止。其
21、引脚图,如图3.2所示图3.2 AT89C52的引脚图 它有40个引脚,大体上可划分成4类。工作电源可用来介入单片机的的有4个电源引脚。主要有电源、备用电源和编程电源三个工作源。而且还有2个XTAL1、XTAL2时钟引脚。然后有4条控制引脚,也有些引脚拥有复位功能。综上所述,单片机的引脚特点是:(1)单片机的功能十分强大、但是它的引脚相对较少,这就导致了有的引脚被重复使用的现象。(2)单片机的总线形式一共有4种,它们分别是;8位数据总线;控制总线;串行通信总线。3.1.3 LED数码显示器的应用原理根据以前所学专业知识可知LED的连接方法为共阴极和共阳极接法,也是最为常见的2种方法。AT89C
22、52中的发光二极管通常采用7段发光二极管组成图形“8”来完成时间或数字的计算和设定,并且利用一个晶体二极管来显示小数点,总而言之这些数码管的作用是用来显示数字、符号及小数点。七段段位分别的对应的位码如表3.1所示。表3.1段位码对应关系段位码D7D6D5D4D3D2D1D0位码段dpgfedcba3.2 从机部分 模拟量和数字量之间的转换和响应主机发出的任务主要是由从机部分负责,需要的硬件为模数转换器、51系列单片机,其中间要使用一个双D触发器,原因是它们的时钟频率不同。3.2.1 从机的电路原理图设计此部分最重要的是把模拟量转换成数字量,所以需要用到一个模数转换器,因为由于它们之间的时钟频差
23、,所以要用一个双D触发器对它实行有效的二分频的处理,仅仅把双D触发器的引脚3与AT89C52的引脚30连接,把74LS74 的引脚9和模数转换器的时钟信号引脚连接。然后ADC0809的D0D7和AT89C52的P0口连接,ADC0809的引脚DA、DB、DC分别与P0口的低3位连接。它所需要的串行口的连接方法与主机部分相同。其电路图如3.3所示图3.3 从机部分电路设计图3.2.2 单片机之间的通信1.串口通信RS-232-C通信是计算机与外部信息进行交换所采用的一种特殊处理技术。通信技术有两种时行方式:并行通信和串行通信。由于串行通信具有仅需要一对传输线传输信息,对远距离通信来说,大大降低了
24、线路成本。 连接器的各个引脚的信号内容如下:(1) 接口的信号内容 实际上RS-232-C的二十五个引脚中需要用到的引脚很少,一般只使用三至九个引线。RS-232-C常用的九个引脚的信号内容见表3.2所示表3.2常用引脚的信号内容引脚序号信号名称符号流向功能2发送数据TXDDTE-DCEDTE发送串行数据3接收数据RXDDTEDCEDTE请求DCE将线路切换到发送方5允许发送CTSDTE-DCEDCE告诉DTE线路已接通可以发送6数据设备准备好DSRDTE-DCEDCE准备好7信号地信号公共地8载波检测DCDDTEDCEDTE准备好22振铃指示RIDTE-DCE表示DCE与线路接通,出现振铃(
25、2)接口的电气特性 在RS-232-C中的信号线的电压全是负逻辑关系。逻辑“1”表示-5 -15V;逻辑“0” 表示+5 +15V 。噪声容量是2V。 (3)接口的物理结构 2个接口的连接情况如图3.4所示图3.4 两个DB-9的连接图(4)传输电缆长度 由于串行口通信有自己的要求,即码元畸变不大于百分之四的条件下,其长度应为五十英尺,可是在现实生活中,大概有百分之九十九的用户是依据码元畸变10-20%的范围操作的,因此在实际生活使用中最大距离会远多于五十英尺。 2.简介MAX232此设计中的接口我选用的转换芯片是MAX232,它是由美信公司设计而成的专门为该串口设计的芯片。其引脚结构图如3.
26、5所示 图3.5 MAX232的引脚结构图单片机与MAX232的连接如图3.6所示图3.6单片机与MAX232的连接图3.2.3 模数转换器ADC0809在生活中我们经常会遇到连续变化的物理量,然而如果对这些信号进行处理,就需要把其转换为数字量,A/D转换器就是将连续变化的模拟量转转换成数字量。本系统选用模数转换器是ADC0809,介绍如下:1、ADC0809的引脚介绍其引脚图见3.7图3.7 ADC0809的引脚图IN7IN0 :八个通道的模拟输入量。ADDA、ADDB、ADDC:模拟通道地址线。当CBA=000时,IN0输入,当CBA=111时,IN7输入。ALE:地址锁存信号。START
27、:转换启动信号,高电平有效。D7D0:数据输出线。三态输出,其中,D0为最低位,D7为最高位。OE:输出允许信号,其中当OE为高电平时有效。CLK:时钟信号,最高频率为 640KHZ。EOC:转换结束后的状态信号。其中上升沿后高电平有效。Vcc:+5V电源。Vref:参考电压。第四章 软件部分4.1 简介KeilUvision2Keil为了提高工作效率使得工作效率大大的提高提出了完整的方案,Keil是通过uVision环境把一些C语言编译器、宏汇编等等一些模块集中在一块,就形成了我们现在易于使用并且功能强大的较为完整的开发软件。其使用的过程为:双击uVision2就打开了keil,然后点击Pr
28、oject选择New Project,如图4.1所示。图4.1接下来所需要做的是选择保存路径和文件名,点保存,如图4.2所示。图4.2然后会弹出如下窗口,如图4.3所示。图4.3这是我们需要选择我们需要的单片机的型号,尽管在本设计中我使用的单片机是AT89C52,但是89S51与89C52内外部的结构都是一样的为了方便起见,在设计过程中依旧使用的是AT89C51。“确定”后工程就算建立好了,如图4.4所示。图4.4然后是为工程添加程序,点击“文件”中的新建,新建一个空白文档;。在空白文档中可以进行编辑、修改等操作。将自己编译的代码输入到本文档中,进行保存,最后把保存的文档添加到工程中,如图4.
29、5,图4.6所示。图4.5图4.6输入后缀为.c的文件名,如图4.7所示。图4.7点击保存,若操作正确,程序中的关键字就会变成蓝色点击资源菜单下的“+”号,如图4.8所示。图4.8右击打开Source Group 1,选择所需要的Add Group Source Group 1这个选项,如图4.9所示。图4.9开打Add,把刚刚保存的C类型文件再添加进去,如图4.10所示。图4.10然后点击Close,完成文件的添加。下一步要进行工程设置,选择Project菜单下的Options for Target Target 1,如图4.11所示图4.11会出现如下对话框,如图4.12所示图4.12选择
30、Output,勾选里面Create HEX File选项,它表示可以生成16进制文件,如下图,点击确定,如图4.13所示图4.13进行编译之后,就能生成一个hex文件了,如图4.14所示图4.14最后要做的就是使用STC-ISP把HEX文件烧录到AT89C51中。4.2 主机程序设计主机部分一共有1个主程序和5个子程序,这5个子程序分别为:(1)主程序该主机的程序设计的主程序部分是把打开系统并进行初始化具体的步骤是:首先需要初始化也就是把定时/计数初始化,再调用扫描程序其实也就是键盘扫描程序Keys_Scan(),再依据按下的按键来进行判断是否需要将串口发送数据子程序putc_to_seria
31、lport()进行调用,此时把对应的数据传递给串行口。此时如果并无按键按下的时,这时就需要送一个F给LED。其流程图见附录。(2)向串口发送数据子程序putc_to_serialport()此程序第一步是将数据发送到串行口,如果T1=0时,此时说明传送结束。其流程图见附录(3)键盘扫描子程序Keys_Scan()该程序主要是事先将所需要的行选择好,再选择所需要的列就可以准确地确定哪一个按键。其流程图见附录(4)LED显示程序Display_Result(int d)子程序的步骤是:第一步是位选,将所需要的AT89C52的P2.7引脚选通,然后把此时的值送给AT89C52的P1口。第二步是位选,
32、就是将单片机的P2.6引脚选通进,然后把所需要显示的数字值发给P0口。然后调用延时,把P2.7、P2.6引脚置直接至零,如果所需要数字全都显示在LED上则停止工作,否则不断重复上述步骤。其流程图见附录(5)主机串口接受中断子程序Serial_INT() interrupt 4。其流程图见附录。4.3 从机部分程序设计从机部分包涵1个主程序和3个子程序,主程序:主程序就是首先第一步把系统初始化,但是主从两个单片机都要进行通信,因此两个单片机的初始化是一样的,并调用模数转换。其流程图见附录。三个子程序分别为:(1)从机串口接受中断函数Serial_INT() interrupt 4因为传输完成,在
33、接受到新的字节时将触发串口中断,因此接收中断就用串口中断程序里用if(RI)表示,然后将RI清0。然后此时再分析系统所接收到的数据第4位是不是1,若是1,就按主机发过来的通道进行采集,此时若是0,就调用循环采集程序。见附录(2)模数转换子程序ADCON开始是选通ADC0809,由于ADC0809拥有八个通道,所以使用For循环进行八次采集。具体流程参见流程图。其流程图见附录。(3)向串口发送数据子程序putc_to_SerialPort(uchar c)具体流程参见流程图。其流程图见附录第五章 结束语在这三个多月的时间里在杜老师辛勤的指导下论文经过不断修改,不断创新,不断的查阅资料,基于单片机
34、的数据采集系统设计的论文终于完成了。并且在ISIS上画出电路图进行硬件调试再把程序烧录进去然后进行检测。 软件仿真包括仿真程序和对硬件准确性的仿真。在整个设计过程中,出现了很多的困难,但我从来没有放弃的念头,虽然该论文已经完成了,但是由于个人能力有限,还是存在一些问题,但这并没有打击到我的自信心,我会不断的努力争取做的更加完善。其实写论文是一个不断进步的过程,从刚开始的对论文的懵懂,到经过不断的自学以及向老师和同学的请教,终于对论文有了深刻的认识和了解,再到最后的仿真与实践。,使我深刻的认识到,学习是需要举一反三的,并且理论结合实践会有意想不到的收获。致 谢首先我很感激我的导师杜秀全老师,在做
35、毕业设计的这段时间内,老师给了我很多的指导,并提供相关的一些重要的信息,培养了我对科学的研究严谨态度和创新精神,对我影响深远。老师不仅教授了我许多知识还使我掌握了科学研究的方法,也让我明白了许多人生的道理,所有这些会对我以后的学习和工作有很大的帮助。在此,我谨向杜秀全老师表示衷心的感谢和至高的敬意!再次,我很感激我的室友,四年来你们带给我的欢声笑语是任何人都无法取代的,你们教会了我许多道理,我也在我们相处的时光里收获了许多,感谢你们!然后,我要感谢我伟大的父母,感谢他们在我的学习生涯里给予我的物质和精神上的支持,虽然求学期间很少在你们身边,但你们对我的爱从未减少,真的谢谢你们。最后,大学也随着
36、毕业论文的结束接近了尾声,我很感谢四年来遇到的所以老师和同学,是你们让我度过了这美好的四年!参考文献1 严洁.单片机原理及其接口技术.机械工业出版社,2010,65-1052 范红刚.51单片机自学笔记.北京航空航天大学出版社,20093 李森,赵继冲,侯攀峰单片机简单介绍及应用浅析中国矿业大学信息与电气工程学院,2010,67-673 高云.基于MSP430的温室多路数据采集系统.农机化研究,2009,No.84 于涛旋转型摇摇棒的制作河南省平顶山市卫生学校,2012,18-195串行接口 - 搜狗百科 - 互联网数据 - 2013-12-18 6基于单片机的温度自动控制系统设计张云飞 -
37、魅力中国- 2010 4 常铁原,王欣,陈文军. 多路数据采集系统的设计.电子技术应用,2008,No.115 叶红海,李丽敏.基于单片机的多路数据采集系统的设计与实现.2008,No.46 彭伟.单片机C语言程序设计实训100例.电子工业出版社,2009,46-48,104-1107 杨居义,杨晓琴,王益斌等.单片机课程设计指导.清华大学出版社,2009,135-1418 刘刚,秦永左,朱杰斌.单片机原理及应用.北京大学出版社,2006,76-98,134-1559 林祝亮,武林,杨金华.基于双单片机的多路数据采集系统设计.仪器仪表学报,2006,No.610 元增民,张文希.单片机原理与应
38、用基础.国防科技大学出版社,2006,205-26611 王琳,商周,王学伟.数据采集的发展及应用.电测与仪表,2004,No.46412 V. Schmidt, Control, data acquisition, and remote participation for fusion research, Fusion Eng. Des. 81 (2006) 17021712.13 A.Neto,H.Fernandes,A.Duarte, Firesignal-Data acquisition and control system software.FusionEngineering and
39、 Design 82(2007)1359-1364.14何立民.单片机应用系统设计(第一版)M.北京:北 京航空航天大学出版社,1990. 15杨乐平,李海涛,肖相生.LabVIEW程序设计与应用 (第一版)M.北京:电子工业出版社,2004.16 薛峰,朱晓骏.单片机原理及其应用(第一版).北京:北京理工大学出版社,2011.9附录1主机部分主程序和子程序流程图开始初始化启动定时器1开中断再根据扫描到的键盘号,发送相应的数据给串口,调用一个Display()在LED上显示F判断是否有按键按下YN 主程序数据发送到串行口当T1=0时,则传送结束TI=0向串口发送数据子程序putc_to_ser
40、ialport() 开始先将低4位置1选定4行然后判断该按键发生在哪一列是否有按键按下YN将列数赋给KeyNoKeyNo=16将高4位置1选定4列再判断发生在那一行03行分别附加起始值0,4,8,12返回 键盘扫描子程序Keys_Scan()开始显示个位显示十分位显示百分位显示小数点结束 LED显示程序Display_Result(int d)开始接受数据对数据进行相关处理调用Display_Result(m)主机串口接受中断子程序Serial_INT() interrupt 4从机部分主程序和子程序流程图开始初始化启动定时器1开中断调用Adcon()结束主程序开始接收串口数据判断接受到的数据
41、第4位是否为1YN按选定的通道号采集选定循环采集方式结束 从机串口接受中断函数Serial_INT() interrupt 4开始选定通道号开始转换转换结束将得到的数据发送给串口结束 模数转换子程序ADCON附录2主机部分程序#include#define uchar unsigned char#define uint unsigned intsbit k1=P34;sbit smgd=P26;sbit smgk=P27; uchar Pre_KeyNo=16,KeyNo=16;uchar code LEDData=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07
42、, 0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79, 0X71/*延时子程序*/void Delay(uint x) uchar i; while(x-)for(i=0;i4; /该表达式将高4位移到低四位 swith(Tmp) /判断按键发生在哪列 case 1:KeyNo=0;break; case 2:KeyNo=1;break; case 4:KeyNo=2;break; case 8:KeyNo=3;break; default: KeyNo=16; /无键按下P3=0X0F; /高4位置0,放入4列Delay(1);Tmp=P30xF0; / 按键后00001111将变成0000XXXX,X中有一个为0,3个仍为1,而异或操作会把3个1变成0,唯一的0变成1 switch(Tmp) /03行分别附加起始值0,4,8,12 case 1:KeyNo+=0;break; case 2:KeyNo+=4;break; ca