单片机干货,简易数字电压表的设计与制作(C语言版)

单片机干货,简易数字电压表的设计与制作(C语言版)电压表的使用十分广泛,传统的模拟电压表反应速度慢,读数麻烦并且误差较大,现在已经广泛使用数字电压表。

大家好,欢迎来到IT知识分享网。

电压表的使用十分广泛,传统的模拟电压表反应速度慢,读数麻烦并且误差较大,现在已经广泛使用数字电压表。本文介绍一款简易数字电压表的设计制作过程,基于入门级51单片机——STC89C52RC,以ADC0831为模数转换电路实现被测电压的数据采样,当然还要有显示电路,由四位数码管构成,该数字电压表能够测量0-5V之间的直流电压值。

单片机干货,简易数字电压表的设计与制作(C语言版)

原理图大体分为四个部分,左上角的是单片机最小系统,这个就无须赘述了,相信任何一本单片机教程都会讲到;左下角的是供电部分,也很简单,如果取电脑的USB电源供电,那几个滤波电容式可以省去不要;右上角的是显示电路,典型的数码管驱动电路,下面四个三极管做位选通,段码管脚接单片机P2端口;右下角就是ADC0831电路,通过CLK和SDO与单片机相连,一个时钟信号,一个串行数据。也许需要多啰嗦几句的,就是ADC0831了。

ADC0831

单片机干货,简易数字电压表的设计与制作(C语言版)

照顾一下英文不太好的同学,图上面英文字的大概意思是:ADC0831 单路差分输入 双列直插封装。典型电路如下,

单片机干货,简易数字电压表的设计与制作(C语言版)

ADC0831一共八个脚,VCC和GND不用说,Vref作为参考电压接VCC,待测模拟信号以差动形式输入,可将其中一根线直接接地,另一个线做输入。转换后的数字信号由SDO串行输出,CLK提供时序。CS片选。硬件还是很简单的吧。ADC0831与单片机的通信依据下面这张时序图。

读懂时序图

单片机干货,简易数字电压表的设计与制作(C语言版)

拿到一张时序图,首先找片选信号,这里也就是CS, 片选信号一般都是低电平有效,当CS拉低后,芯片才开始工作。程序要严格按照时序图编写,这里在拉低CS前应先置低CLK。也就是先置低CLK,nop一会;然后拉低CS片选,nop一会;然后置高CLK,nop一会,然后再置低CLK,nop一会,这样才把CLK第一个脉冲走完,注意这时还没开始读数据,数据是从CLK第二个脉冲信号下降沿开始一个位(bit)一个位读取的。函数如下。

单片机干货,简易数字电压表的设计与制作(C语言版)

时序图常会见到MSB和LSB,分别是Most Significant Bit(最高有效位)和Least Significant Bit(最低有效位)的缩写。ADC0831的时序图先出现MSB,表示随着时钟脉冲先读出来的是字节的高位。

ADC0831读取的模数转换结果是一个字节大小(Byte)的无符号数,这个数的范围是0~255。对应的电压信号范围是0~5V。那么这里就需要有一个映射函数了,也就是从adc0831的返回值映射到对应的电压。这个函数起名叫map()再好不过了。

单片机干货,简易数字电压表的设计与制作(C语言版)

下面这幅图可以直观的阐述其转换原理,原理非常简单,就是等比较变换:

单片机干货,简易数字电压表的设计与制作(C语言版)

转换关系为t = adv/51,那么乘以100是什么意思呢?是为了扩大100倍,去掉小数点,方便数码管显示函数的编写。诺,下面就讲到了。

显示函数就很简单了,完全根据数码管动态显示原理,简单调试即可完成。注意函数参数是一个u16(unsigned int)整型数,这也是前面map函数里需要乘100的原因,单片机处理整数的速度要比处理浮点数快得多,浮点数能不用就不用。在显示函数里,在正确的位置把小数点点亮即可。代码如下:

单片机干货,简易数字电压表的设计与制作(C语言版)

下面是延时函数,

延时函数:

单片机干货,简易数字电压表的设计与制作(C语言版)

主函数:

单片机干货,简易数字电压表的设计与制作(C语言版)

全局定义:

单片机干货,简易数字电压表的设计与制作(C语言版)

单片机干货,简易数字电压表的设计与制作(C语言版)

作品效果图:

单片机干货,简易数字电压表的设计与制作(C语言版)

元器件装配图

单片机干货,简易数字电压表的设计与制作(C语言版)

元器件清单

名称 标号 标称值 封装 数量
电阻 R1、R2、R3、R4、R5、R6、R7、R8 200 直插式 8
电阻 R9、R10、R11、R12、R20 1K 直插式 5
三极管 Q1、Q2、Q3、Q4 9012 直插式 4
单片机 U1 STC89C52 直插式 1
IC锁座 TEXTQOL 40脚 直插式 1
发光二极管 D3 绿φ5 直插式 1
电容 C1 22uF 直插式 1
电容 C2 470uF 直插式 1
电容 C3、C4、C5 0.1uF 直插式 3
电容 C6、C7 30pF 直插式 2
接线端子排 P2 2脚 直插式 1
USB端子 P1 6脚 直插式 1
晶振 Y1 12MHz 直插式 1
IC U2 ADC0831 直插式 1
IC插座 8脚 直插式 1
数码管 U3 4联排(共阳) 直插式 1
二极管 D1、D2 1N4148 直插式 1
按键 RESET 4脚 直插式 1

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/84980.html

(0)
上一篇 2024-09-25 05:24
下一篇 2024-09-28 10:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信