欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    简易数字电压表第六组.docx

    • 资源ID:8983389       资源大小:157.03KB        全文页数:29页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    简易数字电压表第六组.docx

    1、简易数字电压表第六组简易数字电压表作 者:王 稳 陈华烽 王 勇辅导老师:徐武雄 摘 要本系统采用了以单片机AT89S52为控制核心,用HD7279来控制键盘和显示部分,通过ADC0809来实现模拟和数字电压的转换,再通过数码管来显示电压值及选择的通道值。本系统要实现的功能如下:测量05V的8路输入电压值,并在四位LED数码管上显示,最高位显示通道号,通道采样由按键来选择(0号,1号 . 7号键分别来选择模拟通道0 .7 ) 。目录一、方案论证与比较 2二、主要电路原理图及相关分析计算 31.键盘和显示控制模块 32.模拟数字转换模块 53.单片机控制模块 6三、软件算法设计 6四、系统测试方

    2、法及数据 71测试仪器 72测试方法与结果 83测试结果分析 8六、总结 8七、参考文献 9八、附录 91基本元器件清单 9电阻 9电容 92芯片引脚图 10AT89S52 10ADC0809 1214024分频器 133软件设计程序清单 13一、方案论证与比较本系统由单片机控制模块、键盘和显示控制模块、模数转换模块等组成。总体的框架图如图1所示。图1从整体的框架来看,本系统设计过程中,就是键盘和显示控制模块有两种不同的设计方案,而其他的模块设计上基本上使用了一种方案。如:单片机控制模块使用的是ATMEL公司的AT89S52;模拟数字转换模块使用的是ADC0809芯片。键盘和显示控制模块的两种

    3、不同的方案如下:方案一:采用逻辑门电路及开关去实现,比如使用74LS244去驱动显示部分,但实现起来比较复杂且不稳定、不方便。方案二:使用芯片HD7279(串行接口8位LED数码管及64位键键盘智能控制芯片),单片机可以方便的对它进行适时的控制,功能极其的强大,所以是首选的芯片。总上所述,方案二比较实用,故选择方案二。二、主要电路原理图及相关分析计算1.键盘和显示控制模块本模块使用的是HD7279芯片。HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或只独立的智能显示驱动芯片,该芯片同时还可连接多达键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。HD7279内部含有译码器,

    4、可直接接受BCD码或16进制码并同时具有种译码方式,此外还具有多种控制指令如消隐闪烁左移右移段寻址等。HD7279具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口。 HD7279典型的应用电路图如图2所示:图2本系统中,只用了它64键中的8个,以及用了8个显示管中的4个,而且非常方便的跟单片机系统连接起来,从而可以达到设计的功能要求,所以在键盘和显示模块中,我们选用了HD7279芯片。2.模拟数字转换模块本模块采用的是芯片ADC0809。ADC0809是8位逐次比较式A/D转换芯片,具有8路模拟量输入通道。其内部逻辑结构如图3所示: CLKSTARTD0D1D2D3D4D5D6D7

    5、VCCGNDEOCALECBAIN7IN6IN5IN4IN3IN2IN0IN1VREF()VREF(+) 图3图中,8路模拟开关用于选通8个模拟通道,允许8路模拟量分时输入,并公用一个A/D转换器进行转换。IN0IN7为8路模拟量输入器,模拟输入电压的范围是05V,对应的数字量为00HFFH,转换时间为100us,ADDA、ADDB、ADDC为通道地址线,用于选择通道。其通道寻址如表1所示。ALE是通道地址锁存信号,其上升沿时,把ADDA、ADDB、ADDC地址状态地址锁存器中。VREF(+)、VREF()接基准电源,在精度要求不太高的情况下,供电电源就可用作基准电源。START是启动引脚,其

    6、上脉冲的下降沿启动一次新的AD转换。EOC是转换结束信号,可用于向单片机申请中断或供单片机查询。CLK是时钟端,典型的时钟频率为640kHz。DB0DB7是数字量输出。 ADC0809通道地址选择表ADDC ADDB ADDA选择的通道 0 0 0IN0 0 0 1IN1 0 1 0IN2 0 1 1IN3 1 0 0IN4 1 0 1 IN5 1 1 0IN6 1 1 1IN7 表1 ADC0809的转换时钟由单片机的ALE提供。3.单片机控制模块单片机控制模块使用的芯片是ATMEL公司生产的AT89S52。使用该芯片很容易实现对其他模块的控制,所以整个系统的工作核心还是单片机控制模块,通过

    7、对单片机AT89S52写入程序,可以方便的用软件来控制整个过程,而且由于AT89S52中有一个可以反复擦写的FLASH,所以可以很方便的修改程序。三、软件算法设计由于控制模块采用的是AT89S52单片机系统,所以要实现对整个系统的控制一定要一个好的程序,而要写出好的程序必须先有好的程序流程图,本程序设计并不是非常复杂,总体的程序流程图如图4所示。图4本程序的清单见附录。四、系统测试方法及数据1测试仪器Wave E2000编译器标准数字万用表UT-512测试方法与结果采用Wave E2000编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧好程序后进行软硬件调试,最后进行端口电压的

    8、对比测试,测试对比表见表2,表中标准电压值采用UT51数字万用表测试.简易数字电压表与“标准”数字电压表对比测试表标准/V0.000.150.851.001.251.751.982.322.65简易电压测得值/V0.000.170.861.021.261.762.002.332.66绝对误差/V0.00+0.02+0.01+0.02+0.01+0.01+0.02+0.01+0.01标准误差/V3.003.453.554.004.504.604.704.814.90简易电压表测得值/V3.013.473.564.014.524.624.724.824.92绝对误差/V+0.01+0.02+0.0

    9、1+0.01+0.02+0.02+0.02+0.01+0.02表23测试结果分析从表2中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02 V以内,这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合可完全满足要求。六、总结整个系统本着简单可靠的原则完成了本设计任务,达到了设计的基本功能要求,但在性能及成本上还有待改进。 七、参考文献1 康华光(.)电子技术基础模拟部分( M)(.)北京(:)高等教育出版社(,)1999年(.)2 陈大钦(.)电子技术基础实验(M)(.)北京(:)高等教育出版社(,)2003年(.)3 谢自美(.)电子线路设计实验测试(M

    10、)(.)武汉(:)华中科技大学出版社(,)2002年(.)4 李建忠(.)单片机原理及应用(M)(.)西安(:)西安电子科技大学出版(,)2002年(.)5 李光飞(.)单片机课程设计实例指导(M)(.)北京(:)北京航空航天技术大学出版社(,)2003年(.)八、附录1基本元器件清单电阻电容2芯片引脚图AT89S52如图5所示图5AT89S52引脚功能如下: P0口8位漏极开路的双向I/O口 当使用片外存储及外扩I/O口时, P0口作为低字节地址/数据复用线在编程时P0口可用于接收指令代码字节,在程序校验是,P0口可输出指令字节(延时需要加外部上拉电阻) P0口可驱动8个TTL负载 P1口8

    11、位准双向I/O口,具有内部上拉电阻P -1口是为用户准备的I/O口双向口,在编程和校验时,可用做输入低8位地址,用做输入时,应先将输出锁存器置1, P1口可驱动4个TTL负载 P2口8位、2准双向I/O口,具有内部上拉电阻当使用片外存储或外扩I/O口时,P2口输出高8位地址。在编程/校检时,P2口可接收高字节地址和某些控制信号。P2口也可作普通I/O口使用。用做输入时,应先将输出锁存器置1。P2口可驱动4个TTL负载。 P3口8位、准双向I/O口,具有内部上拉电阻。P3口可作为普通I/O口。用做输入时,应先将输出锁存器置1。在编程/校检时,P3口接收某些控制信号。它可驱动4个TTL负载。P3口

    12、还提供各种代替功能,如表3所示。 P3口替代功能引脚替代功能 说 明P3.0RXD串行数据接收P3.1TXD串行数据发送 P3.2INT0 外部中断0申请P3.3INT1外部中断1申请P3.4T0定时器0外部事件计数输入P3.5T1定时器1外部事件计数输入P3.6W R外部RAM写选通P3.7R D外部RAM读选通表3 RST-复位输入,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期(即24个晶振周期)以上的高电平,将器件复位。 EA/VPP-外部程序存储器访问允许信号EA(External Access Enable)。 当EA信号接地时,对ROM的读操作限定在外部程序存储器,地

    13、址为0000HFFFFH;当EA接VCC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压(AT89C51的VPP为5V或12V;AT89C51 的VPP为12V)。在编程校验时,该引脚可接VCC.。 PSEN-外部程序存储器读选通信号PSEN (Program Store Enable )在系统扩展时,ALE的下降沿将0口输出的低位地址锁存在外接的地址存储器中,以实现地字节地址,和数据的分时传送此外,ALE端连续输出正脉冲,频率为晶振频率的,可用作外部定时脉冲使用但要注意,每次访问外ROM时要丢失一个ALE脉冲在编程期间,该引脚输入编程脉冲(PR

    14、OG)。 XTAL1-片内振荡器反向放大器和时钟发生线路的输入端使用片内振荡器时,连接外部石英晶体和微调电容 XTAL2-片内振荡器反向放大器的输入端,当使用片内振荡器时,外接石英晶体和微调电容当使用片内振荡器时,引脚XTAL1接收外振荡器信号,XTAL2悬空 VCC-电源电压输入引脚 GND-电源地ADC0809如图6所示图6ADC0809引脚功能 IN7IN0:8路模拟电压的输入范围是05V。 ADDAADDC:地址输入信号,译码后选择模拟量中的一路进行A/D转换。 ALE:地址锁存允许输入信号,上升沿有效,信号有效时锁存地址信号,并启动译码电路,选中一路模拟量输入。 START:启动转换

    15、输入信号,正脉冲有效。信号的上升沿复位内部寄存器,下降沿启动控制逻辑,开始A/D转换。 EOC:转换结束输出信号,该信号的下降沿,表示转换正在进行,EOC变为高电平时,表示转换结束。 OE:输出允许信号,高电平有效,信号有效时,转换结果送到数据输出线。 D0D7:8位数字信号输出。 CLOCK:外部时钟输入,始终最高频率为640kHz,当频率为640kHz,转换时间约为100us. VREF(+)、VREF(-):基准电压,单记性输入时,VREF(+)接+5V,VREF(-)接地.VCC :电源电压,接+5V.GND:信号接地端.14024分频器(如图7所示)图73软件设计程序清单;*;变量定

    16、义;*;*;变量定义;*BIT_COUNT DATA 03FHTIMER DATA 03EHTIMER1 DATA 03DHTIMER2 DATA 03CHTIMER3 DATA 03BHTIMER4 DATA 03AHSEG_NUM DATA 039HSEG_CNT DATA 038HLAST_SEG DATA 037HDATA_IN DATA 020HDATA_OUT DATA 021H;*;输入输出引脚定义;*CS BIT P1.4 CLK BIT P1.5DAT BIT P1.2KEY BIT P1.3 ORG 00H AJMP START ORG 03H AJMP INT00 ;外部

    17、中断0 ;ORG 080H;*; 主程序;*START: MOV SP,#50H MOV P1,#11011011B ;初始化p1端口 MOV R0,30H ;r0为存放采集到的数据 CLR IT0 ;设置外部 SETB EA ;cpu开放中断 SETB EX0 ;允许外部中断0 MAIN: MOV DATA_OUT,#10100100B ;复位指令 LCALL SEND ;发送该字节到HD7279 lCALL DEMO_DELAY lCALL DEMO_DELAY lCALL DEMO_DELAY lCALL DEMO_DELAY SETB CS MOV DATA_OUT,#10001000

    18、B ;闪烁指令 LCALL SEND MOV DATA_OUT,#11110111B ;最高位为闪烁位(4) LCALL SEND MOV DATA_OUT,#10010011B ;下载数据但不译码好处是可以自己选择字型 LCALL SEND MOV DATA_OUT,#00001000B ;显示下画线_ LCALL SEND MOV DATA_OUT,#10000000B LCALL SEND MOV DATA_OUT,#0000000B LCALL SEND MOV DATA_OUT,#10000001B LCALL SEND MOV DATA_OUT,#00000000B LCALL S

    19、END MOV DATA_OUT,#10000010B LCALL SEND MOV DATA_OUT,#10000000B LCALL SEND SETB CS ;不选中 MOV TIMER4,#0 MOV TIMER3,#0 MOV TIMER2,#0WAIT_KEY: MOV A,TIMER4 ;计时 ADD A,#1 MOV TIMER4,A MOV A,TIMER3 ADDC A,#0 MOV TIMER3,A MOV A,TIMER2 ADDC A,#0 MOV TIMER2,A MOV A,TIMER4 ;检查是否到20秒 CJNE A,#0,CHECK_KEY MOV A,TI

    20、MER3 CJNE A,#0,CHECK_KEY MOV A,TIMER2 CJNE A,#20,CHECK_KEY JMP MAIN ;20秒内无键按下,从头开始CHECK_KEY: JB KEY,WAIT_KEY ;未到时,检查按键,如无键则继续计时 MOV DATA_OUT,#00010101B ; 有键按下,读键码 LCALL SEND LCALL RECEIVE SETB CS MOV TIMER4,#0 ;清计时器 MOV TIMER3,#0 MOV TIMER2,#0 MOV R1,DATA_IN ;取数到A中 MOV DPTR,#TABLE L1: MOV A,#00H MOV

    21、C A,A+DPTR JZ WAIT_KEY CLR C SUBB A,R1 JZ NOT_S_15 INC DPTR JMP L1 NOT_S_15: MOV DATA_OUT,#11001011B ;在第四位显示键码低8位 LCALL SEND CLR C MOV A,DATA_IN SUBB A,#18H MOV LAST_SEG,A ;保存起来在LAST_SEG中 MOV DATA_OUT,A LCALL SEND SETB CS;WAIT_RELEASE2: JNB KEY,WAIT_RELEASE2 ;开始启动ADC0809 CLR C MOV DPTR,#0FEF8H ;进入地址

    22、为Int0,初始地址 MOV A,LAST_SEG ADD A,DPL ;进入与实际接触的低8地址 MOV DPL,A MOV A,#00H ;高位值不动 MOVX DPTR,A ;驱动ADC0809启动,因为用的是M0VX指令,A是的值无意义 DELAY: MOV R7,#02 ;启动时延时25ms,因为这是HD7279的特点D2: MOV R4,#25D3: MOV R3,#248 DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 JMP WAIT_KEY ;中断等待 INT00: CLR C MOV DPTR,#0FEF8H MOV A,LAST_SEG ADD A,DPl

    23、 MOV DPl,A MOVX A,DPTR ;读取转换后的数字量 MOV R0,A CLR EA ;已经转换完就关闭 CLR EX0 ;禁止外部中断0 LCALL L5 ;调用显示子程序 MOV R1,#05DISP1: LCALL DISP DJNZ R1,DISP1 MOV DPTR,#0FE8FH ; MOVX DPTR,A JMP MAIN L5: CLR C MOV R5,#00H MOV R4,#00H MOV R3,#08HNEXT: RLC A MOV R2,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 MOV R

    24、4,A MOV A,R2 DJNZ R3,NEXTL6: MOV A,R5 ADD A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A RET DISP: MOV A,R5 ANL A,#0FH ORL A,#10H MOV DATA_OUT,#10000000B LCALL SEND ANL A,#01111111B ;去DP点 MOV DATA_OUT,A LCALL SEND LCALL DELAY1 MOV A,R5 ANL A,#0F0H SWAP A ORL A,#20H MOV DATA_OUT,#10000000B LCALL

    25、 SEND MOV DATA_OUT,A ;DP点 LCALL SEND LCALL DELAY1 MOV A,R4 ANL A,#0FH ORL A,#40H MOV DATA_OUT,#10000000B LCALL SEND ANL A,#01111111B ;去DP点 MOV DATA_OUT,A LCALL SEND LCALL DELAY1 CLR A RET SEND: MOV BIT_COUNT,#08 CLR CS ; 选中HD7279 ACALL LONG_DELAYSEND_LOOP: MOV C,DATA_OUT.7 MOV DAT,C SETB CLK ;启动 MOV

    26、 A,DATA_OUT RL A MOV DATA_OUT,A ACALL SHORT_DELAY CLR CLK ACALL SHORT_DELAY DJNZ BIT_COUNT,SEND_LOOP CLR DAT RETRECEIVE: MOV BIT_COUNT,#08 SETB DAT ACALL LONG_DELAYRECEIVE_LOOP: SETB CLK ACALL SHORT_DELAY MOV A,DATA_IN RL A MOV DATA_IN,A MOV C,DAT MOV DATA_IN.0,C CLR CLK ACALL SHORT_DELAY DJNZ BIT_C

    27、OUNT,RECEIVE_LOOP CLR DAT RETLONG_DELAY: MOV TIMER,#25 DJNZ TIMER,$ RET SHORT_DELAY: MOV TIMER,#4 DJNZ TIMER,$ RET DELAY1: MOV R7,#02 ;启动时延时5ms,因为这是HD7279的特点D12: MOV R4,#05D13: MOV R3,#248 DJNZ R3,$ DJNZ R4,D13 DJNZ R7,D12 RETDEMO_DELAY: MOV TIMER1,#50 ;延时约50MSDEMO_DELAY_1: MOV TIMER,#250DEMO_DELAY_2: NOP NOP DJNZ TIMER,DEMO_DELAY_2 DJNZ TIMER1,DEMO_DELAY_1 RET TABLE: DB 18H,19H,1AH,1BH,1CH,1DH,1EH,1FH,00H END


    注意事项

    本文(简易数字电压表第六组.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开