找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10588|回复: 14
收起左侧

第14章-精密电压表_电流表_显示器_计数器

  [复制链接]
ID:111078 发表于 2016-3-28 22:14 | 显示全部楼层 |阅读模式
51单片机轻松入门—基于STC15W4K系列(C语言版)
李友全
编著 详见:http://www.51hei.com/bbs/dpj-37954-1.html

14章 电压表\电流表\显示器\计数器
通过本模块的学习制作,可以进一步熟悉高精度ADC的运用,单片机 内部DataFlash的读写、动态显示程序的编写(包括小数的显示)以及自 定义的SPI主从机数据通信原理,测试中,本模块可以直接插接到第一章

介绍的单片机实验板“通用计数器/显示器接口”上使用。

0.png
1 功能说明与电路原理分析

同一个模块,通过硬件上的简单设置可实现4种不同的功能

0.png

K3(P4.2)
K4(P4.3)
模块功能

K1(P3.6)
K2(P3.7)
电压表档位
输入阻抗
0
0
电流表

0
0
2.0480V
2MΩ
0
1
计数器

0
1
20.480V

1
0
显示器

1
0
204.80V
1MΩ

1

1

电压表(默认)

1

1

20.480V(默 认)

① 电压表说明:

使用18位MCP3421A0T-E/CH芯片作ADC,通过软件校准的方式可使整个模块电压测量误差 最大值不大于量程的±0.05%,在电路上,2V档由外部信号直接输入ADC,其它档位使用
1MΩ电阻降压,然后使用MCP6V01T-E/SN 轨到轨自动调零运放作ADC输入电压跟随器,由
于精度要求高,普通运放无法满足要求。

② 电流表说明: 使用0.1Ω/0.5W的电流取样电阻,可测量0~2A范围内的电流,取样出来的电压信号不经过电

压跟随器,直接送入ADC芯片。
③ 通用显示器说明:
外部单片机通过CLK与DAT两条信号线向模块送入数据,模块能显示0~99999范围内整数或小 数值,外部单片机需要一次向模块发送5个字节的数据,第1字节表示模块地址,默认值为0
,在多个模块CLK与DAT并接在一起的情况下,只有与发送地址相符的模块才接收与处理总线
上的数据,第2、3、4字节是需要显示的数据,第2字节是数据高字节,第3字节是数据中间 字节,4字节是数据低字节,第5字节确定需要显示的小数位数,所有字节都是按高位在前, 低位在后的顺序发送,每一位的发送是外部单片机先把数据位放到DAT线上,然后拉低CLK线
,模块内部是在CLK下降沿后读取DAT线上的状态,经测试,模块在22.1184MHz工作频率下外

部单片机数据发送时钟脉冲高电平1uS、低电平5uS条件下工作正常,也就是说发送一组数据 的最短时间需要大约(1 + 5)×8×5 = 240uS,为了提高稳定性,可以适当降低通信时钟频 率(主要是延长脉冲低电平时间),但也不能过低,要求一组数据必须在0.2秒内传送完成

,超过0.2秒,模块自动清除前面已收到的不完整的数据,这样保证了数据传送的可靠性。
④ 计数器说明: 外部脉冲信号通过DAT线送入模块,每产生一个脉冲下降沿,计数器数值加1,超过最大值
99999后从0开始循环,要求外部脉冲信号低电平不能大于0.6V,高电平不能小于2V,高电平 最大值也不能超过40V,模块具有断电自动存储数据的功能,可通过开关将CLK线接GND,上
电瞬间即可将显示的计数值清零。
0.png

部分程序预览(完整代码请下载附件): 第14章(电压_电流表_计数器_显示器).rar (821.41 KB, 下载次数: 273)
回复

使用道具 举报

ID:140358 发表于 2016-10-4 07:19 来自手机 | 显示全部楼层
很好!很实用的
回复

使用道具 举报

ID:84250 发表于 2016-12-30 16:56 | 显示全部楼层
楼主编程风格严谨,值得我们学习,赞
回复

使用道具 举报

ID:200118 发表于 2017-5-24 23:22 | 显示全部楼层
下载学习
回复

使用道具 举报

ID:216902 发表于 2017-7-3 20:22 | 显示全部楼层
学习 MCP3421 ADC
回复

使用道具 举报

ID:421232 发表于 2018-12-12 19:42 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:288930 发表于 2019-1-18 13:57 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:384252 发表于 2019-4-30 12:00 | 显示全部楼层
没有用过18位的ADC,不知道这么高精度的ADC读出来的值是否会稳定呢?另外,使用18位ADC采样的电压值,在数码管上显示会跳动吗?
回复

使用道具 举报

ID:717268 发表于 2020-3-27 23:38 | 显示全部楼层
本人觉得此处使用18位的ADC时,输出显示位数可以扩充到十万为甚至百万位。
回复

使用道具 举报

ID:800180 发表于 2020-7-14 09:02 | 显示全部楼层
STC15F2K60S2芯片引脚功能有没有
回复

使用道具 举报

ID:501595 发表于 2020-7-26 08:53 来自手机 | 显示全部楼层
正好需要,下载下来做一个看看
回复

使用道具 举报

ID:895892 发表于 2021-3-24 20:19 | 显示全部楼层
好教材值得收藏
回复

使用道具 举报

ID:1007039 发表于 2022-3-8 21:32 | 显示全部楼层
已下载收藏,慢慢学习。
回复

使用道具 举报

ID:968906 发表于 2023-4-6 16:24 | 显示全部楼层
没有用过18位的ADC,不知道这么高精度的ADC读出来的值是否会稳定呢?另外,使用18位ADC采样的电压值,在数码管上显示会跳动吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表