[讨论] 求助大神

chao6446   2014-6-9 10:12 楼主
布线图 仿真 本人初学单片机,希望大神能够帮忙一下。仿真正常,焊接到电路板上不工作,电路板只亮第一个LED灯,数码管不亮。单片机供电正常。。。EA为高电平,9号复位引脚为低电平

回复评论 (13)

#include
unsigned char ledxs[]={0x00,0x10,0x80,0x90,0x40,0x50,0xC0,0xD0,0x20,0x30};
unsigned char ledd[4][25]={{0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0x7f,0x3f,0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,0xfe,0xff},
        {0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff},
        {0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xaa,0x55,0xaa,0x55},
        {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0x00,0xff,0x00}};
int i=0,j=0,k=0,jscs=0;
        void ys(unsigned int time){
unsigned int m=0;
        for(;time>0;time--)
                for(m=0;m<125;m++);
}
timer1() interrupt 3{
jscs++;
        if(jscs==20)
        {        jscs=0;
                i++;
if(i==10){
i=0;
j++;
k=0;
if(j==4) j=0;
}
P2=ledxs[i];}
TH1=0x3c;
TL1=0xb0;
}
void main(){
TR1=1;
EA=1;
TMOD=0x10;
TH1=0x3c;
TL1=0xb0;
ET1=1;
while(1)
{
switch(j)
{
case 0: P1=ledd[0][k];
              ys(200);
              k++;
                                if(k==20) k=0;
                                break;
case 1: P1=ledd[1][k];
              ys(250);
              k++;
                                if(k==16) k=0;
                                break;
case 2: P1=ledd[2][k];
              ys(300);
              k++;
                                if(k==21) k=0;
                                break;
case 3: P1=ledd[3][k];
              ys(350);
              k++;
                                if(k==22) k=0;
                                break;
}
}
}


点赞  2014-6-9 10:19
电路和程序并不复杂,,,protues仿真这种51单片机很成熟,如果仿真成功
建议检查实际焊接装配,,,
点赞  2014-6-9 10:29
引用: chao6446 发表于 2014-6-9 10:19
#include
unsigned char ledxs[]={0x00,0x10,0x80,0x90,0x40,0x50,0xC0,0xD0,0x20,0x30};
unsigned char ...

楼主用的是什么型号地单片机,单片机工作就三个条件,电源,复位,晶振,从现象看,楼主的晶振好像有毛病,应是没有焊牢。
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2014-6-9 10:33
引用: qwqwqw2088 发表于 2014-6-9 10:29
电路和程序并不复杂,,,protues仿真这种51单片机很成熟,如果仿真成功
建议检查实际焊接装配,,,

恩,本人小白,检查了好长时间都没检查出问题··不知道大神能不能给点检查的建议
点赞  2014-6-9 10:34
引用: ddllxxrr 发表于 2014-6-9 10:33
楼主用的是什么型号地单片机,单片机工作就三个条件,电源,复位,晶振,从现象看,楼主的晶振好像有毛病 ...

AT89S51``  我的程序设定一开始是先亮第一个灯的,然后按顺序往下跳,现在是只亮第一个灯,然后不动了,是不是代表程序没跑啊?
点赞  2014-6-9 10:36
引用: ddllxxrr 发表于 2014-6-9 10:33
楼主用的是什么型号地单片机,单片机工作就三个条件,电源,复位,晶振,从现象看,楼主的晶振好像有毛病 ...

网上说,可以通过测定30号引脚才判断晶振是否正常,不知道是不是有这种说法,测定30号引脚的电压为1.7伏左右
点赞  2014-6-9 10:39
引用: chao6446 发表于 2014-6-9 10:34
恩,本人小白,检查了好长时间都没检查出问题··不知道大神能不能给点检查的建议

先按4楼说的检查一下,,,
数码管不亮 ,检查一下仿真用的什么管,共阴共阳与实物对否?U2驱动焊接是否正常等等
点赞  2014-6-9 10:40
引用: ddllxxrr 发表于 2014-6-9 10:33
楼主用的是什么型号地单片机,单片机工作就三个条件,电源,复位,晶振,从现象看,楼主的晶振好像有毛病 ...

换了晶振 问题依旧
点赞  2014-6-9 13:06
引用: chao6446 发表于 2014-6-9 10:39
网上说,可以通过测定30号引脚才判断晶振是否正常,不知道是不是有这种说法,测定30号引脚的电压为1.7伏 ...

测30脚,不是测电压,要用示波器看30脚波形。如果30脚出现矩形波,表示时钟正常复位正常。
点赞  2014-6-9 13:19
好好检查元件参数是否正确、程序是否正确烧录(注意要先编译的,然后烧HEX文件或BIN文件)、然后查焊接。小白一般犯的都是初级错误。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2014-6-9 14:09
LED灯有正反之分,友情提醒一下。
看看有没有接反,反了也不亮的哦。
点赞  2014-6-9 15:38
主要还是检查晶振吧,我觉得~
点赞  2014-6-9 23:02
最主要的问题是晶振,你把晶振接的离单片机尽可能的近,最好是直接焊到单片机引脚上,一般情况下都能解决
点赞  2014-6-10 23:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复