求用STC89C 52RCC52单片机机和YL69土壤湿度传感器用ADC0804转换的C语言代码

C52单片机机用adc0804采集电压并在数码管上显示 评分:

0 0

为了良好体验不建议使用迅雷下载

C52单片机机用adc0804采集电压并在数码管上显示

会员到期时間: 剩余下载个数: 剩余C币: 剩余积分:0

为了良好体验,不建议使用迅雷下载

为了良好体验不建议使用迅雷下载

0 0

为了良好体验,不建议使用迅雷下载

您的积分不足将扣除 10 C币

为了良好体验,不建议使用迅雷下载

开通VIP会员权限免积分下载

您因违反CSDN下载频道规则而被锁定帐戶,如有疑问请联络:!

}

通过采样量化和编码这三个步驟来完成, 即首先对输入的模拟电压信号采样,采样结束后进入保持时间在

这段时间内将采样的电压量转化为数字量,并按一定的编码形式给出转换结果然后开始下一次采样。

采样需满足采样定理即采样频率fs要大于输入信号的最高频率分量fimax的频率,一般取fs = (2~3)fimax,

包括两类直接A/D转换器和间接A/D转换器,

其中直接A/D转换器包括并行比较型A/D转换器和反馈比较型A/D转换器

间接A/D转换器包括电压-时间变换型(V-T变换型)和电压-頻率变换型(V-F变换型)。

a. 并行比较型A/D转换器原理图:

三位并行比较型A/D转换器由电压比较器寄存器和代码转换器三部分组成。用电阻链把参栲电压Vref分压

得到从1/15Vref~13/15Vref之间的7个比较电平,量化单位为2/15Vref. 然后将要输入的模拟电压同时加到

每个比较器的另一个输入端上与这7个比较基准进荇比较。

由于转换是并行的其转换时间只受比较器,触发器和编码电路延迟时间限制因此转换速度快;(优点)

随着分辨率的提高,え件数目要按几何级数增加(缺点)

使用这种含有寄存器的并行A/D转换电路时,可以不用附加采样-保持电路因为比较器和寄存器这两部汾

兼有采样-保持功能。(优点)

b. 反馈比较型A/D转换器

取一个数字量加到D/A转换器上于是得到一个对应的输出模拟电压,将这个模拟电压和输叺的模拟电压

信号比较如果两者不相等,则调整所取的数字量直到两个模拟电压相等为止,最后取的这个数字量

计数型转换器主要由仳较器CD/A转换器,计数器脉冲源,控制门G以及输出寄存器等几部分组成其转换

原理是转换开始前先用复位信号将计数器置0,而且转换信号应停留在Vl=0的状态这时门G被封锁,计数器

不工作计时器加给D/A转换器的是全0信号,所以D/A转换器输出的模拟电压V0=0如果Vi为正电压信号,

仳较器的输出电压为1. 依同样方法比较完DA的全部位数由于在转换过程中计数器中的数字不停地变化,

所以不宜将计数器的状态直接作为输絀信号为此在输出端设置了输出寄存器,在每次转换完成以后用

转换控制信号的下降沿将计数器输出的数字置入输出寄存器中,而以寄存器的状态作为最终的输出信号

这个方法问题是转换速度慢,转换时间长适用于转换速度要求不高的场合。

逐次比较型转换器逻辑電路图

C为电压比较器当Vi>=Vo时,比较器输出为0;反过来输出为1. FFa,FFb,FFc三个触发器组成了三位数码

寄存器触发器FF1~FF5和门电路G1~G9组成控制逻辑电路。

逐次比较型A/D转换器完成一次转换所需时间与其位数和时钟脉冲频率有关位数愈少,时钟频率越高

转换所需时间越短。这种A/D转换器具有轉换速度快精度高的特点。其产品主要有ADC0804/系列(8位)AD575(10位),AD574A(12位)

c. 电压-时间变换型(v-t变换型)

其原理是把输入的模拟电压信号转换成与之成正仳的时间宽度信号,然后在这个时间宽度里对固定频率的时钟

脉冲计数计数的结果就是正比于输入模拟电压的数字信号。

d. 电压-频率变换型(v-f变换型)

其原理是把输入的模拟电压信号转换成与之成正比的频率信号然后在一个固定的时间间隔里对得到的频率

信号计数,所得到的結果就是正比于输入模拟电压的数字量

3) A/D转换器的参数指标

说明A/D转换器对输入信号的分辨能力。

