標(biāo)題: 單片機(jī)DA轉(zhuǎn)換實(shí)驗(yàn) [打印本頁]

作者: 好好學(xué)習(xí)a'a    時(shí)間: 2019-6-5 09:43
標(biāo)題: 單片機(jī)DA轉(zhuǎn)換實(shí)驗(yàn)
單片機(jī)DA轉(zhuǎn)換實(shí)驗(yàn)程序?qū)嵗?br />
單片機(jī)源程序如下:
  1. //硬件:J2的3、4短接(左端為1),為DA提供基準(zhǔn)電壓,芯片TLC5615的6腳為基準(zhǔn)輸入;
  2. //                                                               TLC5615 7腳為數(shù)據(jù)輸出端;
  3. //注:1.硬件TL431的輸出電壓用兩個(gè)電阻就可以任意地設(shè)置到從Vref(2.5V)到36V范圍內(nèi)的任何值;
  4. //                因此TLC5615的基準(zhǔn)電壓硬件上最低只能調(diào)至2.5V。
  5. //          2.TLC5615為10位DA轉(zhuǎn)換,的實(shí)際輸出電壓是理論電壓的兩倍;
  6. //                例如:當(dāng)基準(zhǔn)為2.5V,輸入為256時(shí),輸出電壓為1.25V。
  7. //                          當(dāng)基準(zhǔn)為2.5V,輸入為511時(shí),輸出電壓為2.5V。
  8. //                          當(dāng)基準(zhǔn)為2.5V,輸入為1023時(shí),輸出電壓為5.0V。

  9. #include <at89x52.h>
  10. #include <absacc.h>
  11. #include <lcd.h>
  12. #include <DA.h>
  13. unsigned char  bbb[]={" D/A TEST(2.5V) "};
  14. unsigned char  da_V[16]={'2','5','6',' ',' ',' ',' ',' ',' '};
  15. unsigned int  DA_Data=256;                    //DA輸入值(0--1023)
  16. //float  DA_value=0.0;
  17. unsigned int DA_value;
  18. unsigned char temp[4]={0};
  19. void shuzhichuli(void);

  20. void main(void)
  21. {
  22.     PORT=0x03;                //BA口輸出
  23.         lcd_init();                //液晶初始化
  24.         while(1)
  25.           {
  26.              da5615(DA_Data);        //DA轉(zhuǎn)換
  27.                  DA_value=(2.50*DA_Data/1024*1000)*2.00+0.005;
  28.                  shuzhichuli();
  29.                  da_V[14]='V';
  30.                  lcd_string(bbb,1);
  31.                  lcd_string_change(0xc0,da_V);

  32.           }
  33. }

  34. void shuzhichuli(void)
  35. {
  36.    unsigned int  temp0,temp1;
  37.    unsigned int i;
  38.    unsigned int w;       
  39.    temp1=DA_value;
  40.    for( i=0;i<4;i++)
  41.     {
  42.         temp0=temp1%10;
  43.         temp1=temp1/10;
  44.         temp[i]=temp0;
  45.     }
  46.         for( w=0;w<5;w++)
  47.          {
  48.            if(w==0)
  49.              {
  50.                    da_V[w+9]=temp[3]+48;
  51.                  }
  52.            else if(w==1)
  53.              {
  54.                    da_V[w+9]='.';
  55.                  }
  56.                 else
  57.                   {
  58.                          da_V[w+9]=temp[4-w]+48;
  59.                   }
  60.           
  61.          }
  62. }
復(fù)制代碼

所有資料51hei提供下載:
DA轉(zhuǎn)換.zip (31.67 KB, 下載次數(shù): 27)



作者: pitalll    時(shí)間: 2020-4-28 14:35
有proteus的圖嗎?





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1