标题:
adc0804输出一直为高电平,不知道是单片机程序问题还是硬件连接问题
[打印本页]
作者:
cyhwlgq
时间:
2019-1-4 12:27
标题:
adc0804输出一直为高电平,不知道是单片机程序问题还是硬件连接问题
adc0804输出一直为高,不知道是程序问题还是硬件连接问题,求解
#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[]= //段码数组为从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;
//一个下降沿
}
unsigned char read()
{ unsigned char num;
P0=0XFF; //先将P0口全部置1
Read=1;_nop_();Read=0; _nop_(); num=P0; Read=1;
//上升沿之前将数值转化为中间变量num
return num;
}
int main()
{ //Cs=0;//片选
WeiEN=0;
DuanEN=0;//防止第一次显示错误
while(1)
{
write();
xianshi(num);
read();
}
}
ADC0804.PNG
(104.1 KB, 下载次数: 21)
下载附件
2019-1-4 12:27 上传
捕获.PNG
(80.84 KB, 下载次数: 25)
下载附件
2019-1-4 12:27 上传
作者:
cyhwlgq
时间:
2019-1-6 09:35
unsigned char read()函数中重定义 unsigned char num; 全局变量num始终为0,显示000。
sbit Write=P2^1;sbit Read=P2^2;与电路图不符,应为sbit Write=P2^2;sbit Read=P2^1;
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1