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

    单片机实现数字电压表Word文档下载推荐.docx

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

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

    单片机实现数字电压表Word文档下载推荐.docx

    1、因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。2. 硬件单元电路设计2.1数字电压表结构框图结构如(图1)所示 2.1.1 AT89C51单片机简介AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89C51在众多嵌入式控制应用系统中

    2、得到广泛应用。51单片机内包含以下几个部件:1) 8位微处理器(CPU)。2) 数据存储器(128B RAM)。3) 程序存储器(ROM/EPROM)。4) 4个8位可编程并行I/O口(P0口,P1口,P2口,P3口)。5) 1个全双工的异步串行口。6) 2个16定时器/计数器。7) 中断系统。8) 特殊功能寄存器(SFR)。单片机片内结构如(图2)所示:2.1.2 ADC0832转换器简介ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们

    3、了解A/D转换器的原理,有助于我们单片机技术水平的提高。芯片如下(图3)所示:芯片接口说明如下:CS_ 片选使能,低电平芯片使能。CH0 模拟输入通道0,或作为IN+/-使用。CH1 模拟输入通道1,或作为IN+/-使用。GND 芯片参考0 电位(地)。DI 数据信号输入,选择通道控制。DO 数据信号输出,转换数据输出。CLK 芯片时钟输入。Vcc/REF 电源输入及参考电压输入(复用)。工作原理如下:正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一

    4、根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能。当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、 “0”时,将C

    5、H0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将

    6、CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。2.1.3 时钟电路XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路如下(图4)所示:2.1.4 复位电路由电容串联电阻构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来

    7、决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍.复位电路如下(图5)所示。2.1.5 LED显示电路本项目所用显示屏为4位LED显示屏。本LED显示器为8段(DP为小数点段),每一段为一个发光二极管。发光二极管有共阳极和共阴极两种。本显示器的发光二极管为共阳极数码管。发光二极管的阳极连接在一起,通常在此共阳极接正电压,当某个发光二极管的阴极接低电平时,发

    8、光二极管被点亮,相应的段被显示。通过给LED显示器提供不同的代码,是这些不同的LED显示器相应的段发光显示不同的字型,这些代码称为段码。表1本项目所用段码值如下 (表 1) 所示:显示字符123456789共阳极段码0x030x9f0x250x0d0x990x490x410x1f0x01093. 软件单元电路设计3.1 主程序流程图主程序流程图如下(图6)所示:3.2显示子程序流程图显示子程序流程图如下(图7)所示:3.3 A/D转换子程序流程图A/D转换子程序流程图如下(图8)所示:3.4 数据处理子程序流程图数据处理子程序流程图,如下(图9)所示:4. 数字电压表仿真设计图与实物图4.1

    9、仿真图如下(图10)所示:4.2 器件清单表2如下(表2)所示所用器件名称型号及大小个数单片机开发板AT89C51一个滑动变阻器10K两个AD转换器ADC0832LED共阳跳线插口-若干跳线4.3 硬件电路实物图电路实物图如下(图11)所示:电路实物图如下(图12)所示:5. 程序代码#include intrins.h/*端口定义*/sbit CS = P35;sbit Clk = P33;sbit DATI = P34;sbit DATO = P34;sbit P20=P24 ;/*定义全局变量*/unsigned char dat = 0x00; /AD值unsigned char co

    10、unt = 0x00; /定时器计数unsigned char CH; /通道变量unsigned char dis = 0x00, 0x00,0x00; /显示数值/*共阳LED段码表*/unsigned char code tab=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09;char code tablewe= 0xfd,0xfb,0xf7,0xef,0xdf,0xfe ;/*函数功能:AD转换子程序入口参数:CH出口参数:dat*/unsigned char adc0832(unsigned char CH) unsigned ch

    11、ar i,test,adval; adval = 0x00; test = 0x00; Clk = 0; /初始化 DATI = 1; _nop_(); CS = 0; Clk = 1; if ( CH = 0x00 ) /通道选择 /通道0的第一位 DATI = 0; /通道0的第二位 else /通道1的第一位 /通道1的第二位 for( i = 0;i 8;i+ ) /读取前8位的值 adval = 1; if (DATO) adval |= 0x01; adval |= 0x00; for (i = 0; i test |= 0x80; else test |= 0x00; if (a

    12、dval = test) /比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉 dat = test; nop_(); CS = 1; /释放ADC0832 DATO = 1; return dat;延时子程序void delay(void) int k; for(k=10;k500;k+);将0-255级换算成0.00-5.00的电压数值ivoid convdata(unsigned char i) dis0 = i/51; /个位 dis1 = (i%51)*10/51; /小数点后第一位 dis2 = (i%51)*10%51)*10/51; /小数点后第二位数码管

    13、显示子程序void display(void) P2=0xff; P0=tabdis0& 0xfe; /显示个位和小数点11111110 delay(); P2=0xdf; /11011111 P0=tabdis1; /显示小数点后第一位 P2=0xbf; /10111111 P0=tabdis2; /显示小数点后第二位 P2=0x7f; /01111111 P0=0xff; P2=0xef; /11101111主程序void main(void) /端口初始化/延时 CH = 0x00; /在这里选择通道 0x00或0x01 TMOD = 0x01; /设置中断 TH0=(65536-500

    14、00)/256;/定时器1初值定时50ms TL0=(65536-50000)%256; IE = 0x82; TR0 = 1; while(1) /主循环 dat = adc0832(CH); convdata(dat); /数据转换 display(); /*定时器中断延时程序 这一段的作用时隔一段时间抽样一次 否侧显示的最后一位会不稳定void timer0(void) interrupt 1 count+; if (count = 0x01) count = 0x00; dat = adc0832(CH); 6. 项目设计总计通过这次设计,使我深入了解了AT89C51单片机和ADC08

    15、32(AD转换器)的结构和特点及数字电压表的工作原理,加深了对课本理论知识的理解,锻炼了实践动手能力,理论知识与实践设计相结合,培养了创新开发的思维。在此次课程设计中,收获知识的同时,我还收获了阅历。在此过程中,我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。7. 参考文献1 陈朝元,鲁五一.Proteus软件在自动控制系统仿真中的应用J.系统仿真学报, 2008(1):318-320.2 毛谦敏.单片机原理及应用设计系统M北京:国防工业出版社,2008:22-26.3 康华光.电子技术基础(数字部分) M. 5版. 北京:高等教育出版, 2005: 290-293. 评 语成 绩指导教师(签字) 年 月 日


    注意事项

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

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




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

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开