基于51单片机的电流测量系统设计_第1页
基于51单片机的电流测量系统设计_第2页
基于51单片机的电流测量系统设计_第3页
基于51单片机的电流测量系统设计_第4页
基于51单片机的电流测量系统设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

目 录前言 1电流测量系统总体设计 1电流测量系统硬件设计 2转换电路设计 2数据采集电路设计 2数据显示电路设计 4电流测量系统子程序设计 6AD转换和数据采集程序设计 616进制转换为BCD码程序设计 8字形查表程序设计 10I通信程序设计 11电流测量系统性能分析及调试 13设计心得 14参考文献 15附录一电流测量系统总体电路设计 15附录二电流测量系统设计总程序 17前言

武汉理工大学《电子系统设计与调试》课程设计说明书单片机微型计算机简称单片机,又称为微控制器MCU51系列单片机是目前国内8位单片机之一。515151KeiluVision3STC_ISP_V3.1务要求、撰写设计报告等一系列工作的完成锻炼实际动手能力。STC89C51开发板使用通用异步串口、USB供电线;支持串口下载和单步调试;带有ZLG7290B,IIC8M8个数码管;8LEDP1口;TLC549,8A/D;TLC5615,10D/A数据采集、制作波形发生器、制作电子钟等多项扩展实验。A/D和数码管显示。电流测量系统总体设计TLC5498CMOSA/D只能输入电压信号,故在数据采集之前先要把直流电流信号转化为直流电压信号。通过适当的外围电路就可以实现了。输入电压经过TLC549进行数据转换和数据采集,采集结果为8位二进制数,为了方便分析,也可以看成是16进制数。16进制数传入51单片机后,通过数制转换程序把16进制数转换为可以显示的BCD码。通过查询字符表得到BCD码对应的字符。I通信程序把相应字符传输给ZLG7290B管理芯片并通过数码管显示数TLC549ZLG7290B512.1所示。1武汉理工大学《电子系统设计与调试》课程设计说明书2.1电流采集总体设计电流测量系统硬件设计转换电路设计3.1示。数据采集电路设计

3.1电流电压转换电路A/DTLC549。TLC5498CMOSA/D+3~+6V,具有4MHz片内系统时钟和软、硬件控制电路,转换时间最大值为17s40000次/s。总失调误差最大为±0.5LSB,6mWVREF

接地,V

REF

-VREF

≥1V,可用于较小信号的采样。TLC549均有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无须特殊的速度或相位匹配。TLC549可方便地与具有串行外围接口(SPI)的单片机或微处理器配合使用,也51TLC549A/D或多路并联采样。TLC549的内部框图和3.2所示。2武汉理工大学《电子系统设计与调试》课程设计说明书图3.2 TLC549的内部框图和管脚名称TLC549的数字量输出与A/D输入电压之间的关系如表3.1所示表3.1 A/D输入电压与数字量输出量关系表输入电压值V VIN REFV ))]/IN REF REFV VIN REF

