標(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)
下載附件
2019-1-4 12:27 上傳
捕獲.PNG
(80.84 KB, 下載次數(shù): 25)
下載附件
2019-1-4 12:27 上傳
作者:
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