久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2063|回復: 1
打印 上一主題 下一主題
收起左側

51單片機交通燈

[復制鏈接]
跳轉到指定樓層
樓主
ID:349027 發表于 2018-6-10 21:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
源程序如下
#include<reg51.h>  
//      數據類型定義  
#define u8 unsigned char  
#define u16 unsigned int  
//     數碼管段選數組  
u8 code NUM[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};  
u8 time_cnt=0;      
u8 turn_yellow=0;  
u8 ex   =1;  
u8 turnflag=0;  

u8 left_time;  
u8 for_time;  
//   管腳定義  
sbit left_red    = P3^0;  
sbit left_yellow = P3^1;  
sbit left_green  = P3^2;  
sbit for_red     = P3^3;  
sbit for_yellow  = P3^4;  
sbit for_green   = P3^5;  
sbit leftc=P2^7;  
sbit forc = P2^6;  
//   延時函數  
void delay_us(u16 t)  
{  
    while(t--);  
}  
//   定時器 50ms  
void Timer_Init()  
{  
    EA=1;  
    ET0=1;  
    TMOD=0x01;  
    TH0=15536/256;  
    TL0=15536%256;  
    TR0=1;  
}  
//前方向 黃燈亮  
void foryellow()  
{  
    forc=0;  
    leftc=1;  
    for_red=0;  
    for_yellow=1;  
    for_green=1;  
    left_red    = 1;  
    left_yellow = 0;  
    left_green  = 1;  
    leftc=0;  
    forc=1;  
    for_red=1;  
    for_yellow=1;  
    for_green=0;  
    left_red    = 0;  
    left_yellow = 1;  
    left_green  = 1;  
    forc=0;  
}  
// 左右方向 黃燈亮  
void leftyellow()  
{  
    forc=0;  
    leftc=1;  
    for_red=1;  
    for_yellow=1;  
    for_green=0;  
    left_red    = 0;  
    left_yellow = 1;  
    left_green  = 1;  
    leftc=0;  

    forc=1;  
    for_red=0;  
    for_yellow=1;  
    for_green=1;  
    left_red    = 1;  
    left_yellow = 0;  
    left_green  = 1;  
    forc=0;  
}  
//前方向轉向  
void forturn()  
{  
    forc=0;  
    leftc=1;  
    for_red=1;  
    for_yellow=1;  
    for_green=0;  
    left_red    = 0;  
    left_yellow = 1;  
    left_green  = 1;  
    leftc=0;  

    forc=1;  
    for_red=0;  
    for_yellow=1;  
    for_green=1;  
    left_red    = 0;  
    left_yellow = 1;  
    left_green  = 1;  
    forc=0;   
}  
//左右方向轉向  
void leftturn()  
{  
    forc=0;  
    leftc=1;  
    for_red=0;  
    for_yellow=1;  
    for_green=1;  
    left_red    = 0;  
    left_yellow = 1;  
    left_green  = 1;  
    leftc=0;  

    forc=1;  
    for_red=1;  
    for_yellow=1;  
    for_green=0;  
    left_red    = 0;  
    left_yellow = 1;  
    left_green  = 1;  
    forc=0;   
}  
//前進綠燈  
void forgo()  
{  
    forc=0;  
    leftc=1;  
    for_red=0;  
    for_yellow=1;  
    for_green=1;  
    left_red    = 1;  
    left_yellow = 1;  
    left_green  = 0;  
    leftc=0;  

    forc=1;  
    for_red=0;  
    for_yellow=1;  
    for_green=1;  
    left_red    = 0;  
    left_yellow = 1;  
    left_green  = 1;  
    forc=0;  
}  
//前進紅燈  
void forstop()  
{  
    forc=0;  
    leftc=1;  
    for_red=0;  
    for_yellow=1;  
    for_green=1;  
    left_red    = 0;  
    left_yellow = 1;  
    left_green  = 1;  
    leftc=0;  

    forc=1;  
    for_red=0;  
    for_yellow=1;  
    for_green=1;  
    left_red    = 1;  
    left_yellow = 1;  
    left_green  = 0;  
    forc=0;  
}  
//前進方向數碼管顯示  
void dispfor(u8 num)  
{  
    P2|=0x0f;  
    P0=0xff;  
    P2=(P2&0xc0)|0x01;  
    P0=NUM[num/10];  
    delay_us(100);  
    P0=0xff;  
    P2|=0x0f;  
    P0=0xff;  
    P2=(P2&0xc0)|0x02;  
    P0=NUM[num%10];  
    delay_us(100);  
    P0=0xff;  
}  
//左右方向數碼管顯示  
void displeft(u8 num)  
{  
    P2|=0x0f;  
    P0=0xff;  
    P2=(P2&0xc0)|0x04;  
    P0=NUM[num/10];  
    delay_us(100);  
    P0=0xff;  
    P2|=0x0f;  
    P0=0xff;  
    P2=(P2&0xc0)|0x08;  
    P0=NUM[num%10];  
    delay_us(100);  
    P0=0xff;  
}  
//主函數  
void main()  
{  
    for_time=17;  
    left_time=30;  
    Timer_Init();  //初始時間  
    forgo();  
    while(1)  
    {  
        dispfor(for_time);  
        displeft(left_time);//顯示  
    }  
}  

