首页 » 互联网 » 单片机干货简单纯真数字电压表的设计与制作(C措辞版)_暗记_函数

单片机干货简单纯真数字电压表的设计与制作(C措辞版)_暗记_函数

萌界大人物 2024-12-05 05:33:32 0

扫一扫用手机浏览

文章目录 [+]

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

ADC0831

单片机干货简单纯真数字电压表的设计与制作(C措辞版)_暗记_函数 互联网

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

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

读懂时序图

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

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

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

下面这幅图可以直不雅观的阐述其转换事理,事理非常大略,便是等比较变换:

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

显示函数就很大略了,完备根据数码管动态显示事理,大略调试即可完成。
把稳函数参数是一个u16(unsigned int)整型数,这也是前面map函数里须要乘100的缘故原由,单片机处理整数的速率要比处理浮点数快得多,浮点数能不用就不用。
在显示函数里,在精确的位置把小数点点亮即可。
代码如下:

下面是延时函数,

延时函数:

主函数:

全局定义:

作品效果图:

元器件装置图

元器件清单

名称标号标称值封装数量电阻R1、R2、R3、R4、R5、R6、R7、R8200直插式8电阻R9、R10、R11、R12、R201K直插式5三极管Q1、Q2、Q3、Q49012直插式4单片机U1STC89C52直插式1IC锁座TEXTQOL40脚直插式1发光二极管D3绿φ5直插式1电容C122uF直插式1电容C2470uF直插式1电容C3、C4、C50.1uF直插式3电容C6、C730pF直插式2接线端子排P22脚直插式1USB端子P16脚直插式1晶振Y112MHz直插式1ICU2ADC0831直插式1IC插座8脚直插式1数码管U34联排(共阳)直插式1二极管D1、D21N4148直插式1按键RESET4脚直插式1

相关文章

渣打广州IT,创新驱动下的金融科技领军者

在金融科技蓬勃发展的今天,渣打广州IT作为一家引领行业潮流的金融科技公司,以其创新驱动的发展理念,为我国金融行业注入了新的活力。本...

互联网 2024-12-28 阅读0 评论0

湛江IT行业蓬勃发展,助力城市经济腾飞

近年来,随着我国经济的快速发展和科技的不断进步,IT行业在我国各个城市中迅速崛起,成为了推动城市经济发展的重要力量。作为我国沿海重...

互联网 2024-12-28 阅读0 评论0