真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C51單片機(jī)簡(jiǎn)單的交通紅綠燈設(shè)計(jì)二-創(chuàng)新互聯(lián)

連同上文 C51單片機(jī) 簡(jiǎn)單的交通紅綠燈設(shè)計(jì)一。

創(chuàng)新互聯(lián)長(zhǎng)期為上千多家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為塔河企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,塔河網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

設(shè)計(jì)二中選擇使用定時(shí)器代替延時(shí)函數(shù),定時(shí)器的介紹我找到一篇簡(jiǎn)單易懂的文章----C51的定時(shí)器_從入門(mén)到捕蛇者說(shuō)的博客

延時(shí)函數(shù)與定時(shí)器的區(qū)別:延時(shí)函數(shù)會(huì)占據(jù)CPU的使用權(quán),如果正在進(jìn)行延時(shí),其他動(dòng)作需要等延時(shí)結(jié)束才能進(jìn)行,而配置定時(shí)器可以打開(kāi)中斷函數(shù),獨(dú)立進(jìn)行,不占據(jù)CPU。

總覽一:數(shù)碼管用來(lái)顯示數(shù)字。

二:LED交通燈本質(zhì)上就是二極管,含有紅綠黃,作為交通燈。

三:配置計(jì)時(shí)器用以計(jì)時(shí)。(計(jì)時(shí)器的使用)

對(duì)于第二條,我本想用lcd1602顯示屏做的,但...lcd1602在底層配置的時(shí)候應(yīng)該是連動(dòng)到了引腳,lcd1602顯示的時(shí)候會(huì)干擾到二極管的亮滅,所以我還是用了前文的一個(gè)數(shù)碼管。

#includeunsigned int count=0,led_count=0;
unsigned int Number;
sbit Green_Light = P1^5;
sbit Yellow_Light = P1^6;
sbit Red_Light = P1^7;
unsigned int i=0;
unsigned int x[23]={10,9,8,7,6,5,4,3,2,1,3,2,1,10,9,8,7,6,5,4,3,2,1};
void Timer0_init()
{
    TMOD = 0x01;
    TL0 = 0x00;
    TH0 = 0xDC;//定時(shí)器的初始化配置成10ms進(jìn)入一次中斷函數(shù)。
    TF0 = 0;
    TR0 = 1;//用以計(jì)時(shí),當(dāng)爆表后TF0會(huì)跳轉(zhuǎn)為1(通過(guò)上述配置即10ms后TF0=1)
    ET0=1;
    EA=1;
    PT0=0;
}
void NiXie(unsigned char Number)
{
        switch(Number)
    {
        case 0:P0_0=P0_1=P0_2=P0_3=P0_4=P0_5=0;break;
        case 1:P0_1=P0_2=0;break;
        case 2:P0_0=P0_1=P0_3=P0_4=P0_6=0;break;
        case 3:P0_0=P0_1=P0_2=P0_3=P0_6=0;break;
        case 4:P0_1=P0_2=P0_5=P0_6=0;break;
        case 5:P0_0=P0_2=P0_3=P0_5=P0_6=0;break;
        case 6:P0_0=P0_2=P0_3=P0_4=P0_5=P0_6=0;break;
        case 7:P0_0=P0_1=P0_2=0;break;
        case 8:P0_0=P0_1=P0_2=P0_3=P0_4=P0_5=P0_6=0;break;
        case 9:P0_0=P0_1=P0_2=P0_3=P0_5=P0_6=0;break;
        case 10:P0_6=0;break;
    }
}
void main()
{
    Green_Light = 1,Red_Light = 1,Yellow_Light=1;
    Number = 10;
    Timer0_init();//初始化工作
    while(1)
    {}
}
Timer0() interrupt 1//TF0為一時(shí)執(zhí)行終端函數(shù),執(zhí)行完后TF0自動(dòng)歸0
{
    TL0 = 0x00;
    TH0 = 0xDC;//再把初值設(shè)為9126,保證下次還能再進(jìn)入中斷函數(shù),并且也用時(shí)10ms
    count++,led_count++;
    NiXie(x[i]);//數(shù)碼管的閃爍,其實(shí)每個(gè)數(shù)字閃爍了100下,每次10ms。
    if(led_count >= 100)
    {
        P0_0=P0_1=P0_2=P0_3=P0_4=P0_5=P0_6=P0_7=1;//return
        i++;
        led_count = 0;
        if(i==23)
        {i=0;}
    }
    
    if(count>0&&count<1000)//0~第10秒
    {
        Green_Light = 0;
    }
    if(count>=1000&&count<1300)//第10秒~第13秒
    {
        Green_Light = 1;//關(guān)綠燈開(kāi)黃燈
        Yellow_Light = 0;
    }
    if(count>=1300&&count<2300)//第13秒~第23秒
    {
        Yellow_Light = 1;//關(guān)黃燈開(kāi)紅燈
        Red_Light = 0;
    }
    if(count>=2300)
    {
        Red_Light = 1;
        count = 0;//一遍后歸零
    }
}

機(jī)器周期 = 12 x 時(shí)鐘周期 =12 x (1/時(shí)鐘頻率) 秒 = 12 / 時(shí)鐘頻率 秒 = 12 / 11059200 秒 = 12 000 000/ 11059200 微秒 = 1.085 微秒

配置十毫秒的計(jì)時(shí):10ms需要數(shù)9216機(jī)器周期,你讓它從65536-9126=56320(16進(jìn)制表示為

0xDC00)開(kāi)始數(shù)數(shù)

這樣TL0=0x00;TH0=0xDC。

中斷函數(shù):與外部中斷一樣,定時(shí)器中斷也有中斷函數(shù),同理,程序去執(zhí)行中斷函數(shù)就會(huì)把TF0的中斷標(biāo)志位自動(dòng)清0,所以只要我們用了定時(shí)器中斷函數(shù),那么TF0就可以不用再出現(xiàn)在程序書(shū)寫(xiě)中了。

在代碼中,我用了count和led_count分別計(jì)數(shù),每次主函數(shù)跳轉(zhuǎn)到中斷函數(shù)后,用時(shí)10ms,每次count和led_count的值加一,進(jìn)入一百次就是1秒鐘。

如有不對(duì)的地方,非常期待您的指正。

實(shí)驗(yàn)現(xiàn)象:

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


本文標(biāo)題:C51單片機(jī)簡(jiǎn)單的交通紅綠燈設(shè)計(jì)二-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/dcdhos.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部