• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > 基于89C52單片機的紅外遙控雙模式交通燈控制系統

    基于89C52單片機的紅外遙控雙模式交通燈控制系統

    作者: 時間:2012-08-31 來源:網絡 收藏

    void display(shi,ge)

    { dula=1;

    P0=table[shi];

    dula=0;

    wela=1;

    P0=table1[0];

    wela=0;

    delay(5);

    P0=0xff; // 對數碼管消影

    dula=1;

    P0=table[ge];

    dula=0;

    wela=1;

    P0=table1[1];

    wela=0;

    delay(5);

    P0=0xff;}

    模式一函數:

    void mod1()

    { if(num==1gtime>5) // 東西道紅燈亮,南北道綠燈亮,最后5 秒切換成黃燈

    { LED5=0;

    LED1=0; }

    if(num==2) // 東西道綠燈亮,南北道紅燈亮

    { LED2=0;

    LED6=0;

    LED5=1;

    LED3=1;

    LED1=1; }

    if(num==1gtime==5) // 東西道紅燈亮,南北道黃燈亮5 秒

    { LED5=1;

    LED2=1;

    LED3=0; }

    shi=gtime/10;

    ge=gtime%10;

    if(aa==20) // 50ms×20=1s, 即過1s 數碼管數字減1

    { aa=0;

    gtime--; }

    display(shi,ge);

    if(gtime==0num!=2)

    { gtime=60;

    num=2; }

    if(gtime==0num==2)

    { num=1;

    gtime=60;

    LED2=1;

    LED6=1; } }

    模式二函數:

    如同模式一,只是參數有變化。如將gtime=60 換成rtime=40;num=1 換成numa=1;僅此而已。

    主函數:

    void main()

    { init();

    while(1)

    /* 模式一,平常模式,紅綠燈切換時間為60 秒*/

    { if(MODEL1==1||HMODE1==0) // 按鍵或紅外控制切換模式

    { mod1(); }

    /* 通過按鍵切換工作模式*/

    if(KEY1==0)

    { delay(5); //按鍵消抖

    while(KEY1==0)

    { MODEL1++;

    rtime=40;

    if(MODEL1==3)

    { MODEL1=1;

    gtime=60; }

    while(!KEY1); } }

    … …

    /*模式二,上下班高峰期模式。紅綠燈切換時間為40 秒*/

    if(MODEL1==2||HMODE1==1)

    { mod2(); }

    } }

    void timer0() interrupt 1

    { TH0=15536/256;

    TL0=15536%256;

    aa++; }

    紅外遙控器相關文章:紅外遙控器原理


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 五常市| 四子王旗| 富裕县| 饶平县| 新巴尔虎左旗| 札达县| 平邑县| 观塘区| 布拖县| 哈密市| 昌江| 色达县| 长寿区| 淮南市| 宁蒗| 宁海县| 三穗县| 怀安县| 武胜县| 中西区| 扎赉特旗| 定安县| 陇西县| 南汇区| 长汀县| 唐河县| 东至县| 启东市| 神木县| 嘉义县| 岳普湖县| 鲁山县| 会东县| 淳安县| 合水县| 神农架林区| 台中市| 萨迦县| 宜川县| 哈密市| 和静县|