多路数据采集器设计(软件设计)_第1页
多路数据采集器设计(软件设计)_第2页
多路数据采集器设计(软件设计)_第3页
多路数据采集器设计(软件设计)_第4页
多路数据采集器设计(软件设计)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、多路数据采集器(软件设计)The Design Of Multi-channel Data Acquisition System I摘要本文介绍一种基于单片机的多路数据采集系统。单片机是该系统硬件部分的重心。系统采用以89C51单片机为核心,外围电路还包括模拟信号产生模块、A/D转换模块,显示模块,数据处理模块。八路模拟通道的信息首先通过ADC0809的八选一开关进入,进行模数转换得到二进制信息,并将转换后的数据进入单片机进行标度变换为测量结果,最后通过四位数码管显示器来显示所采集的结果。软件是采用C语言进行编程,程序包含A/D转换数据的采集、数码管的显示、键盘的读取和整个系统初始化等模块。关

2、键词:数据采集 89C51单片机 ADC0809 AbstractThis article based on signal-chip microcomputer system is the link between the digital domain and analog domain. The introductive point of this text is a data to collect the system. The hardware of the system focuses on signal-chip microcomputer .Data collection and

3、communication control use modular design. The data collected to control with correspondence to adopt a machine 8051 to carry out. The part of hardwares core is AT89C51, is also includes A/D conversion module, display module, and the serial interface. Slave machine is responsible for data acquisition

4、 and answering the host machine.8 roads were measured the electric voltage to pass the in general use mold-few conversion of ADC0809,the realization carries on the conversion that imitates to measure the numeral to measure towards the data that collect .Then send the data to the host machine through

5、 LED digital display is responsible display the data. The software is partly programmed with VC+. The software can realize the function of monitoring and controlling the whole system. It designs much program like data-acquisition treatment,and data-display ect.Keyword: data acquisition AT89C51 ADC08

6、09 II目 录摘要IAbstractII第一章 绪论11.1选题背景11.2系统主要任务2第二章 系统分析42.1方案选择及设计思想42.2硬件单元电路622.1中心控制单元62.2.2信号产生电路92.2.3 F/V转换电路102.2.4信号输入及A/D转换112.2.5 键盘输入电路132.2.6 显示部分152.2.7 供电电源电路18第三章系统软件分析203.1系统资源分配203.2系统软件设计思路203.3程序流程图213.4各模块流程图介绍22结束语25参考文献26致谢27程序清单28南昌工程学院本科毕业设计(论文)第一章 绪论 1.1选题背景由于现在的科技水平的不断发展,人们对

7、自动化水平的要也越来越高,在很多工厂想趋于自动化因为采用人工的话人为因素太多,也很难避免所以相对而言采用的自动话能有效可靠准确的采集数据。数据采集系统是一种能在现场实时采集的系统,具备自动存储、即时显示、即时反馈、实时采集功能。为现场数据的有效性、真实性、可用性、实时性提供了保证。20世纪50年代数据采集系统才刚刚起步,1956年美国首先研究了用在军事上的测试系统,目的是不依靠相关的测试文件进行测试,由于非成熟人员操作起来人为因素太多可能出错,并且主要的测试任务都是在高速的情况下进行的,危险因素也很大。由于该种数据采集测试系统具有高速性和一定的灵活性,可以满足众多传统方法不能完成的数据采集和测

8、试任务,因而得到了很多厂家初步的认可。大约在1968年到1969年,国内外就有成套完备的数据采集设备和系统。这些系统一般是专用的系统。随着微型机的发展,在20世纪70年代后期,诞生了采集器、仪表同计算机溶为一体的数据采集系统。由于这种数据采集系统已经超过了传统的自动检测仪表和专用数据采集系统,这是因为系统的性能优良所决定的,因此获得了迅速的发展。从70年代起,数据采集系统发展过程中逐渐分为两类,一类是工业现场数据采集系统,一类是实验室数据采集系统。20世纪80年代计算机迅猛发展,同时数据采集系统取得了很大的发展,开始涌现出通用的数据采集与自动测试系统。在这时数据采集系统主要分了两类,一类通过通

