单片机数字电压表设计LED显示含C源代码

上传人:wdg****89 文档编号:71028199 上传时间:2022-04-06 格式:DOC 页数:13 大小:655KB
收藏 版权申诉 举报 下载
单片机数字电压表设计LED显示含C源代码_第1页
第1页 / 共13页
单片机数字电压表设计LED显示含C源代码_第2页
第2页 / 共13页
单片机数字电压表设计LED显示含C源代码_第3页
第3页 / 共13页
资源描述:

《单片机数字电压表设计LED显示含C源代码》由会员分享,可在线阅读,更多相关《单片机数字电压表设计LED显示含C源代码(13页珍藏版)》请在装配图网上搜索。

1、-1.绪论31.1 课程设计要求31.2 数字电压表介绍32.硬件单元电路设计32.1数字电压表构造框图32.1.1 AT89C51单片机简介42.1.2 ADC0832转换器简介42.1.3 时钟电路62.1.4 复位电路62.1.5 LED显示电路73.软件单元电路设计73.1 主程序流程图73.2显示子程序流程图83.3 A/D转换子程序流程图93.4 数据处理子程序流程图94.数字电压表仿真设计图与实物图104.1 仿真图104.2 器件清单104.3 硬件电路实物图115.程序代码126.工程设计总计197.参考文献191. 绪论1.1 课程设计要求使用单片机AT89C51和ADC0

2、832设计一个数字电压表,能够测量05V之间的直流电压值,两位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;能用两位LED进展轮流显示或单路选择显示,显示精度0.1伏。1.2 数字电压表介绍数字电压表简称DVM,数字电压表根本原理是将输入的模拟电压信号转化为数字信号,再进展输出显示。而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器根本构造是由采样保持,量化,编码等几局部组成。因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。2. 硬件单元电

3、路设计2.1数字电压表构造框图构造如图1所示图1 AT89C51单片机简介AT89C51是一个低功耗,高性能CMOS8位单片机,片含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚构造,芯片集成了通用8位中央处理器和ISP Flash存储单元,AT89C51在众多嵌入式控制应用系统中得到广泛应用。51单片机包含以下几个部件:1) 8位微处理器CPU。2) 数据存储器128B RAM。3) 程序存储器ROM/EPROM。4) 4

4、个8位可编程并行I/O口P0口,P1口,P2口,P3口。5) 1个全双工的异步串行口。6) 2个16定时器/计数器。7) 中断系统。8) 特殊功能存放器SFR。图2单片机片构造如图2所示: ADC0832转换器简介ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。芯片如下图3所示:图3芯片接口说明如下:CS_ 片选使能,低电平芯片使能。CH0 模拟输入通道0,或作为IN+/-使用。CH

5、1 模拟输入通道1,或作为IN+/-使用。GND 芯片参考0 电位地。DI 数据信号输入,选择通道控制。DO 数据信号输出,转换数据输出。CLK 芯片时钟输入。Vcc/REF 电源输入及参考电压输入复用。工作原理如下:正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进展A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全

6、完毕。此时芯片开场转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能。当此2 位数据为“1、“0时,只对CH0 进展单通道转换。当2位数据为“1、“1时,只对CH1进展单通道转换。当2 位数据为“0、 “0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进展输入。当2 位数据为“0、“1时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进展输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入

7、作用,此后DO/DI端则开场利用数据输出DO进展转换数据的读取。从第4个脉冲下沉开场由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开场输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的完毕。最后将CS置高电平禁用芯片,直接将转换后的数据进展处理就可以了。 时钟电路*TAL1是片振荡器的反相放大器输入端,*TAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到*TAL1,而*TAL2悬空。部方

8、式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz选择。电容取30PF左右。系统的时钟电路设计是采用的部方式,即利用芯片部的振荡电路如下图4所示:图4 复位电路由电容串联电阻构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期

9、的高电平.至于如何具体定量计算,可以参考电路分析相关书籍.复位电路如下图5所示。图5 LED显示电路本工程所用显示屏为4位LED显示屏。本LED显示器为8段DP为小数点段,每一段为一个发光二极管。发光二极管有共阳极和共阴极两种。本显示器的发光二极管为共阳极数码管。发光二极管的阳极连接在一起,通常在此共阳极接正电压,当*个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。通过给LED显示器提供不同的代码,是这些不同的LED显示器相应的段发光显示不同的字型,这些代码称为段码。本工程所用段码值如下 表 1 所示:显示字符0123456789共阳极段码0*030*9f0*250*0d0*9

10、90*490*410*1f0*0109表13. 软件单元电路设计3.1 主程序流程图主程序流程图如下图6所示:图63.2显示子程序流程图显示子程序流程图如下图7所示:图73.3 A/D转换子程序流程图A/D转换子程序流程图如下图8所示:图83.4 数据处理子程序流程图数据处理子程序流程图,如下图9所示:图94. 数字电压表仿真设计图与实物图4.1 仿真图如下图10所示:图104.2 器件清单表2如下表2所示所用器件名称型号及大小个数单片机开发板AT89C51一个滑动变阻器10K两个AD转换器ADC0832一个LED共阳一个跳线插口-假设干跳线-假设干4.3 硬件电路实物图图11电路实物图如下图

