A/D 转换数据处理程序
来源:互联网 发布:淘宝店新手如何推广 编辑:程序博客网 时间:2024/05/01 05:23
有一段程序看不懂:
for(n = 0; n < 8; n++) {
dis[2] = ad_data[n] / 51 //测得值转换为3位BCD码,最大为5.00V
dis[4] = ad_data[n] % 51; //余数暂存
dis[4] = dis[4] * 10; //计算小数第一位
dis[1] = dis[4] / 51;
dis[4] = dis[4] % 51;
dis[4] = dis[4] * 10; //计算小数第二位
dis[0] = dis[4] / 51;
.....
ad_data[n] 是A/D后的数据,dis[]是要送去显示的数。
那些注释都是书上写的。还是看不明白!!请问那程序是怎么处理数据。尤其那51是什么意思。
悬赏分:0 - 解决时间:2010-1-15 20:42
;------------------------------------------------------
最佳答案:
AD转换,一般是将外接的0~5V的电压,变换成为8位二进制数,即:0~255。
如果想要用这些二进制数字,显示出来0.00~5.00V,除以51,则是很正常的。
-
AD转换,对初学者是个比较费解的问题,泛泛的讲,不如说一个具体的例子。
假设,当外接的电压是3.29V,经过AD转换后,送到单片机的数据将是168。
由这个数字变换成329的运算步骤,只需复习一下小学的知识,且看下面插图中的竖式:
计算步骤:
1.168除以51,整数部分是3,余数部分是15;
2.15后面添上0,即余数部分乘以10;
3.150除以51,整数部分是2,余数部分是48;
4.48后面添上0,即余数部分乘以10;
5.480除以51,整数部分是9,余数部分是21;
-
此时,就得到 329 了,如果要求精度较高,可以继续除下去。
写到这一步,相信大家都可以看懂楼主给出的程序了。
;------------------------------------------------------
回答者: 做而论道 - 十二级 2009-12-31 18:11
提问者对于答案的评价:XX
原文网址:http://zhidao.baidu.com/question/131473045.html
;------------------------------------------------------
- A/D 转换数据处理程序
- AT89C2051实现A/D转换的C51程序
- 求:dsp2812采集max1320的A/D转换采集程序
- A/D转换
- A//D转换
- D/A转换
- A/D | D/A 转换原理计算
- 什么是A/D转换和D/A转换
- A/D转换(C源码)
- A/D转换相关问题
- STC15F2K60S2实现A/D转换
- 6-15 A/D转换
- A/D转换实验报告
- D/A转换实验报告
- a c d…… AA AC AD 数据处理
- 手把手教你写S12XS128程序(9)--A/D转换模块介绍1
- 手把手教你写S12XS128程序(10)--A/D转换模块介绍2
- 手把手教你写S12XS128程序(16)--A/D转换应用实例
- 基于51单片机的定时顺序控制器
- 脉冲序列的检测
- java中volatile关键字的含义
- 求助:使用8031单片机,编一程序......共5个
- 利用8031的定时/计数器T1对外部事件进行计数
- A/D 转换数据处理程序
- 8个指示灯轮流点亮,每个灯亮1秒,每个灯闪5次/秒
- Git 学习<一>创建版本库
- 在20H后放入10个字节,用51汇编,找出重复出现频率最高的字节
- 由DLL (sqlite3.dll)直接转为 LIB 库
- Keil 与Proteus的联合仿真调试
- spring4 学习4 spring MVC+mybatis+Mysql
- 51单片机把4位16进制数转成10进制数的方法
- 16位二进制数转换成BCD码的的快速算法-51单片机