單片機DA轉換實驗程序實例
單片機源程序如下:
- //硬件:J2的3、4短接(左端為1),為DA提供基準電壓,芯片TLC5615的6腳為基準輸入;
- // TLC5615 7腳為數據輸出端;
- //注:1.硬件TL431的輸出電壓用兩個電阻就可以任意地設置到從Vref(2.5V)到36V范圍內的任何值;
- // 因此TLC5615的基準電壓硬件上最低只能調至2.5V。
- // 2.TLC5615為10位DA轉換,的實際輸出電壓是理論電壓的兩倍;
- // 例如:當基準為2.5V,輸入為256時,輸出電壓為1.25V。
- // 當基準為2.5V,輸入為511時,輸出電壓為2.5V。
- // 當基準為2.5V,輸入為1023時,輸出電壓為5.0V。
- #include <at89x52.h>
- #include <absacc.h>
- #include <lcd.h>
- #include <DA.h>
- unsigned char bbb[]={" D/A TEST(2.5V) "};
- unsigned char da_V[16]={'2','5','6',' ',' ',' ',' ',' ',' '};
- unsigned int DA_Data=256; //DA輸入值(0--1023)
- //float DA_value=0.0;
- unsigned int DA_value;
- unsigned char temp[4]={0};
- void shuzhichuli(void);
- void main(void)
- {
- PORT=0x03; //BA口輸出
- lcd_init(); //液晶初始化
- while(1)
- {
- da5615(DA_Data); //DA轉換
- DA_value=(2.50*DA_Data/1024*1000)*2.00+0.005;
- shuzhichuli();
- da_V[14]='V';
- lcd_string(bbb,1);
- lcd_string_change(0xc0,da_V);
- }
- }
- void shuzhichuli(void)
- {
- unsigned int temp0,temp1;
- unsigned int i;
- unsigned int w;
- temp1=DA_value;
- for( i=0;i<4;i++)
- {
- temp0=temp1%10;
- temp1=temp1/10;
- temp[i]=temp0;
- }
- for( w=0;w<5;w++)
- {
- if(w==0)
- {
- da_V[w+9]=temp[3]+48;
- }
- else if(w==1)
- {
- da_V[w+9]='.';
- }
- else
- {
- da_V[w+9]=temp[4-w]+48;
- }
-
- }
- }
復制代碼
所有資料51hei提供下載:
DA轉換.zip
(31.67 KB, 下載次數: 27)
2019-6-5 09:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|