找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1715|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

這是我做到交通燈 包含程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:207841 發(fā)表于 2017-6-4 22:48 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit D1 = P2^0;
sbit D2 = P2^1;
sbit D3 = P2^2;
sbit D4 = P2^3;
sbit D5 = P2^4;
sbit D6 = P2^5;
sbit D7 = P2^6;
sbit D8 = P2^7;
sbit D9 = P3^2;
sbit D10 = P3^3;
sbit D11 = P3^4;
sbit D12 = P3^5;
sbit H1 = P3^6;                //           H1行
sbit H2 = P3^7;                //           H2行
sbit L1 = P0^5;                //     L1列
sbit L2 = P0^6;                //           L2列
sbit L3 = P0^7;                //           L2列

uchar k=0,b=0,temp=0,i;

void delay(uint x);

void main()
{
         for(i=3;i>0;i--)     //開(kāi)機(jī)閃爍3次
         {
                 P2 = 0;
                P3 = 0;
                delay(800);
                P2 = 0XFF;
                P3 = 0XFF;
                delay(800);
         }
         TMOD = 0x11;
         TH0 = (65536-25000)/256;
         TL0 = (65536-25000)%256;
         TH1 = (65536-10000)/256;
         TL1 = (65536-10000)%256;
         EA = 1;
         ET0 = 1;
         ET1 = 1;
         TR1 = 1;
         TR0 = 1;
         while(1);
}

void delay(uint x)
{
        uint b1,b;
        for (b1 = x;b1>0;b1--)
                for(b = 110;b>0;b--);
}

void tim0() interrupt 1                                 //掃描鍵盤
{         
                 TH1 = (65536-10000)/256;
                  TL1 = (65536-10000)%256;
                H1 = 0;
        H2 = 1;
             L1 = 1;
             L2 = 1;
             L3 = 1;
                   if( L3==0 )                                 //3號(hào)鍵控制反向
        {       
                          delay(7);
                           if( L3==0 )
                    {
                                k++;
                                   while(!L3);
                        }
                }       
}

void tim1() interrupt 3                                                   //燈的亮滅
{
        TH0 = (65536-25000)/256;
    TL0 = (65536-25000)%256;
        b++;
        if(b==3)
        {
                if(k%2==0)
                {
                        temp++;
                        if(temp==13)
                                temp=1;
                }
                if(k%2==1)
                {
                        temp--;
                        if(temp==0)
                                temp=12;
                }
                switch(temp)
                {
                        case 1 : P2 = P3 = 0xff;D1 = 0; break;
                        case 2 : P2 = P3 = 0xff;D2 = 0; break;
                        case 3 : P2 = P3 = 0xff;D3 = 0; break;
                        case 4 : P2 = P3 = 0xff;D4 = 0; break;
                        case 5 : P2 = P3 = 0xff;D5 = 0; break;
                        case 6 : P2 = P3 = 0xff;D6 = 0; break;
                        case 7 : P2 = P3 = 0xff;D7 = 0; break;
                        case 8 : P2 = P3 = 0xff;D8 = 0; break;
                        case 9 : P2 = P3 = 0xff;D9 = 0; break;
                        case 10 : P2 = P3 = 0xff;D10 = 0; break;
                        case 11 : P2 = P3 = 0xff;D11 = 0; break;
                        case 12 : P2 = P3 = 0xff;D12 = 0; break;
                }
               
                b=0;
        }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:208341 發(fā)表于 2017-6-6 12:06 | 只看該作者
沒(méi)有電路模擬圖嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表