码迷,mamicode.com
首页 > 其他好文 > 详细

交通信号灯调试程序

时间:2019-10-12 23:01:06      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:keil   dct   链接   信号灯   运行程序   第一步   ++   博文   软件   

一,以下内容需要的软件以及使用方法和操作方法请看我以前的博文。这里发下要使用到的proteus电路图

       链接:https://pan.baidu.com/s/1W9vbEOxdCtdtd3VAaV1rkg 提取码:dxak 

二,要交通灯的要求。

       1,先东西南北红灯亮,1秒。

       2,东西红灯亮,南北绿灯亮,10秒。

       3,东西红灯闪,南北黄灯闪,3秒。

       4,东西绿灯亮,南北红灯亮,10秒。

       5,东西黄灯闪,南北绿灯亮,3秒。

三,开始

1,使用proteus软件打开交通灯的电路图(直接打开电路图即可),如下图所示(电路图第一步发了)

 技术图片

 

 

 

技术图片

 2.打开Keil uVision4开始写代码。

具体内容:详细操作请看我以前发布的博文

                 1,创建工程。

                  2,添加2个点C文件,一个点h文件。

                  3,将点C与点h文件加入到工程界面。

                  4,编写3个代码,2个点C,与一个点h文件。(如下图所示)

技术图片

 

 技术图片

 

 技术图片

 

 3,具体代码。

#include <reg52.h> 
#include "delay.h"
sbit XD_R=P0^0;
sbit XD_H=P0^1;
sbit XD_L=P0^2;
sbit BN_R=P0^3;
sbit BN_H=P0^4;
sbit BN_L=P0^5;
void main()
{
     unsigned char i=0;
     //东西南北路口红灯亮
     XD_R = 0;
     BN_R = 0;
     delay1s();
     while(1)
     {
            //东西红灯亮,南北绿灯亮延时10秒
          XD_R = 0;
         BN_R =    1;
         BN_L = 0;
         delay10s();             
       for(i=0;i<3;i++)    //东西红灯闪,南北黄灯闪,3秒延时
       {    
               XD_R = 0;
            BN_H = 0;
            BN_L = 1;
            delay1s();
            XD_R = 1;
            BN_H = 1;
            delay1s();              
       }
      //东西绿灯亮,南北红灯亮,10秒延时
         XD_R = 1;
         BN_H = 1;
         XD_L = 0;
         BN_R = 0;
         delay10s();     
       for(i=0;i<3;i++)    //东西黄灯闪,南北红灯闪,3秒延时
          {
            XD_L = 1;
           XD_H = 0;
           BN_R = 0;
           delay1s();
           XD_H = 1;
           BN_R = 1;
           delay1s();
          }
     }
}

 

void delay1s();
void delay10s();

 

void delay1s()
{
    unsigned char x = 0;
    unsigned char i;
    unsigned char y = 0;
    while(y < 3)
    {
        x = 0;    
        while(x<250)
        {
            i = 0;
            while(i<250)
            {
                i++;
            }
            x++;
        }
        y++;
    }
}

void delay10s()
{
    unsigned char x = 0;
    unsigned char i;
    unsigned char y = 0;
    while(y < 30)
    {
        x = 0;    
        while(x<250)
        {
            i = 0;
            while(i<250)
            {
                i++;
            }
            x++;
        }
        y++;
    }
}

四,最后运行程序,生成hex文件,将它添加进proteus交通灯电路图模拟即可。

 

交通信号灯调试程序

标签:keil   dct   链接   信号灯   运行程序   第一步   ++   博文   软件   

原文地址:https://www.cnblogs.com/dyw31/p/11663809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!