9、用接口总线、仪表仪器、采集器和计算机组成。一般这类系统大部分应用于实验室,少部分在工业生产现场应用。第二类以数据标准总线、采集卡和计算机构成,这一类大部分应用于工业现场。20世纪80年代后期,数据采集发生了巨大的变化,单片机、工业计算机和大规模集成电路的组合,31南昌工程学院本科毕业设计(论文)软件管理成了一种趋势,因为用软件管理使系统的成本减低,体积变小,功能成倍增加,数据处理能力大大加强。20世纪90年代到现在,数据采集系统已成功的运用到军事、航空电子设备及宇航技术、工业等领域,特别是在国际上技术先进的国家。由于集成电路制造技术的不断提高,单片机数据采集系统已经是高性能、高可靠的。从此一门

10、专门的技术出现数据采集技术,它在工业领域得到了极其广泛的应用。该阶段的数据采集系统采用模块式结构,只要通过简单的增加和更改模块,并结合系统编程,就可扩展或修改系统,实现不同的应用要求,迅速组成一个新的系统。当今世界最伟大的了科技进步之一是大规模的集成电路与电子计算机的应用与普及,尤其是最近几十年微型计算机的出现(单片机)性能的改进使得计算机深入到社会的各个方面及各行各业。推动了科技的发展,使得整个世界迎来了一个信息的时代。为了把需要处理的信息输入给计算机,把计算机处理的结果送给所需要的场所,就需要一系列的输出,输入设备完成信息的调理、采样、A/D、D/A转换、打印、显示的工作。这些处理信息的输

11、入输出设备与计算机就构成了一个数据采集系统(DAS)。1.2系统主要任务(1)任务设计一个多个通道的模拟量的输入(至少八个通道)且可以控制通道的输入采集到模拟信号。主控器处理接受的模拟信号将其进行显示使用四个LED显示的。(2)基本要求AD选择通道两种要求:第一种就是当你按下自动按键时八路循环采集,我的程序是等待三秒再采集下个通道。第二种就是按下手选按键是你可以任意采集你想要的通道,这里的通道选择是用了三个拨码开关来实现的。显示的器显示第一通道是显示频率的数值,第二通道到第八通道是显示电压数值。按键要求就是当自动按键按下是必须让手动按键采集的变量赋零,同理当手动按键按下是自动按键采集的变量也必

12、须赋零,当自动按键和手动按键都按键都按键,软件必须给两个按键采集的变量都赋零。主要技术参数 数值显示范围:频率是2002000 电压是0.005.00 调整精度:±0.1/±1 显示方式:四位显示基本功能我们的数据采集器采用的主要元件是AT89S51和ADC0809模数转换芯片。其主要功能是模拟采集信号,并对信号进行处理,最终显示出来采集结果。本次设计的要求是采集电压和频率信号并且将其他们都显示出来。两个模拟量的选择及其产生直流电压:其他的七路通道电压获得是通过电阻来调节,调节范围是05V频率发生:频率发生器是通过ICL8038 调节范围为2002000HZ频率的转换:通过

13、F/V转换器电压输出典型参数 第一通道的模拟信号频率显示计算公式y=(i-1)*450+200表1-1 实际频率 电压输出 AD转换数值 显示值 200HZ 1 00200 1100HZ 3V 128 1100 2000HZ 5V 255 2000第二通道到第七通道直接显示电压表1-2通道号 2 3 4 5 6 7电压实际值(V) 5V 4V 3V 2V 1V 0V电压显示值 5.00 4.00 3.00 2.00 1.00 0.00第二章 系统分析数据采集系统在各行各业社会各个方面的广泛应用也使得科研人们对数据采集器有更深研究,希望能使人门能更方便、更实惠、功能更强大、使用简单明了的采集器。

