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

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 上传
这个是具体的电路,请问各位前辈,是不是每次上电后复位没有工作啊?还是复位电路的电容有问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
27条回答
songtion
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();       
        }
}

一周热门 更多>