您好,欢迎来到尚佳旅游分享网。
搜索
您的当前位置:首页基于单片机的电流电压测量 毕业设计

基于单片机的电流电压测量 毕业设计

来源:尚佳旅游分享网
基于单片机的电流电压测量 毕业设计

智能仪器课程设计说明书

基于单片机的电流电压测量系统设计

摘 要:本次设计所提供的是基于单片机的电压电流测量系统软硬件的设计。电学参量测量技术设计范围广,能应用的领域也十分广泛。随着电子技术的发展,在数字化、智能化、科技化为主的今天,数字电压、电流表以成为电压、电流表设计的主要方向,并且有非常重要的地位。

关键词:单片机,应用领域,设计

Abstract:

The design is provided by SCM-based

voltage and current measurement system hardware and software design. Electrical parameter measurement techniques designed a wide range of application areas can be very extensive. With the development of electronic technology,

in

digital,

intelligent,

technology-based today, the digital voltage meter to a voltage, current meter design of the main direction, and there is a very important position.

Keywords:

MicroController Unit, Applications,

Devise

2

智能仪器课程设计说明书

目录

1 前言 ................................... 5

1.1 电子测量概述 ..................... 5 1.2 数字电压表的特点 .................. 5 1.3 单片机的概述 ..................... 6 2 系统方案的选择与论证 .................... 7

2.1 功能要求 ......................... 7 2.2 系统的总体方案规划 ................ 7 2.3 各模块方案选择与论证 .............. 7

2.3.1 控制模块 ............................................. 7 2.3.2 量程自动转换模块 ..................................... 8 2.3.3 A/D转换模块 ......................................... 8 2.3.4 显示模块 ............................................. 9 2.3.5 通信模块 ............................................. 9

3

3 系统的硬件电路设计与实现 ............... 10

3.1 系统的硬件组成部分 ............... 10 3.2 主要单元电路设计 ................. 10

3.2.1 控制模块 ....................................... 10 3.2.2 量程自动转换模块 ................................... 11 3.2.3 A/D模数转换模块 ................................... 15 3.2.4 显示模块 ........................................... 17 3.2.5 通信模块 ........................................... 17 3.2.6 电源部分 ........................................... 18

4 系统的软件设计 ........................ 19 4.1 软件的总体设计原理 ............... 19

4.1.1 A/D转换程序设计 ................................... 20 4.1.2 数字滤波程序设计 ................................... 20 4.1.3 量程自动转换的程序设计 ............................. 22

5 系统调试及性能分析 .................... 24

5.1 调试与测试 ...................... 24 5.2 性能分析 ........................ 24 6 结束语 ................................ 25

6.1 设计总结 ......................... 25 6.2 设计的心得 ....................... 25 7 致谢词 ................................ 26 附录 ..................................... 27

附录1 参考文献 ....................... 27 附录2 系统总电路图 ................... 28 附录3 源程序 ......................... 29

4

智能仪器课程设计说明书

智能仪器课程设计说明书

1 前言

1.1 电子测量概述

从广义上讲,凡是利用电子技术来进行的测量都可以说是电子测量;从狭义上来说,电子测量是在电子学中测量有关电量的量值。与其他一些测量相比,电子测量具有以下几个明显的特点:①测量频率范围极宽,这就使它的应用范围很广;②量程很广;③测量准确度高;④测量速度快;⑤易于实现遥测和长期不间断的测量,显示方式又可以做到清晰,直观;⑥易于利用计算机,形成电子测量与计算技术的紧密结合。

随着科学技术和生产的发展,测量任务越来越复杂,工作量加大,测量速度测量准确度要求越来越高,这些都对测量仪器和测试系统提出了更高的要求。微机的出现为解决上述问题提供了条件。利用微机的记忆,存储,数算,逻辑判断和命令识别等能力,发展了微机化和自动测试系统。近年来微机和大规模集成电路发展很快,价格大幅下降,同时在测试系统中还解决了通用接口母线标准化问题,使微机化仪器和自动测试系统得到了很大发展,正改变着电子测量的面貌。

1.2 数字电压表的特点

1.读数直观、准确

电压表的数字化,是将连续的模拟量(如直流电压)转换成不连续的离散的数字形式并加以显示。这有别于传统的以指针与刻度盘进行读数的方法,避免了读数的视差和视觉疲劳。

2.显示范围宽、分辫力高

指针表的分辫力,是由刻度盘的细度表达的,刻度盘在一定条件下无法分得很细,太细了视觉分辫也很困难,而数字显示的电压表,目前可以做到从2(1/2)到10(1/2)。 3.输入阻抗

数字电压表的输入阻抗可高达(1~10000)M。输入阻抗越高,所吸收被测信号的电流就越小,所带来的附加误差极小,可以忽略。 4.集成度高、功耗小、抗干扰能力强

