|
基于51單片機(jī)AD7705模數(shù)轉(zhuǎn)換器使用C程序(自編)
單片機(jī)源程序如下:
- #include<reg52.h>
- sbit ADC_DOUT=P3^0;
- sbit ADC_CLK=P3^1;
- sbit ADC_DIN=P3^2;
- sbit ADC_CS=P3^3;
- sbit ADC_DRDY=P3^4;
- /****************1毫秒延時(shí)函數(shù)***********************/
- void Delay_1ms(unsigned int x)
- {
- unsigned char y,z;
- for(;x>0;x--)
- {
- for(z=199;z>0;z--)
- {
- for(y=1;y>0;y--);
- }
- }
- }
- /****************ADC7705控制命令寫入函數(shù)**********************/
- void Write_ToReg_ADC7705(unsigned int byteword)
- {
- unsigned int ADC16bit,Token;
- unsigned char i;
- ADC_CLK = 1; ADC_CS = 0;
- Token = 0x08; ADC16bit = byteword;
- for(i=0;i<8;i++) //數(shù)據(jù)位寫入
- {
- if(ADC16bit & Token)
- ADC_DIN = 1;
- else
- ADC_DIN = 0;
- ADC_CLK = 1; ADC_CLK = 0; ADC_CLK = 1;
- Token = Token >> 1;
- }
- ADC_CLK = 1; ADC_DIN = 1;
-
- }
- /*****************ADC7705初始化************************/
- void Init_AD7705(vid)
- {
- unsigned char i;
- ADC_CLK=1;ADC_DIN=1;
- for(i=0;i<40;i++)//防止接口迷失,通信寄存器回到等待寫的狀態(tài)
- {
- ADC_CLK=0;ADC_CLK=1;
- }
- Write_ToReg_ADC7705(0x20); ///選擇通道1,進(jìn)行下一次寫時(shí)鐘寄存器
- Write_ToReg_ADC7705(0x06); ////寫時(shí)鐘寄存器,并設(shè)定更新速率
- Write_ToReg_ADC7705(0x10); //選擇通道1,進(jìn)行下一次寫設(shè)置寄存器
- Write_ToReg_ADC7705(0x5c);//寫設(shè)置寄存器,設(shè)置AD7705的極性、緩沖、增益、濾波、校準(zhǔn)
- Delay_1ms(50);
- }
- /*****讀數(shù)據(jù)寄存器函數(shù)*********/
- unsigned int ADC7705_Read_16bit_Value(unsigned char channel)
- {
- unsigned int ADC16bit;
- unsigned char i;
- Write_ToReg_ADC7705(0x38|channel);
- while(ADC_DRDY == 1);
- ADC_CLK = 1; ADC_CS = 0;
- ADC16bit = 0x00;
- for(i=0;i<16;i++)
- {
- ADC16bit = ADC16bit << 1;
- ADC_CLK = 0;
- if(ADC_DOUT == 1)
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
AD7705使用程序.zip
(20.16 KB, 下載次數(shù): 206)
2017-7-28 10:33 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|