14、因为数据采集器的迅速的发展使得采集的数据采集、处理、输出等更快速更准确使用者操作更简单。并且现在大规模集成电路的发展和微型计算机的发展及其使用使得当初人工管理的方式完全改变。现在都是用软件进行管理使得管理更紧而有序,每一步都是根据程序来实行不像以前人来操控有人为的思考在里面,所以软件设计也使现在编程者有一个新的思维。2.1方案选择及设计思想在编程的时候我选择了两套方案方案一:采用单总线的方式 总线方式是现在公司用的非常普遍的一种编程方法.总线方式总共包含了多种类型如I2C总线方式、CAN总线方式、单总线方式。其中单总线方式也是现在用的非常流行的一种方式。单总线方式有个很大的特点就是什么模块都能

15、通过P0口来进行数据传输。例如对AD转换后的数据采集、键盘的扫描、LED的显示都能通过P0口来实现这些功能。他的主要设计思想是给每个模块如AD模块、显示模块、键盘模块、和存储器扩展模块等等,给每个模块一个地址,这个地址是由P2P0口共同组成的。当你设计好他们的地址后就可以对每个模块进行数据的传输了,并通过设计者的编程思路能有序的对各个模块进行选通及采集和处理数据,这样外部设备就能与单片机进行很好数据传输。由于每个模块都有一个地址所以编程者思路就非常的清晰,这也是单总线方式编程的最大的优势。单总线方式对于汇编语言和C语言都能实现,但是汇编语言比C语言更容易实现。因为汇编语言有明确的内存分配,所以

16、一些数据能给一个明确的地址进行赋值。而单总线C语言编程时没有明确的分配内存空间,这也是C语言编程时用I2C总线方式比单总线方式应用更广的原因。但是I2C总线它也有自己的缺点,它的缺点就是每个器件都要有一个固定I2C地址,所以它的应用范围也是有局限性的。C语言编程比汇编语言编程一个很大的优点是当在做些相关计算时,特别是一些运算量大或换算量也多时。在这方面用高级语言就有他这方面的显著的优势。这也是我当时为什么考虑用高级语言编程原因。当你会用单总线这种方式编程时对你现在是一个提高,对你以后的编程路上也是个很好的铺垫。方案二:I/O口方式 这种方式就是直接I/O口进行数据传输不考虑地址方面和内存分配方

17、面,因为在这次我们组的论文要求中所用的I/O并不是很多,所以我把所有I/O口用上完全能完成我们的设计。这也使得编程思路也简单好多,并且编程的程序量也不大。两套方案的比较:第一种方案软件编程起来可能比较麻烦并且本人对C语言进行单片机编程还有很多知识的欠缺,还有这次做毕业论文比较比较仓促。由于时间的原因所以我综合考虑是选择第二种方案,第二种方案有他的优势,内存分配不用考虑和地址选择也不用考虑,第二种方案在很多经典教程里还在用这种方式。但是以后我也会把第一种尝试做一下,使自己能力更加完善。采集电路AD0809CPU主控电路AT89C51显示电路八路模拟信号启动信号按键部分完成信号图2.1 设计框图设

18、计思想:这次设计中涉及的模拟信号是两种信号分别是电压和频率两种模拟量。我们这次的主体思想是:当上电以后单片机进行一些初始化此后就等待按键传来中断信号,当有中断到来时就判断是自动循环模式还是手动拨码方式。当确定模式后就启动ADC0809且主控器采集相应通道和数据并对数据进行处理,主控器将处理数据最后送到P1口输出显示。电压是显示四位数码管的后三位进行显示。而频率的显示是四位数码管都显示。本电路中采用数码管是采用共阴极数码管,显示频率时是通过AT89C51软件转换计算,将换算后的结果再进行显示的。具体公式是y=(i-1)*450+200,这次设计老师的要求是:第一通道使显示频率的真实值,而第二通道

19、到第八通道是要求我们通过调节滑动变阻器分得的电压来得到任务书中要求的电压,在此设计中自动循环模式和手动单选模式的选择是通过按键和拨码开关配合完成。我们选择的A/D转换器是ADC0809能通八路模拟信号,所以我们不需要八选一开关,只要在软件里设定需要的通道就行了,这样就大大减少了硬件电路。2.2硬件单元电路我们这次设计的八路采集器主要由主控器AT89C51、模数转换模块ADC0809、正弦波发生器ICL8038、F/V转换模块LTC1043、显示模块LED和键盘组成。开始是正弦波发生器输出想要范围的频率,再进行F/V转换将频率信号转换为电压信号送给A/D转换器ADC0809,ADC0809将电压

