標題: 單片機ADC0808程序求指點,老是轉(zhuǎn)換不了數(shù)據(jù) [打印本頁]

作者: lizzz    時間: 2019-3-29 11:15
標題: 單片機ADC0808程序求指點,老是轉(zhuǎn)換不了數(shù)據(jù)
ADC0838根據(jù)時序圖我試著編了下采樣時序不知道對不對,下面圖片是我的仿真圖。求指點,他老是轉(zhuǎn)換不了數(shù)據(jù)

  1. #include<intrins.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit CLK=P2^0;
  5. sbit CS=P2^1;
  6. sbit DI=P2^2;
  7. sbit DO=P2^3;

  8. void delay(uint z);        //函數(shù)聲明

  9. void delay(uint z)
  10. {
  11.   uint i = 0;
  12.         uint j = 0;
  13.         for(i=0;i<z;i++)
  14.            for(j=0;j<114;j++);
  15. }
  16. uchar read_AD()
  17. {
  18.         uchar i,out1;
  19.         out1=0;
  20.     CS=0;
  21.         _nop_();
  22.     CLK=0;

  23.     DI=1;_nop_(); CLK=1;_nop_(); CLK=0;
  24.     DI=1;_nop_(); CLK=1;_nop_(); CLK=0;
  25.     DI=0;_nop_(); CLK=1;_nop_(); CLK=0;
  26.     DI=0;_nop_(); CLK=1;_nop_(); CLK=0;
  27.     DI=0;_nop_(); CLK=1;_nop_();  CLK=0;DI=1;
  28.     DO=1;_nop_();_nop_();_nop_();        
  29. for(i=0;i<8;i++)//轉(zhuǎn)換8位二進制數(shù)
  30. {                 
  31.         CLK=1;_nop_();
  32.         CLK=0;_nop_();//下降沿開始數(shù)據(jù)轉(zhuǎn)
  33.         if(DO)
  34.                 out1=out1<<1|DO;
  35.         else
  36.                 out1=out1<<1;  

  37. }        
  38.         CS=1;
  39.         return out1;
  40. }

  41. }
  42. void main()
  43. {        
  44.         while(1)
  45.         {
  46.                 P1=read_AD();
  47.         }               
  48. }
復制代碼







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1