ADC0838根据时序图我试着编了下采样时序不知道对不对,下面图片是我的仿真图。求指点,他老是转换不了数据
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit CLK=P2^0;
- sbit CS=P2^1;
- sbit DI=P2^2;
- sbit DO=P2^3;
- void delay(uint z); //函数声明
- void delay(uint z)
- {
- uint i = 0;
- uint j = 0;
- for(i=0;i<z;i++)
- for(j=0;j<114;j++);
- }
- uchar read_AD()
- {
- uchar i,out1;
- out1=0;
- CS=0;
- _nop_();
- CLK=0;
- DI=1;_nop_(); CLK=1;_nop_(); CLK=0;
- DI=1;_nop_(); CLK=1;_nop_(); CLK=0;
- DI=0;_nop_(); CLK=1;_nop_(); CLK=0;
- DI=0;_nop_(); CLK=1;_nop_(); CLK=0;
- DI=0;_nop_(); CLK=1;_nop_(); CLK=0;DI=1;
- DO=1;_nop_();_nop_();_nop_();
- for(i=0;i<8;i++)//转换8位二进制数
- {
- CLK=1;_nop_();
- CLK=0;_nop_();//下降沿开始数据转
- if(DO)
- out1=out1<<1|DO;
- else
- out1=out1<<1;
- }
- CS=1;
- return out1;
- }
- }
- void main()
- {
- while(1)
- {
- P1=read_AD();
- }
- }
复制代码
|