资源描述
《电气工程训练》设计报告
----智能数字电压表
班 级:
姓 名:
学 号:
指引教师:
中南大学
1月3号
目 录
1 引言 2
1.1 数字电压表发展背景 2
1.2 数字电压表发呈现状 3
1.3 数字电压表发展意义 3
2 设计规定 4
2.1 设计任务 4
2.2 设计规定 5
2.3 实验任务 5
3 设计方案 5
3.1 系统设计 5
3.2 系统框图 6
4硬件电路 6
4.1 单片机系统 6
4.2 A/D转换电路 8
4.3 量程自动切换电路 11
4.4 LED点阵显示电路 12
4.5 电源电路 14
4.6 超量程报警电路 14
5 软件设计 15
5.1 程序构造 15
5.2 程序分析与设计 15
6 结 论 20
7 致 谢 20
8 附 件(系统仿真图、原理图、PCB图) 21
8.1 系统protues仿真图 21
8.2 Altium Designer设计原理图 21
8.3 Altium Designer设计PCB图 21
9 参照资料 22
1 引言
科学技术当代化今天,是电子技术和信息技术迅速发展时代。数字电压表在工程测量、计量检定、科学实验、机械电子、电能电力、邮电通信、国防军工以及工矿公司等诸多领域中,有着非常广泛应用。特别是智能化数字仪表普及和应用,在数字化、自动化、软件化测量技术中更发挥着重要作用。
1.1 数字电压表发展背景
数字仪表是把持续被测模仿量自动地变成断续、用数字编码方式并以十进制数字自动显示测量成果一种测量仪表。这是一种新型仪表,它把电子技术、计算机技术、自动化技术与精密电测量技术密切地结合在—起,成为仪器仪表领域中一种独立分支。数字仪表种类诸多,应用场合各不相似,其内部构造也相差很大。依照仪表用途(即被测量性质)分为:数字电压表、数字电阻表、数字电流表、数字功率表、数字Q(品质因数)表、数字电桥及电子计数器等 通过恰当变换,还可制成测量各种非电量仪表,如数字温度表、数字转速表、数字位移表、数字钟、数字秤、数字测厚仪及数字高斯计等,尚有许多其她数字式测量仪器和测量装置。
自1952年,美国NLS公司首创四位数字电压表,到当前三十近年中通过了不断改进和提高。DVM体积和功耗越来越小,重量不断减轻,价格也逐渐下降,可靠性越来越高,量程范畴也逐渐扩大。回顾如下DVM发展过程,大体可分为三个阶段:数字化阶段、高精确度阶段、智能化阶段。1972年,美国Intel公司首创微解决器,不久即研制出微解决器式数字电压表,实现了DVM数据解决自动化和可编程序。当前,智能仪器发展十分迅速,而微解决式DVM在智能仪表中占比重最大。
国内数字电压表是从60年代初期发展起来,当前国内已有50各种单位研制生产数字仪表,并浮现了许多六位表和七位表,精确度达百万分之几,敏捷度已达到0.01uV。当前,数字电压表已广泛应用在国防、科研、学校、工矿公司、计量部门和各种物理量非电量测量系统中。
1.2 数字电压表发呈现状
老式电压表功能单一、精度比较低,不能满足时代需求,采用单片机数字电压表精度高、抗干扰能力强,可扩展性强、集成以便,还可以去PC进行实时通信。当前,由各种单片A/D转化器构成数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大生命力。与此同步,由DVM扩展而成各种通用及专用数字仪表仪器,也把电量及非电量测量技术提高到崭新水平。
数字电压表基本工作原理是运用A/D转换电路将待测模仿信号转换成数字信号,通过相应换算后将测试成果以数字形式显示出来一种电压表。较之于普通模仿数字电压表,数字电压表具备精度高、测量精确、读数直观、使用以便等长处。
近来十几年来,随着半导体技术、集成电路(IC)和微解决器技术发展,数字电路和数字化测量技术也有了巨大进步,从而促使了DVM和A/D变换器日新月异,并不断浮现新类型。此后,总趋势随简朴电路代替复杂电路;高精确度代替低精确度;低成本代替高成本;同步也向着自动化、程控化和智能化相结合方向发展。
数字电压表设计和开发,已有各种类型和款式。老式数字电压表各有特点,它们适合在现场做手工测量,要完毕远程测量并要对测量数据做进一步解决,老式数字电压表是无法完毕。然而基于PC通信数字电压表,既可以完毕数据传递,又可以借助PC对测量数据解决。因此数字电压表无论在功能和事实上,都具备老式电压表无法比拟特点,这使得它开发和应用品有良好前景。
1.3 数字电压表发展意义
DVM高速发展,使它已成为实现测量自动化、提高工作效率不可缺少仪表,数字化是当前计量仪器发展重要方向之一,而高准度DC-DVC浮现,又使DVM进入了精密原则测量领域。这个课题目和意义在于使自己掌握对数字电压表理解,自己动手设计数字电压表与仿真,它可以广泛应用于电压测量外,通过各种变换器还可以测量其她电量和非电量,测量是一种结识过程,就是用实验办法将被测量和被选用相似参量进行比较,从而拟定它大小。DVM广泛应用于测量领域每期测量精确度和可信度取决于它重要性能和技术指标。所示咱们要学习和掌握如何设计DVM就显得十分重要。
数字电压表对繁多电量测试具备精度高,测量速度快,自动化限度高等长处,在科研生产电量测试中得到了广泛应用。各种数字仪表中,数字电压表用途居于较为突出地位,它不但用来测量各种电量,并且还广泛用来进行各种非电量电测量,同步在实现工业自动化,生产过程自动控制以及测量自身自动化等方面,都起着很重要作用。
2 设计规定
2.1 设计任务
运用所学微控制器、智能仪器和当代测控系统等方面知识,设计出一台以单片机为核心智能仪器,完毕信息采集、解决、输出及人机接口电路等某些软、硬件设计。
1.分组完毕下列设计任务中一项:
1).热电偶多路温度检测仪
设计多路转换开关、程控增益放大电路等对4种不同热电偶输出信号巡回检测、显示、键盘参数设立、打印温度等功能。
2).等精度频率计
设计单片机控制某些、通道某些、同步门某些、计数器某些、键盘与显示某些。可在线键盘参数设立、定期检测、显示。
3).智能流量监测仪
设计流量检测、解决与显示电路,可在线键盘参数设立、定期检测、显示、定期打印流量瞬时值和合计值。
4).单片机电子计价秤
设计重量检测、解决与显示电路,对5种以上不同单价商品进行称量、计价和打印及键盘参数设立。
5).步进电机控制仪
由单片机输出脉冲对步进电机进行启动、制动、相位、方向、速度、位置等控制。例如:设计程序,使步进电动机实现间断性步进(30步,间隔0.5s)→持续正传(60步,0.1s)→停顿(2s)→反向间断性步进(30步,间隔0.5s)→持续反转(60步,间隔0.1s)。
6).智能数字电压表
设计输入衰减器、输入放大器、有源滤波器、输入电流补偿电路、自举电源、键盘与显示某些。可在线键盘参数设立、定期检测、显示。
7).智能型数字PID调节器
设计信号采集、解决、输出及人机接口电路(如数显、键盘、批示报警)等某些软、硬件设计,重要实现数字PID控制 。
2.应用微机和单片机实验开发装置完毕规定实验任务;
3.系统硬件某些涉及传感器、前置信号解决单元(放大器,滤波器等)、A/D转换、微解决器(MCU)、键盘、显示、打印、报警、多路转换开关、程控增益放大电路、通信接口电路等;
4.系统软件某些涉及键盘扫描、A/D转换、数字滤波、标度变换、显示、打印、报警、通信、控制输出、非线性校正、冷端温度补偿、通信等;
5.画出仪表硬件电路原理图、PCB图、面板构造图和软件程序框图;
6.编写设计阐明书一份,阐述仪器工作原理和软、硬件设计办法。
( 硬件设计重点为:打印、通信接口电路、多路转换开关、程控增益放大电路
软件设计重点为:打印、通信、控制输出、非线性校正、冷端温度补偿 )
2.2 设计规定
1.传感器选取和前置信号解决单元设计;
2.A/D器件选取(5G14433或ADC0809)及其与微控制器接口电路设计;
3.参数给定电路软、硬件设计:通过按键及接口电路实现;
4.参数显示电路软、硬件设计:通过LED、LCD或点阵式显示屏及接口电路实现;
5.参数报警电路软、硬件设计:通过语音接口电路板、喇叭或发光二极管实现;
6.参数打印电路软、硬件设计:通过微型打印机及其接口电路实现。
7.通信接口电路软、硬件设计:通过单片机通信接口电路实现;
8.控制输出电路设计:输出模仿信号或开关量信号。
2.3 实验任务
1.显示某些:涉及LED显示、LCD显示和点阵式显示;
2.键盘扫描某些:自定义按键功能,编写并调试键盘扫描程序;
3.A/D转换某些:运用双积分式A/D转换器5G14433或逐次逼近式A/D转换器ADC0809进行A/D转换;
4.故障报警某些:针对不同故障进行语音报警、喇叭报警或灯光报警;
5.打印某些:运用微型打印机打印出不同格式数据或曲线(含日期、时间);
6.通信某些:完毕单片机与单片机或单片机与上位机通信软件调试。
3 设计方案
3.1 系统设计
本设计重要分为两某些:硬件电路及软件程序。而硬件电路除了单片机系统电路之外,还涉及了量程自动切换电路、A/D转换接口及按键/显示电路,各某些电路设计及原理将会在硬件电路设计某些详细简介。程序设计使用C语言编程,运用Proteus软件对其编译和仿真,详细程序会在程序设计某些详细简介。
应用最广泛八位单片机首推Intel51系列。51系列长处之一是它从内部硬件到软件有一整套按位操作系统,称作为解决器,它解决对象不是字或字节而是位。虽然其她种类单片机也具备解决功能,但能进行位逻辑运算实属少见。Intel公司应用最广泛单片机涉及AT89C51、AT89C52等,其中AT89C51是最典型产品,可以做乘法和除法指令,给编程带来了便利,并且有一条二进制——十进制调节指令DA,这对于十进制计量十分以便。鉴于以上有利因素,在本设计中,我选用了AT89C51单片机芯片。
随着大规模集成电路发展,当前不同厂家已经生产出了各种型号A/D转换器,以满足不同应用场合需要。如果按照转换原理划分,重要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。当前最惯用是双积分和逐次逼近式。双积分式A/D转换器具备抗干扰能力强、转换精度高、价格便宜等长处,它们普通带有自动较零、七段码输出等功能。与双积分相比,逐次逼近式A/D转换转换速度更快,并且精度更高,例如ADC0808、ADC0809等,它们普通具备8路模仿选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。由于ADC0809比较惯用,容易理解,并且功能完全可以满足本设计需要,因此我选用了ADC0809模数转换器芯片。
由于本设计任务,是完毕一种智能数字电压表设计,不但为了达到量程切换成果,我选用数据选取器CC4051来完毕智能型电压表自动切换量程功能。
3.2 系统框图
图3.1 系统框图
如系统框图所示,该设计重要由量程切换电路、A/D转换电路、单片机控制电路和LED显示电路。在量程切换电路某些,可以依照所采集到电压选取适当量程,以使测量精度比较高。单片机给ADC提供一种启动转换信号之后,ADC转换开始;当A/D转换结束时,ADC输出一种转换结束标志信号,告知单片机读取转换成果。对于LED显示电路,AT89C51单片机为控制器。
4硬件电路
4.1 单片机系统
4.1.1 AT89C51性能
AT89C51是美国ATMEL公司生产低电压,高性能CMOS8位单片机,片内具有4KB可重复擦写只读程序存储器和128字节随机存储器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业原则MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMELAT89C51是一种高效微控制器,它为诸多嵌入式控制系统提供了一种灵活性高且价廉方案。
AT89C51功能性能:与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:1000次写/擦循环;数据保存时间:;全静态工作:0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定期/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式。
4.1.2 AT89C51各引脚功能
AT89C51提供如下原则功能:4KBFlash闪速存储器,128B内部RAM,32个I/O口线,两个16位定期/计数器,一种5向量两级中断构造,一种全双工串行通信口,片内震荡器及时钟电路,同步,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选节电工作模式。空闲方式停止CPU工作,但容许RAM,定期/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中内容,但震荡器停止工作并禁止其她所有工作直到下一种硬件复位。AT89C51采用PDIP封装形式,引脚配备如图4.2所示。
图4.1 AT89C51引脚图
AT89C51芯片各引脚功能为:
P0口:这组引脚共有8条,P0.0为最低位。这8个引脚有两种不同功能,分别合用于不同状况,第一种状况是89C51不带外存储器,P0口可觉得通用I/O口使用,P0.0-P0.7用于传送CPU输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增长了数据输入可靠性;第二种状况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储器时先传送片外存储器低8位地址,然后传送CPU对片外存储器读/写数据。P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
P1口:这8个引脚和P0口8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1.0-P1.7功能和P0口第一功能相似,也用于传送顾客输入和输出数据。
P2口:这组引脚第一功能与上述两组引脚第一功能相似即它可以作为通用I/O口使用,它第一功能和P0口引脚第二功能相配合,用于输出片外存储器高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器读/写数据。
P3口:这组引脚第一功能和别的三个端口第一功能相似,第二功能为控制功能,每个引脚并不完全相似,
Vcc为+5V电源线,Vss接地。
ALE:地址锁存容许线,配合P0口第二功能使用,在访问外部存储器时,89C51CPU在P0.0-P0.7引脚线去传送随后而来片外存储器读/写数据。在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率脉冲序列。该脉冲序列可以作为外部时钟源或定期脉冲使用。
/EA:片外存储器访问选取线,可以控制89C51使用片内ROM或使用片外ROM,
若/EA=1,则容许使用片内ROM,若/EA=0,则只使用片外ROM。
/PSEN:片外ROM选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一种负脉冲,作为片外ROM芯片读选通信号。
RST:复位线,可以使89C51处在复位(即初始化)工作状态。普通89C51复位有自动上电复位和人工按键复位两种。
XTAL1和XTAL2:片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)定期反馈回路。
4.1.3 复位电路设计
单片机在启动运营时都需要复位,使CPU和系统中其她部件都处在一种拟定初始状态,并从这个状态开始工作。MCS-51单片机有一种复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上浮现2个机器周期以上高电平即可保证时器件复位[1]。复位完毕后,如果RST端继续保持高电平,MCS-51就始终处在复位状态,只要RST恢复低电平后,单片机才干进入其她工作状态。单片机复位方式有上电自动复位和手动复位两种,图4.2是51系列单片机统惯用上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能较好工作。
图4.2 复位电路
4.1.4 时钟电路设计
单片机中CPU每执行一条指令,都必要在统一时钟脉冲控制下严格准时间节拍进行,而这个时钟脉冲是单片机控制中时序电路发出。CPU执行一条指令各个微操作所相应时间顺序称为单片机时序。MCS-51单片机芯片内部有一种高增益反相放大器,用于构成震荡器,XTAL1为该放大器输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其她电路。
本设计系统采用内部时钟方式,运用单片机内部高增益反相放大器,外部电路简,只需要一种晶振和 2个电容即可,如图4.2所示。
图4.2 时钟电路
电路中器件选取可以通过计算和实验拟定,也可以参照某些典型电路参数,电路中,电容器C1和C2对震荡频率有微调作用,普通取值范畴是30±10pF,在这个系统中选取了33pF;石英晶振选取范畴最高可选24MHz,它决定了单片机电路产生时钟信号震荡频率,在本系统中选取是12MHz,因而时钟信号震荡频率为12MHz。
4.2 A/D转换电路
A/D转换器是模仿量输入通道中一种环节,单片机通过A/D转换器把输入模仿量变成数字量再解决。
随着大规模集成电路发展,当前不同厂家已经生产出了各种型号A/D转换器,以满足不同应用场合需要。如果按照转换原理划分,重要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。当前最惯用是双积分和逐次逼近式。
双积分式A/D转换器具备抗干扰能力强、转换精度高、价格便宜等长处,例如ICL71XX系列等,它们普通带有自动较零、七段码输出等功能。与双积分相比,逐次逼近式A/D转换转换速度更快,并且精度更高,例如ADC0808、ADC0809等,它们普通具备8路模仿选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示[10]。
ADC0809是采样辨别率为8位、以逐次逼近原理进行模/数转换器件。其内部有一种8通道多路开关,它可以依照地址码锁存译码后信号,只选通8路模仿输入信号中一种进行A/D转换。ADC0808是ADC0809简化版本,功能基本相似。普通在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
图4.3 ADC0809引脚图
4.2.1 ADC0809内部构造
ADC0809是CMOS单片型逐次逼近式A/D转换器,它有8路模仿开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。
4.2.2 ADC0809重要技术指标和特性
a) 辨别率:8位二进制数;
b) 总不可调误差:±2LSB;
c) 转换时间:取决于芯片时钟频率;
d) 单一电源:+5V;
e) 模仿输入电压范畴:单极性0—5V;双极性±5V,±10V(需外加一定电路);
f) 具备可控三态输出缓存器;
g) 启动转换控制为脉冲式(正脉冲),上升沿使所有内部寄存器清零,下降沿使A/D转换开始;
h) 使用时不需进行零点和满刻度调节。
4.2.3 ADC0809管脚
ADC0809芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下。
a) ADC0809采用28引脚封装,双列直插式;
b) IN0~IN7——8路0V~+5V模仿电压输入端;
c) DB7~DB0——8路数字输出线,输出8位A/D转换值;
d) START——启动A/D转换输入端。若单片机在此引脚上加一种正脉冲时,脉冲上升沿将内部寄存器清0;其下降沿启动A/D进行一次新转换;
e) EOC——A/D转换结束输出信号,高电平有效。当A/D转换START有效时,EOC处在低电平,表达正在转换;当EOC处在高电平时,表达A/D转换结束;
f) OE——容许数字量输出信号,高电平有效。当OE=1时。三态门打开,将A/D转换后值放到数据总线上供CPU用指令取走;
g) CLOCK——输入时钟脉冲端。频率为500kHz;
h) ADDR0、ADDR1、ADDR2——模仿量输入通道地址选取线;
i) ALE——地址锁存容许输入信号。锁存ADDR0、ADDR1、ADDR2;
j) VCC——+5V工作电压源;
k) GND——接地端;
l) REF(+)和REF(-)——基准参照电压,这两个电压决定输入模仿量程范畴。
4.2.4 ADC0809接口办法
ADC0809输出引脚(D0-D7)可直接与单片机数据总线相连;A、B、C、三条引脚与地址线中低三位相连,使8路输入端所相应地址范畴是:FFF0H-FFF7H。
ADC0809工作时必要外接时钟,如果单片机主振频率为6MHz,则可直接借用单片机ALE信号作为ADC0809时钟信号。当单片机不访问片外RAM时(即不使用MOVX系列指令时),ALE信号是时钟频率六分频,在6MHz晶振频率下,ALE频率是1MHz。如果单片机采用了更高频率(如12MHz)晶振,直接用ALE作为ADC0809时钟就不恰当了,此时可以把ALE二分频之后再提供应ADC0809。
ADC0809输入或输出都是高电平有效,而MCS-51系列单片机上,某些引脚输或输出却为低电平有效,因此当ADC0809与单片机相连接时,必要采用某些门电路进行电平转换。A/D转换结束信号EOC端通过“非门”与MCS-51单片机INT1引脚相连,使每次A/D转换完毕就产生中断祈求,MCS-51单片机收到中断祈求后,可读取ADC0809输出数据。
ADC0809通道选取如表4.1所示。
表4.1 ADC08098路通道选取
A输入
B输入
C输入
当有工作通道
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
该系统使用ADC0809并行A/D转换芯片,使用单片机2.0、2.1和2.2作为该芯片控制口,其中P2.3给0809芯片提供时钟脉冲,P2.2接转换开始,P2.1接输入容许,0809转换是用等待法等转换结束再继续执行程序。A/D转换详细电路如图4.4所示。
图4.4 A/D转换电路
4.3 量程自动切换电路
在量程切换电路中,我选用模仿电子开关4051来做成一种多路选取器。4051是单8通道数字控制模仿电子开关,有三个二进制输入端A、B、C和INH输入,具备低导通阻抗和很低截止漏电流。4051外形构造如图4.5所示。
图4.5 4051外形构造
4.3.1 CC4051简介
CC4051芯片是八选一模仿开关集成电路。它是一种带有禁止端(INH)和三位译码端(A、B、C)控制8路模仿开关电路;它逻辑功能与管脚图资料请见下面表3.3,从功能表可知开关特性。
表3.3 4051管脚图
输入
接通通道
INH
C
B
A
L
L
L
L
0
L
L
L
H
1
L
L
H
L
2
L
L
H
H
3
L
H
L
L
4
L
H
L
H
5
L
H
H
L
6
L
H
H
H
7
H
X
X
X
均不接通
4.3.2 量程转换电路
本次设计量程为:0.01~4.99V,0.01~49.99V,51单片机和AD0809基准电压为5V,则其量程为0.01~4.99V ,因此其她量程分别×10档位。
电路如图用2个电阻串联进行分压,电阻为R1=90K,R2=10K,使进入AD0809电压均不大于5V,详细电路图如图4.6所示。
图4.6 量程切换电路
4.4 LED点阵显示电路
4.4.1 LED点阵原理
LED点阵是由发光二极管排列构成显示屏件,在咱们寻常生活电器中随处可见,被广泛应用于汽车报站器,广告屏等。。特别是它发光类型属于冷光源,效率及发热量是普通发光器件难以比拟,它采用低电压扫描驱动,具备:耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、规格品、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制灵活种等特点,其原理如图4.7所示。
图4.7 LED原理图
从图中可以看出,8X8点阵共需要64个发光二极管构成,且每个发光二极管是放置在行线和列线交叉点上,当相应某一列置1电平,某一行置0电平,则相应二极管就亮;要实现显示图形或字体,只需考虑其显示方式。通过编程控制各显示点相应LED阳极和阴极端电平,就可以有效控制各显示点亮灭。
4.4.2 显示屏驱动电路
图4.8 显示屏驱动电路
74HC245是典型CMOS型三态缓冲门电路。由于单片机或CPU数据/地址/控制总线端口均有一定负载能力,如果负载超过其负载能力,普通应加驱动器。
本设计采用74HC245来驱动LED点阵列,采用74LS138来进行行扫描,采用了两片8*8点阵,此外加一种独立LED来表达小数点,这也一定意义上局限了本系统最高量程只能到50V,精准到小数点后两位。
4.5 电源电路
采用变压器将市电220V降压到9V交流,用单相整流桥电路将9V交流整流为直流电路,再用三端稳压器7805将直流9V降压稳压为5V,给单片机系统以及外围所有电路供电。电源电路设计如图4.9所示。
图4.9 电源电路
4.6 超量程报警电路
电路测量范畴最大为49.99V,若超过了此范畴,单片机会驱动蜂鸣器报警,提示使用者测量电压已经超过范畴,并且显示屏也会显示“——”以显示待测电压过高,无法显示。报警电路如图4.10、4.11所示.
图4.10 蜂鸣器报警电路
图4.11 显示屏报警电路
5 软件设计
5.1 程序构造
智能数字电压表系统软件程序由主程序、A/D转换子程序、量程切换子程序和显示子程序构成。
开始
初始化
调节量程
调用AD转换子程序
鉴定量程与否适合
N
Y
数据计算
显示
图5.1 主程序流程图
5.2 程序分析与设计
/*************************
智能电压表C51文献
LKJ ——-9-24
*************************/
#include <reg52.h>
#include "main.h"
//端口变量设立
sbit LED = P0^0;
sbit add_A = P2^5;
sbit add_B = P2^6;
sbit add_C = P2^7;
sbit EOC = P2^1;
sbit ST = P2^2;
sbit CLK = P2^3;
sbit CD4051_add = P2^4;//设立CD4051地址,自动切换量程
sbit Buzzer = P2^0;//超量程报警
/*********全局变量*******************/
//关于点阵显示
unsigned int cnt_scan = 0;
unsigned char cnt_scan_flag = 0;//扫描
unsigned char add = 0;//扫描地址
unsigned char dnum_F = 0;//前两个数
unsigned char dnum_B = 0;//后两个数
float V_float = 0;//检测电压值
unsigned int V_show = 0;//显示值
unsigned int cnt_show = 0;//扫描时间
unsigned char cnt_show_flag = 0;
unsigned char AD_DATA;//储存原始AD值
unsigned char OverFlag = 0;//超量程标志
/**********延时约150us************/
void delay(unsigned char i)
{
unsigned char j;
while(i--)
{
for(j=125;j>0;j--);
}
}
/**********初始化************/
void init()
{
//定期器中断初始化
TMOD = 0x22;
TH0 = 0x9C;
TL0 = 0x9C;//100us
TR0 = 1;
ET0 = 1;
TH1=216;
TL1=216;//用T1产生CLK信号40us
TR1=1;
ET1=1;
EA = 1;
//AD初始化
ST=0;
//CD4051初始化
CD4051_add = 0;
Buzzer = 1;
}
/***********AD转换**********/
void AD()
{
ST = 0;
//OE = 0;
delay(1);
ST = 1; //启动AD
delay(1);
ST = 0;
while(0 == EOC); //AD转换完毕
//OE = 1;
AD_DATA = P0;
//OE = 0
}
void AD_Deal()
{
/*量程切换算法*/
if(AD_DATA >= 255)
{
//如果超量程了,先看与否能提高量程,否则报警
if(CD4051_add == 0) {CD4051_add = 1;}
else {Buzzer = 1;OverFlag = 1;}
}
else if((AD_DATA <= 25)&&(CD4051_add == 1))
{
//如果是在50V量程档测量到5V如下,切换量程
CD4051_add = 0;
}
else
{
Buzzer = 0;
OverFlag = 0;
}
/*计算电压值*/
V_float = (float)(AD_DATA+1) * 5.0/256.0;//软件补偿与计算
if(CD4051_add == 0)//如果处在5V档量程
V_show = (unsigned int)(V_float*100);
else if(CD4051_add == 1)//如果处在50V档量程
V_show = (unsigned int)(V_float*1000);
//V_show = AD_DATA;
}
//主函数
void main()
{
//int i,j;
init();
while(1)
{
AD();
AD_Deal();
if(cnt_show_flag == 1)
{
dnum_F = V_show/100;
dnum_B = V_show%100;
if(OverFlag == 1)
{
dnum_F = 100;
dnum_B = 100;
}
cnt_show_flag = 0;
}
}
}
/***********T0************/
void T0_ISR(void) interrupt 1
{
cnt_scan++;
if(cnt_scan >= 5)
{
cnt_scan_flag = 1;
cnt_scan = 0;//1ms
}
cnt_show++;
if(cnt_show >= 5000)
{
cnt_show_flag = 1;
cnt_show = 0;//500ms
}
if(cnt_scan_flag == 1)//显示
{
//LED = ~LED;
//扫描
add_A = add & 0x01;
add_B = add & 0x02;
add_C = add & 0x04;
//数显
P1 = dnum[dnum_F][add];
P3 = dnum[dnum_B][add];
add++;
if(add >= 8) add = 0;
cnt_scan_flag = 0;
}
}
/***********T1************/
void T1_ISR(void) interrupt 3
{
CLK=~CLK;
}
6 结 论
单片机应用意义不但在于它辽阔范畴及所带来经济效益。更重要意义在于,单片机应用从主线上变化了控制系统老式设计思想和设计办法。此前采用硬件电路实现大某些控制功能,正在用单片机通过软件办法来实现。此前自动控制中PID调节,当前可以用单片机实现具备智能化数字计算控制、模糊控制和自适应控制。
由于使用是高效单片机作为核心测量系统,以及敏捷度和精度较高A/D转换器,使本直流电压电流表具备精度高、敏捷度强、性能可靠、电路简朴、成本低特点,加上通过优化程序,使其有很高智能化水平。
在该设计中,通过硬件和软件设计,基本上达到了工程训练题目规定。
在本设计最大长处是电路简朴,测量精度高,但其中也存在着些局限性可以改进,例如本设计精度不是太高,量程数较少,还可以改进。
7 致 谢
感谢学校给了咱们这样一种培养动手能力和自主学习能力机会,我相信,这对咱们将来走入工作岗位后协助是莫大。
同步我也要感谢我同组伙伴,在进行设计单片机程序时我遇到某些困难,她们协助我分析完毕,使我设计得以完毕。
在这里我特别要感谢教师对咱们设计上悉心协助,我最初设计非常粗糙和简朴,只能实现最基本功能,在教师耐心指引与修正下,我对最开始设计进行了多次改进,将量程转换电路改成单片机智能控制并且对电压显示进行软件补偿,此外添加了电源管理电路,使得系统得以直接从市电获取电能,设计当中咱们遇到了什么不明白问题,教师都会细心协助咱们进行解答,使咱们设计可以很顺利地进行。
最后感谢学校领导、指引教师以及我同组同窗们,在你们协助和指引下我终于完毕了这次毕业设计,帮我学习到诸多,此后也会更加在这方面努力学习,争取能做出更多创新设计。谢谢!
8 附 件(系统仿真图、原理图、PCB图)
8.1 系统protues仿真图
8.2 Altium Desi
展开阅读全文