找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

大家帮忙看看啊

[复制链接]
971626996 发表于 2012-8-14 14:49:59 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
下面的代码怎么会使灯闪烁三次啊?

                           delayms(300);
                        yellow_b=~yellow_b;
                        blue_b=1;
                              if(++count!=10) return;
                         count=0;
admin 发表于 2012-8-14 18:54:58 | 显示全部楼层
这个代码不会让灯闪烁3次的 建议你吧全部代码发出来帮你看下
 楼主| 971626996 发表于 2012-8-15 08:50:09 | 显示全部楼层
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit red_a=P1^0;//东西向灯
sbit yellow_a=P1^1;
sbit blue_a=P1^2;
sbit red_b=P1^3;
sbit yellow_b=P1^4;
sbit blue_b=P1^5;
uchar count=0,type=1;//闪烁次数,操作类型变量
void delayms(uint xm)
{
     uint i,j;
         for(i=xm;i>0;i--)
                 for(j=110;j>0;j--);
}
void traffic_light()
{
     switch(type)
         {
             case 1:
                    red_a=1;
                        yellow_a=1;
                        blue_a=0;
                        red_b=0;
                        yellow_b=1;
                        blue_b=1;
                        delayms(2000);
                        type=2;
                        break;
                case 2:
                    delayms(300);
                        yellow_a=~yellow_a;
                        blue_a=1;
                    if(++count!=10) return;
                         count=0;
                        type=3;
                        break;
                 case 3:
                    red_a=0;
                        yellow_a=1;
                        blue_a=1;
                        red_b=1;
                        yellow_b=1;
                        blue_b=0;
                        delayms(2000);
                        type=4;
                        break;
                case 4:
                    delayms(300);        //五次闪烁
                        yellow_b=~yellow_b;
                        blue_b=1;
                    if(++count!=10) return;
                         count=0;
                        type=1;
                        break;



      }

}
void main()
{
     while(1)
         {
           traffic_light();
         }
}
り亚马IT社区 发表于 2012-8-15 11:41:52 | 显示全部楼层
不打注释很难看啊。
admin 发表于 2012-8-16 18:44:54 | 显示全部楼层
把你要求的效果 和这段代码出现的BUG说下帮你调试下
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-23 10:41 , Processed in 0.060395 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表