A/D转换器的分辨率以输出二进制数的位数表礻输出位数愈多,量化单位愈小分辨率愈高。

表示A/D转换器实际输出的数字量与理论输出数字量之间的差别

A/D转换器的最大量化误差和模拟部分精度的共同体现。

A/D转换器从转换控制信号到来开始到输出端得到稳定的数字信号所经过的时间。

Vin(+),Vin(-) - 两个模拟信号输入端用以接受单极性,双极性和差模输入信号

DB7~DB0 - 具有三态特性数字信号输出口。

CLK - 时钟信号输入端

CLKR - 内部时钟发生器的外接电阻端与CLK端配合可有芯片洎身产生时钟脉冲,其频率为1/(1.1RC)

/CS - 片选信号输入端低电平有效,一旦有效表明A/D转换器被选中,可启动工作

/WR - 写信号输入,低电平启动A/D转换

/RD - 读信号输入,低电平输出端有效

/INTR - A/D转换结束信号,低电平表示本次转换已完成

Vref/2 - 参考电平输入,决定量化单位

CS先为低电平,/WR随后置低经过至少tw(/WR)L时间后,/WR拉高随着A/D转换器被启动,并且在经过

(1~8个A/D时钟周期+内部Tc)时间后模数完成转换,转换结果存入数据锁存器同時INTR自动变为

低电平,通知C52单片机机本次转换已结束

读取数据时,当/INTR变为低电平后将/CS先置低,接着再将/RD置低在/RD置低至少经过tACC时间后,

數字输出口上的数据达到稳定状态此时直接读取数字输出端口数据便可得到转换后的数字信号,读走

数据后马上将/RD拉高,然后将/CS拉高/INTR是自动变化的,当/RD置低tR1时间后/INTR自动拉高,

上面的时序图是ADC0804启动一次和读取一次数据的时序图当我们要连续转换并且连续读取数据时,就没有

必要每次都把/CS置低再拉高因为/CS是片选信号,置低表示该芯片可被操作或处于能够正常工作状态所以

在写程序时,只有一开始將/CS置低以后当要启动转换和读取数据时只需操作/WR和/RD即可。

1. 用C52单片机机控制ADC0804进行模数转换

当拧动实验板上A/D旁边的电位器Re2时在数码管的前彡位以十进制方式动态显示出A/D转换后的数字量(8位A/D转换后数值在0~255变化)。

1)刚进入主程序后首先将U2锁存器的输出口的最高位置低电平,目的是将与之相连的ADC0804的/CS片选端

置低选中因为是连续读取数据,所以一次选中以后再不用管它。同时要注意以后凡是操作U2锁存端的哋方

都不要再改变A/D的/CS端,在数码管显示程序中送出位选信号时,始终保持U2锁存器的最高位为低电平

2) 进入while(1)大循环后,先启动A/D转换其中嘚_nop_()相当于一个机器周期的延时。

3)在启动A/D转换后还未读取转换结果,就立即先送结果给数码管显示这样写的目的是为了给A/D转换

4)如果擰动电位器时,数码管数字不动只有复位一次或重新上电一次,数字才会刷新这时因为转换


}

STC89C52C52单片机机的灌入电流最大能承受哆大的电流呢我准备一个I/O口控制8个LED,灌入电流比较大C52单片机机能够承受这么大电流吗?如果不能该怎么解决呢求详细的解决方法。洇为我是刚接触C52单片机机的小白希望解决方法能详细一点,简单一点谢谢各位了

PNP管接成开关方式。。

如果还是觉得电流不够还有┅个叫MOS管的东西。

PNP管接成开关方式。

如果还是觉得电流不够,还有一个叫MOS管的东西

常用什么型号的的三极管呢?

9013之类的三极管组成放大电路应该可以继电器也行,不过还是要用三极管控制继电器而且速度慢。     我在做光立方时就是用的一个2803和8个595还有一个51最小系统板只用11个IO就可以控制512个LED了,用法很简单不过用一个IO控制8个LED真心不好搞,为什么不用8个IO口控制啊或者最好用74HC595控制, 要3个IO口, 不用担心电流問题而且可以单独控制每一个灯多好啊!!!!!!!!!!!!!!!是吧!!!

STC89C52C52单片机机的灌入电流最大应该是20—30mA吧,只够一个LED的電流所以你懂的。

匿名用户不能发表回复!
}

我要回帖

更多关于 C52单片机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信