20、模拟信号转换为主控器能识别的二进制送给AT89C51。AT89C51将送来的数据进行处理后送给显示器进行显示。设计中的键盘是由按键和拨码开关组成的。按键是选择自动循环模式还是手动单选方式模式,而拨码开关是选择A/D通道用的。22.1中心控制单元 1、时钟电路系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要

21、求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。时钟电路如图2.2所示。图2.2时钟电路2、复位电路我们的复位电路有两个功能:第一个是上电自动复位,第二是手动复位。单片机在很多恶劣的环境程序有时也会不稳定,会出现程序跑飞的情况,为了去除这种因素的影响,我们就增加了第二功能手动复位。具体的工作原理是使REST引脚得到高电平,上电复位的原理是在上电瞬间RES

22、T获得高电平,随着电容器充电引脚电压慢慢下降,但是只要达到了保持复位的时间就行,这样单片机就实现了复位。手动复位就比较简单按下按键就能使引脚直接获得高电平基本形式如图2.3所示。图2.3复位电路 3、单片机的选择51系列单片机主要包括:基本型:8031/8051/8751(低功耗型80C31/80C51/87C51)增强型:8032/8052/8752。现在已经让我过广大的技术人员熟悉掌握。在上世纪80年代和90年代,51系列是在我国应用最为广泛的单片机机型之一。他们的特点:表2-1 单片机类型型号片内程序存储器片内数据存储器(B)I/O口线(位)定时器/计数器(个)中断源个数(个)基本型80

23、31无128322580514KB ROM128322587514KB EPROM1283225增强型8032无256323680528KB ROM256323680728KB EPROM256323689C51 结构特点:(1)8位微处理器(CPU);(2)数据存储器(128B RAM);(3)程序存储器(4KB Flash ROM);(4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);(5)1个全双工的异步串行口;(6)2个可编程的16位定时器/计数器;(7)1个看门狗定时器;(8)中断系统具有5个中断源、5个中断向量;(9)特殊功能寄存器(SFR)26个;(10

24、)低功耗模式有空闲模式和掉电模式,且具有掉电模式 2.2.2信号产生电路八路模拟信号包括两个部分频率信号和电压信号,频率信号是由ICl8038产生的正弦波发生器。ICL8038的波形发生器是一个外部元件用的最少就能发出比其他电路更精准的就正弦,方形,三角, 锯齿波和脉冲波形集成电路. 频率的选择可以从0.001hz到300khz可以挑选可变电阻或电容器来调节, 调频及扫描能通过外部一个电压完成. ICL8038发生器是采用肖特基势垒二极管等先进工艺制成的单片集成电路芯片,由温度和电源变化范围广来决定输出。对任意特定的输出频率,一般都有RC组合工作, 然而, 充电电流大小被某些制约因素限制是为了

25、达到最好性能. 在电流小于1a是达不到好的性能,由于在环境高温时电路的泄漏将会产生重大误差. 高电流( I 5ma ) 时晶体管饱和电压和betas将有会使误差变得越来越大,因此. 最好性能是充电电流范围在10a-1mA时为最佳 . 如果管脚 7和8是短路的,充电电流的大小由R1确定,可以计算出: I=0.22*(V+ - V-)/R1。电容器数值应该被选择在取值最大的可能的范围内。当R1=R2时输出正弦波频率的占空比为50%,而频率的调节是通过引脚8来进行调节的。引脚2为正弦波频率的输出端基本形式如图2.4所示。我们的电压信号是通过电阻直接分压得来的具体形式如图2.5所示。图2.4频率发生器

