完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include #define uchar unsigned char #define uint unsigned int ***it AD0832_CS = P2^7 ; //片选信号 ***it AD0832_CLK = P2^5; //时钟接口 ***it AD0832_DI = P2^6; //数据接口 uchar GetAD0832(bit Channel) { uchar i=0 , Data1 =0 , Data2 = 0 ; AD0832_CLK = 0 ; //时钟置低平//时钟12Mhz, 整个转换时间为224us //使用芯片准备(参考PDF时序图) AD0832_DI = 1 ; //开始信号为高电平 AD0832_CS = 0 ; //片选信号置低,启动AD转换芯片 AD0832_CLK = 1 ; //输入开始信号(构成一个正脉冲),时钟上升沿,输入开始信号 AD0832_CLK = 0 ; //时钟下降沿 //模拟信号输入模式选择(1:单模信号,0:双模差分信号) AD0832_DI = 1 ; AD0832_CLK = 1 ; //时钟上升沿,输入开始信号 AD0832_CLK = 0 ; //时钟下降沿 //模拟信号输入通道选择(1:通道CH1,0:通道CH0) AD0832_DI = Channel ; //选择通道0 AD0832_CLK = 1 ; //时钟上升沿,输入开始信号 AD0832_CLK = 0 ; //时钟下降沿 AD0832_DI = 1 ; //数据线置高,准备接收数据 for(i=0;i<8;i++) //从高位移入数据 { AD0832_CLK = 1 ; AD0832_CLK = 0 ; //时钟下降沿,AD0832输出数据,高位(MSB)先 Data1 = Data1<<1; //数据左移位,补0 if(AD0832_DI ==1) {Data1 = Data1 | 0x01;} //如果数据为“1”,移入1, } //如果数据为“0”,移入0, for(i=0;i<8;i++) //从低位移入数据 { Data2 = Data2>>1; //数据左移位,补0 if(AD0832_DI ==1) {Data2 = Data2 | 0x80;} //如果数据为“1”,移入1如果数据为“0”,移入0, AD0832_CLK = 1 ; AD0832_CLK = 0 ; //时钟下降沿,AD0832输出数据,高位(MSB)先 } //数据线置高,释放总线,完成一次转换 AD0832_CLK = 1 ; AD0832_DI = 1 ; AD0832_CS = 1 ; if(Data1==Data2) //输出 {return Data2;} }
有高手帮解答下,其中Data1和Data2是怎么回事吗 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 16:28 , Processed in 0.527344 second(s), Total 54, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号