收藏 分销(赏)

单片机优秀课程设计数字电压表.doc

上传人:a199****6536 文档编号:2683259 上传时间:2024-06-04 格式:DOC 页数:28 大小:228.54KB 下载积分:10 金币
下载 相关 举报
单片机优秀课程设计数字电压表.doc_第1页
第1页 / 共28页
单片机优秀课程设计数字电压表.doc_第2页
第2页 / 共28页


点击查看更多>>
资源描述
目 录 1 引言 1 2设计原理及要求 2 2.1数字电压表实现原理 2 2.2数字电压表设计要求 2 3软件仿真电路设计 3 3.1设计思绪 3 3.2仿真电路图 3 3.3设计过程 4 3.4 AT89C51功效介绍 4 3.4.1简单概述 4 3.4.2关键功效特征 5 3.4.3 AT89C51引脚介绍 5 3.5 ADC0808引脚及功效介绍 7 3.5.1芯片概述 7 3.5.2 引脚介绍 8 3.5.3 ADC0808转换原理 8 3.6 74LS373芯片引脚及功效 9 3.6.1芯片概述 9 3.6.2引脚介绍 9 3.7 LED数码管控制显示 9 3.7.1 LED数码管模型 9 3.7.2 LED数码管接口介绍 10 4系统软件程序设计 10 4.1 主程序 10 4.2 A/D转换子程序 11 4.3 中止显示程序 12 5电压表调试及性能分析 13 5.1 调试和测试 13 5.2 性能分析 14 6电路仿真图 14 7总结 15 参考文件 16 附录1 源程序 17 附录2 仿真原理电路 23 1 引言 伴随微电子技术不停发展,微处理器芯片集成程度越来越高,单片机已能够在一块芯片上同时集成CPU、存放器、定时器/计数电路,这就很轻易将计算机技术和测量控制技术结合,组成智能化测量控制系统。 数字电压表(DigitalVoltmeter)简称DVM,它是采取数字化测量技术,把连续模拟量(直流输入电压)转换成不连续、离散数字形式并加以显示仪表。和此同时,由DVM扩展而成多种通用及专用数字仪器仪表,也把电量及非电量测量技术提升到崭新水平。本章关键介绍单片机A/D 转换器和由它们组成基于单片机数字电压表工作原现在,由多种单片A/D 转换器组成数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大生命力理。 本设计AT89C51单片机一个电压测量电路,该电路采取ADC0808一个基于A/D转换电路,测量范围直流 0~5V 4路输入电压值,并在四位LED数码管上显示或单路选择显示。测量最小分辨率为0.019V,测量误差约为正负0.02V。 2设计原理及要求 此次设计思绪是利用单片机AT89C51和ADC0808设计一个数字电压表,测量0-5V之间直流电压值,然后经过四位数码显示,为了设计简单化我使用元器件数目较少。 2.1数字电压表实现原理 ADC0808是8位A/D转换器。当输入电压为5.00V时,输出数据值为255(0FFH),所以最大分辨率为0.0196(5/255)。ADC0808含有8路模拟量输入端口,经过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮番改变3位地址输入端地址,就能依次对8 路输入电压进行测量。LED数码管显示采取软件译码动态显示。经过按键选择可对8路循环显示,也可单路显示,单路显示可经过按键选择显示通道数。 2.2数字电压表设计要求 能够测量0~5V范围内3路直流电压值。在4位LED数码管上轮番显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,3路分别为0-2。要求测量最小分辨率为0.02V。 3软件仿真电路设计 3.1设计思绪 多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,因为ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0808CLK直接由外部电源提供为500kHz方波。因为ADC0808参考电压VREF=VCC,所以转换以后数据要经过数据处理,在数码管上显示出电压值。实际显示电压值(D/256*VREF) ADC0808采取逐次迫近法转换,把模拟电压转换成16进制D,因为是对直流电压0~5V进行采集,所以D对应电压为V0 ,我们目标就是要把V0显示在LED显示器上,因为单片机不好进行小数点计算,所以有:V0=2*D扩大了100倍,扩大100倍后结果高八位放寄存器B,低八位放寄存器A,分寄存器B为0或不为0情况进行存取数据,得到结果个位放入R0,十位放入R1,经过查表使之显示在LED显示器。 3.2仿真电路图 用Protues软件仿真设计电路图3-1所表示。 图3-1 仿真电路 3.3设计过程 简易数字电压测量电路由A/D转换、数据处理及显示控制等组成。电路原理图见附录2。A/D转换由集成电路0808完成。0808含有8路模拟输入端口,地址(23-25)脚可决定对哪路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时7脚输出高电平。9脚为A/D转换数据输出许可控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为0808时钟输入端,由外部信号源提供。单片机P1、P3.0-P3.3端口作为四位LED数码管现实控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作A/D转换数据读入用,P2端口用作0808A/D转换控制。 3.4 AT89C51功效介绍 3.4.1简单概述 AT89C51是一个带4K字节闪存可编程可擦除只读存放器(FPEROM—Flash Programmable and Erasable Read Only Memory)低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一个带2K字节闪存可编程可擦除只读存放器单片机。单片机可擦除只读存放器能够反复擦除1000次。该器件采取ATMEL高密度非易失存放器制造技术制造,和工业标准MCS-51指令集和输出管脚相兼容。因为将多功效8位CPU和闪烁存放器组合在单个芯片中,ATMELAT89C51是一个高效微控制器,AT89C2051是它一个精简版本。AT89C51单片机为很多嵌入式控制系统提供了一个灵活性高且价廉方案。外形及引脚排列图3-2所表示。 图3-2 AT89C51芯片模型 3.4.2关键功效特征 (1) 4K字节可编程闪烁存放器。 (2) 32个双向I/O口;128×8位内部RAM 。 (3) 2个16位可编程定时/计数器中止,时钟频率0-24MHz。 (4) 可编程串行通道。 (5) 5个中止源。 (6) 2个读写中止口线。 (7) 低功耗闲置和掉电模式。 (8) 片内振荡器和时钟电路。 3.4.3 AT89C51引脚介绍 89C51单片机多采取40只引脚双列直插封装(DIP)方法,下面分别简单介绍。 (1)电源引脚 电源引脚接入单片机工作电源。 Vcc(40引脚):+5V电源。 GND(20引脚):接地。 (2)时钟引脚 XTAL1(19引脚):片内振荡器反相放大器和时钟发生器电路输入端。 XTAL2(20引脚):片内振荡器反相放大器输出端。 图3-3 电源接入方法 (3)复位RST(9引脚) 在振荡器运行时,有两个机器周期(24个振荡周期)以上高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。 (4)/Vpp(31引脚) 为外部程序存放器访问许可控制端。当它为高电平时,单片机读片内程序存放器,在PC值超出0FFFH后将自动转向外部程序存放器。当它为低电平时,只限定在外部程序存放器,地址为0000H~FFFFH。Vpp为该引脚第二功效,为编程电压输入端。 (5)ALE/(30引脚) ALE为低八位地址锁存许可信号。在系统扩展时,ALE负跳沿江P0口发出第八位地址锁存在外接地址锁存器,然后再作为数据端口。为该引脚第二功效,在对片外存放器编程时,此引脚为编程脉冲输入端。 (6)(29引脚) 片外程序存放器读选通信号。在单片机读片外程序存放器时,此引脚输出脉冲负跳沿作为读片外程序存放器选通信号。 (7) pin39-pin32为P0.0-P0.7输入输出脚,称为P0口。 P0是一个8位漏极开路型双向I/O口。内部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流方法驱动八个LSTTL负载电路。通常在使用时外接上拉电阻,用来驱动多个数码管。 在访问外部程序和外部数据存放器时,P0口是分时转换地址(低8位)/数据总线,不需要外接上拉电阻。 (8)Pin1-Pin8为P1.0-P1.7输入输出脚,称为P1口,是一个带内部上拉电阻8位双向I/0口。P1口能驱动4个LSTTL负载。 (9)Pin21-Pin28为P2.0-P2.7输入输出脚,称为P2口。 P2口是一个带内部上拉电阻8位双向I/O口,P2口能驱动4个LSTTL负载。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存放器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存放器时,P2口送出高8位地址。而在访问8位地址外部数据存放器时其引脚上内容在此期间不会改变。 (10)Pin10-Pin17为P3.0-P3.7输入输出脚,称为P3口。 P3口是一个带内部上拉电阻8位双向I/O口,P2口能驱动4个LSTTL负载,这8个引脚还用于专门第二功效。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存放器编程时,接控制信息。 3.5 ADC0808引脚及功效介绍 3.5.1芯片概述 ADC0808是一个经典A/D转换器。它是由8位A/D转换器,一个8路模拟量开关,8位模拟量地址锁存译码器和一个三态数据输出锁存器组成; +5V单电源供电,转化 时间在100us左右;内部没有时钟电路,故需外部提供时钟信号。芯片模型图3-4所表示。 图3-4ADC0808芯片模型 3.5.2 引脚介绍 (1) IN0~IN7:8路模拟量输入端。 (2) D0~D7:8位数字量输出端口。 (3) START:A/D转换开启信号输入端。 (4) ALE:地址锁存许可信号,高电平有效。 (5) EOC:输出许可控制信号,高电平有效。 (6) OE: 输出许可控制信号,高电平有效。 (7) CLK:时钟信号输入端。 (8)A、B、C:转换通道地址,控制8路模拟通道切换。A、B、C分别和地址线或数据线相连,三位编码对应8个通道地址端口,A、B、C=000~111分别对应IN0~IN7通道地址端口。 3.5.3 ADC0808转换原理 ADC 0808 采取逐次比较方法完成A/D转换,由单一+5V电源供电。片内带有锁存功效8路选1模拟开关,由A、B、C编码来决定所选通道。ADC0809完成一次转换需100μs左右,它含有输出TTL三态锁存缓冲器,可直接连接到AT89C51数据总线上。经过合适外接电路,ADC0808可对0~5V模拟信号进行转换。 3.674LS373芯片引脚及功效 3.6.1芯片概述 74LS373是一个带有三态门8D锁存器,其在本设计中是锁存P0口低8位地址,芯片模型图3-5所表示。 图3-5 74LS373芯片模型 3.6.2引脚介绍 (1) D0~D7:8位数据输入线; (2) Q0~Q7:8位数据输出线 (3) G:数据输入锁存选通信号。当加到该引脚信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。 (4):数据输出许可信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线上,当该信号为高电平时,输出线为高阻态。 3.7 LED数码管控制显示 3.7.1 LED数码管模型 LED数码管模型图3-6所表示。 图3-6 LED数码管模型 3.7.2 LED数码管接口介绍 LED 段码端口A~G分别接至AT89C51P1.0~P1.7口,位选端1~4分别接至P3.5、P3.4、P3.1、P3.0,图3-7所表示。 图3-7LED和AT89C51硬件连线 4系统软件程序设计 多路数字电压表系统软件程序关键有主程序、A/D转换子程序和中止显示程序组成。 4.1 主程序 主程序包含初始化部分、调用A/D转换子程序和对应外部0中止显示电压数值程序,初始化部分包含存放通道缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位00H控制,初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示控制,00H位经过单路、循环按键控制。步骤图图4-1所表示。 开始 显示子程序 A/D转换子程序 初始化 图4-1主程序步骤图 4.2 A/D转换子程序 A/D转换子程序用于对ADC08084路输入模拟电压进行A/D转换,并将转换数值存入4个对应存放单元中,A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次,图4-2所表示。 进行十六进制调整 开始A/D转换 调用延时 存转换后十六进制数 数据指针加一 入栈保护 4路转换次数减一 显示电压值 N Y 图4-2转换子程序步骤图 判定是否为0 4.3 中止显示程序 设计中采取中止方法来读取转换完成数据能节省CPU资源 当系统设置好后,一旦数据转换完成,便会进入外部中止0,然后在中止中读取转换数值,处理数据并送数码管显示输出。 LED 数码管采取软件译码动态扫描方法。在中止程序中包含多路循环显示程序和单路显示程序,多路循环显示程序把4个存放单元数值依次取出送到4个数码管上显示,每一路显示一秒。单路显示程序只对目前选中一路数据进行显示。每路数据显示时需经过转换变成十进制BCD码,放于4个数码管显示缓冲区中。单路或多路循环显示经过标志位00H控制。在显示控制程序中加入了对单路或多路循环按键判定。 数字量送P1口 取段码地址 P3.1=1? 调用循环显示程序 调用单路显示程序 显示是第4路 重新调用显示程序 N Y N Y 图4-3中止显示程序步骤图 5电压表调试及性能分析 5.1 调试和测试 本设计应用Proteus6及KEIL51软件,首先依据自己设计电路图用Proteus6软件画出电路模型,相关这个软件使用经过查部分资料和自己探索学习;然后我们用KEIL51软件对所编写程序进行编译、链接,假如没有错误和警告便可生成程序hex文件,将此文件加到电路图上使软硬件结合运行,最终进行端口电压对比测试,测试第一路对比见图4-1中标准电压值采取Proteus6软件中模拟电压表测得。 图4-1数字电压表和标准电压表比较 从图中能够看出,简易数字电压表和“标准”数字电压表测得绝对误差均在0.02V以内,这和采取8位A/D转换器所能达成理论误差精度相一致,在通常应用场所能够完全满足要求。 5.2 性能分析 因为单片机为8位处理器,当输入电压为5.00V时,输出数据值为255(FFH)所以单片机最大数值分辨率为0.0196V(5/255)。这就决定了该电压表最大分辨率(精度)只能达成0.0196V。测试时电压数值改变通常以0.02V电压幅度改变,如要取得更高精度要求,应采取12位、13位A/D转换器。 简易数字电压表测得值基础上均比标准值偏大0.01-0.02V。这能够经过校正0808基准电压来处理,因为该电压表设计时直接用7805供电电源作为基准电压,电压可能有偏差。另外能够用软件编程来校正测量值。 ADC0808直流输入阻抗为1M欧姆,能满足通常电压测试需要。另外,经测试ADC0808可直接在2MHz频率下工作,这么可省去分频率14024。 6电路仿真图 图6-1为4路通道用模拟电压表测得理论值。 图6-1模拟电压表测量结果 图6-2为进行模拟仿真时电路图 图6-2仿真时电路图 7总结 经过一周努力最终设计成功,LED显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理范围之内。因为仪器误差,LED显示最大值只能是4.9V,离标准最大值5.0V已经不远,达成预期目标,设计成功。 本设计参考了教材上第十一章89C51和ADC0809转换接口连线,设计出电路图连线,从并中了解了很多基础知识和接线方法,在程序设计和电压表调试过程中中碰到了很多问题,刚开始时四个数码管根本不显示,以后发觉用是共阳极数码管,而设计是共阴极,更换后数码管最终显示,但问题又出现了,单路显示和循环显示开关不能控制电路单路显示和循环显示,经过仔细地检验电路和修改程序,采取中止方法,产生一次外部中止0,程序转移到单路显示,按一次单路显示开关,地址加一,转换模拟通道对应加一,假如按下循环按键就返回循环显示程序,功夫不负有心人,最终最终调试成功。 在此再次向率领我们这次课程设计老师说声:谢谢! 参考文件 [1] 蒋廷彪,刘电霆,高富强,方华.单片机原理及应用.出版社:重庆大学出版社.出版时间: 年1月第2次印刷 [2] 8051试验指导书电子电气综合实训系统.出版社:北京精仪达盛科技 [3] 徐爱钧.智能化测量控制仪表原理和设计(第二版)[M].北京:北京航空航天大学出版 社, [4] 吴金戌,沈庆阳,郭庭吉.8051单片机实践和应用[M].北京:清华大学出版社, [5] 张国勋.缩短ICL7135A/D采样程序时间一个方法[J].电子技术应用.1993.第一期 [6] 高峰.单片微型计算机和接口技术[M].北京科学出版社,. [7] 刘伟,赵俊逸,黄勇.一个基予C8051F单片机SOC型数据采录器设计和实现 [8]《新型AT89S52系列单片机及其应用》 孙育才 北京:清华大学出版社 -5 [9]《MCS-51系列单片机系统及其应用》 蔡美琴 高等教育出版 [10]《过程控制和仪表》 陈乐 中国计量学院出版社,-3 附录1 源程序 ORG 0000H SJMP MAIN ORG 0003H LJMP PINT0 MAIN:MOV 50H,#19H MOV 54H,#78H MOV DPTR,#7FF8H MOV 51H,DPH MOV 52H,DPL MOV R0,#04H MOV 53H,#00H MOV R7,#00H SETB EA SETB IT0 SETB EX0 L4: MOV R1,#00H ;R1存放十六进制转换成十进制后低两位 MOV R2,#00H ;R2存放十六进制转换成十进制后高两位 MOV R3,#0FFH ;循环显示十进制数 MOV R4,#00H ;存放A/D转换后十六进制数 MOV R5,#00H ;存放0.5相加后数 MOVX @DPTR,A ;开始A/D转换 LCALL DELAY ;调用延时大于A/D转换时间 MOVX A,@DPTR ;取A/D转换后十六进制数 INC DPTR ;A/D转换芯片地址加一 PUSH DPL ;压入堆栈 PUSH DPH DEC R0 ;4路转换次数减一 JZ SB2 ;判定是否是0V MOV R4,A L1:MOV A,R1 ;进行十六进制到十进制调整 ADD A,50H ;每次加19 DA A MOV R1,A JC L2 ;假如溢出则跳转到L2 MOV A,R5 ;进行0.5V相加 ADD A,54H DA A MOV R5,A JC L3 ;假如溢出则跳转到L3 SB1:DJNZ R4,L1 ;判定十六进制数是否转换完成,假如没有则循环 MOV A,R5 SWAP A ANL A,#0FH MOV B,R1 ADD A,B DA A MOV R1,A SB2:LCALL DISP LCALL DJW DJNZ R3,SB2 POP DPH POP DPL MOV A,53H INC A MOV 53H,A CJNE R0,#00H,L4 LJMP MAIN L2: CLR C MOV A,R2 ADD A,#01H DA A MOV R2,A LJMP SB1 L3: CLR C ;0.5V相加溢出后进位 MOV A,R1 ADD A,#01H DA A MOV R1,A LJMP SB1 DISP:MOV A,R1 ;显示电压子程序 SWAP A ANL A,#0FH MOV DPTR,#TAB1 MOVC A,@A+DPTR CLR P3.0 MOV P1,A LCALL DELAY SETB P3.0 MOV A,R2 ANL A,#0FH MOV DPTR,#TAB1 MOVC A,@A+DPTR CLR P3.1 MOV P1,A LCALL DELAY SETB P3.1 MOV A,R2 SWAP A ANL A,#0FH MOV DPTR,#TAB2 MOVC A,@A+DPTR CLR P3.4 MOV P1,A LCALL DELAY SETB P3.4 RET DJW:MOV A,53H ;显示第几路转换电压子程序 MOV DPTR,#TAB1 MOVC A,@A+DPTR CLR P3.5 MOV P1,A LCALL DELAY SETB P3.5 RET INTV: PUSH ACC ;只显示其中一路中止 PUSH 53H MOV 53H,#00H CX2: MOV R1,#00H MOV R2,#00H MOV R3,#0FFH MOV R4,#00H MOV DPH,51H MOV DPL,52H MOVX @DPTR,A LCALL DELAY MOVX A,@DPTR MOV R4,A JZ SB22 L11: MOV A,R1 ADD A,50H DA A MOV R1,A JC L22 MOV A,R5 ;进行0.5V相加 ADD A,54H DA A MOV R5,A JC L33 SB11:DJNZ R4,L11 MOV A,R5 SWAP A ANL A,#0FH MOV B,R1 ADD A,B DA A MOV R1,A SB22:LCALL DISP LCALL DJW JNB P3.3,EXIT DJNZ R3,SB22 JNB P3.2,CX1 LJMP CX2 L22:CLR C MOV A,R2 ADD A,#01H DA A MOV R2,A LJMP SB11 L33:CLR C MOV A,R1 ADD A,#01H DA A MOV R1,A LJMP SB11 CX1:INC R7 MOV A,53H INC A MOV 53H,A MOV DPH,51H MOV DPL,52H INC DPTR MOV 51H,DPH MOV 52H,DPL CJNE R7,#04H,CX2 MOV R7,#00H MOV 53H,#01H MOV DPTR,#7FF8H MOV 51H,DPH MOV 52H,DPL LJMP CX2 EXIT:POP 53H POP ACC RETI DELAY:MOV R6,#1H ;延时子程序 D1:MOV R5,#50H D2:NOP NOP DJNZ R5,D2 DJNZ R6,D1 RET TAB1:DB 3FH,06H,5BH,4FH,66H ;码表 DB 6DH,7DH,07H,7FH,6FH TAB2:DB 0BFH,86H,0DBH,0CFH,0E6H ;小数点段码表 DB 0EDH,0FDH,87H,0FFH,0EFH END 原理电路
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服