26、电路图2.5模拟电压产生电路2.2.3 F/V转换电路一般来说采取开关电容滤波器构成频率/电压转换电路是比线性好的频率/电压转换电路是简单好多的。如下图2.6所示A1的16脚为频率信号的输入端,只要是16脚设定为高电平是,那么A1的13和12两脚就该短接,使得12脚电容瞬时充电。反而亦之,如果16脚从高电平变为低电平时,下降沿将短接的是12脚和14脚,并且放电电容C2芳出的电流经过A2的反馈环节的电容C3.由于以上的作用将A2瞬时输出变为负,在A2反相输入端变为零之前,由于负反馈的作用使得输出变为正。 A2的反馈电阻决定了他直流增益。所以我们所得到的频率从20020000HZ转换到电压1!5V

27、就可以通过调节可变电阻W1,且线性度为0.005%左右。电容C2决定了温漂,A2的反馈电阻以及基准电压(13脚电压)。所以我们选取电容C2温度系数为-120ppm/,电阻R2采取的温度系数是+120ppm/。我们设计的电路中A1采用LTC1043,A2采用的LF356,但是你也可用和此类相似的产品代替。图2.6 F/V转换电路2.2.4信号输入及A/D转换单片机的信号通过八输入A/D转换芯片而来,本次设计采用是ADC0809芯片。模拟信号通过8路模拟量输入端。三个数据选择控制端ADDA、ADDB、ADDC输入的片选信号分别与P3.5、P3.4和P3.3连在一起,能构成8数据模拟通道,片选信号由

28、拨码开关和按键一起控制。START是 AD转换启动信号,此端口应加上一个完整的正弦波脉冲信号,在脉冲信号的上升沿将清楚A/D转换器中的寄存器,等到脉冲信号的下降沿是A/D转换开始启动。ALE是地址锁存允许信号,当ALE=1时,允许改变ABC的值。在我们这次设计的电路中是将ALE直接与VCC进行相连。脉冲的处于高电平, OE端口是数据输出允许信号,高电平控制由单片机的端口进行输入高电平,才能打开输出三态门,输出数字量。当OE为低电平时,D7到D0对外呈现高组态状态。连接方式是sb2-8 sb2-1和P0.7-P0.0。本芯片接基准电压12和16号管脚分别接VCC和GND。另外10号引脚脉冲输入端

29、的时钟频率大小不能超过640KHZ。本次设计中是将单片机ALE产生的频率经过得到500KHZ,可以直接应用D触发器进行设计,因为我们系统中采用的是12MHZ的晶振,所以在图2.8中给出了应用触发器CD4013设计用4分频电路。 图2.7 ADC0809芯片及其接口电路图2.8分频电路模数转换是指通过一定的电路将模拟信号转换为数字信号。A/D的主要参数:实现模拟与数字转换时,主要用到的参数有转换精度、转换率和分辨率三个参数如表2-2所示:表2-2 模拟数字转换参数转换精度由于模拟量是连续的,而数字量是离散的,所以,一般是某个范围中的模拟量对应于摸个数字量。即在模数转换时,模拟量和数字量值之间并不

30、是一一对应得关系。转换精度反映了模数转换起的实际输出接近理想输出的精度程度。模数转换的精度通常是用数字量的最低有效位(LSB)来表示的。设数字量的最低有效位对应于模拟量,这时,我们称为数字量的最低有效位的当量。如果模拟量在±/2范围内都产生相对应得唯一数字量,那么,这个模数转换器的精度为±0LSB. 转换率转化率是用完成一次模数转换所需时间的倒数来表示的,所以,转换率表明了模数转换的速度。比如完成一次模数转换所需时间是200ns,转换率为5MHz。 分辨率模数转换的分辨率表明了能够分辨最小的量化信号的能力。通常用位数来表示模数转换器的分表率。对于一个实现N位转换器来说,它能

31、分辨的最小信号的能力为ViMAX/2。2.2.5 键盘输入电路单片机系统中键盘的应用是非常广泛的,因为它是人机交互功能中,起到“手”的作用,它在系统中具体是对指令的输入和功能的切换等功能的实现。现在的键盘的种类也是多种多样,有按键式、拨码方、感应式、触摸式等等,但本次我们用到的键盘是按键式和拨码式。我们设计中S1是起自动循环作用,S2起手动单选作用,只要有按键按下则将低电平送给与非门使输出结果为1,出来的高电平又经过非门转换为低电平从而就产生了中断信号。为什么我们在电路中经过与非门又经过一个非门呢?这是键盘中应用非常广的一种方法是为了信号更加准确与稳定。设计中的拨码开关是结合按键一起使用的,当