输出数字量(二进制)1111111110000000000000注意:本次测量取V 接+5V,V 接地REF REFTLC5493.3A/D36个时钟周期(最大为17sCS在CSA7DATAOUT7A6~A07I/OCLK8个下降沿选择通道地址,DATAOUTA/D转换的结果。3武汉理工大学《电子系统设计与调试》课程设计说明书图3.3TLC549的工作时序图3.4所示。

REF

接供电电压,V

REF

接地,TLC549的片选CSI/OCLOCK51P1.2P1.3P1.4口,实现51单片机对TLC549的控制和TLC549向51单片机的数据传输。数据显示电路设计

图3.4数据采集电路图3.4采样信号(16进制数)经过51单片机程序变换成可以显示的BCD码,要通过管理芯片ZLG7290B和数码管相连的电路显示数值。ZLG7290B是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描8(64LE648Ctrl、ShiftAltZLG7290B内部还设置有连击计数器,能够使某键按下后不松手而连续4武汉理工大学《电子系统设计与调试》课程设计说明书I2C干扰能力强,在工业测控中已有大量应用。ZLG7290B3.5所示。图3.5ZLG7290B引脚图KR0~KR7和DIG0~DIG7INT是键盘中断请求信号,低电平(下降沿)RST是复位信号,低电平有效;OSC1和OSC2输入、输出信号;SCLI2C总线时钟信号,SDAI2C总线数据信号。I2C是接收器,而从机是发送器。数据线SDA的电平状态必须在时钟线SCL处于高电平期间保持稳定不变。SDA的电平状态只有在SCLI2C总线上数据有效性的示意图如图3.6所示。图3.6I2C总线上数据有效性的示意图ZLG7290B内部有8个显示缓冲寄存器DpRam0~DpRam7的内容。ZLG7290B提供有两种显示控制方式,一种是直接向显存写入字型数据,另一种5武汉理工大学《电子系统设计与调试》课程设计说明书是通过向命令缓冲寄存器写入控制指令实现自动译码显示。通过程序访问51I2C总线接口来实现。ZLG7290BI2C总线器件地址是写操作和读操作17H)这8个寄存器的取值直接决定了数码管的显示内容。每个寄存器的8个位分别对应数码管的a,b,c,d,e,f,dp段,MSB对应a,LSB对应dp。ZLG7290B驱动数码管电路如图3.7所示。图3.7ZLG7290B驱动数码管电路图只要51I2C电流测量系统子程序设计AD转换和数据采集程序设计TLC549的工作时序图可知,只有CS=0时才能采集数据,而每一位数据采集可采A的带进位标志位循环左移实现,每次时钟脉冲(P1.4)88个时钟周期TLCA8A/D转换和数据采集程序流6武汉理工大学《电子系统设计与调试》课程设计说明书武汉理工大学《电子系统设计与调试》课程设计说明书PAGEPAGE15程图如图4.1所示。开始开始P1.2=0,CS片选成功等待1.4µSA带进位标志左移一位进位标志C中P1.4钟脉冲采集次数=8?NY转换结果结束等待36个时 时间钟周期 下轮采集图4.1 AD转换和数据采集程序流程图;;;;;;;;AD转换和数据采集子程序;;;AD:MOV20H,#0MOVR2,#08H;CLOCK8CLRP1.2;CS变为低电平NOPNOPNOPL3:MOVC,P1.3;对模拟输入采样,读出结果MOVA,20HRLCAMOVLCALLDJNZR2,L3

MOVR2,#24H;A/D转换的36个时钟周SETB P1.2;CS变为高电平,36L4:LCALLPULSEDJNZR2,L4RET;;;;;;;;;;;;;;产生CLK时钟脉冲子程PULSE:SETB P1.4;p1.4输出高电平,CLOCK时钟NOPNOPNOPCLRRET16BCD码程序设计TLC5495V255A51并逐位储存所得的商才能正确显示模拟输入值。4.11V5162,其他原理一样,以后不再赘述。5V10255,这时如果只用A寄存器存储时就会丢失最高位(26~50为余数不可能大于50,乘以10后不可能大于500,若有最高位最大可表示512,显然512>500,故若丢失只可能是最高位一位1AH判102555BCD10255,51BCDBCD是正确的。0~50mA,所以需要显示十位,而显示的电压值只有0~5V,故需40.01mA。在实际验收时如果10mAA/D1V1V10mA。A中存储的16进制转换为BCD码程序设计流程图如图4.2所示。A÷51商送53H当十位余数-1AH余数×10送A Y 是否有溢出 N 余数×10送AA÷51余数-1AHA÷51商+5送51H余数×10送A Y 是否有溢出 N 余数×10送A商送51单元单元当小数A÷51余数-1AHA÷51当小数第一第一位位余数×10送A Y 是否有溢出 N 余数×10送A商+5送50H单元当小数A÷51A÷51商送50单元当小数第二第二位位商+5送52H单元当个位商送52当个位商+5送52H单元当个位商送52当个位;;;;;;16进制(20H单元中)转换为BCD码;;;;;ZHUANHUAN:MOVA,20HMOVB,#62;[255/4.11]=62,把4.11V分为255等分采集的数据DIVAB

MOVF0,C;F0为跳转标志MOVA,#10MULABMOVB,#62DIVABJBF0,LOOP2MOV53H,A ADDA,#5;十位存53H单元中MOVA,B;19H,F01CLRF0SUBBA,#1AH

LOOP2:MOV52H,A;个位存52H单元中MOVA,BCLRF0SUBBA,#1AHMOVF0,CMOVA,#10MULABMOVB,#62DIVABJBF0,LOOP3ADDA,#5LOOP3:MOV51H,A;51HMOVA,BCLRF0字形查表程序设计

SUBBMOVF0,CMOVA,#10MULABMOVB,#51DIVABJBF0,LOOP4ADDA,#5LOOP4:MOV50H,A;小数点后第二位存50H单元中RET63H62H单元显示前加一,原因是当要显示带小50B6(不带小数点0B7H(带小数点。接下来的两位小数可以用循环两次的办法把需要显示的字符分别送入61H和60H就可以了。字形查表程序设计流程图如图4.3所示。PUSHPSWPUSHPSW十位53H单元送A查表得A对应字符送入63H做十位个位52H单元送A查表得A对应字符查得字符加1(显示小数点送入62H做个位两位小数点R0=50H,R1=5FH,R2=2HR0单元送A查表得A对应字符R0+1→R0R1+1→R1字符送入R1做相应小数位POPPSW结束NR2-1=0结束 Y;;;;;;;;;;;;;字形查表子程序;;;;;;;;;XIANSHI:PUSHPSW;;;;;;;;;;;;显示十位

图4.3 字形查表程序设计流程图MOVR0,#53HMOVR1,#63HMOVDPTR,#TABMOVA,@R0MOVCA,@A+DPTRMOV@R1,A;;;;;;;;;;;;;显示个位MOVR0,#52HMOVR1,#62HMOVDPTR,#TABMOVA,@R0MOVCA,@A+DPTRINCAMOV@R1,A;;;;;;;;;;;;;显示小数点后二位I2C通信程序设计

MOVR0,#50HMOVR1,#5FHMOVR2,#02HMOVDPTR,#TABNEXT3:MOVA,@R0MOVCA,@A+DPTRINCR0INCR1MOVDJNZR2,NEXT3POPPSWRETNNY发送起始发送控制字应答Y发送地址应答?Y发送字节发应 N送答 停? 止I2C通信总线是串行传输总线,两根线(串行时钟线SCL和串行数据线SDA)能实现全双工同步数据传送。在数据传输时,开始位后,主器件送出8位控制字节,以选择从器件并控制总线传送方向,其后再传送数据。没传送一个字节后,接收器都必须发一位应答信号ACK,发送器确定后,再发下一数据。每一数据都是先发高位,再发低位,在全数据传送结束后主控制器发送停止信号。还要注意写时钟SCLNNY发送起始发送控制字应答Y发送地址应答?Y发送字节发应 N送答 停? 止图4.4I2C通信程序设计流程图;;;;;;;;;;;;;IIC通信子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;n个字节数据发送子程序WRNBYT:PUSHPSW ;现场保护

WRNBYT1:MOVPSW,#18H;改用第3组工作寄存器CALLSTA ;发起始条MOVA,SLA ;读写控制字节CALLWRB ;发送写控制字CALLCACK ;检查应答位JBF0,WRNBYTMOVR0,#MTD;有应答位,发送数据,第一个数据为首址MOVR5,NUMBYT;R5存读取数据字节数WRDA:MOVA,@R0;读第一个字节数据LCALLWRB ;发送此字LCALLCACK ;检查ACKJBF0,WRNBYT1;无ACK,重发INCR0 ;DJNZR5,WRDA;尚未发完n个字节,继续LCALLSTOP;全部发完数据,停止POPPSW ;恢复现RET ;返回;;;;;;;;;;;;;;;;;字节数据发送子程序WRB:MOVR7,#8位计数器初值WLP:RLCA ;欲发送位移如CJCWR1 ;此位为1,转CLRSDA ;此位为0,发送0SETBSCL ;时钟脉冲变高电平NOP ;延时NOPNOP

NOPCLRSCL ;时钟脉冲变低电平DJNZR7,WLP;8RET ;8位发送完,返回WR1:SETBSDA;此位为1,发送SETBSCL;时钟脉冲变高电平NOP ;延时NOPNOPNOPCLRSCL ;时钟脉冲变低电平CLRSDADJNZR7,WLPRET;;;;;;;;;;;;;;;;;应答位检查子程序CACK:SETBSDA ;SDA作为输入SETBSCL ;9个时钟脉冲开始NOPNOPMOVC,SDA;读SDA线MOVF0,C ;F0中CLRSCL ;NOPNOPRETSTA:SETB SDA ;发送起始位SETB NOPNOPNOPNOPNOPNOPCLRSDANOPNOPNOPNOPSETBSDANOPNOPNOPNOPCLRSCLNOPRETNOPSTOP:CLRSDA;发送停止位CLRSCLSETBSCLRET电流测量系统性能分析及调试由于采样用的V

REF

=5V,故A/D转换器出来电压量程为0~5V,通过外接电阻可以实现电流测量;在电流输入口接一个100Ω,则可以测量0~50mA0~50mAmA级电流正确显示在数码管上。6V时,我们只需把进制转÷51÷430~6mA0.01mA已经满足要求,当要求更高精确度时,我们可以适当增加小数点后面的位数就可以了,具体做法是向后顺移各位并增加需要的位数即可。设计完成后,在调试阶段。最开始时,显示在数码管上的是16进制数,比如接+5V时显示256,查看源程序发现进制转换程序有问题,看下面两段程序:“MOVA,20HMOVB,#100DIVABMOV53H,A”和“MOVA,20HMOVB,#51DIVABMOV53H,20H16BCD53H5V2550~5V正确可取的,当然后者还要在恰当的地方加上小数点,否则显示也是错误的。0~5V1K0~5mA0~50mA电流就100Ω,100Ω0~5V20mA电流时,显示在数码管上2.000,也就说此时不能正确反映电流大小。要解决这一问题其实也很简单,我们只否则就会出现错误。通过以上各项调试和改进,此次基于51单片机的电流数据采集系统设计基本完成。系统参数指标如下:输入基准电压为+5V;测量直流电流范围为0~50mA;精确到0.01mA。能比较准确地显示0.01mA~50mA范围内的直流电流值。设计心得通过两周多时间的紧张设计,本次单片机课程设计终于告一段落,我体会很多。从刚开始的选题到选题论证、从查找借鉴资料到自主设计、从本学科基础知识到其它学科知识、从自己思考到和老师同学交流,我从中学到了很多以前理论知识学习中所学不到的东西。51A/DBCDI过数码管把模拟信号大小表示出来。课程设计之前一直只是理论知识的学习,在课程设计阶段,我不但自习重新学习的51单片机课本的相关章节,而且还在图书馆借来书籍阅读和参考。在遇到问题的时候,积极与身边的同学交流经验,是在弄不懂的地方就请教老师,我从中学到了很多知识以外的东西,比如说遇到问题后分析解决问题的方法、坚忍不拔和不耻下问的求知态度等等。特别是在程序设计阶段,虽然程序不是很复杂,但是由于是第一次接触,总感觉无从下手,最后通过查阅资料和反复试验最终把程序设计了出来。这次课程设计巩固了我以前所学过的知识,知识学得更深、更透彻,理论联系实际,很好地锻炼了我的发散思维能力和动手能力。感谢刘皓春老师对我此次课程设计的指导。参考文献[1]李群芳.单片微型计算机及接口技术(第二版).北京:电子工业出版社.2005[2]何立民.MCS-51单片机应用系统设计.北京:北京航空航天出版社.2000蒋力培.单片微机系统实用教程.北京:机械工业出版社.2004王琼.单片机原理及应用实验教程.合肥:合肥工业大学出版社[5]凌玉华.单片机原理及应用系统设计.长沙:中南大学出版社.2006[6]李广军.ASIC设计及应用.成都:电子科技大学出版社.2000附录一电流测量系统总体电路设计A/DTLC549Analog(2)相连接;TLC549的CS、、I/OCLOCK51单片机的P1.2、P1.3、P1.4口相连接;ZLG7290BSCLSDA51P1.0、P1.1连接。TLC549、ZLG7290B与5151单片机各端口。武汉理工大学《电子系统设计与调试》课程设计说明书武汉理工大学《电子系统设计与调试》课程设计说明书uEoolu

A证800.

_扯CC l CODIGlClC5邹"DPY28中8电流禾第总体电路设计b : 中电流禾第总体电路设计I扫3<b3<

­nEnDcdc

迅中8Jmm(心臼乌直流电洗输入u直流电洗输入1616武汉理工大学《电子系统设计与调试》课程设计说明书武汉理工大学《电子系统设计与调试》课程设计说明书PAGEPAGE21附录二电流测量系统设计总程序A/D序16进制数数制转换程序BCD码字形查表程序IIC通信程序数据显示A/DTLC549A/D序16进制数数制转换程序BCD码字形查表程序IIC通信程序数据显示;;;;;;;总程序清单;;;;;;;;;;;定;;;;;;;;;;SCL BITP1.0SDA BITP1.1CS BITP1.2DATE BITP1.3CLOCK BITP1.4NUMBYTEQUSLA EQU5EHMTD EQU5FH;;;;;;;;;程序开始;;;;;;;;;;;;;;;;ORG0000HMAIN:LCALLADLCALLZHUANHUANLCALLXIANSHI;;;;;;;;;IIMOVMTD,#10HMOVNUMBYT,#09H

附录二图 软件设计总框图MOVSLA,#70HLCALLSJMP $;;;;;;;;;;;;子程序清单;;;;;;;;;;;;;;;;;;;AD转换和数据采集子程序;;;AD:MOV20H,#0MOVR2,#08H;CLOCK8CLRP1.2;CS变为低电平NOPNOPNOPL3:MOVC,P1.3;对模拟输入采样,MOVA,20HRLCAMOV20H,ALCALLPULSEDJNZR2,L3MOVR2,#24H;A/D转换的36个时钟周期SETB P1.2;CS变为高电平,保持36个时钟周期L4:LCALLPULSEDJNZR2,L4RET;;;;;;;;;;;;;;产生CLK时钟脉冲子程序PULSE:SETB P1.4;p1.4输出高电平,CLOCK时钟NOPNOPNOPCLRRET;;;;;;16进制(20H单元中)BCD码;;;;;ZHUANHUAN:MOVA,20HMOVB,#62;[255/4.11]=62,4.11V255集的数据DIVABMOV53H,A;十位存53H单元中MOVA,B;19H,F01CLRF0

SUBBA,#1AHMOVF0,C;F0为跳转标志MOVA,#10MULABMOVB,#62DIVABJBF0,LOOP2ADDA,#5LOOP2:MOV52H,A;个位存52H单元中MOVA,BCLRF0SUBBMOVF0,CMOVA,#10MULABMOVB,#62DIVABJBF0,LOOP3ADDA,#5LOOP3:MOV51H,A;小数点后第一位存51H单元中MOVA,BCLRF0SUBBA,#1AHMOVF0,CMOVA,#10MULABMOVB,#51DIVABJBF0,LOOP4ADDA,#5LOOP4:MOV50H,A;50HRET;;;;;;;;;;;;;字形查表子程序;;;;;;;;;XIANSHI:PUSHPSW;;;;;;;;;;;;显示十位MOVR0,#53HMOVR1,#63HMOVDPTR,#TABMOVA,@R0MOVCA,@A+DPTRMOV@R1,A;;;;;;;;;;;;;显示个位MOVR0,#52HMOVR1,#62HMOVDPTR,#TABMOVA,@R0MOVCA,@A+DPTRINCAMOV@R1,A;;;;;;;;;;;;;MOVR0,#50HMOVR1,#5FHMOVR2,#02HMOVDPTR,#TAB

NEXT3:MOVA,@R0MOVCA,@A+DPTRINCR0INCR1MOVDJNZR2,NEXT

温馨提示

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

评论

0/150

提交评论