由于CMOS技术的发展,集成电路的功耗变得很小,即发热量很小,这样就可以在同一块芯片上集成更多的元件,形成大规模或超大规模集成电路。这给制造业带来了飞跃,不仅仪表小巧而功能齐全,其他如手机、袖珍电脑等也得以诞生。目前双积分或多重积分的A/D转换器构成的数字电压表,由于在积分过程中可将干扰信号部分或全部抵消掉,其串模抑制比可达100分贝,共模抑制比可达120分贝。 5.可扩展能力强

5

直流数字电压表本身可以扩展成交流电压表、交直电流表、峰值表、功率表等,还

可以附加智能化。例如:计算、保持、比较数字、设定时间,设定上、下量限及自动控制等多种功能。

智能仪器课程设计说明书

1.3 单片机的概述

单片机就是在一块半导体硅片上集成了微处理器(CPU)、存储器(ROM、RAM、EPROM)和各种输入、输出接口,这样一块集成电路芯片上具有一台计算机的属性,因而被称为单片微型计算机,简称单片机。

单片机根据其基本操作处理的位数可分为:1位单片机、4位单片机、8位单片机、16位单片机和32位单片机。并且其发展历史可分为以下四个阶段:

第一阶段:单片机初级阶段。因工艺,单片机采用双片的形势而且功能比较简单。例如,仙童公司生产的F8单片机,实际上只包括了8为CPU, B RAM和2个并行口。因此,还需加一块3851才能组成一台完整的计算机。

第二阶段:低性能单片机阶段。以Intel公司制造的MCS-48单片机为代表,这种单片机片内集成有8位CPU、并行I/O口、8位定时器/计数器、RAM和ROM等,但是不足之处是无串行口,中断处理比较简单,片内RAM和ROM容量较小且寻址范围不大于4KB。

第三阶段:高性能单片机阶段。这个阶段推出的单片机普遍带有I/O口,多级中断系统,16位定时器/计数器,片内ROM、RAM容量加大,且寻址范围可达KB,有的片内还带有A/D转换器。这类单片机的典型代表是:Intel公司的MCS-51系列、Motorola公司的6801和Zilog公司的Z8等。由于这类单片机的性能价格比高,所以仍被广泛应用,是目前应用数量较多的单片机。

第四阶段:8位单片机巩固发展及16位单片机、32位单片机推出阶段。此阶段的主要特征是一方面发展16位单片机、32位单片机及专用型单片机;另一方面不断完善高档8位单片机,改善其结构,以满足不同的用户需要。

6

智能仪器课程设计说明书

2 系统方案的选择与论证

2.1 功能要求

使用AD/DC模数转换模块把模拟量转换成数字量,再采用ATC52单片机进行电压、电流表的计算和显示,并将数据发送给PC机,要求进行硬件,软件系统设计。

1、4位电压、电流显示 2、8个档位自动调节 3、电压范围0——1000V 4、电流范围0——5A

5、能串口发送给计算机,并以适时波形显示

2.2 系统的总体方案规划

本设计主要由五大模块组成:量程自动转换模块、A/D模数转换模块、单片机控制模块、显示模块和通信模块。按系统功能实现要求,控制模块采用ATC52单片机,通过程序来进行电压、电流的计算等数据处理,及其功能控制;量程自动转换模块包括电压衰减和8个档位自动换档,采用纯硬件搭建;A/D转换模块采用ADC0809芯片;显示模块采用四个LED数码管静态显示电压、电流值。通信模块采用串口通信将数据发送给PC机。使用MAX232芯片,实现电平转换功能,使单片机的TTL电平与RS232的电平实现匹配。如图2.1所示:

图2.1 系统总体框图

2.3 各模块方案选择与论证

2.3.1 控制模块

控制器为整个系统的核心,通过接受外部信息,按照控制算法驱动执行机构。

7

对处理器的选择多种多样,本设计采用ATMEL公司生产的ATS52系列的单片机作

为主控制器。它支持ISP在线可编程写入技术!串行写入、其频率高达33MHz,故其速度更快、内部集成看门狗计时器,不再需要像C51那样外接看门狗计时器单元电路。稳定性更好。ATS52 高性能8位单片机是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位处理器和ISP Flash存储单元,功能强大的微型计算机的ATS52可为许多嵌入式控制应用系统提供高性价比的解决方案。

ATS52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,ATS52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

智能仪器课程设计说明书

2.3.2 量程自动转换模块

方案一、采用软件编程技术。特点:硬件简单,但编程复杂。

方案二、采用纯硬件搭建技术。利用一些廉价的元器件组成量程自动转换电路,特点:所用硬件多,但成本低,且不需要复杂的软件编程及调试。

考虑到本次设计所需硬件较少,且所用元器件容易购买,成本低。故采用方案二

2.3.3 A/D转换模块

方案一、采用双积分A/D转换技术。特点是:精度高,抗干扰能力强。但高精度的双积分A/D芯片,价格较贵,增加了单片机系统的成本。