32、按键选择是手动单选模式时,则通过拨码开关进行选择通道号来单选你所想要的通道。键盘的主要任务一般分为三项1、 识键:判断是否有建按下。如有,就进行下一步工作。2、 译键:识别按键是哪个被按下并求出相应的键值。3、 键值分析:根据得出的键值,找出相应的处理程序的入口且执行程序。图2.9 键盘电路单片机系统的键盘属于非编码键盘。其键盘可以分为两类:独立连接式键盘和行列式键盘。其特性如下表2-3所示:表2-3 键盘种类 独立连接式键盘独立键盘是指直接用一根I/O口线构成的单个按键电路,每个键独立地接入一根数据输入线。每个I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。其特点是结构简单、使用

33、方便,但随着键数的增多所占用的I/O口线也增加。在使用键数不多的单片机系统中,独立式键盘的使用相当普遍。这种键盘,在无键按下时,所有制的数据输入线都被连接成高电平;当任一键按下时,与之相连的数据输入线将被拉成低电平。要判断是否有键按下时,只要有位处理指令即可。独立式键盘的工作方式有中断方式和查询方式。 行列式键盘行列式键盘又叫矩阵键盘,用I/O口线组成行、列结构,按键设置在行和列的交点上。在按键较多时,可以节省I/O口线。但在键盘设计时除了对键码识别以外,还有两个问题要解决,一个是抖动问题,另一个是重键问题。键盘的扫描的方式有三种:分别是程序扫描方式、定时扫描方式、中断扫描方式。其定义如下:表

34、2-4 键盘扫描方式 程序扫描方式CPU的控制一旦进入监控程序,将反复不断地扫描键盘,等待输入命令或数据。 定时扫描方式在初始化程序中对定时/计数器进行编程,使之产生10ms的定时中断,CPU响应定时中断,执行中断服务程序,对键盘扫描一遍,检查键盘的状态,实现对键盘的定时扫描。当两次扫描到键位上都有按下(延时正好8ms)时,CPU才作键处理。 中断扫描方式当键上有键按下时,产生中断请求,CPU响应中断,执行中断服务程序,判断按下键的键号,继而作出相应的处理。2.2.6 显示部分单片机系统设计的显示电路是为了使用者能实时监控和实时读取相关的数据。显示无可厚非需要显示器,显示电路很多,但常用的显示

35、电路一般分两种一种是LED显示电路和LCD显示电路,它们应用的领域都非常广。系统要求四位数值的显示所以选用来进行LED显示。我们具体显示分两种情况当显示的是频率信号时则显示四位频率没有精确到小数点,当显示信号为电压信号时则精确到小数点后两位。我们设计中段选信号是P2来选择的,位选信号则是P1口来选择的,且采用的是动态的显示方式。具体电路如图2.10所示图2.10 显示电路LED的驱动方式有静态驱动、动态扫描驱动两种:其主要特性其区别如下2-5表所示:表2-5 静态驱动和动态扫描 静态驱动静态驱动法显示亮度高、使用方便,缺点是要多个输出驱动线(输出驱动线的数量为7×位数),特别是位数较

36、多时,数码管驱动线的个数会很多。 动态扫描驱动动态扫描驱动法是使各位轮流显示,只要重复频率超过一定的值(大于24HZ),由于人眼的视觉暂留,看起来不会有闪动效果。用这种驱动方法占用的输出驱动线少,仅为7加数码管个数,缺点是亮度较低。由于重复频率的限制,加上显示亮度的要求,显示的位数也是有限的。 LED数码管分为共阳极和共阴极两种外形图如内部结构图见图2.11。其中a-g是七段发光二极管用于显示数字。dp是用于显示小数点。3与8是内部联通,+5V是表示公共阳极,接地端是表示公共阴极。(a) 外型结构 (b)共阴极 (c)共阳极图2.11 数码管结构图要使数码管显示相应字符和数字。所以一定要使段数