//定時器中斷  
void Timer0() interrupt 1  
{  
    TR0=0;  
    time_cnt++;  
    if(time_cnt>19)  
    {  
        time_cnt=0;  
        for_time--;  
        left_time--;  
        if(for_time==0&&ex)  //時間為0  
        {     
            if(turn_yellow)    //是否變過黃燈  
            {  
                if(turnflag==0)     //是否轉向  
                {  
                    for_time=10;  
                    forturn();  
                    turnflag=1;  
                }  
                else  
                {  
                    for_time=30;  
                    left_time=17;  
                    forstop();  
                    ex=0;  
                    turnflag=0;  
                    turn_yellow=0;  
                }  
            }  
            else  
            {  
                for_time=3;  
                foryellow();  
                turn_yellow=1;  
            }  
        }  

        if(left_time==0&&ex==0)  
        {     
            if(turn_yellow)    //是否變過黃燈  
            {  
                if(turnflag==0)     //是否轉向  
                {  
                    left_time=10;  
                    leftturn();  
                    turnflag=1;  
                }  
                else  
                {  
                    for_time=17;  
                    left_time=30;  
                    forgo();  
                    ex=0;  
                    turnflag=0;  
                }  
            }  
            else  
            {  
                left_time=3;  
                leftyellow();  
                turn_yellow=1;  
            }  
        }  
    }  

    TH0=15536/256;  
    TL0=15536%256;  
    TR0=1;  
}  

交通燈仿真文件.zip

98.73 KB, 下載次數: 9, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:350032 發表于 2018-6-12 22:33 | 只看該作者
圖怎么沒有啊?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区中文在线 | 日韩成人专区 | 九九热这里只有精品6 | 91麻豆产精品久久久久久 | 在线日韩中文字幕 | 国产亚洲精品美女久久久久久久久久 | 欧美午夜精品久久久久久浪潮 | 亚洲午夜视频 | 成人av高清在线观看 | 麻豆精品国产免费 | 精品欧美乱码久久久久久1区2区 | 96国产精品久久久久aⅴ四区 | 国产伦精品一区二区三区高清 | 亚洲欧美国产毛片在线 | av中文字幕在线观看 | 欧美激情一区二区三区 | 免费的黄色片子 | 欧美国产一区二区三区 | 成人免费网站 | 国产精品国产成人国产三级 | 日韩精品一区二区三区高清免费 | 欧美日韩在线免费观看 | 久久成人av| 中文字幕一区二区三区乱码在线 | 欧美极品在线 | 一区二区三区网站 | 亚洲一区二区在线 | 亚洲精品久久久久久一区二区 | 欧美激情一区二区 | 99久久精品免费看国产小宝寻花 | 亚洲另类自拍 | 亚洲国产日韩欧美 | 亚洲一区视频在线 | 日本三级网站在线 | 国产美女一区二区 | 日韩免费av一区二区 | 国产免费一区二区三区免费视频 | 午夜精品一区 | 成人在线免费电影 | 日韩免 | 91玖玖|