方案二、采用比较型A/D转换器(ADC1210)。特点是:测量速度快(最高可达每秒100万次以上),电路比较简单,但抗干扰能力差。

方案三、采用逐次逼近型A/D转换器(ADC0809)。特点是:价格便宜,容易购买,但精度较低。

ADC0809是8位逐次逼近型A/D转换器。带8个模拟量输入通道,有通道地址译码

8

锁存器。考虑到成本低,因而选用方案三。

2.3.4 显示模块

方案一、采用LCD显示。特点:显示内容丰富,采用数字式接口,体积小、重量轻,功率消耗小,但编程复杂,且成本相对LED较高。

方案二、采用LED并行动态显示。即一位一位地轮流点亮各位显示器。对每一位显示器而言,每隔一段时间点亮一次。其硬件电路简单,但同样的功率驱动下,显示亮度不及静态显示,且占用I/O口较多。

方案三、采用LED串行静态显示。即显示某一字符时,相应的发光二极管恒定导通或截止,这种方式每一个显示位都需要一个8位输出口控制,占用硬件较多,但仅占用控制器串口的两个I/O口,软件实现简单,显示亮度高,成本低。

LED数码管显示器由7个发光二极管组成,因此也称之为7段LED显示器,因为LED数码管显示成本较低,外加一个驱动芯片,所需单片机接口较少,且程序容易实现。故考虑到本次设计的需要,只要显示4位电压、电流值,采用方案三,使用4个共阳数码管及4个驱动芯片74LS1。

智能仪器课程设计说明书

2.3.5 通信模块

方案一、采用并行通信方式。所传送的各位同时发送或接收。一个并行数据占多少位二进制数,就要多少根传输线,这种方式的特点:通信速度快,但传输线多,价格较贵,适合近距离传输。

方案二、采用串行通信方式。所传送的数据的各位按顺序一位一位地发送或接收。这种方式的特点:由于它每次只能传送一位,所以传送速度较慢。但它仅需要一到两根传输线,故传输数据时比较经济,且所占I/O口少。

本次设计是单片机与PC机的通信,要采用MAX232电平转换电路,可将单片机的TTL电平转换为PC机的串口电平。使单片机的TTL电平与RS232的电平实现匹配。故采用方案二。

经过仔细分析和论证,决定了系统各模块的最终方案如下: (1)控制器模块:采用单片机ATS52控制。 (2)量程自动转换模块:采用纯硬件搭建。

(3)A/D转换模块:采用逐次逼近式ADC0809转换器。 (4)显示模块:采用LED串行静态显示。 (5)通信模块:采用串口通信。

9

智能仪器课程设计说明书

3 系统的硬件电路设计与实现

3.1 系统的硬件组成部分

系统硬件主要由控制模块、量程自动转换模块、A/D转换模块、显示模块和通信模块组成。总原理图如图3.1所示:

图3.1 系统总体原理图

3.2 主要单元电路设计

3.2.1 控制模块

本设计主要以ATS52单片机最小系统为核心。其P1口为电压信号通过A/D转换后所得数字量的输入端, P2.6、P2.7为单片机的模拟串口,分别连接74LS1的RXD和TXD端。是CPU送数据到LED显示的接口;P0.0、P0.1、P0.2分别接一个发光二极管,三个二极管亮灭的不同组合对应不同的量程。同时P0.3也接一发光二极管,当二极管亮时,表明待测信号超过了量程范围。 ALE端口经芯片二分频接至ADC0809的CLK端。P3.7接ADC0809的启动控制输入端口STAR和地址锁存控制信号端口ALE,P3.6、P3.5分别连接ADC0809的输出允许控制端口OE、转换结束信号脉冲输出端口。P3.0 ,

10

P3.1口连接串口通信模块。其原理图如图3.2所示:

智能仪器课程设计说明书

图3.2 控制器原理图

3.2.2 量程自动转换模块

量程自动转换电路框图如图4所示.被测量程判断器判断出被测量的范围,相应的量程信号输入到档位选择器。 档位选择器根据量程信号将档位自动调至适当的量程.并将输入值自动地选择合适的增益或衰减处理后送至A/D转换器,实现整个量程的自动转换功能。如图4.3所示

图3.3 量程自动转换框图

(1) 电路设计的总体要求

电路设计的基本要求是在不降低测量精度的条件下实现量程的自动转换。 因此在设计电路时需要考虑以下几方面的要求:

1)输入值量程判断器的阻抗。要求在进行电压测量时具有高阻抗,进行电流测时具有低阻抗。

11

2)输入值量程判断器应具备对最大量程的上限和最小量程的下限的判断力。由于被