37、据口输出对应的字形编码。总共的所显示的字母有A-F 、H、L、P、R、U、Y,数字有0-9,且共阴极和共阳极所显示的编码不一样具体变如表2-6所示。表2-6数码管字型编码表显示字符字形共 阳 极共 阴 极dpgfedcba字型码dpgfedcba字形码0011000000C0H001111113FH1111111001F9H0000011006H2210100100A4H010110115BH3310110000B0H010011114FH441001100199H0110011066H551001001092H011011016DH661000001082H011111017DH771111

38、1000F8H0000011107H881000000080H011111117FH991001000090H011011116FHAA1000100088H0111011177HBB1000001183H011111007CHCC11000110C6H0011100139HDD10100001A1H010111105EHEE1000011086H0111100179HFF100011108EH0111000171HHH1000100189H0111011076HLL11000111C7H0011100038HPP100011008CH0111001173HRR11001110CEH00110

39、00131HUU11000001C1H001111103EHYY1001000191H011011106EH-10111111BFH0100000040H.011111117FH1000000080H熄灭灭11111111FFH0000000000H2.2.7 供电电源电路尽管LM317的最大输出电压可达37V,最大输出电流可达2A,本制作仅要求其输出电压范围为1.5V15V,输出电流200300mA,故电源变压器可用35W 、220V18V即可 。图2.12为电源原理图,。220V市电经过变压器变压(降压)、二极管桥式整流、电容C2滤波后送入LM317的3脚(输入端),第二脚输出稳定的直流电

40、压。第一脚为调整端,调整端与输出端之间为1.25V的基准电压。为了保证稳压器的输出性能,R2的阻值应该小于240。为了使输出电压可调,调整端与地之间接可变电阻器Rp,改变Rp阻值就可以改变输出电压。输出电压计算公式为Uo=1.25×(1+RpR2)V。C1用于过滤由市电引入的高频干扰,选用瓷介电容器。C2(1000F)组成电容滤波电路,C3(10F)用于旁路基准电压的纹波电压,提高稳压电源的纹波抑制性能。在使用中,若负载为5005000PF的容性负载,稳压器的输出端会发生自激现象,电解电容器C4(200F)正是为此而设置,再则可以进一步改善输出电压的纹波。VD5、VD6是保护二极管,

41、若输入端发生短路,C4的放电电流会反向流经LM317,有可能被冲击损坏,VD5的接入可从旁路方向冲击电流,使LM317得到保护。同理若输出端短路,C3上的放电电流被VD6短路起到保护作用。图中的R1与VD7为工作指示,当电源线插上市电插座后,如果变压、整流、滤波、稳压正常时,发光二极管VD7发光,R2为VD7的限流电阻。图2.12 直流电源产生模块第三章系统软件分析3.1系统资源分配P口资源分配表3-1表3.1 P口分配表 位号I/O口01234567P0用于接受ADC0809转换来的数据P1用于LED的段选P2用于LED位选没有利用P3AD0809 OE端AD0809START用于中断信号采

42、集端拨码开关选择通道手动按键连接端和AD0809 EOC自动按键连接端3.2系统软件设计思路(1) 等待中断信号,判别手动还是自动。(2)启动AD0809与相应的通道进行转换。(3) 数据处理(4) 显示3.3程序流程图系统模块层次图如下图3.1所示:主控制器显示模块按键模块A/D模块模拟信号图3.1 系统模块层次图主程序流程图设计主程序的设计第一、上电启动单片机后等待中断信号。第二是、当有中断信号以后对中断信号进行判断是自动还是手动。第三、启动AD0809再根据中断信号的信息做出相应的转换数据。第四、单片机对AD传来的数据进行处理。第五单片机通过P1送给显示器进行显示如下图3.2。手动开始初

