ADC0804模数转换51单片机程序与电路

ADC0804模数转换51单片机程序与电路,第1张

  集成A/D转换器品种繁多,选用时应综合考虑各种因素选取集成芯片。一般逐次比较型A/D转换器用的比较多,ADC0804就是这类单片集成A/D转换器。ADC0804是一款8位、单通道、低价格A/D转换器。

  adc0804主要特点

  模数转换时间大约100us;

  方便TTL或CMOS标准接口

  可以满足差分电压输入;

  具有参考电压输入端;

  内含时钟发生器

  单电源工作时(0~5)V输入电压范围是0~5V;

  不需要调零。

  adc0804芯片 *** 作时序图 ADC0804模数转换51单片机程序与电路,ADC0804模数转换51单片机程序与电路,第2张

   *** 作时序图

  分析图可知,CS先为低电平,WR随后置低,经时间tw(WR)L后,WR置高,随后AD转换器被启动,并且在经过一段时间后,模数转换完成,转换结果存入数据锁存器,同时INTR自动变为低电平,通知单片机本次转换已结束。我们在实际写单片机程序启动A/D转换时就要遵循上面的时序。但实际使用中,也可以不采用中断方式读取A/D转换数据,我们可以在启动A/D转换后,经过延时一段时间,直接读取A/D转换数据结果,读取结束后再启动一次A/D转换,如此循环下去。

ADC0804模数转换51单片机程序与电路,ADC0804模数转换51单片机程序与电路,第3张

  ADC0804CPLD&FPGA、8051单片机等典型连接图

  ADC0804模数转换51单片机电路 ADC0804模数转换51单片机程序与电路,ADC0804模数转换51单片机程序与电路,第4张

  程序图如下:

  #include

  #include “lcd.h”

  #include

  #define uint unsigned int

  #define uchar unsigned char

  uchar lcd[]=“0123456789”;

  sbit rd=P3^6; //IO口定义

  sbit wr=P3^5;

  sbit cs=P3^7;

  read_adc0804()//控制并读取adc0804转换好的数据

  {

  uchar a; //写入控制命令,启动转换

  cs=1;

  wr=1;

  cs=0;

  wr=0;

  _nop_();

  wr=1;

  P1=0xff; //读取已转换好的数据

  rd=1;

  rd=0;

  _nop_();

  a=P1;

  rd=1;

  cs=1;

  return a;

  }

  void main()

  {

  uchar a,A1,A2,A3;

  lcd_init();

  while(1)

  {

  a=read_adc0804();

  A1=a/100; //分出百,十,和个位

  A2=a%100/10;

  A3=a%10;

  lcd_busy();

  lcd_xy(3,0);

  lcd_write_dat(lcd[A1]);

  lcd_busy();

  lcd_xy(4,0);

  lcd_write_dat(lcd[A2]);

  lcd_busy();

  lcd_xy(5,0);

  lcd_write_dat(lcd[A3]);

  }

  }

  推荐阅读:

  adc0804 *** 作方法

  adc0804数字电压表

  adc0804和adc0809区别

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2705892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-16
下一篇 2022-08-16

发表评论

登录后才能评论

评论列表(0条)

保存