標(biāo)題: adc0804輸出一直為高電平,不知道是單片機(jī)程序問(wèn)題還是硬件連接問(wèn)題 [打印本頁(yè)]

作者: cyhwlgq    時(shí)間: 2019-1-4 12:27
標(biāo)題: adc0804輸出一直為高電平,不知道是單片機(jī)程序問(wèn)題還是硬件連接問(wèn)題
adc0804輸出一直為高,不知道是程序問(wèn)題還是硬件連接問(wèn)題,求解
#include<reg51.h>
#include<intrins.h>
//sbit Cs=P2^0;
sbit Write=P2^1;
sbit Read=P2^2;
sbit WeiEN=P2^6;
sbit DuanEN=P2^7;
  unsigned char num;
unsigned char DuanMa[]= //段碼數(shù)組為從0到9
                {0x3f,0x06,0x5b,0x4f,0x66,0x6d,
                0x7d,0x07,0x7f,0x6f};
unsigned char WeiXuan[]={0xfe,0xfd,0xfb,0xf7};//位選
void delay(unsigned int xMs)
{ unsigned char x,y;
  for(x=xMs;x>0;x--)
    for(y=110;y>0;y--);
}
void xianshi(num)
{ unsigned char        bai,shi,ge;
  bai=num/100;
  shi=num%100/10;
  ge=num%10;

  WeiEN=1;P1=WeiXuan[0];WeiEN=0; P1=0x00;
  DuanEN=1;P1=DuanMa[bai];DuanEN=0;delay(1000);

  WeiEN=1;P1=WeiXuan[1];WeiEN=0; P1=0x00;
  DuanEN=1;P1=DuanMa[shi];DuanEN=0;delay(1000);

  WeiEN=1;P1=WeiXuan[2];WeiEN=0;P1=0x00;
  DuanEN=1;P1=DuanMa[ge];DuanEN=0;delay(1000);
}
void write()
{
    Write=1;_nop_(); Write=0;_nop_(); Write=1;
        //一個(gè)下降沿
}
unsigned char read()
{  unsigned char num;
    P0=0XFF;           //先將P0口全部置1
    Read=1;_nop_();Read=0; _nop_(); num=P0; Read=1;
      //上升沿之前將數(shù)值轉(zhuǎn)化為中間變量num
          return num;
}
int main()
{ //Cs=0;//片選
WeiEN=0;
DuanEN=0;//防止第一次顯示錯(cuò)誤
  while(1)
  {
  write();
  xianshi(num);
  read();
  }
}

ADC0804.PNG (104.1 KB, 下載次數(shù): 21)

ADC0804.PNG

捕獲.PNG (80.84 KB, 下載次數(shù): 25)

捕獲.PNG

作者: cyhwlgq    時(shí)間: 2019-1-6 09:35
unsigned char read()函數(shù)中重定義  unsigned char num; 全局變量num始終為0,顯示000。
sbit Write=P2^1;sbit Read=P2^2;與電路圖不符,應(yīng)為sbit Write=P2^2;sbit Read=P2^1;





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