精华内容
下载资源
问答
  • 很好的交通灯程序哦,还带有黄灯闪烁的,而且还有proteus仿真,课程设计没问题啦!
  • } } //--黄灯等待切换状态,5秒--// else if(Second < 11&&Second >7) { DisplayData[0] = 0x00; DisplayData[1] = 0x00; DisplayData[2] = smgduan[(10 - Second) % 10 / 10]; DisplayData[3] = smgduan[(10- ...

    #include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器

    typedef unsigned int u16;          //对数据类型进行声明定义

    typedef unsigned char u8;

    sbit LSA=P2^2;

    sbit LSB=P2^3;

    sbit LSC=P2^4;

    //--定义使用的IO口--//

    #define GPIO_DIG   P0

    #define GPIO_TRAFFIC P1

    sbit RED1   = P1^2;        //南北方向

    sbit YELLOW1= P1^3;

    sbit GREEN1 = P1^4;

    sbit RED0   = P1^5;        //东西方向

    sbit YELLOW0= P1^6;

    sbit GREEN0 = P1^7;

    u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

    0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

    u8 DisplayData[8];

    u8 Second;

    void delay(u16 i)

    {

    while(i--);

    }

    void DigDisplay()

    {

    u8 i;

    for(i=0;i<8;i++)

    {

    switch(i)         //位选,选择点亮的数码管,

    {

    case(0):

    LSA=0;LSB=0;LSC=0; break;//显示第0位

    case(1):

    LSA=1;LSB=0;LSC=0; break;//显示第1位

    case(2):

    LSA=0;LSB=1;LSC=0; break;//显示第2位

    case(3):

    LSA=1;LSB=1;LSC=0; break;//显示第3位

    case(4):

    LSA=0;LSB=0;LSC=1; break;//显示第4位

    case(5):

    LSA=1;LSB=0;LSC=1; break;//显示第5位

    case(6):

    LSA=0;LSB=1;LSC=1; break;//显示第6位

    case(7):

    LSA=1;LSB=1;LSC=1; break;//显示第7位

    }

    GPIO_DIG=DisplayData[i];//发送段码

    delay(100); //间隔一段时间扫描

    GPIO_DIG=0x00;//消隐

    }

    }

    void Timer0Init()

    {

    TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。

    TH0=0XFC;        //给定时器赋初值,定时1ms

    TL0=0X18;

    ET0=1;//打开定时器0中断允许

    EA=1;//打开总中断

    TR0=1;//打开定时器

    }

    void main()

    {

    Second = 1;

    Timer0Init();

    while(1)

    {

    if(Second == 20)

    {

    Second = 1;

    }

    //--宝田路通行,30秒--//

    if(Second < 8)

    {

    DisplayData[0] = 0x00;

    DisplayData[1] = 0x00;

    DisplayData[2] = smgduan[(10 - Second) % 10 / 10];

    DisplayData[3] = smgduan[(10 - Second) %10];

    DisplayData[4] = 0x00;

    DisplayData[5] = 0x00;

    DisplayData[6] = smgduan[(7 - Second) % 10 / 10];

    DisplayData[7] = smgduan[(7 - Second) %10];

    DigDisplay();

    GPIO_TRAFFIC = 0xFF;  //将所有的灯熄灭

    GREEN1 = 0;    //宝田路绿灯亮

    RED0 = 0;      //前进路红灯亮

    while(Second<8&&Second>4)

    {

    DisplayData[0] = 0x00;

    DisplayData[1] = 0x00;

    DisplayData[2] = smgduan[(10 - Second) % 10 / 10];

    DisplayData[3] = smgduan[(10 - Second) %10];

    DisplayData[4] = 0x00;

    DisplayData[5] = 0x00;

    DisplayData[6] = smgduan[(7 - Second) % 10 / 10];

    DisplayData[7] = smgduan[(7 - Second) %10];

    DigDisplay();

    GPIO_TRAFFIC = 0xFF;  //将所有的灯熄灭

    GREEN1 = 0;    //宝田路绿灯亮

    RED0 = 0;      //前进路红灯亮

    delay(50000);

    GREEN1=~GREEN1 ;

    delay(50000);

    }

    }

    //--黄灯等待切换状态,5秒--//

    else   if(Second < 11&&Second >7)

    {

    DisplayData[0] = 0x00;

    DisplayData[1] = 0x00;

    DisplayData[2] = smgduan[(10 - Second) % 10 / 10];

    DisplayData[3] = smgduan[(10- Second) %10];

    DisplayData[4] = 0x00;

    DisplayData[5] = 0x00;

    DisplayData[6] = DisplayData[2];

    DisplayData[7] = DisplayData[3];

    DigDisplay();

    //--黄灯阶段--//

    GPIO_TRAFFIC = 0xFF;  //将所有的灯熄灭

    RED0 = 0;

    YELLOW1 = 0;

    }

    //--前进路通行--//

    else if(Second < 18)

    {

    DisplayData[0] = 0x00;

    DisplayData[1] = 0x00;

    DisplayData[2] = smgduan[(17- Second) % 100 / 10];

    DisplayData[3] = smgduan[(17- Second) %10];

    DisplayData[4] = 0x00;

    DisplayData[5] = 0x00;

    DisplayData[6] = smgduan[(20 - Second) % 100 / 10];

    DisplayData[7] = smgduan[(20- Second) %10];

    DigDisplay();

    //--黄灯阶段--//

    GPIO_TRAFFIC = 0xFF;  //将所有的灯熄灭

    RED1 = 0;       //宝田路红灯亮

    GREEN0 = 0;     //前进路绿灯亮

    while(Second<18&&Second>14)

    {

    DisplayData[0] = 0x00;

    DisplayData[1] = 0x00;

    DisplayData[2] = smgduan[(17- Second) % 100 / 10];

    DisplayData[3] = smgduan[(17- Second) %10];

    DisplayData[4] = 0x00;

    DisplayData[5] = 0x00;

    DisplayData[6] = smgduan[(20 - Second) % 100 / 10];

    DisplayData[7] = smgduan[(20- Second) %10];

    DigDisplay();

    RED1 = 0;

    GREEN0 = 0;

    delay(50000);

    GREEN0 =~GREEN0;

    delay(50000);

    }

    }

    //--黄灯等待切换状态,5秒--//

    else   if(Second < 21&&Second>17)

    {

    DisplayData[0] = 0x00;

    DisplayData[1] = 0x00;

    DisplayData[2] = smgduan[(20- Second) % 100 / 10];

    DisplayData[3] = smgduan[(20 - Second) %10];

    DisplayData[4] = 0x00;

    DisplayData[5] = 0x00;

    DisplayData[6] = smgduan[(20 - Second) % 100 / 10];

    DisplayData[7] = smgduan[(20 - Second) %10];

    DigDisplay();

    //--黄灯阶段--//

    GPIO_TRAFFIC = 0xFF;  //将所有的灯熄灭

    RED1 = 0;

    YELLOW0 = 0;

    }

    }

    }

    void Timer0() interrupt 1

    {

    static u16 i;

    TH0=0XFC;        //给定时器赋初值,定时1ms

    TL0=0X18;

    i++;

    if(i==1000)

    {

    i=0;

    Second ++;

    }

    }

    展开全文
  • 交通绿灯交通警示
  • 自动循环显示,红灯12秒倒计时,直行箭头为红色,红灯倒计时到1秒时候,黄灯开始3秒闪烁黄灯3秒结束后 ,绿灯开始显示,红灯灭,直行箭头变为绿色,12秒倒计时,依次循环。 编程思路教程视频链接:...

    自动循环显示,红灯12秒倒计时,直行箭头为红色,红灯倒计时到1秒时候,黄灯开始3秒闪烁,黄灯3秒结束后

    ,绿灯开始显示,红灯灭,直行箭头变为绿色,12秒倒计时,依次循环。

    编程思路教程视频链接:http://edu.csdn.net/course/detail/8785

    展开全文
  • 南北红灯亮30秒,同时东西绿灯亮25秒,绿灯闪烁3次(间隔为1秒),然后黄灯亮2秒;然后东西与南北互换一下;重复;#include "reg51.h" //#define uint unsigned int#define uchar unsigned char#define ON 0 //0的时候...

    用四盏双色灯模拟,P1口控制;南北红灯亮30秒,同时东西绿灯亮25秒,绿灯闪烁3次(间隔为1秒),然后黄灯亮2秒;然后东西与南北互换一下;重复;

    #include "reg51.h" //

    #define uint unsigned int

    #define uchar unsigned char

    #define ON 0 //0的时候灯亮

    #define OFF 1 //1的时候灯亮

    //管脚定义

    //南北道 黄灯亮3秒 红灯亮 30秒 黄灯3秒 绿灯38秒

    //东西道 黄灯亮3秒 绿灯亮 28秒 黄灯3秒 红灯40秒

    sbit PortDX_Yellow = P1^0; //东西方向黄灯

    sbit PortDX_Red = P1^1; //东西方向红灯

    sbit PortDX_Green = P1^2; //东西方向绿灯

    sbit PortNB_Yellow = P1^3; //南北方向黄灯

    sbit PortNB_Red = P1^4; //南北方向红灯

    sbit PortNB_Green = P1^5; //南北方向绿灯

    void delay(uint ms) // 毫秒级延时(AT89C52 @ 11.0592MHz)

    {

    uint ti;

    while(ms--)

    {

    for(ti=0;ti<112;ti++){}//112

    }

    }

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

    void main(void)

    {

    delay(400); //开机延时400ms

    while(1)

    {

    PortNB_Yellow = ON ;PortNB_Red = OFF;PortNB_Green = OFF;//南北黄灯亮3秒

    PortDX_Yellow = ON ;PortDX_Red = OFF;PortDX_Green = OFF;//东西黄灯亮3秒

    delay(3000);

    PortNB_Yellow = OFF;PortNB_Red = ON ;PortNB_Green = OFF;//南北红灯亮28秒

    PortDX_Yellow = OFF;PortDX_Red = OFF;PortDX_Green = ON ;//东西绿灯亮28秒

    delay(28000);

    PortNB_Yellow = OFF;PortNB_Red = ON ;PortNB_Green = OFF;//南北红灯亮2秒

    PortDX_Yellow = ON ;PortDX_Red = OFF;PortDX_Green = OFF;//东西黄灯亮2秒

    delay(2000);

    PortNB_Yellow = ON ;PortNB_Red = OFF;PortNB_Green = OFF;//南北黄灯亮1秒

    PortDX_Yellow = ON ;PortDX_Red = OFF;PortDX_Green = OFF;//东西黄灯亮1秒

    delay(1000);

    PortNB_Yellow = ON ;PortNB_Red = OFF;PortNB_Green = OFF;//南北黄灯亮2秒

    PortDX_Yellow = OFF;PortDX_Red = ON ;PortDX_Green = OFF;//东西红灯亮2秒

    delay(2000);

    PortNB_Yellow = OFF;PortNB_Red = OFF;PortNB_Green = ON ;//南北绿灯亮38秒

    PortDX_Yellow = OFF;PortDX_Red = ON ;PortDX_Green = OFF;//东西红灯亮38秒

    delay(3800);

    }

    }

    1.当为黄灯时南北、东西两道同时为黄灯;以提示行人或车辆下一个灯色即将到来时间 3秒。

    2.当南北为红灯,南北道车辆禁止通行,时间30秒;南北道为绿灯,南北道车辆通过时间38秒 。

    3.当东西道绿灯,东西道车辆通行,时间为28秒;东西道为红灯,东西道车辆禁止通过时间为40秒。

    4.这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。

    展开全文
  • multisim 红绿灯闪烁

    2017-08-29 14:28:31
    可以闪烁的红灯
  • 本系统采用MSC-52系列单片机AT89C52为中心器件来设计交通灯控制电路,实现了能根据实际车流量通过8052芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,绿灯变红灯时,黄灯闪烁警示5秒。同时模拟实现紧急车辆...
  • 系统具有基本的交通灯功能能遵循程序自动实习红绿灯的转换和延时,使得此系统能适应于现代交通控制系统。 本设计由硬件设计和软件设计两部分组成。硬件设计部分主要是由四部分组成,其中单片机控制系统采用AT89C5...
  • //0-绿灯1-黄灯2-红灯 void configtimer0(unsigned char ms); void trafficlight(); void main() { EA = 1; ADDR3 = 1; ENLED = 0; configtimer0(1); while(1) { if(flag1s) { flag1s = 0; trafficlight(); } } } ...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    #include

    sbit ADDR3 = P1^3;

    sbit ENLED = P1^4;

    bit flag1s=1;

    unsigned char T0RH,T0RL;

    unsigned char ledchar[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

    unsigned char ledbuff[7]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

    unsigned char color = 0;//0-绿灯1-黄灯2-红灯

    void configtimer0(unsigned char ms);

    void trafficlight();

    void main()

    {

    EA = 1;

    ADDR3 = 1;

    ENLED = 0;

    configtimer0(1);

    while(1)

    {

    if(flag1s)

    {

    flag1s = 0;

    trafficlight();

    }

    }

    }

    void configtimer0(unsigned char ms)

    {

    unsigned long tmp;

    tmp = 11059200/12;

    tmp = tmp*ms/1000;

    tmp = 65536 - tmp + 12;

    T0RH = (unsigned char)(tmp>>8);

    T0RL = (unsigned char)tmp;

    TMOD &= 0xF0;

    TMOD |= 0x01;

    TH0 = T0RH;

    TL0 = T0RL;

    ET0 = 1;

    TR0 = 1;

    }

    void trafficlight()

    {

    static unsigned char timer = 0;

    if(timer==0)

    {

    switch(color)

    {

    case 0:color = 1;timer = 2;ledbuff[6] = 0xE7;break;

    case 1:color = 2;timer = 29;ledbuff[6] = 0xFC;break;

    case 2:color = 0;timer = 39;ledbuff[6] = 0x3F;break;

    default :break;

    }

    }

    else

    {

    timer--;

    }

    ledbuff[0] = ledchar[timer%10];

    ledbuff[1] = ledchar[timer/10];

    }

    void ledscan()

    {

    static unsigned char i = 0;

    P0 = 0xFF;

    P1 = (P1 & 0xF8)|i;

    P0 = ledbuff[i];

    i++;

    if(i>=7)

    i=0;

    }

    void interrupttimer0() interrupt 1

    {

    static unsigned int tmr1s = 0;

    static unsigned int cnt = 0;

    static bit dir=1;

    TH0 = T0RH;

    TL0 = T0RL;

    tmr1s++;

    if(tmr1s>=1000)

    {

    tmr1s = 0;

    flag1s = 1;

    }

    if(color!=1)

    ledscan();

    else

    {

    if(dir) //dir=1,刷新数码管

    {

    ledscan();

    cnt++;

    if(cnt>=600)

    {

    cnt = 0;

    dir = 0;

    }

    }

    else //dir=0,不刷新数码管

    {

    cnt++;

    if(cnt>=600)

    {

    cnt = 0;

    dir = 1;

    }

    }

    }

    }

    展开全文
  • #define FOSC 11059200 // 定义系统时钟频率(跟随晶振频率设置)#definetime0 (u16)(65535-((FOSC/12.0/1000000L)*1000))// 计算1ms定时器值// 交通灯时长#define G1_TIME 25//宏定义g1所要的时间#define Y1_TIME 3//...
  • //0-绿灯1-黄灯2-红灯 void configtimer0(unsigned char ms); void trafficlight(); void main() { EA = 1; ADDR3 = 1; ENLED = 0; configtimer0(1); while(1) { if(flag1s) { flag1s = 0; trafficlight(); } } } ...
  • 专业班级:学 号:学生姓名:指导教师:本科实验报告微机原理及接口技术 十字路口红绿灯闪烁实验 微机原理实验室 电子信息1001 2010001211 张 恒 斌 任 光 龙2013年 06月 05日一、实验目的通过对红,绿,黄灯的控制...
  • 通行时间最后3秒,绿灯灭,黄灯闪烁黄灯闪烁完毕变更通行车道。通行时间由数字显示器显示,黄灯3秒闪烁不单另计时。 特殊情况控制通行方式控制,用按键开关K1控制主道通行,支道禁行,K2控制支道通行,主道禁行,...
  • 自己大学组态王课上写的,十字路口交通灯监控系统
  • 绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、...
  • 根据网上的一个交通灯例子进行修改,实现下面这样一个功能: 画圆,然后定时显示不同的颜色,完成闪烁的功能。 大致步骤: 1. 创建CRgn 用于指定重绘位置。并初始化一个位置(自己定)。 2. OnDraw函数中绘图。 3. ...
  • 交通灯交通灯 基本要求 (1)用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯; (2)用两组数码管作为东西和南北方向的倒计时显示,显示时间为红灯45秒、绿灯50秒、黄灯5秒; (3)按照实际红绿灯规则,使红、黄、绿灯...
  • 实验三 十字路口红绿灯闪烁实验 一 实验目的 通过对红绿黄灯的控制熟练掌握 8255A接口芯片的编程方法 二 实验内容 对 8255A 接口芯片进行编程使红黄绿发光二级管按照十字路口交通灯的 形式点亮或者熄灭 三 线路连接 ...
  • 实验三 十字路口红绿灯闪烁实验 实验目的 通过对红绿黄灯的控制熟练掌握8255A接口芯片的编程方法 实验内容 对8255A接口芯片进行编程使红黄绿发光二级管按照十字路口交通灯的形式点亮或者熄灭 线路连接 发光二级管共8...
  • 汇编语言实验 交通灯控制 十字路口 交通灯 源文件 绿转黄 黄转红 黄灯占时20%
  • 交通灯功能:按钮功能:SB1为自锁型按钮:功能为手动/自动运行模式切换按钮;SB2为自锁型按钮:功能为手动模式时切换按钮,实现东西/南北大方向手动切换;SB3为自锁型按钮:功能为手动模式下东西方向内切换,实现左...
  • 2.配备有操作板可以人为设置各路口交通灯的亮灭时间、闪烁频率,报警器频率,字符串提示。控制暂停和全灭。3.数码管显示的系统实时年月日及时间。4.显示以及交通管制中的7种模式(普通模式、三向禁行、南北通行、...
  • 到20s时,东西绿灯闪烁,闪烁3S后熄灭。在东西绿灯熄灭时,东西黄灯亮,并维持2S。到2S时,东西黄灯熄,东西红灯亮。同时,南北红灯熄灭,南北绿灯亮。东西红灯亮维持30S。南北绿灯亮维持25s。然后闪烁3s,熄灭。...
  • 简易交通灯

    2018-03-16 14:37:47
    ②主干道和支道各有红、黄、绿三盏交通灯,进行红绿灯切换时要求黄灯以Z秒钟为间隔闪烁3次; ③交通灯系统具有紧急开关,当紧急开关打下时,两路红灯同时点亮,直到紧急开关断开后,交通灯恢复正常工作;要求必须...
  • 交通灯注释全.rar

    2020-03-11 06:21:17
    omron PLC 交通灯例程,带注释,很好的毕业设计样例,完美通过试验,完美实现交通灯功能,先初始化,后绿灯亮30s,后绿灯闪烁,后黄灯闪烁3秒,后红灯亮30s
  • 交通灯.DSN

    2019-06-28 12:21:00
    交通灯有两种,给机动车看的叫机动车灯,通常指由红、黄、绿(绿为蓝绿)三种颜色灯组成用来指挥交通通行的信号灯。 绿灯亮时,准许车辆通行,黄灯闪烁时,已越过...本仿真图是单路交通灯绿灯10s,黄灯2s,红灯10s.
  • 使用jquery实现红绿灯闪烁效果 效果图如下 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="jquery.js"></script>...
  • 交通灯控制系统

    2018-03-21 19:48:20
    交通灯控制系统毕业设计文档,设计一个交通信号灯控制系统,要求: 初始状态为两个方向的红灯全亮,时间6秒。 主干道绿灯亮,支干道红灯亮,主干道通车,时间为20秒。 主干道黄灯闪烁,支干道红灯亮,时间为6秒。 ...
  • vhdl交通灯设计源代码

    2012-06-17 16:48:59
    本设计通过了验证 实现交通灯的自主控制 东西方向红绿灯黄灯闪烁 南北方向红绿灯通行及黄灯闪烁 紧急情况下的亮灯控制
  • 交通灯设计

    2011-12-30 17:31:53
    交通灯课程设计主干道20秒副道 30秒黄灯 5秒 黄灯闪烁

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,020
精华内容 408
关键字:

交通灯黄灯闪烁