测范围较大,因此既要求在高待测量值输入时不对小量程电路造成冲击,又要求在超量程值时对档位转换电路进行关断。当输入量低于表内的测量精度时,也要求将档位选择器关断。否则,当测量仪表断开时,没有输入量,而输入值量程判断器则认为此时的输入量在最小量程的档位上,当仪表接通待测量时,待测量大于最小量程档位的范围时,档位选择电路及其后级电路必定受到较大的冲击。所以,输入值量程判断器不仅对是否超过最大量程能够判断,对是否小于最小量程的精度也有判断能力。

3)电路安全要求。在本设计中,利用传输的延时,对档位进行从关断测量到最大量程档位向低量程档位逐级下降直至到适当档位的转换,这样就使得电路在测量完高待测后就能顺利地进行对最低待测量的测量。

4)成本及功耗问题。由于输入值判断器所判断出的值不是用来测量,而是用于转换量程档位,所转换出的数值不需要十分精确,故其电路功耗可按仪表需要选择适当的芯片。

(2) 电路设计的实现

1)量程判断电路的设计 。量程判断电路框图如图3.4所示。输入的被测量经分压电路分压,并经隔离电路后输入电压判断电路,再至档位选择器。

智能仪器课程设计说明书

图3.4 量程判断电路框图

单量程的量程判断实现电路如图3.5所示:

图3.5 单量程判断实现电路

12

电路中U代表被测信号,电阻R1、R2 组成分压电路。运放A1组成隔离电路。电压

in

智能仪器课程设计说明书

判断电路由电压源UEF2和运放A3组成的单限电压比较器实现。该电压比较器的阈值电压 为UT为:

UT = -(R3/R4)* UREF (1)

电路下半部分与上半部分的结构和工作原理相似。不过,比较电压由A4 的反相端输入。由(1)式可知,当跟随器A1的输出大于0.2 V 时,比较器A3输出高电平;当跟随器A2 的输出小于-0.2V时,比较器A4 输出高电平;当-0.2V量程判断器的总电路如图3.6所示。每个运放的输入端都接有稳压管进行限压,以保护运放。 图中上半部分为档位选择电路,正负电压都可由整流桥整流后送分压电阻分压, 下半部分为输入电压的最小值判断电路,对输入被测量的有和无进行直接判断。根据前级的分压比可以求得,当被测的电压值大于0.2V或者小于-0.2 V时,输出端INH才输出高电平。

2)档位选择器 输入值判断器已经把电压信号分档并转换为高低电平的数字输出值输出. 档位选择器可根据输入值判断器所得结果来设计.输入值判断器的输入端电压与输出端的真值表如表1所示。

表1中,1表示高电平,0表示低电平。由真值表的特性可知,档位选择可以用一个8选1模拟开关CD4051完成。CD4051主要由8路CMOS开关,译码电路和电平转换电路3部分组成,其工作原理是主要由控制端A、B、C的不同的组合状态来选通哪一路输入作为输出。其译码表如表2所示。对照表1和表2,可得出译码电路对各量程选择的输出端,从小到大分别为:Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7。

图3.6 量程判断器的总电路

13

智能仪器课程设计说明书

表3.1 真值表

输 出 A B C (-0.2 (0.2~ (2~ (20~ (100~ (200~ (400~ (600~ (800~ >120V) 100V) 200V) 400V) 600V) 800V) 1000V00 1 1 0 0 1 0 1 0 20~ 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 ) 0 0 0 0 0V 0 0 0 1 ) 1 1 1 1 1 1 0 2V Ui ~0.2V 2V) INH 1 档位 状态 截止

0.2~ 2~ 100~ 200~ 400~ 600~ 800~ 截20V 100V 200V 400V 600V 800V 1000V 止

表3.2 译码表

输入值 A 1 1 1 1 1 0 0 0 0 0

B 1 1 1 0 0 1 1 0 0 0 C 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 输出值 Y1 0 0 0 0 0 0 0 1 0 0 Y2 0 0 0 0 0 0 1 0 0 0 Y3 0 0 0 0 0 1 0 0 0 0 Y4 0 0 0 0 1 0 0 0 0 0 Y5 0 0 0 1 0 0 0 0 0 0 Y6 0 0 1 0 0 0 0 0 0 0 Y7 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 INH Y0 根据芯片输入、输出的引脚特性,其电路接线图如图3.7所示。输入信号分压等变换后送入CD4051的X0-X7,8个通道。其中1个控制引脚:INH是4051的禁止端,为低电平开启,INH=1模拟开关被禁止工作,INH=0时,由A、B、C上的信号来控制某一路的选通。 电路引脚中,若A、B、C无输入或悬空时,Y0输出1,控制档位在最高量程电压档位上,

14

智能仪器课程设计说明书

起到保护电路的作用。

图3.7 档位判断电路

3)量程自动选择总电路根据上述研究,可得量程自动转换电路如图3.8所示。路中所用的基准电压都是2 V,可用同一直流电源提供。稳压管均采用2.8 V工作电压的稳压管。

图3.8 量程自动选择总电路

3.2.3 A/D模数转换模块

采用ADC0809转换芯片,采集信号由INT0输入;数字量输出接至CPU的P1口;其START与ALE引脚接至CPU的P3.7,OE引脚接至CPU的P3.6,EOC引脚接至CPU的P3.5脚;A、B、C

15

三位地址线共同接地,表示对INT0的输入信号进行模数转换。在INT0的输入端口接一选

择开关电路,用以判断对电压测量还是对电流测量。

ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

主要特性

1)8路8位A/D转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100μs。 4)单个+5V电源供电。

5)模拟输入电压范围0~+5V,不需零点和满刻度校准。 6)工作温度范围为-40~+85摄氏度。 7)低功耗,约15mW。 外部特性(引脚功能)

ADC0809芯片有28个引脚,采用双列直插式封装,各引脚功能如下:

IN0-IN7:8路模拟量输入端。 D0-D7:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。 ALE:地址锁存允许信号。高电平时,把三位地址信号送入地址锁存器,经译码选择相应的模拟输入通道,使用时,该信号可以和STARE信号连在一起,以便同时锁存通道地址和启动A/D转换。高电平有效。

START: A/D转换启动信号,输入,高电平有效。

EOC: A/D转换结束信号输出端口,转换期间一直为低电平。当A/D转换结束时,此端输出一个高电平(有效)。

OE:数据输出允许信号输入端口,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:时钟脉冲输入端。要求时钟频率不高于0KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。

16

智能仪器课程设计说明书

智能仪器课程设计说明书

3.2.4 显示模块

(1) 数码管的选取

LED(发光二极管),它是一种由某些特殊的半导体材料制作成的PN结。其发光强度与其正向压降VF和电流IF的乘积有关,其乘积越大,则发光强度越大。工作电流一般在5MA~20MA。从系统整体考虑,选用的是LDS-5101BH型七段LED数码管。

(2) 驱动芯片

选用74LS1芯片。74LS1是串行输入/8位并行输出的移位寄存器。每片74LS1有两个串行数据输入端和一个同步移位脉冲输入端,以及8个并行输出口。时钟CLK端上每一个上升沿都会使该芯片的8位数据输出右移一位。

显示模块总体原理图如图3.9所示:

图3.9 显示模块原理图

3.2.5 通信模块

(1) 单片机与PC机通信的概述

在实际应用中,因为单片机功能有限,因而在较大的测控系统中,常常把单片机应用系统作为前端机(也称为下位机或从机)直接用于控制对象的数据采集与控制,而把PC机作为处理机(也称为上位机或主机)用于数据处理和对下位机的监控管理。它们之间的信息交换主要是采用串行通信,此时单片机可直接采用串行接口,而PC机可利用其配置的8250或8251、150等可编程串行接口芯片。实现单片机与PC机串行通信的关键是在通信协议的约定上要一致,例如,应设定相同的波特率及帧格式等。在正式工作之前,双方应先互发联络信号,以确保通信收发数据的准确性。

(2) 本设计的通信

17

串行通信采用MAX232电平转换电路,可将单片机的TTL电平转换为PC机的串口电平。

使单片机的TTL电平与RS232的电平实现匹配。RS232使用-3~-25V,表示数字1;3~25V表示数字0。RS232在空闲时处于逻辑“1”状态,在开始传送时,首先产生一个起始位,起始位为一个宽度的逻辑“0”,紧随其后的为所需要传送的数据,所要传送的数据由最低位开始依次送出,并以一个结束位标志该字节传送结束,结束位为一个宽度的逻辑“1”状态。单片机与PC机的通信连接图如图3.10所示,下位机(单片机)将接收的数据从串行口P3.0、P3.1输出,上位机接收到数据后在屏幕上进行显示。

智能仪器课程设计说明书

图3.10 单片机与PC机通信连接图

3.2.6 电源部分

单片机电源采用自制+5V电源供电。其原理图如图3.11所示

图3.11 电源电路图

18

智能仪器课程设计说明书

4 系统的软件设计

4.1 软件的总体设计原理

系统上电后,初始化程序包括对各种参数进行初始化、清零以及一些端口属性的设定,开始进行量程判断,再调用A/D转换子程序,对输入信号进行A/D模数转换,转换结束,为提高测量精度,系统对输入电压连续采集10次进行滑动平均值滤波处理,其结果作为对应的电压值。再调用LED显示子程序,显示所测量的电压或电流值,最后调用通信子程序实现串口通信。系统总流程图如图4.1所示:

图4.1系统总流程图

19

智能仪器课程设计说明书

4.1.1 A/D转换程序设计

系统上电后,初始化各参量。开启A/D转换,调用延时程序,接着判断A/D转换是否结束,结束则清标志位、取数据,否则再延时,继续判断A/D是否结束。总程序结束。流程图如图4.2所示:

图4.2 A/D转换程序流程图

4.1.2 数字滤波程序设计

(1)数字滤波概述

