精华内容
下载资源
问答
  • 利用51单片机实现交通灯控制,适合初学者使用
  • 单片机控制交通灯的设计 单片机控制交通灯的设计 来看看吧
  • 51单片机控制交通灯c程序,交通灯模拟c语言的protues仿真软件
  • 51单片机控制交通灯c程序
  • 原标题:51单片机控制交通灯的课程设计51单片机控制交通灯的课设程序如下:ORG 00H;************************************************************;灯操作及数码管显示;*******************************************...

    原标题:51单片机控制交通灯的课程设计

    51单片机控制交通灯的课设

    程序如下:

    ORG 00H

    ;************************************************************

    ;灯操作及数码管显示

    ;************************************************************

    START:MOV DPTR,#TAB

    MOV S CON,#00H

    MOV P1,#6CH

    MOV R0,#11

    D1: DEC R0 ;自定义为10S

    CJNE R0,#3,LP0

    LCALL DBDB

    MOV P1,#6CH

    LCALL DISP1

    D11: DEC R0

    CJNE R0,#0,LP00

    MOV P1,#6CH

    LCALL DBDB

    LCALL DISP

    MOV P1,#0AAH

    MOV R0,#04

    D2: DEC R0

    CJNE R0,#0,LP1

    LCALL DBDB

    LCALL DISP

    MOV P1,#0C6H

    MOV R0,#16 ; 自定义为15S

    D3: DEC R0

    CJNE R0,#3,LP2

    LCALL DBDB

    MOV P1,#0C6H

    LCALL DISP1

    D33: DEC R0

    CJNE R0,#0,LP22

    MOV P1,#0C6H

    LCALL DBDB

    LCALL DISP

    MOV P1,#0AAH

    MOV R0,#04

    D4: DEC R0

    CJNE R0,#0,LP3

    LCALL DBDB

    LCALL DISP

    MOV P1,#6CH

    MOV R0,#11

    LJMP D1

    LP0: LCALL DBDB

    LCALL DISP

    LJMP D1

    LP00: LCALL DBDB

    MOV P1,#6CH

    LCALL DISP1

    LJMP D11

    LP1: LCALL DBDB

    LCALL DISP

    LJMP D2

    LP2: LCALL DBDB

    LCALL DISP

    LJMP D3

    LP22: LCALL DBDB

    MOV P1,#0C6H

    LCALL DISP1

    LJMP D33

    LP3: LCALL DBDB

    LCALL DISP

    LCALL D4

    ;************************************************************

    ;除10运算

    ;************************************************************

    DBDB: MOV A,R0

    MOV B,#10

    DIV AB

    MOV R1,A

    MOV R2,B

    RET

    ;************************************************************

    ;显示子程序

    ;************************************************************

    DISP: MOV A,R2

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    MOV A,R1

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    LCALL DELAY

    RET

    DISP1: MOV A,R2

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    MOV A,R1

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    LCALL DELAY1

    MOV P1,#0FFH

    MOV A,#10

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    MOV SBUF,A

    JNB TI,$

    CLR TI

    LCALL DELAY2

    RET

    ;************************************************************

    ;延时子程序

    ;************************************************************

    DELAY:MOV R3,#09H

    K1: MOV R4,#100

    K2: MOV R5,#250

    K3: DJNZ R5,K3

    DJNZ R4,K2

    DJNZ R3,K1

    RET

    DELAY1:MOV R3,#09H

    SS1: MOV R4,#80

    SS2: MOV R5,#250

    SS3: DJNZ R5,SS3

    DJNZ R4,SS2

    DJNZ R3,SS1

    RET

    DELAY2:MOV R3,#09H

    AA1: MOV R4,#30

    AA2: MOV R5,#250

    AA3: DJNZ R5,AA3

    DJNZ R4,AA2

    DJNZ R3,AA1

    RET

    TAB: DB 3FH,06H,5BH

    DB 4FH,66H

    DB 6DH,7DH,07H

    DB 7FH,6FH,00H返回搜狐,查看更多

    责任编辑:

    展开全文
  • 程序效果:单片机模拟控制交通灯程序,规则如下:当南北通车时,此时南北的绿灯亮,东西的红灯亮,之后南北的绿灯闪烁3次,过后黄灯亮,延时片刻,转东西绿灯亮同时南北红灯亮,之后东西的绿灯闪烁3次,过后黄灯亮,...
  • 本文为51单片机简单交通灯控制程序,希望对你的学习有所帮助。
  • 单片机控制交通灯

    2012-11-19 21:51:27
    单片机控制交通灯系统设计,内含原理图及相关程序
  • // 实验二十四8255控制交通灯实验#include "reg51.h"#define mode 0x80 // 方式0,PA,PC,PB输出xdata unsigned char PortA _at_ 0xA000 ; // Port Axdata unsigned char PortB _at_ 0xA001 ; // Port Bxdata ...

    // 实验二十四8255控制交通灯实验

    #include "reg51.h"

    #define mode 0x80 // 方式0,PA,PC,PB输出

    xdata unsigned char PortA _at_ 0xA000 ; // Port A

    xdata unsigned char PortB _at_ 0xA001 ; // Port B

    xdata unsigned char PortC _at_ 0xA002 ; // Port C

    xdata unsigned char CAddr _at_ 0xA003 ; // 控制字地址

    void Delay(unsigned char CNT)

    {

    unsigned int I;

    while ((CNT > 0)) {

    for (I=0; (I < 10000) ; I++) ;

    CNT--;

    }

    }

    void main()

    {

    unsigned char I;

    CAddr = mode;

    PortA = 0x09; // 南北, 东西均红灯Delay(20);

    while (1) {

    PortA = 0x21; // 南北红灯, 东西绿灯

    Delay(20);

    PortA = 0x01; // 南北红灯, 东西黄灯闪

    for (I=0; I < 9; I++) {

    Delay(2);

    PortA = 0x01;

    Delay(2);

    PortA = 0x11;

    }

    展开全文
  • 单片机控制交通灯电路的设计.pdf
  • C语言写的51单片机交通灯控制程序,开源代码,供参考学习。 C语言写的51单片机交通灯控制程序,开源代码,供参考学习。
  • at89s51单片机模拟交通灯程序,包括红绿灯控制,绿灯剩余时间显示
  • 单片机控制交通灯的keil工程源文件
  • 基于单片机交通灯控制系统设计程序
  • 这是通过单片机keil来设计交通灯控制系统的源代码,比较基础,也比较原始的一个基于单片机交通灯控制系统的源程序
  • 51单片机交通灯程序

    2015-03-22 23:09:52
    51单片机交通灯程序控制数码管、定时器的使用。
  • 根据交通灯在实际控制中的特点,结合单片机的控制功能,提出了一种用单片机自动控制交通灯的简易方法。设计中包括硬件电路的设计和程序设计两大步骤,对单片机学习中的几个重要内容都有涉足。单片机的应用正在不断...

    模拟交通灯控制系统

    摘要:随着经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题。因此,设计可靠、安全、便捷的多功能交通灯控制系统有极大的现实必要性。根据交通灯在实际控制中的特点,结合单片机的控制功能,提出了一种用单片机自动控制交通灯的简易方法。设计中包括硬件电路的设计和程序设计两大步骤,对单片机学习中的几个重要内容都有涉足。

    单片机的应用正在不断深入,单片机可以用来仿真各个系统。在自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

    十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用单片机STC89C52为中心器件来设计交通灯控制器,实现了通过P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。

    关键词:单片机交通灯数码管

    展开全文
  • 单片机控制交通灯.doc

    2021-03-30 10:46:32
    本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示...
  • Proteus仿真原理图:Keil C源程序:#include#define uchar unsigned char#define uint unsigned intsbit RED_DONGXI = P1^0;//南北方向红灯亮sbit YELLOW_DONGXI = P1^1;//南北方向黄灯亮sbit RED_NANBEI = P1^3;//...

    Proteus

    仿真原理图:

    Keil C源程序:

    #include

    #define uchar unsigned char

    #define uint unsigned int

    sbit RED_DONGXI = P1^0;//南北方向红灯亮

    sbit YELLOW_DONGXI = P1^1;//南北方向黄灯亮

    sbit RED_NANBEI = P1^3;//东西方向红灯亮

    sbit GREEN_DONGXI = P1^2;//南北方向绿灯亮

    sbit YELLOW_NANBEI = P1^4;//东西方向黄灯亮

    sbit GREEN_NANBEI = P1^5;//东西方向绿灯亮

    sbit DXweixuan1 = P1^6;//南北方向数码管位选1

    sbit DXweixuan2 = P1^7;//南北方向数码管位选2

    sbit NBweixuan1 = P3^0;//东西方向数码管位选1

    sbit NBweixuan2 = P3^1;//东西方向数码管位选2

    sbit L1=P3^5;

    sbit L2=P3^6;

    sbit L3=P3^7;

    uint aa, bai,shi,ge,bb;

    uint shi1,ge1,shi2,ge2;

    uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uint code table1[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};

    void delay(uint z);

    void init(uint a);

    void display(uint shi1,uint ge1,uint shi2,uint ge2);

    void xtimer0();

    void init1();

    void init2();

    void init3();

    void init4();

    void init5();

    void xint1();

    void xint0();

    void LED_ON();

    void LED_OFF();

    void main()

    {

    P0=0xFF;

    P1=0xFF;

    P2=0x00;

    P3=0xFF;

    EA=1;

    EX0=1;

    IT0=0;

    init1();

    while(1)

    {

    init2();//第2个状态

    init3(); //第3个状态

    init4(); //第4个状态

    init5();//第5个状态

    }

    }

    void init1()//第一个状态:东西、南北方向均亮红灯5S

    {

    uint temp;

    temp=5;

    TMOD=0x01;

    TH0=(65535-50000)/256;

    TL0=(65535-50000)%256;

    EA=1;

    ET0=1;

    TR0=1;

    while(1)

    {

    } } RED_DONGXI=0; //第一个状态东西、南北均亮红灯5S RED_NANBEI=0; GREEN_DONGXI=1; GREEN_NANBEI=1; YELLOW_DONGXI=1; YELLOW_NANBEI=1; if(aa==20)//定时20*50MS=1S { aa=0; temp--; } shi1=shi2=temp/10; ge1=ge2=temp%10; if(temp==0) { temp=5; break; } display(ge1,shi1,ge2,shi2);

    void init2()//第二个状态:东西亮红灯30S~5S、南北亮绿灯25~0S; {

    uint temp;

    temp=26;

    TMOD=0x01;

    TH0=(65535-50000)/256;

    TL0=(65535-50000)%256;

    EA=1;

    ET0=1;

    TR0=1;

    while(1)

    {

    RED_DONGXI=1;

    RED_NANBEI=0;

    GREEN_DONGXI=0;

    GREEN_NANBEI=1;

    YELLOW_DONGXI=1;//第二个状态:东西亮绿灯25S、南北亮红灯 YELLOW_NANBEI=1;

    if(aa==20)//定时20*50MS=1S

    {

    aa=0;

    temp--;

    shi1=(temp+5)/10;

    ge1=(temp+5)%10;

    shi2=temp/10;

    ge2=temp%10;

    if(temp==0)

    {

    temp=26;

    break;

    }

    }

    display(ge1,shi1,ge2,shi2);

    }

    }

    void init3() //第三个状态:东西绿灯变为黄灯闪5次、南北亮红灯5S {

    uint temp;

    temp=6;

    TMOD=0x01;

    TH0=(65535-50000)/256;

    TL0=(65535-50000)%256;

    EA=1;

    ET0=1;

    TR0=1;

    while(1)

    {

    RED_NANBEI=0;

    GREEN_DONGXI=1;

    } } if(aa==20)//定时20*50MS=1S { aa=0; temp--; YELLOW_DONGXI=~YELLOW_DONGXI; shi1=temp/10; shi2=shi1; ge1=temp%10; ge2=ge1; } if(temp==0) { temp=6; break; } display(ge1,shi1,ge2,shi2);

    void init4()//第四个状态:东西亮绿灯25~0S,南北方向亮红灯30~5S; {

    uint temp;

    temp=26;

    TMOD=0x01;

    TH0=(65535-50000)/256;

    TL0=(65535-50000)%256;

    EA=1;

    ET0=1;

    TR0=1;

    while(1)

    {

    RED_DONGXI=0;

    RED_NANBEI=1;

    }

    } YELLOW_DONGXI=1;//第一个状态东西、南北均亮红灯5S GREEN_NANBEI=0; if(aa==20) { aa=0; temp--; shi1=temp/10; shi2=(temp+5)/10; ge1=temp%10; ge2=(temp+5)%10; if(temp==0) { temp=26; break; } } display(ge1,shi1,ge2,shi2);

    void init5()//第五个状态:东西亮红灯、南北绿灯闪5次转亮黄灯5S {

    uint temp;

    temp=6;

    TMOD=0x01;

    TH0=(65535-50000)/256;

    TL0=(65535-50000)%256;

    EA=1;

    ET0=1;

    TR0=1;

    while(1)

    {

    RED_NANBEI=1;

    RED_DONGXI=0;

    GREEN_DONGXI=1;

    GREEN_NANBEI=1;

    if(aa==20)

    {

    aa=0;

    temp--;

    YELLOW_NANBEI=~YELLOW_NANBEI;

    shi1=temp/10;

    shi2=shi2;

    ge1=temp%10;

    ge2=ge1;

    if(temp==0)

    {

    temp=6;

    break;

    }

    }

    display(ge1,shi1,ge2,shi2);

    }

    }

    void display(uint shi1,uint ge1,uint shi2,uint ge2) {

    DXweixuan1=0;

    DXweixuan2=1;

    NBweixuan1=1;

    NBweixuan2=1;

    P0=table[ge1];

    delay(5);

    DXweixuan1=1;

    DXweixuan2=0;

    NBweixuan1=1;

    NBweixuan2=1;

    P0=table[shi1];

    delay(5);

    DXweixuan1=1;

    DXweixuan2=1;

    NBweixuan1=0;

    NBweixuan2=1;

    P0=table[ge2]; delay(5);

    DXweixuan1=1; DXweixuan2=1; NBweixuan1=1; NBweixuan2=0; P0=table[shi2]; delay(5);

    }

    void xint0() interrupt 0 {

    RED_NANBEI=0; RED_DONGXI=0; GREEN_NANBEI=1; GREEN_DONGXI=1; YELLOW_NANBEI=1; YELLOW_DONGXI=1; P0=0x00;

    NBweixuan1=0; NBweixuan2=0; DXweixuan1=0; DXweixuan2=0; delay(2);

    return ;

    }

    void xint1() interrupt 2 {

    RED_NANBEI=1; RED_DONGXI=1; GREEN_NANBEI=0; GREEN_DONGXI=0; YELLOW_NANBEI=1; YELLOW_DONGXI=1; P0=0x00;

    NBweixuan1=0; NBweixuan2=0; DXweixuan1=0; DXweixuan2=0; delay(2);

    return ;

    }

    void xtimer0() interrupt 1 {

    TH0=(65535-50000)/256;

    TL0=(65535-50000)%256; aa++;

    }

    void delay(uint z) {uint x,y;

    for(x=0;x

    for(y=0;y

    展开全文
  • 用51单片机制作的交通灯很适合初学者
  • 此代码设计的是一个城市十字路口的交通灯控制系统,程序可用
  • 同学们在学习技术的时候,一定要多动脑筋,遇到问题后,三思而后问。有些时候你考虑的和真理就差一点点了,没有坚持下去,别人告诉你后才恍然大悟。这样得到的结论,可以让你学到知识,但是却培养不了你的逻辑思维...
  • 单片机交通灯程序

    2015-03-31 11:33:24
    交通灯单片机,实现交通灯的红绿灯控制 Click here if you do not want to see this message again.
  • 本文主要介绍的是PIC单片机写的交通灯程序
  • 51单片机交通灯控制程序 模拟交通灯红灯先亮10秒,接着黄灯再亮3灯,随后绿灯再亮10秒.本实验是采用调用延时子程序的方式
  • 51单片机用C语言实现交通灯(红绿灯)源程序51单片机用C语言实现交通灯(红绿灯)源程序2009-10-29 23:00交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改。源程序如下:/*1、程序目的...
  • 设计主要是利用单片机制作一个交通灯控制系统并由此加深我们对单片机的各种模块的理解和应用能力。比如这次设计就用到了单片机的数码管显示模块,键扫描模块,单片机的中断服务系统(包括定时器中断和外部中断),四...

空空如也

空空如也

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

单片机控制交通灯程序