简易数字电流表课程设计(DOC 18页)_第1页
简易数字电流表课程设计(DOC 18页)_第2页
简易数字电流表课程设计(DOC 18页)_第3页
简易数字电流表课程设计(DOC 18页)_第4页
简易数字电流表课程设计(DOC 18页)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

课程设计题目 简易数字电流表 二级学院 电子信息与自动化 专 业 自动化 班 级 71-1 学生姓名 陆安龙 学号 10707010117 指导教师 徐鹏 考核项目设计50分平时成绩20分答辩30分设计质量20分创新设计15分报告质量15分熟练程度20分个人素质10分得分总分考核等级教师签名目 录 2.4电路图和各元器件之间实际连接关系. 3.1系统模块层次结构图3.2程序流程图3.3源程序代码4 测试4.1测试方法及设备4.2实测数据4.3系统指标5 总结5.1硬件电路设计总结5.2软件程序设计总结基于单片机的简易数字电流表设计摘 要所谓数字电流表就是能将测得的模拟电流量经过A/D转换转变为数字量,并在液晶显示屏上直接显示电流读数的电流表,相比针式电流表有着测量数据准确明了,读数精度高的特点,类似数字式万用表,有着相当的实用性。随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现 ,正在引起测量、控制仪表领域新的技术革命。采用单片机作为测量仪器的主控制器就是这场革命的产物之一。基于单片机的智能综合仪表是融合智能化、数字化、网络化等时代特性的新一代智能仪表,兼具指示仪表、调节仪表、积算仪表与记录仪表功能具有高测量控制精度、高可靠性稳定性的特点。这种以单片机为主体的新型智能仪表将计算机技术与测量控制技术结合在一起,在测量过程自动化,测量结果数据处理以及功能的多样化方面都取得了巨大的进步。作为电流直接测量和显示的必要常规仪器仪表,在注重性价比同时,必须具备精度高、稳定性好、抗干扰性强等优点。而实时响应电流变化并连续实时显示,能够真正实现动态测量的数字电流表将成为特定使用领域的标准配置。随着电子科技的快速发展,数字电流表的使用将愈发广泛。关键词数字电流表,电流采样,A/D转换,单片机1 概述1.1设计意义通过课程设计,掌握电子设计的一般步骤和方法,锻炼分析问题解决问题的能力,学会如何查找所需资料,同时复习以前所学知识并加深记忆,为毕业设计打好基础,也为以后工作作准备。通过对选题的分析设计,学习数字电流表的工作原理、组成和特性;掌握数字电流表的校准方法和使用方法;学会分流电路的连接和计算;了解过压过流保护电路的功用。1.2我的工作我小组经过严密协商,在保证课程设计所要求的“即合作,又分工”基础上进行了明确分工,我主要负责设计初期通过图书馆,网络查找关于简易数字电流表设计相关资料。和本组成员一同诊定思路,解析实例,各自提出一些创新设计思路,共同确定大体方案。协同对初期方案进行电路分析,选择合适的元器件,最终确定出一个我们觉得可行的方案。 仿真过程和,实物制作阶段,我深入学习实验方法和步骤,总结实验流程。1.3系统主要功能A ; 可准确测量一定量程(0200mA)电流大小值。B ; 通过按键选取不同量程。2 硬件电路设计及描述2.1 设计思想与方案选取拿到题目,先从题目本生分析,首先想到要求所用到的单片机,出于合理选取及实例分解,根据单片机的特点,选取了AT89S51作为设计用单片机。主要考虑到AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。而AT89S52有40个引脚,8k Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向(I/O)口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器,这些特性符合其用在设计中分级处理采样信息,准确测量数据,有效控制成本的要求。其次,电流测量中,电流是模拟量,而单片机只负责处理数字信号,所以要用到A/D转换芯片,通过筛选,选取了ADC0809作为设计用A/D转换芯片。 ADC0809 为8位分辨率A/D转换芯片,以逐次逼近原理进行模数转换,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。内部还有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,转换时间为100s。由于ADC0809芯片的转换时间短,并且性能比较高,所以采用ADC0809作为数模转换芯片。 2.2设计原理及方框图接晶体引脚XTAL1和XTAL2。XTAL2(18脚):接外部晶体和微调电容的一端。在89C51片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体的固有频率。若须采用外部时钟电路,则该引脚悬空。XTAL1(19脚):接外部晶体和微调电容的另一端。在片内,它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚输入外部时钟脉冲。控制信号引脚RST、ALE、。RST(9脚)脚:RST是复位信号输入端,高电平有效。当此时输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。ALE(30管脚):地址锁存允许信号端。当89C51上电正常工作后,ALE输出信号作为锁存低8位地址的控制信号。平时不访问片外存储器时,ALE端也以振荡频率的六分之一固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。如果想确认89S51芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。若有脉冲信号输出,则89S51基本上是好的。ALE端的负载驱动能力为8个LS型TTL负载。此引脚的第2功能在对片内带有4KBFlashROM的89C51编程写入时,作为编程脉冲输入端。(29脚):程序存储允许输出信号端。当89C51由片外程序存储器指令时,每个机器周期两次有效。但在此期间内,每当访问外部数据存储器时,这两次有效的信号将不出现。端同样可驱动8个LS型TTL负载。要检查一个89C51小系统上电后CPU能否正常工作,也可用示波器端有无脉冲输出。如有,则说明基本上工作正常。(31脚):外部程序存储器地址允许输入端固化编程电压输入端。当引脚接高电平时,CPU只访问片内Flash ROM并执行片外程序存储器中的指令:但当PC的值超过0FFFH,将自动转去执行片外程序存储器内的程序。当输入信号引脚接低电平时,CPU只访问片外ROM并执行片外程序存储器中的指令,而不管是否有片内程序存储器。然而需要注意的是,如果保密位LB1被编程,则复位时在内部会锁存端的状态。当端保持高电平时CPU则执行内部程序存储器中的程序。 接晶体引脚XTAL1和XTAL2。XTAL2(18脚):接外部晶体和微调电容的一端。在89C51片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体的固有频率。若须采用外部时钟电路,则该引脚悬空。要检查89C51的振荡电路是够正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL1(19脚):接外部晶体和微调电容的另一端。在片内,它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚输入外部时钟脉冲。控制信号引脚RST、ALE、。RST(9脚)脚:RST是复位信号输入端,高电平有效。当此时输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。ALE(30管脚):地址锁存允许信号端。当89C51上电正常工作后,ALE输出信号作为锁存低8位地址的控制信号。平时不访问片外存储器时,ALE端也以振荡频率的六分之一固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。如果想确认89C51芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。若有脉冲信号输出,则89C51基本上是好的。ALE端的负载驱动能力为8个LS型TTL负载。此引脚的第2功能在对片内带有4KBFlashROM的89C51编程写入时,作为编程脉冲输入端。(29脚):程序存储允许输出信号端。当89C51由片外程序存储器指令时,每个机器周期两次有效。但在此期间内,每当访问外部数据存储器时,这两次有效的信号将不出现。端同样可驱动8个LS型TTL负载。要检查一个89C51小系统上电后CPU能否正常工作,也可用示波器端有无脉冲输出。如有,则说明基本上工作正常。(31脚):外部程序存储器地址允许输入端固化编程电压输入端。当引脚接高电平时,CPU只访问片内Flash ROM并执行片外程序存储器中的指令:但当PC的值超过0FFFH,将自动转去执行片外程序存储器内的程序。当输入信号引脚接低电平时,CPU只访问片外ROM并执行片外程序存储器中的指令,而不管是否有片内程序存储器。然而需要注意的是,如果保密位LB1被编程,则复位时在内部会锁存端的状态。当引脚接高电平时,CPU只访问片内Flash ROM并执行片外程序存储器中的指令:但当PC的值超过0FFFH,将自动转去执行片外程序存储器内的程序。当输入信号引脚接低电平时,CPU只访问片外ROM并执行片外程序存储器中的指令,而不管是否有片内程序存储器。然而需要注意的是,如果保密位LB1被编程,则复位时在内部会锁存端的状态。当端保持高电平时CPU则执行内部程序存储器中的程序。 电源ADC809程序烧录四位一体数码显示管AT89S51电源采样数据电源分流电阻及负反馈放大电路2.3工作原理电流信号的转换实现及采样要点用单片机及其扩展的外部电路先做成一个理想电压表3,图1中用G表示。由于通常所说的电流表是指灵敏电流计其量程太小,不能直接测量电流,仅用于检测有无电流和电流的方向,所以要想得到一个有多量程或量程较大的电流表需要将一个理想电压表改装而成。本设计是用一个内阻视为无穷大的电压表并联分流电阻而成的数字电流表。待测电流I随搬动开关K的位置而流过R1或R2,因而本电流表的两个量程就取决于G的满量程电压和R1、R2的阻值,记G的满量程电压为Ug,根据欧姆定律Ug=RgIg,若Ug和Rg已知则Ig就是电流表的满量程电流。由于负反馈放大器的输入电阻已达到10M欧以上,所以有单片机构成的测量系统,可以看作一个理想电压表。通常所说的偏转式电流表是根据线圈的偏转程度线性刻画未测电流的大小,仿照此原理给待测电流加一个线性电阻,然后再用一个理想电压表测电流在电阻上的压降,然后适当选择放大器的放大倍数就可以做成多量程的电流表。LED动态显示器接口及显示方式单片机中通常使用7段LED构成字型“8”,另外,还有一个小数点发光二极管,以显示数字、符号及小数点。这种显示器有共阴极和共阳极两种,如图。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起称为共阴极显示器。一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型8的各个笔画,另一个小数点为dp发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被破坏,需外加限流电阻。以共阴极LED为例,如图,各LED公共阴极K0接地。若向各控制端a、bg、dp顺次送入11100001信号,则该显示7字型。在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位 I/O口控制。而共阴(共阳)极公共端K分别由相应的I/O线控制,实现各位的分时选通。89C51单片机1)89C51行输出操作时,CPU通过内部总线把数据写入锁存器1。而89C51执行输入操作却有两种方式;当执行的是读锁存器指令时,CPU发出读锁存器信号,此时锁存器状态由触发器的Q端经锁存器上面的三态输入缓冲器1送入内部总线;如果执行的是读端口引脚,则CPU发出的是读引脚控制信号,直接读取端口引脚上的外部输入信息,此时引脚状态经锁存器下面的三态输入缓冲器2送入内部总线。在89C51无片外的扩展存储器的系统中,这四个端口都可以作为准双向通用IO口使用。P0口的输出级与P1-P3口的输出级在结构上是不同的,因此,它们的负载能力和接口要求也各不相同。P0口与其他口不同,它的输出级无上拉电阻。用作输入时,应先向口锁存器80H写1。把它当作地址/数据总线时,则无须外接上拉电阻。P0口的每一位输出可驱动8个LS型TTL负载。P1-P3口的输出级接有内部上拉电阻,它们的每一位输出可驱动4个LS型TTL负载。作为输入口时,任何TTL或NMOS电路都能以正常的方式驱动89C51单片机的P1-P3口。由于它们的输出级具有上拉电阻,所以也可以被集电极开路所驱动,而无须外接上拉电阻。对于89C51单片机,端口只能提供几毫安的输出电流,故当作输出口去驱动一个普通晶体管的集极时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。P1-P3口也都是准双向口。电源引脚Vcc和Vss。Vcc(40脚):电源端,为+5V。Vss(20脚):接地端。2.4电路图及各元器件之间实际连接关系总体电路图 2.5元器件清单元件清单名 称型 号封装形式数量单片机 AT89S52 DIP-401个A/D转换器ADC0832 DIP-81个数码管显示器GEM5461BE DIP-121个晶 振 12M XTAL-11个三极管 9012 TO-1264个电阻排1K X8SIP-101个滑动变阻器1KVR-51个电 阻 470AXIAL-0.44个按 键 SWANJIAN1个电阻 200AXIAL-0.45个瓷片电容 30pFRAD-0.22片电解电容 22FRB-.2/.41片3 软件设计流程及描述3.1系统模块层次结构图负反馈放大电路峰值检波电路双积分型A/D转换器及其外围电路单片机LED数码管量程选取按键分流电阻3.2程序流程图3.3源程序代码#include #define uchar unsigned char#define uint unsigned intsbit OE = P30;sbit EOC = P31;sbit START = P32;sbit clk = P33;sbit dot=P17;/*赋值*/uint digtial4,getdataend,key;uchar code dis = 0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F;uchar getdata;/*/函数名称:void delay1ms( unsigned char t)/函数功能:延时函数/返回类型:无/使用说明:/ 1:产生需要的延时时间/*void delay1ms( unsigned char t) unsigned char i,j;for( ; t; t-)for(i=4; i0; i-)for(j=123; j0; j-); void time_time_clk() interrupt 1 using 0 TH0 = (65536-20)/256;/给高8位赋值TL0 = (65536-20)%256;/给低8位赋值clk=clk; /*/函数名称:void inint()/函数功能:初始化定时器.ADC0809/*void inint()TMOD = 0x01;/选择工作模式 16位TH0 = (65536-20)/256;/给高8位赋值TL0 = (65536-20)%256;/给低8位赋值EA = 1;/开总中断ET0 = 1;/启动定时器0;TR0 = 1;/开定时器0START = 0;/给ADC0809赋初值OE = 0;/*/函数名称:void display()/函数功能:动态扫描,数码管显示电压值/*void display() /由高位到低位四位输出P2 = 0X0E;P1 = disdigtial3;dot = 1; / 小数点输出delay1ms(10);P1 = 0X00;P2 = 0X0d;P1 = disdigtial2;delay1ms(10);P1 = 0X00;P2 = 0X0b;P1 = disdigtial1;delay1ms(10);P1 = 0X00;P2 = 0X07;P1 = disdigtial0;delay1ms(10);P1 = 0X00;/*/函数名称:void AD()/函数功能:将模拟电压转换为数字/*void AD()START = 0;OE = 0;START = 1;START = 0;/启动AD转换while(EOC = 0)/判断转换是否结束OE = 1;/允许输出getdata = P0;/将转换得到的数据赋给getdataOE = 0;/关闭输出getdataend = getdata*(5000/255); /将输出地数字量转化为模拟量输出、 getdataend=getdataend/9; digtial3 = getdataend/1000; /最高位数值digtial2 = getdataend%1000/100; digtial1 = getdataend%100/10;digtial0 = getdata

温馨提示

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

评论

0/150

提交评论