ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:327.70KB ,
资源ID:21429935      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21429935.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计数字电压表Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计数字电压表Word文档格式.docx

1、电路原理图见附录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端口用作单路显示时选择通道。

2、P0端口作A/D转换数据读入用,P2端口用作0808的A/D转换控制。2.4 AT89C51的功能介绍2.4.1简单概述AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯

3、片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.4.2主要功能特性(1) 4K字节可编程闪烁存储器。 (2) 32个双向I/O口;1288位内部RAM 。(3) 2个16位可编程定时/计数器中断,时钟频率0-24MHz。(4) 可编程串行通道。(5) 5个中断源。(6) 2个读写中断口线。(7) 低功耗的闲置和掉电模式。(8) 片内振荡器和时钟电路。2.4.3 AT89C51的引脚介绍 (1)电源引脚电源引脚接入单片机的工作电源。Vcc(40引脚):+5V电源。GND(20引脚

4、):接地。(2)时钟引脚XTAL1(19引脚):片内振荡器反相放大器和时钟发生器电路的输入端。XTAL2(20引脚):片内振荡器反相放大器的输出端。 (3)复位RST(9引脚)在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。(4)/Vpp(31引脚)为外部程序存储器访问允许控制端。当它为高电平时,单片机读片内程序存储器,在PC值超过0FFFH后将自动转向外部程序存储器。当它为低电平时,只限定在外部程序存储器,地址为0000HFFFFH。Vpp为该引脚的第二功能,为编程电压输入端。(5)ALE/(30引脚)AL

5、E为低八位地址锁存允许信号。在系统扩展时,ALE的负跳沿江P0口发出的第八位地址锁存在外接的地址锁存器,然后再作为数据端口。为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。(6)(29引脚)片外程序存储器的读选通信号。在单片机读片外程序存储器时,此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。(7) pin39-pin32为P0.0-P0.7输入输出脚,称为P0口。P0是一个8位漏极开路型双向I/O口。内部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。通常在使用时外接上拉电阻,用来驱动多个数码管。 在访问外部程序和外部数据存储器时,

6、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位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(1

7、0)Pin10-Pin17为P3.0-P3.7输入输出脚,称为P3口。P3口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。对内部Flash程序存储器编程时,接控制信息。2.5 ADC0808的引脚及功能介绍2.5.1芯片概述ADC0808是一种典型的A/D转换器。它是由8位A/D转换器,一个8路模拟量开关,8位模拟量地址锁存译码器和一个三态数据输出锁存器组成; +5V单电源供电,转化 时间在100us左右;内部没有时钟电路,故需外部提供时钟信号。芯片模型如图3-4所示。2.5.2 引脚简介 (1) IN0IN7:8路模拟量输入端。(2)

8、 D0D7: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=000111分别对应IN0IN7通道的地址端口。2.5.3 ADC0808的转换原理ADC 0808 采用逐次比较的方法完成A/D转换,由单一的+5V电源供电。片内带有锁存功能的8路选1的模拟开关,由A、B、C的编码来

9、决定所选的通道。ADC0809完成一次转换需100s左右,它具有输出TTL三态锁存缓冲器,可直接连接到AT89C51的数据总线上。通过适当的外接电路,ADC0808可对05V的模拟信号进行转换。2.674LS373芯片的引脚及功能2.6.1芯片概述74LS373是一种带有三态门的8D锁存器,其在本设计中是锁存P0口的低8位地址,芯片模型如图3-5所示。2.6.2引脚介绍(1) D0D7:8位数据输入线;(2) Q0Q7:8位数据输出线(3) G:数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。:数据输出允许信号,低电平有效。当该信号为

10、低电平时,三态门打开,锁存器中的数据输出到数据输出线上,当该信号为高电平时,输出线为高阻态。2.7 LED数码管的控制显示2.7.1 LED数码管的接口简介LED 的段码端口AG分别接至AT89C51的P1.0P1.7口,位选端14分别接至P3.5、P3.4、P3.1、P3.0,如图3-7所示。4系统软件程序的设计多路数字电压表系统软件程序主要有主程序、A/D转换子程序和中断显示程序组成。3.1 主程序主程序包含初始化部分、调用A/D转换子程序和相应外部0中断显示电压数值程序,初始化部分包含存放通道的缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位00H控制,

11、初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示控制,00H位通过单路、循环按键控制。流程图如图4-1所示。3.2 A/D转换子程序A/D转换子程序用于对ADC0808的4路输入模拟电压进行A/D转换,并将转换的数值存入4个相应的存储单元中,A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次,3.3 中断显示程序设计中采用中断的方式来读取转换完成的数据能节省CPU的资源当系统设置好后,一旦数据转换完成,便会进入外部中断0,然后在中断中读取转换的数值,处理数据并送数码管显示输出。LED 数码管采用软件译码动态扫描的方式。在中断程序中包含多路循环显示程序和单路显

