|
51單片機(jī)使用ADC0832進(jìn)行數(shù)模轉(zhuǎn)換在Project中進(jìn)行仿真模擬
VeryCapture_20220411212800.jpg (423.99 KB, 下載次數(shù): 60)
下載附件
2022-4-11 21:35 上傳
單片機(jī)源程序如下:
- #include <REGX52.H>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- //ADC0832綁定引腳
- sbit ADCS=P1^3;
- sbit ADDI=P1^5;
- sbit ADCLK=P1^4;
- /**
- * @brief ADC083初始化,在程序的開(kāi)頭調(diào)用
- * @param 無(wú)
- * @retval 無(wú)
- */
- void ADC0832_Init()
- {
- ADCS=1;
- }
- /**
- * @brief ADC083獲取無(wú)符號(hào)8位數(shù)據(jù)
- * @param 無(wú)
- * @retval 返回 usigned char 型數(shù)據(jù)
- */
- uchar getDaTa()
- {
- uchar i=0;
- uchar j;
- uint dat=0;
- uchar ndat=0;
- ADDI=1;
- _nop_();
- _nop_();
- ADCS=0;//拉低CS端
- _nop_();
- _nop_();
- ADCLK=1;//拉高CLK端
- _nop_();
- _nop_();
- ADCLK=0;//拉低CLK端,形成下降沿1
- _nop_();
- _nop_();
- ADCLK=1;//拉高CLK端
- ADDI=1; //選擇通道0
- _nop_();
- _nop_();
- ADCLK=0;//拉低CLK端,形成下降沿2
- _nop_();
- _nop_();
- ADCLK=1;//拉高CLK端
- ADDI=0; //選擇通道1
- _nop_();
- _nop_();
- ADCLK=0;//拉低CLK端,形成下降沿3
- ADDI=1;//控制命令結(jié)束
- _nop_();
- _nop_();
- dat=0;
- for(i=0;i<8;i++)
- {
- dat|=ADDI;//收數(shù)據(jù)
- ADCLK=1;
- _nop_();
- _nop_();
- ADCLK=0;//形成一次時(shí)鐘脈沖
- _nop_();
- _nop_();
- dat<<=1;
- if(i==7)dat|=ADDI;
- }
- for(i=0;i<8;i++)
- {
- j=0;
- j=j|ADDI;//收數(shù)據(jù)
- ADCLK=1;
- _nop_();
- _nop_();
- ADCLK=0;//形成一次時(shí)鐘脈沖
- _nop_();
- _nop_();
- j=j<<7;
- ndat=ndat|j;
- if(i<7)ndat>>=1;
- }
- ADCS=1;//拉低CS端
- ADCLK=0;//拉低CLK端
- ADDI=1;//拉高數(shù)據(jù)端,回到初始狀態(tài)
- dat<<=8;
- dat|=ndat;
- return(dat); //return ad k
- }
復(fù)制代碼
Keil代碼下載:
AD數(shù)模轉(zhuǎn)換.zip
(110.49 KB, 下載次數(shù): 43)
2022-4-11 21:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|