数字滤波,即在数据采集系统里,由于数据采集环境的电磁干扰,传感器和放大器自身的影响,往往会含有多种频率成分的噪声信号,严重时,这种噪声信号会淹没待提取的输入信号,使测试系统无法获取被测信号。在这种情况下,为了滤除干扰需要采取滤波措施,抑制不需要的杂散信号,使系统的信噪比增加。如果对模拟信号进行离散采样,通过软件算法对采样信号进行平滑加工,增强有效信号,消除或减少噪声,从而达到滤波的目的,这种滤波方法称为数字滤波方法。数字滤波完成的功能是将一组输入数字序列按照一定的算法转化为一组输出数字序列,经过数字滤波后的输出序列比输入序

20

列更平滑和易于处理。与此对应的就是模拟滤波,模拟滤波主要有无源滤波(直接用电

阻、电容、电感等不外接电源的元件组成的)与有源滤波(如运算放大器等需要外接电源组成的),其目的是将信号中的噪音和干扰滤去或者将希望得到的频率信号滤出为系统所用。数字滤波的出现克服了模拟滤波的很多不足,具有以下优点: A.是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。 B.可以对频率很低的信号实现滤波,克服了模拟滤波的缺陷。

C.可以根据信号的不同,采用不同的滤波方法或参数,具有灵活、方便、功能强的特点。

(2)数字滤波的方法

数字滤波的方法有很多种,常用的数字滤波方法有:算术平均值滤波、加权平均值滤波、滑动平均值滤波、中值滤波等,可以根据不同的测量参数进行选择。

1)算术平均值滤波

算术平均法是对一点多次采样,然后取其平均值,并用平均值作为该点的采样结果。该方法适用于对具有随机干扰的信号进行滤波。这种滤波的效果与采样数目有较大的关系,当样本增多时,信号会变得更平滑,但可能会掩盖某些变化;若样本较少,信号的平滑度降低,但对数据的变化较为敏感。实际中采样数目就具体情况而定,对于非常平稳的信号,可以将样本数增大,但对于变化频繁的信号,则应将样本数减至3~4。这种滤波方法对周期性的干扰有良好的抑制作用。N的取值取决于平滑度和灵敏度的要求,N 增大则平滑度提高,灵敏度减小。

2)加权平均值滤波

算术平均滤波法存在平滑性和灵敏度的矛盾。采样次数太少,平滑效果差;次数太多,灵敏度下降,对参数的变化趋势不敏感。为协调两者关系,可采用加权平均滤波。对连续N次采样值,分别乘上不同的加权系数之后再求累加和,加权系数一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的辨别。各个加权系数均为小于1的小数,且满足总和等于1的约束条件。这样,加权运算之后的累加和即为有效采样值。

3)

滑动平均值滤波

滑动平均值滤波是把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则),把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。算术平均值法和加权平均值滤波,都需要连续采样N个数据,然后求平均值或加权平均值。需要时间较长,故检测速度较慢。因此可以采用滑动平均值滤波,其主要用于实时性比较强的系统。在这些系统中,需要对A/D采样值进行平均值滤波,而没有足够的时间允许A/D进行连续的多次采样,这时采用滑动平均值滤波,可以达到滤波效果。滑动平均滤波算法只采样一次,将这一

21

智能仪器课程设计说明书

次采样值和过去的若干次采样值一起求平均值,得到的有效采样值即可投入使用。如果

取N个采样值求平均,RAM中必须开辟N个数据的暂存区。每次新采集一个数据便存入暂存区,同时去掉一个最老的数据,保持这N个数据始终是最近的数据,而后求包括新数据在内的N个数据的算术平均值或加权平均值。这样,每进行一次采样,就可以算出一个新的平均值,从而大大加快了数据处理的速度。这种滤波方法兼容了另两种滤波算法的优点,既能有效的抑制脉冲干扰和周期性干扰,又能提高滤波算法的灵敏度。

本设计采用滑动平均值滤波,先初始化,再读入电压值Vi,设滑动平均滤波队列长度为N,当判断i是否大于N,是则删除队首的数据;求新队列的平均值;否则使i=i+1,继续读入电压值,直至i>N。其流程图如图4.3所示:

智能仪器课程设计说明书

图4.3滑动平均滤波流程

4.1.3 量程自动转换的程序设计

程序开始后先初始化,首先设置量程最大档,接着存储采样值i,并将其与最大量程进行比较,若超出量程范围,则有溢出显示,系统结束,否则进行下一轮的比较,直

22

到选择出合适的档位。软件实现流程图如图4.4所示

智能仪器课程设计说明书

图4.4 量程自动转换流程图

23

智能仪器课程设计说明书

5 系统调试及性能分析

5.1 调试与测试

采用Keil软件进行源程序编译,用Proteus软件对其进行仿真。同时进行硬件电路板的设计制作。烧好程序后进行软硬件联调,最后进行端口电压、电流的对比测试.

