ADC0838根據時序圖我試著編了下采樣時序不知道對不對,下面圖片是我的仿真圖。求指點,他老是轉換不了數據
波形圖.png (324.17 KB, 下載次數: 27)
下載附件
2019-3-29 11:10 上傳
仿真.png (145.66 KB, 下載次數: 32)
下載附件
2019-3-29 11:11 上傳
ADC0838.jpg (80.67 KB, 下載次數: 35)
下載附件
2019-3-29 11:11 上傳
- #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();
- }
- }
復制代碼
|