標(biāo)題: 路燈控制器的設(shè)計思路 [打印本頁]

作者: 19960922    時間: 2017-9-28 13:57
標(biāo)題: 路燈控制器的設(shè)計思路
路燈總控制器由單片機、蜂鳴器、8位數(shù)碼管、矩陣式鍵盤構(gòu)成;終端路燈控制器由一片單片機系統(tǒng)和8路流水燈構(gòu)成。路燈總控制器的鍵盤上定義一個開燈鍵、一個關(guān)燈鍵、一個確認(rèn)鍵。路燈控制指令的數(shù)據(jù)由2個字節(jié)組成,第1個字節(jié)表示操作哪盞燈,第2個字節(jié)表示開燈還是關(guān)燈。第1個字節(jié)哪一位為1表示對該位所代表的燈進行操作,第2個字節(jié)為0xff表示開燈,為0x00表示關(guān)燈。例如:假如被傳送的指令數(shù)據(jù)字節(jié)為0xff0xc0,表示打開第1、2兩盞燈;假如被傳送的指令數(shù)據(jù)字節(jié)為0x000x0f,表示關(guān)閉第5、6、7、8四盞燈。用戶使用方法:開燈(關(guān)燈)+燈編號+確認(rèn)鍵。假如要開第1盞燈,操作方法是按一下開燈鍵,再按1鍵,最后按確認(rèn)鍵。再如,關(guān)燈鍵+1+2+3+確認(rèn)鍵,即表示關(guān)閉第1、2、3盞燈,同時,數(shù)碼管上相應(yīng)的1、2、3位數(shù)碼管中間的g段亮起來,當(dāng)終端路燈控制器接收指令后,發(fā)回確認(rèn)信息。確認(rèn)信息指令:將主控端發(fā)送過來的數(shù)據(jù)原樣發(fā)送回主控端,即確認(rèn)信息與主控制器發(fā)出的信息一致。路燈總控制器接收確認(rèn)信息后在相應(yīng)數(shù)碼管顯示1或0表示開燈或關(guān)燈成功,同時蜂鳴器發(fā)出“嘀”的一聲。

作者: 漫步經(jīng)心    時間: 2017-9-28 16:51
思路很容易理清,但是實現(xiàn),很多細節(jié)就沒那么容易了
作者: 19960922    時間: 2017-9-29 12:42
有仿真圖以及程序嗎
作者: 19960922    時間: 2017-9-29 12:47
請問具體要如何做?
作者: 19960922    時間: 2017-10-20 14:07
#include<at89c51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num;
void delay(uchar x)
{
        uchar y,z;
        for(y=x;y>0;y--)
                for(z=250;z>0;z--);
}
void display(uchar num)
{       
        P2_0=0;
        P0=~led[num/10];
        delay(5);
        P2_0=1;
        P2_1=0;
        P0=~led[num%10];
        delay(5);
        P2_1=1;
}
void TAKE_SBUF(uchar dat)
{
        ES=0;
        SBUF=dat;
        while(~TI);                          
        TI=0;
        ES=1;
}
void main()
{
        SCON=0X90;
        EA=1;
        ES=1;
        P2=0xff;
        num=0;
        if(P1_0==0)
        TAKE_SBUF(num+1);
        while(1)
        {
                       
        }
}
void int0rupt() interrupt 4
{                                                 
           uchar i;
        num=SBUF;
        if(num>99)
        num=0;
        for(i=200;i>0;i--)
                display(num);
        TAKE_SBUF(num+1);
        RI=0;
}
作者: 19960922    時間: 2017-10-20 14:08
哪位可以幫我修改一下程序,謝謝




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1