adc0832在ad中怎么画_51单片机adc0832汇编程序

adc0832在ad中怎么画_51单片机adc0832汇编程序,第1张

  adc0832在ad中怎么画

  在单片机学习中AD是必须要了解的,所谓的AD就是把模拟信号转换为数字信号,本文为大家介绍的是如何在proteus中绘制ADC0832。

  1.首先找到proteus软件,双击打开,如图

  2.打开软件之后点击左侧的“P”按钮,如图

  3.找到“关键字”,如图

  4.输入“ADC0832”,选择模型,点击“确定”,如图

adc0832在ad中怎么画_51单片机adc0832汇编程序,adc0832在ad中怎么画_51单片机adc0832汇编程序,第2张

  5.在空白出单击左键,此是出现一个虚影,如图

adc0832在ad中怎么画_51单片机adc0832汇编程序,adc0832在ad中怎么画_51单片机adc0832汇编程序,第3张

  6.将虚影拖动到合适的位置再次左键点击鼠标,如图,这样一个ADC0832就绘制完成了。

adc0832在ad中怎么画_51单片机adc0832汇编程序,adc0832在ad中怎么画_51单片机adc0832汇编程序,第4张

  51单片机adc0832汇编程序

  #include《AT89x51.h》

  #include《intrins.h》

  #define uint unsigned int

  #define uchar unsigned char

  //******************adc0832****************************//

  sbit CS=P2^3; //使能。

  sbit CLK=P2^2;//时钟

  sbit DO=P2^1; // 数据输出

  sbit DI=P2^0;//数据输入

  char CC[]=“11001001”;

  uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

  uchar temp;

  uint vvv,i;

  //通道的选择:0x02就是单通道0;0x03就是单通道1;

  //0x00就是双通道ch0=“+”; ch0=“-”

  //0x01就是双通道ch0=“-”; ch0=“+”

  //*****************************************************//

  void delay(int tt)

  {

  while(tt--)

  {for(i=0;i《120;i++);}

  }

  void startADC()

  {

  CS=1;

  _nop_();

  _nop_();

  CLK=0;

  _nop_();

  _nop_();

  CS=0;

  _nop_();

  _nop_();

  DI=1;

  _nop_();

  _nop_();

  CLK=1;

  _nop_();

  _nop_();

  DI=0;

  _nop_();

  _nop_();

  CLK=0;

  _nop_();

  _nop_();

  }

  void choiceADC(uint CH)//CH为0选择通道ch0,为1,选择ch1进行AD转换

  {

  startADC();

  if(CH==0)

  {

  DI=1;

  _nop_();

  CLK=1;//上升沿DI=1

  _nop_();

  CLK=0;//1个下降沿DI=1

  _nop_();

  DI=0;

  _nop_();

  CLK=1;

  _nop_();

  CLK=0;//第3个上升沿DI=0

  _nop_();

  }

  else

  {

  CLK=0;

  _nop_();

  DI=1;

  _nop_();

  CLK=1;//上升沿DI=1

  _nop_();

  CLK=0;//1个下降沿DI=1

  _nop_();

  DI=1;

  _nop_();

  CLK=1;//第3个上升沿DI=0

  _nop_();

  }

  /********通道选择结束开始读取转换后的二进制数****/

  CLK=1;

  _nop_();

  CLK=0;//下降沿读数,一下进行判断和处理,共8次

  for(i=0;i《8;i++)

  {

  DI=1;

  if(DO)

  {

  temp |=0x01;

  }

  else

  {

  temp &=0xfe;

  }

  CLK=0;

  _nop_();

  CLK=1;

  temp=temp《《1;

  }

  vvv=temp;

  }

  void display(uint dat)

  {

  P3=0x04;

  P0=tab[dat/100];

  delay(1);

  P0=0xff;

  P3=0x02;

  P0=tab[dat%100/10];

  delay(1);

  P0=0xff;

  P3=0x01;

  P0=tab[dat%10];

  delay(1);

  P0=0xff;

  }

  void main()

  {

  P3=0xFF;

  P0=0xff;

  while(1)

  {

  choiceADC(0);

  delay(1);

  display(vvv);

  }

  }

adc0832在ad中怎么画_51单片机adc0832汇编程序,51单片机adc0832汇编程序,第5张

  小编推荐阅读:

  adc0832是什么_adc0832和adc0809区别

  adc0832时序图_adc0832怎么转换光敏电阻

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存