求助!自己焊的一个板子,每次上电后灯亮状态都不一样。

2020-02-05 09:29发布

本帖最后由 songtion 于 2012-4-24 10:33 编辑

2012-04-24 09h52_43.png (29.63 KB, 下载次数: 0) 下载附件 具体电路图 2012-4-24 09:54 上传
这个是具体的电路,请问各位前辈,是不是每次上电后复位没有工作啊?还是复位电路的电容有问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
songtion
1楼-- · 2020-02-06 22:16
xiaobendan001 发表于 2012-4-25 08:06
其实也不太对
复位是没问题的,晶振似乎也没问题
没有程序的话,出厂时应该有一个测试程序在里面的,AT的不 ...

写了程序的,程序是对的,第一次还能完全按照程序走……
songtion
2楼-- · 2020-02-06 23:56
dz20062008 发表于 2012-4-25 02:03
测量晶振两端是否有二分之一的电源电压,更换复位电路的电阻电容,测量是否通电后为零伏电压。还有就是你的 ...

附上程序:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit RED_A=P0^0;
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P0^3;
sbit YELLOW_B=P0^4;
sbit GREEN_B=P0^5;

uchar Flash_Count = 0;
Operation_Type = 1;

void DelayMS(uint x)
{
        uchar t;
        while(x--)
        {
                 for(t=120;t>0;t--);
        }
}

void Traffic_lignt()
{
        switch(Operation_Type)
        {
                 case 1:
                        RED_A=1;YELLOW_A=1;GREEN_A=0;
                        RED_B=0;YELLOW_B=1;GREEN_B=1;
                        DelayMS(2000);
                        Operation_Type = 2;
                        break;
                case 2:
                        DelayMS(200);
                        YELLOW_A=~YELLOW_A;
                        if(++Flash_Count !=10)
                                return;
                        Flash_Count=0;
                        Operation_Type = 3;
                        break;
                case 3:
                        RED_A=0;YELLOW_A=1;GREEN_A=1;
                        RED_B=1;YELLOW_B=1;GREEN_B=0;
                        DelayMS(2000);
                        Operation_Type = 4;
                        break;       
                case 4:
                        DelayMS(200);
                        YELLOW_B=~YELLOW_B;
                        if(++Flash_Count !=10)
                                return;
                        Flash_Count=0;
                        Operation_Type = 1;
                        break;       
        }
}

void main()
{
        while(1)
        {
                 Traffic_lignt();       
        }
}
lxa0
3楼-- · 2020-02-07 05:52
看不懂C
不过我认为
大多是初始化代码有问题
riverblue2010
4楼-- · 2020-02-07 07:46
兜圈儿的路过
raxb
5楼-- · 2020-02-07 11:53
 精彩回答 2  元偷偷看……
songtion
6楼-- · 2020-02-07 13:31
raxb 发表于 2012-4-25 22:43
P0口没有接上拉电阻???

接了啊……

一周热门 更多>