43、始化判断手自动标号启动AD自动循环采集AD通道启动AD单个采集AD通道单片机数据处理单片机数据处理显示结束程序图3.2主程序流程图3.4各模块流程图介绍1、数据采集和处理模块ADC0809是8路8位CMOS型逐次比较式A/D转换器,它能够分时对8路模拟信号进行转换,其转换结果为8位二进制代码,最短转换时间为100us。但是在我这个电路中通道一与其他通道进来的数据是一样的但是送给显示却不一样,通道一是显示频率其他通道是显示电压,而AD0809接收的只能电压模拟信号所显示频率必须进行折算。具体的流程如下图3.3。单通道自动循环环折算数据2 开始判断通道号读P3口的信息控制器读取P0口信息通道一折算

44、数据1其他通道控制器读取P0口信息显示子程序结束返回图3.3 数据采集和处理流程图2、显示模块开始将AD数据进行处理处理后的数据的每一位都分出来放在一个数组中单片机送到P1位选通口由P2口进行段选通数码管显示结束图3.4 显示流程图图显示程序是由P2口进行段选P1口进行位选这采用的事动态显示的方法。结束语虽然本次毕业设计是要求自己独立完成,但是,彼此还是脱离不了集体的力量,遇到问题和同学互相讨论交流。多和同学讨论。我们在做毕业设计的过程中要不停的讨论问题,这样,我们可以尽可能的统一思想,这样就不会使自己在做的过程中没有方向。讨论不仅是一些思想的问题,还可以深入的讨论一些技术上的问题,这样可以使

45、自己的处理问题要快一些,少走弯路。多改变自己设计的方法,在设计的过程中最好要不停的改善自己解决问题的方法,这样可以方便自己解决问题。参考文献1 陈梓城实用电子电路设计与调试中国电力出版社20062 曹薇单片机原理及应用 中国实力水电出版社 2004.83 高吉祥全国大学生电子设计大赛培训教程电子工业出版社2007.54 DS12887 DATASHEET 5 DS18B20 DATASHEET 6 郭天祥,新概念51单片机C语言教程入门、提高、开发、拓展全攻略;北京:电子工业出版社;20097 宋戈、黄鹤松、员玉良、蒋海峰,51单片机应用开发范例大全;北京:人民邮电出版社;20108 阎石,数

46、字电子技术基础(第四版);北京:高等教育出版社;19989 邹显圣,基于AT89C51单片机数字时钟的研究,机电产品开发与创新;2009,(5)10 刘伏文、王春华,MCS-51单片机存储器结构详解;电子制作;2007,(10).11 卢旭锦,基于Keil C的AT24C02串行E2PROM的编程;现代电子技术;2007,(8)致谢程序清单#include<AT89C51.H>头文件unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7;/位选/unsigned char codedispcode=0x3f,0x06,0x5b,0x4f

47、,0x66,0x6b,0x7d,0x7f,0x6f,0x00; /段选/unsigned char dispcount;unsigned char zhuna;unsigned char Dcun;unsigned char js;循环标号unsigned char getdata;unsigned char k;unsigned char k1;unsigned char TD;unsigned char cun;long int i,y;sbit ST=P31;sbit OE=P30;sbit EOC=P36;void delay(unsigned char di )/ 延时程序延时时间(

48、i*0.1 )s/char dis;unsigned char kk;for(;di>0;di-) for(dis=120;dis>0;dis-) for(kk=0;kk<137;kk+);void main(void)主程序int=0xf8;int h,m,n;ST=0;OE=0;EOC=1;TMOD=0x01;定时器为工作方式1TH0=(65536-6000)/256;设定初值TL0=(65536-6000)%256;TR0=1;启动定时器ET0=1;EX0=1;EA=1;if(k=1) while(1)j=0xf8;js=0;if(k1=1) break;for(h=0;h<8;h+)自动时八路循环采集 if(k1=1) break;TD=P3;if(k1=1) break; m=j;m<<3; P3=TD&m; j+; ST=0; ST=1; ST=0; while(EOC=0) OE=1; getdata=P0; OE=0; if(js=0)判断是否是通道一 i=getdata*0.0196; y=(i-1)*450+200; y=y*10; dispbuf0=y/10000; y=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论