⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 交通灯程序。C语言开发
💻 C
字号:

#include <stdio.h>
#include <time.h>
#include <regtsk51a.sfr>
//宏定义
#define uint unsigned int
#define uchar unsigned char

#define ON 1 //1的时候灯亮
#define OFF 0 //0的时候灯灭
/* I/O ports */

//管脚定义
//南北道 黄灯亮3秒 红灯亮 30秒 黄灯3秒 绿灯38秒
//东西道 黄灯亮3秒 绿灯亮 28秒 黄灯3秒 红灯40秒
//PortDX_Yellow = P1^0; //东西方向黄灯
// PortDX_Red = P1^1; //东西方向红灯
// PortDX_Green = P1^2; //东西方向绿灯
// PortNB_Yellow = P1^3; //南北方向黄灯
// PortNB_Red = P1^4; //南北方向红灯
// PortNB_Green = P1^5; //南北方向绿灯



/* handle the switches */
static void handle_switches(void)
{
    uint mode;
    if ( P0_0==1)
    {
        mode = 1;
    }
    else if ( P0_0==0)
    {
        mode = 0;
    }
}


 void wait()
 {
  uint i;

    for (i = 0; i < 65000; ++i)
    {
        __nop();
        __nop();
        __nop();

    }
 }

void yellow()
{
    uint i;

    P1_1 = ON;   P1_0 = OFF;    P1_2 = OFF; //南北黄灯亮3秒
    P1_6 = ON;    P1_5 = OFF;   P1_7 = OFF; //东西黄灯亮3秒
    wait();
    P1_1 = OFF;
   P1_0 = OFF;
    P1_2 = OFF; //南北黄灯亮3秒
   P1_6 = OFF;
   P1_5 = OFF;
   P1_7 = OFF; //东西黄灯亮3秒
    wait();
    P1_1 = ON;   P1_0 = OFF;    P1_2 = OFF; //南北黄灯亮3秒
    P1_6 = ON;    P1_5 = OFF;   P1_7 = OFF; //东西黄灯亮3秒
    wait();
    P1_1 = ON;   P1_0 = OFF;    P1_2 = OFF; //南北黄灯亮3秒
    P1_6 = ON;    P1_5 = OFF;   P1_7 = OFF; //东西黄灯亮3秒
    wait();
}



void init() //声明中断初始化
{
     uint i;
     P1_3=0;
     P1_4=0;
     P1_1 = OFF;   P1_0 = ON;   P1_2 = OFF; //南北红灯亮28秒
     P1_6 = OFF;   P1_5 = OFF;  P1_7 = ON; //东西绿灯亮28秒

    wait() ;
   wait() ;
    wait();


}

/*==================== 主函数 ====================*/


void main(void)
{
     uint mode;
    /* initialize all things */
   init(); //调用初始化函数
     while (1)
    {

       if (mode==1)
            {
                yellow();
                 P1_1 = OFF;   P1_0 = OFF; P1_2 = ON; //南北绿灯亮38秒
                 P1_6 = OFF;   P1_5 = ON;  P1_7 = OFF; //东西红灯亮38秒
                wait();
                 wait();
                 handle_switches();
            }
            else if (mode == 0)
            {
             yellow();
               P1_1 = OFF;   P1_0 = ON;   P1_2 = OFF; //南北红灯亮28秒
               P1_6 = OFF;   P1_5 = OFF;  P1_7 = ON; //东西绿灯亮28秒
                wait();
                 wait();
                  wait();
                 handle_switches();  
            }
            else
            {
              P1_1 = OFF;   P1_0 = ON;   P1_2 = OFF; //南北红灯亮28秒
        P1_6 = OFF;   P1_5 = OFF;  P1_7 = ON; //东西绿灯亮28秒
            }

    handle_switches();
    }
}









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -