• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

把蜂鸣器改成停车,51单片机相关

hehexi 2017-05-10 浏览量:604
int main(void) { uchar count = 0; uint i, j; NUM_1 = 0; //开启第一位数码管 car_stop(); //小车开始时停止 while(1) { if (count > 9) //数码管显示计数值最大为9 { //计数值大于9后不再增加 count = 9; } P0 = table[count]; //数码管显示计数值 if (XJ_L == 0 && XJ_R == 0) //左右循迹输入都为白色 { //小车向前进 car_go(); } else if (XJ_L == 1 && XJ_R == 0) //左循迹输入为黑色,且右循迹输入为白色 { //小车向左转 car_turnleft(); } else if (XJ_L == 0 && XJ_R == 1) //左循迹输入为白色,且右循迹输入为黑色 { //小车向右转 car_turnright(); } else if (XJ_L == 1 && XJ_R == 1) //左右循迹输入都为黑色,即遇到计数标志 { BUZZ = 0; //开启蜂鸣器 for (i=0; i
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 你的程序好乱啊,这样看是不是清楚 多了。

    你是要把蜂鸣器更成停车,从你和程序上看car_stop();是停车,蜂鸣器是BUZZ = 0;你要怎么更改,不会是把两条语句 更换一下这么简单吧。

    int main(void)

    {
        uchar count = 0;
        uint i, j;
        NUM_1 = 0; //开启第一位数码管
        car_stop(); //小车开始时停止
        while (1)
        {
            if (count > 9) //数码管显示计数值最大为9
            { //计数值大于9后不再增加
                count = 9;
            }
            P0 = table[count]; //数码管显示计数值
            if (XJ_L == 0 && XJ_R == 0) //左右循迹输入都为白色
            { //小车向前进
                car_go();
            }
            else if (XJ_L == 1 && XJ_R == 0) //左循迹输入为黑色,且右循迹输入为白色
            { //小车向左转 car_turnleft(); } else if (XJ_L == 0 && XJ_R == 1)
              //左循迹输入为白色,且右循迹输入为黑色
                { //小车向右转
                    car_turnright();
                }
            else if (XJ_L == 1 && XJ_R == 1) //左右循迹输入都为黑色,即遇到计数标志
            {   BUZZ = 0; //开启蜂鸣器
                for (i=0; i//后面你的程序不全。
            }
        }
    }
    }

    • 发布于 2017-05-10
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 楼主想描述什么问题?
    • 发布于2017-05-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 你要实现一个什么功能呢?


    另外你的代码太乱了,最好一句换一行

    • 发布于2017-05-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 問題好像沒貼完整?

    蜂鳴器改掉就只是把蜂鳴器控制的程式碼換成

    car_stop();

    這樣子而已,可以再描述清楚一點

    以上

    • 发布于2017-05-10
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

把蜂鸣器改成停车,51单片机相关