5.2 性能分析

由于单片机为8位处理器,当输入电压为5V时,输出数据值为255(FFH)。因此单片机最大的数值分辨率为0.0196V(5/255)。这就决定了该电压表、电流表的最大分辨率(精度)只能达到0.0196V。测试时电压/电流数值的变化一般以0.02的幅度变化。如果要想获得更高的精度,应采用12位、13位的A/D转换器。

24

智能仪器课程设计说明书

6 结束语

6.1 设计总结

本次设计的课题是《基于单片机的电压电流测量系统》,首先从课题中我们可以看出,这次设计主要涉及到的是关于单片机的知识。而之所以使用单片机作为本次设计的核心,就个人理解而言,单片机现在是社会上应用比较广泛的器件,并且能在设计的同时锻炼大家的语言编程能力,养成良好的语言编程风格。

6.2 设计的心得

课程设计是一个综合性的实践课程,是将理论联系到实际中的实验过程,是考察学生就最近知识以及综合知识掌握能力,同时也能让同学更好的理解甚至于学习相关内容。从拿到本次设计任务后,开始查阅资料,对课设计课题进行论证,到设计电路,软件上的程序编写到仿真、调试,硬件上元器件确定、选型及电路搭建,软硬件联调,直到论文文本的撰写。最终完成所设计项目数字电压、电流表的设计,这一过程锻炼了我们对单片机应用系统的设计及动手能力。

近两周的课程设计实践,使我深深的体会到理论结合实际的重要性,在设计过程中要特别细心,在软件中可能是一个标点或一个字母的问题,而导致运行错误;在硬件搭建中更是如此,焊接、连线的牢固性,还要防止短路和断路。所以每一个环节都是不可大意的。另外,大家在一起讨论,互相学习,让我更深地体会到同学间互相帮助的作用。在软、硬件调试过程中,真的培养了我的耐心。软件的调试——修改——再调试,如此反复,最终完成了设计的部分任务,但设计还存在很多问题,没有完全达到设计要求。而且精度也存在问题,有待改进。在不断的学习与讨论中,我对单片机知识有了更为深刻的认识与体会。在收获的同时,我也受益非浅深感自身理论知识的欠缺与动手能力的不足,在以后的学习及设计中,还要不断的努力。

由于时间的紧缺和许多课业的繁忙,此次设计没有很好的完成。但是,从基础而言,我们还没有放弃。相信以后我们会以更加积极地太对对待我们的毕业设计,甚至于今后的人生。

25

智能仪器课程设计说明书

7 致谢词

本次课程设计结束了,首先要感谢此次给与指导的王胜老师。由于设计时间的匆忙性,本次设计并没有要求大家以实物为设计结点。所以有很多问题存在,甚至于是很大的课题谬论,但王胜老师给与的指导都能很好的解决此类问题。他总是耐心地和我们一起探讨、分析,再让我们自己解决。这样,我们不但解决了问题,还从中学到了更多知识。王老师渊博的知识、严谨的作风、以及友善的态度是我以后学习和生活上的榜样。

同时,我要感谢我们班的几位同学,当我遇到一些措手不及又难以解决的问题时,是在他们的热心帮助下,才一一得以解决。最后,要感谢我们系里给我们这次理论结合实践的机会,一次作为电子系学生的最有意义的作业。

本次设计结束的同时也意味着一次良好的知识学习机会也随之而逝,并且在接下来的大学课程中,都不会有此类的机会留于我们。

26

智能仪器课程设计说明书

附录

附录1 参考文献

[1] 《单片机原理及接口技术》 余锡存 曹国华 西安电子科技大学 2000.7 [2] 《单片机典型模块设计实例导航》 求是科技 人民邮电出版社 2005.6 [3] 《MCS-51单片机应用开发实用子程序》 边春远 人民邮电出版社 2005.9 [4] 《单片机在电子电路设计中的应用》 赫建国等 清华大学出版社 2006.5 [5] 《电子技术基础 数字部分》 康华光 高等教育出版社2004.4 [6] 《单片机C语言编程与示例》 赵亮等 人民邮电出版社 2003.9 [7] 《C程序设计(第二版)》 谭浩强 清华大学出版社 1999.12 [8] 《电子技术基础 模拟部分》 康华光 高等教育出版社2004.7

[9] 《单片机原理及应用技术》 胡辉、王晓等 中国水利水电出版社 2005.7 [10]《电子测量技术基础》 杨永瑞、刘振起等 西安电子科技大学出版社 2006.1 [11]《智能电压表中量程自动转换电路研究》 张国恒等 西北师范大学学报 2006.4 [12]《电路.模拟.A/D转换及D/A转换》 童永承、顾家林等 科学出版社 2004.7 [13]《单片机原理与应用技术》 魏立峰、王宝兴 北京大学出版社 2006.8 [14]《8051单片机基础教程》 陈明荧 北京:科学出版社 2003

