单片机电路焊接成实物的时候为什么会出现错误呢?

发布网友 发布时间:2024-10-23 03:51

我来回答

4个回答

热心网友 时间:2小时前

自己焊的单片机很容易出现短路短路的问题,比如在焊的时候虚焊或者腐蚀的时候太久了断开了,所以要自己检修一下,根据你的描述我觉得是有断路(虚焊)现象,我们帮人做了100多块板,焊接过程中也不少这种现象,后面拿万用表检查就好了
if(B2==0)
{
delay(5);
if(B2==0)
{ TR0=1;
}
while(!B2);
delay(10);
while(!B2);
}
if(B3==0)
{
delay(5);
if(B3==0)
{ TR0=0;
}
while(!B3);
delay(10);
while(!B3);
}
试试看行不行,不行就是你其他方面的问题了,按键程序没什么问题
最后提供一个我们写好的程序你参考一下
#include<reg52.h>
sbit led1=P1^3;
sbit led2=P1^2;
sbit led3=P1^1;
sbit led4=P1^0;
sbit key1=P3^5;
sbit key2=P3^4;
sbit key3=P3^3;
bit Clear=0;
unsigned char n=1;
unsigned char p=0,s=0,m=0;
//unsigned char sss,ssg,pps,ppg;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
// 显示程序示程序

void display(unsigned char mm,unsigned char ss,unsigned char pp)
{
unsigned char sss,ssg,pps,ppg;
sss=ss/10;
ssg=ss%10;
pps=pp/10;
ppg=pp%10;
P3=~mm; //数码管显示分
if(n==1){led3=led2=led1=1;P0=table[sss];led4=0;}//秒十位
if(n==2){led4=led2=led1=1;P0=table[ssg];led3=0;}//秒个位
if(n==3){led4=led3=led1=1;P0=table[pps];led2=0;}//跑十位
if(n==4){led4=led3=led2=1;P0=table[ppg];led1=0;}//跑个位
n++;
if(n>=5) n=1; //循环扫描
}

/*
void delay(unsigned char z)
{
unsigned char i,j;
for(i=0;i<z;i++)
for(j=0;j<100;j++);
} */
//主函数
void main()
{
unsigned char n=0;
TH1=0xDC;
TL1=0x00;
TMOD=0x11;//定时器1初始化
EA=1;
//TR1=1;
ET1=1;
ET0=1;
TR0=1;
while(1)
{
if(key1==0)
{TR1=1;Clear=0;} //开始计数,并将清零标志位置0
if(key2==0) // 暂停计数,并保持当前数值
TR1=0;
if(key3==0) Clear=1; //清零标志位置1
if(Clear)
{TR1=0;P0=table[0];}//清零语句
/*if(key1==0)
{
delay(5);
if(key1==0)
n++;
}
if(n==1) //开始计数
TR1=1;
if(n==2) //暂停计数,并保持计数值
TR1=0;
if(n>2) n=1;
}*/
}
}
void time1() interrupt 3
{
TH1=0xDC;
TL1=0x00; //10ms初值
p++;
if(p==100)
{
p=0;s++;
if(s==60)
{
s=0;m++;
}
if(m==60) m=0;
}

}
//显示函数
void t0() interrupt 1
{
TH0=0xF7; //2.5ms初值
TL0=0x00;
display(m,s,p) ;
}
顺便说一下程序在括号里面写的括号的内容最好先空几行
像这样if(B2==0)
{
delay(5);
if(B2==0)
{ TR0=1;
}
while(!B2);
delay(10);
while(!B2);
}

可读性会好很多

热心网友 时间:2小时前

1 检查你的程序,跟程序有关系的,调你的延时或者你的时序不正确,液晶上已经显示了一排黑的,证明硬件是没有问题的,另外附上一句:仿真是绝对理想的状态,包括所有的时间(以前我也做出过类似的错误,呵呵)
程序员要的是耐心,加油哦。

热心网友 时间:2小时前

我也遇到了同样的问题,但是如果重复上电几次,就会正常显示。可能是上电的原因吧,不过你程序中有忙检测么?据说没有那块也会出问题

热心网友 时间:2小时前

如果仿真都不行的话可能是你的有问题,慢慢检测程序吧!
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com