11、11所示:图12电路实物图如下图12所示:5. 程序代码*include *include /*端口定义*/sbit CS = P35;sbit Clk = P33;sbit DATI = P34;sbit DATO = P34;sbit P20=P24 ;/*定义全局变量*/unsigned char dat = 0*00; /AD值unsigned char count = 0*00; /定时器计数unsigned char CH; /通道变量unsigned char dis = 0*00, 0*00,0*00; /显示数值/*共阳LED段码表*/unsigned char code t

12、ab=0*03,0*9f,0*25,0*0d,0*99,0*49,0*41,0*1f,0*01,0*09;char code tablewe= 0*fd,0*fb,0*f7,0*ef,0*df,0*fe ;/*函数功能:AD转换子程序入口参数:CH出口参数:dat*/unsigned char adc0832(unsigned char CH) unsigned char i,test,adval; adval = 0*00; test = 0*00; Clk = 0; /初始化 DATI = 1; _nop_(); CS = 0; _nop_(); Clk = 1; _nop_(); if

13、( CH = 0*00 ) /通道选择 Clk = 0; DATI = 1; /通道0的第一位 _nop_(); Clk = 1; _nop_(); Clk = 0; DATI = 0; /通道0的第二位 _nop_(); Clk = 1; _nop_(); else Clk = 0; DATI = 1; /通道1的第一位 _nop_(); Clk = 1; _nop_(); Clk = 0; DATI = 1; /通道1的第二位 _nop_(); Clk = 1; _nop_(); Clk = 0; DATI = 1; for( i = 0;i 8;i+ ) /读取前8位的值 _nop_()

14、; adval = 1; Clk = 1; _nop_(); Clk = 0; if (DATO) adval |= 0*01; else adval |= 0*00; for (i = 0; i = 1; if (DATO) test |= 0*80; else test |= 0*00; _nop_(); Clk = 1; _nop_(); Clk = 0; if (adval = test) /比较前8位与后8位的值,如果不一样舍去。假设一直出现显示为零,请将该行去掉 dat = test;nop_(); CS = 1; /释放ADC0832 DATO = 1; Clk = 1;retu

15、rn dat;/*函数功能:延时子程序入口参数:出口参数:*/void delay(void) int k; for(k=10;k500;k+);/*函数功能:将0-255级换算成0.00-5.00的电压数值入口参数:i出口参数:*/void convdata(unsigned char i) dis0 = i/51; /个位 dis1 = (i%51)*10/51; /小数点后第一位 dis2 = (i%51)*10%51)*10/51; /小数点后第二位/*函数功能:数码管显示子程序入口参数:出口参数:*/void display(void) P2=0*ff; P0=tabdis0& 0*

16、fe; /显示个位和小数点11111110delay(); P2=0*df; /11011111 delay(); P2=0*ff; P0=tabdis1; /显示小数点后第一位delay(); P2=0*bf; /10111111 delay(); P2=0*ff; P0=tabdis2; /显示小数点后第二位delay(); P2=0*7f; /01111111 delay(); P2=0*ff; P0=0*ff; /显示小数点后第二位delay(); P2=0*ef; /11101111delay();/*函数功能:主程序入口参数:出口参数:*/void main(void) P2=0*

17、ff; /端口初始化 P0=0*ff; delay();/延时 CH = 0*00; /在这里选择通道 0*00或0*01 TMOD = 0*01; /设置中断 TH0=(65536-50000)/256;/定时器1初值定时50msTL0=(65536-50000)%256; IE = 0*82; TR0 = 1; while(1) /主循环 dat = adc0832(CH); convdata(dat); /数据转换 display(); /显示数值 /*函数功能:定时器中断延时程序 这一段的作用时隔一段时间抽样一次 否侧显示的最后一位会不稳定入口参数:出口参数:*/void timer0

18、(void) interrupt 1 TMOD = 0*01; TH0=(65536-50000)/256;/定时器1初值定时50msTL0=(65536-50000)%256; IE = 0*82; TR0 = 1; count+; if (count = 0*01) count = 0*00; dat = adc0832(CH); 6. 工程设计总计通过这次设计,使我深入了解了AT89C51单片机和ADC0832AD转换器的构造和特点及数字电压表的工作原理,加深了对课本理论知识的理解,锻炼了实践动手能力,理论知识与实践设计相结合,培养了创新开发的思维。在此次课程设计中,收获知识的同时,我还收获了阅历。在此过程中,我们通过查找资料,请教教师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。7. 参考文献1 朝元,鲁五一.Proteus软件在自动控制系统仿真中的应用J.系统仿真学报, 2021(1):318-320.2 毛谦敏.单片机原理及应用设计系统M:国防工业,2021:22-26.3 康华光.电子技术根底(数字局部) M. 5版. :高等教育出版, 2005: 290-293.评 语成 绩指导教师签字 年 月 日. z

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!