[15]《单片机应用系统设计与产品开发》 冯建华、赵亮 人民邮电出版社 2004.11 [16]《新编MCS-51单片机应用技术》 张毅刚等 哈尔滨工业大学出版社 2003.7 [17]《单片机应用开发实例》 刘文涛 清华大学出版社 2005.9 [18]《单片机语言C51程序设计》 赵文博等 人民邮电出版社 2005.。10 [19]《51单片机应用程序开发典型实例》 戴佳、苗龙等 中国电力出版社 2005.9 [20]《精通8051程序设计》 [美] Myke Predko 人民邮电出版社 2006.3

27

智能仪器课程设计说明书

附录2 系统总电路图

28

智能仪器课程设计说明书

附录3 源程序

#include #include /*----------------------------------------------------------- 功能:ADC0809接口程序 目标芯片:ATS52单片机

占用资源:采集到的数字量接P1口、

MCU ADC0809 变量名称 P3.7 START/ALE ADC_ST P3.5 EOC ADC_EOC P3.6 OE ADC_OE ALE CLK(经二分频) 无 用户接口函数:Byte ADC0809(void) -----------------------------------------------------------*/

#define AdcData P1 //ADC输出的数字量接单片机P1口 #define N 10 Byte FilterCnt=0;

//滑动平均滤波队列长度 //队列指针

//START & ALE

//EOC

//OUTPUT ENABLE --OE

Byte ValueBuf[N]; //滑动平均滤波队列 sbit ADC_ST=P3^7; sbit ADC_EOC=P3^5; sbit ADC_OE=P3^6;

Byte ADC0809(void) { Byte i;

29

智能仪器课程设计说明书

;

//启动ADC0809,锁存转换通道地址,开始转换 //微秒级延时,保持高电平一段时间

//等待ADC0809转换结束

ADC_ST=1; ADC_ST=0;

for(i=10;i>0;i--) ; while(!ADC_EOC) ADC_OE=1; i=AdcData; ADC_OE=0; return(i); }

Byte PingFilter(void) =====

{ int Count; int Sum; =====}

//使能ADC0809输出

//MCU采集ADC0809的数字量 //关ADC0809输出使能 //返回采集到的数字量

//滑动平均值滤波

//======================================================================

ValueBuf[FilterCnt++]=ADC0809(); if (FilterCnt == N) { }

for ( Count=0;Countreturn (Byte)(Sum/N);

Sum+= ValueBuf[Count]; FilterCnt=0;

//======================================================================/*-------------------------------------------------------------------------------- 数码管串行显示程序

---------------------------------------------------------------------------------*/ void DisSerial(Byte n) { Byte i; for(i=0;i<8;i++) {DisDat=(bit)(n&0x80); n<<=1;

30

智能仪器课程设计说明书

DisClk=1; _nop_(); DisClk=0; _nop_(); } }

/************************************* 共阳数码管串行LED显示不带小数点的a *************************************/ void Show(Byte a) {

unsigned

0x88,0x83,0xc6,0xa1,0x86,0x8e,0x,0x8c,0xc1,0xbf,0xff};//a--f,h,p,u,-,i ,不显示

DisSerial(led_anti[a]); }

/******************* 消隐n个LED *******************/ void ClearLed(Byte n) { Byte i; for(i=0;i/************************************** 共阳数码管串行LED显示带小数点的数字a ***************************************/ void ShowPoint(Byte a) {

Bytecode

31

char code

led_anti[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//0---9

智能仪器课程设计说明书

led_anti_point[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,//0---9

0x08,0x03,0x46,0x21,0x06,0x0e,0x09,0x0c,0x41,0x3f,0x7f};//a--f,h,p,u,i ,不显示

DisSerial(led_anti_point[a]); }

void main(void) { int i; while(1) {

i=(int)ADC0809(); if (i>255){D1=1;break;}

else if (i>224){A1=B1=C1=1;D1=0;break;} else if (i>192){A1=B1=1;C1=0;D1=0;break;} else if (i>160){A1=C1=1;B1=0;D1=0;break;} else if (i>128){A1=1;B1=C1=0;D1=0;break;}

else if (i>96){A1=0;B1=C1=1;D1=0;break;} else if (i>){A1=C1=0;B1=1;D1=0;break;} else if (i>32){A1=B1=0;C1=1;D1=0;break;} else if (i>0){A1=B1=C1=0;D1=0;break;} i=i*19;

else {D1=1;break;}

ShowPoint(i/1000); Show(i/100%10); Show(i/10%10); Show(i%10);

for (i=0;i<10000;i++){;} for (i=0;i<10000;i++){;} for (i=0;i<10000;i++){;}

for (i=0;i<10000;i++){;} for (i=0;i<10000;i++){;} } }

32

智能仪器课程设计说明书

33

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- shangjiatang.cn 版权所有 湘ICP备2022005869号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务