一、前言 在数字电路中,电平只有高和低两种状态,而在模拟电路中,电平理论上有无数个状态,在使用过程中就需要将两者联系起来。ADC0832是一款A/D转换芯片,是模拟电路与数字电路转换的一种渠道。本设计通过比较输入端电压的大小从而点亮不同颜色的LED灯。电压4.5~5V时为绿灯,3.5~4.5V为黄灯,低于3.5V为红灯。如果有想法,在此基础上还可以加入蜂鸣报警功能,电压低于多少时进行报警。此设计电路简单容易操作。 二、ADC0832介绍 1、基本信息 引脚功能: 引脚编号 引脚功能 描述 1 CS- 低电平芯片使能端 2 CH0 模拟信号输入通道0 3 CH1 模拟信号输入通道1 4 GND 低电平(地) 5 D1 数据信号输入,选择通道控制 6 D0 数据信号输入,转换数据输出 7 CLK 时钟输入 8 VCC 高电平 特点: (1)8位分辨率; (2)双通道A/D转换; (3)供电电压在0~5之间; (4)低功耗; (5)工作频率为250KHZ,转换时间为32微妙; 2、使用 在正常使用情况下ADC0832与单片机的接口为4条数据线,分别为CS-、CLK、D0、D1。但D0D1在使用时并未同时有效并与单片机端口,所以在电路连接时可连于同一引脚。 当ADC0832为工作时端口CS为高电平,此时芯片处于禁用状态,CLK、D0和D1电平任意。 当ADC0832工作时需先将CS端口置于低电平,并且维持低电平直至转换结束。开始转换工作时,单片机向时钟输入端CLK输入脉冲信号,此时使用D1的输入通道选择功能。在第一个脉冲下降之前D1必须为高电平,用来表示启动信号。在第2、3个脉冲下降之前DI端应输入2位数据用于选择通道功能,到第3 个脉冲的下降之后DI端的输入电平就失去输入作用﹐此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DО端输出转换数据最高位 DATA7,随后每一个脉冲下降DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。 三、硬件连接 CS连接P20;CLK连接P21;DI、DO连接P22;CH0、CH1为信号输入端。 四、软件代码 main主函数 启动定时器,根据比较后的值判断需要点亮的LED灯。 void main(void){ uchar AD1; uint vt1; uint while_times = 0; delayms(300); ET0 = 1; TR0 = 1; ET1 = 1; TR1 = 1; EA = 1; //打开总中断 CLK = 0; //ADC0832初始化 CS = 1; while(1) { AD1 = Get_AD_Result1(); vt1= (500.0/256.0)*AD1; if(vt1>=450) { led1=0;led2=1;led3=1; } else if(vt1>=350&&vt1 |
|Archiver|手机版|家电维修论坛
( 蜀ICP备19011473号-4 川公网安备51102502000164号 )
GMT+8, 2025-7-4 19:07 , Processed in 0.150075 second(s), 22 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.