12、示程序,多路循环显示程序把4个存储单元的数值依次取出送到4个数码管上显示,每一路显示一秒。单路显示程序只对当前选中的一路数据进行显示。每路数据显示时需经过转换变成十进制BCD码,放于4个数码管显示缓冲区中。单路或多路循环显示通过标志位00H控制。在显示控制程序中加入了对单路或多路循环按键的判断。数字量送P1口取段码地址P3.1=1?调用循环显示程序调用单路显示程序显示的是第4路重新调用显示程序NY图4-3中断显示程序流程图5电压表的调试及性能分析5.1 调试与测试本设计应用Proteus6及KEIL51软件,首先根据自己设计的电路图用Proteus6软件画出电路模型,关于这个软件的使用通过查一

13、些资料和自己的摸索学习;然后我们用KEIL51软件对所编写的程序进行编译、链接,如果没有错误和警告便可生成程序的hex文件,将此文件加到电路图上使软硬件结合运行,最后进行端口电压的对比测试,测试的第一路对比见图4-1中标准电压值采用Proteus6软件中的模拟电压表测得。从图中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合可以完全满足要求。6电路仿真图图6-1为4路通道用模拟电压表测得的理论值。图6-1模拟电压表测量结果图6-2为进行模拟仿真时的电路图图6-2仿真时的电路图7总结经过一周的努力

14、终于设计成功,LED的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。由于仪器误差,LED显示最大值只能是4.9V,离标准最大值5.0V已经不远,达到预期目的,设计成功。 本设计参考了教材上第十一章89C51与ADC0809转换的接口连线,设计出电路图的连线,从并中理解了许多基本的知识和接线方法,在程序的设计与电压表调试的过程中中遇到了很多的问题,刚开始时四个数码管根本不显示,后来发现用的是共阳极的数码管,而设计是共阴极的,更换后数码管终于显示,但问题又出现了,单路显示和循环显示的开关不能控制电路的单路显示和循环显示,经过仔细地检查电路和修改程序,采用中断的

15、方法,产生一次外部中断0,程序转移到单路显示,按一次单路显示开关,地址加一,转换的模拟通道相应的加一,如果按下循环按键就返回循环显示的程序,功夫不负有心人,最后终于调试成功。在此再次向带领我们这次课程设计的老师说声:谢谢! 附录1 源程序 ORG 0000H SJMP MAIN ORG 0003H LJMP INTO 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: MO

16、V 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

17、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 MOV R5,A JC L3 ;如果溢出则跳转到L3 SB1:DJNZ R4,L1 ;判断十六进制数是否转换完成,如果没有则循环 MOV A,R5 SWAP A ANL A,#0FH MOV B,R1 ADD A,B SB2:LCALL DISP LCALL DJW DJNZ R3,SB2 POP DPH POP DPL MOV A,53H INC A MOV 53H,A CJ

18、NE R0,#00H,L4 LJMP MAIN L2: CLR C MOV A,R2 ADD A,#01H MOV R2,A LJMP SB1 L3: CLR C ;0.5V相加溢出后进位 MOV A,R1 DISP:显示电压子程序 MOV DPTR,#TAB1 MOVC A,A+DPTR CLR P3.0 MOV P1,A LCALL DELAY SETB P3.0 CLR P3.1 SETB P3.1 MOV DPTR,#TAB2 CLR P3.4 SETB P3.4 RET DJW:MOV A,53H ;显示第几路转换电压子程序 CLR P3.5 SETB P3.5INTV: PUSH

19、ACC ;只显示其中一路中断 PUSH 53H MOV 53H,#00HCX2: MOV R1,#00H MOV R2,#00H MOV R3,#0FFH MOV R4,#00H MOV DPH,51H MOV DPL,52H MOVX DPTR,A MOVX A,DPTR JZ SB22 L11: ADD A,50H DA A MOV R1,A JC L22 JC L33 SB11:DJNZ R4,L11 SB22: JNB P3.3,EXIT DJNZ R3,SB22 JNB P3.2,CX1 LJMP CX2 L22:CLR C LJMP SB11 L33: CX1:INC R7 INC DPTR CJNE R7,#04H,CX2 MOV 53H,#01H EXIT:POP 53H POP ACC RETI DELAY:MOV R6,#1H ;延时子程序 D1:MOV R5,#50H D2:NOP NOP DJNZ R5,D2 DJNZ R6,D1 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原理电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1