亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于51單片機(jī)的汽車用LED流水燈仿真設(shè)計(jì)

        2023-02-08 08:43:14
        汽車電器 2023年1期
        關(guān)鍵詞:流水單片機(jī)程序

        李 蔣

        (江蘇聯(lián)合職業(yè)技術(shù)學(xué)院蘇州建設(shè)交通分院,江蘇 蘇州 215000)

        LED燈作為新型綠色環(huán)保光源,因其節(jié)能環(huán)保、壽命長、經(jīng)濟(jì)實(shí)惠等特點(diǎn),在現(xiàn)代社會(huì)各個(gè)領(lǐng)域應(yīng)用廣泛,其中LED流水燈由于其酷似流水般的顯示效果,在城市廣告、工控面板等諸多領(lǐng)域都有應(yīng)用[1]。近年來LED流水燈在汽車工業(yè)領(lǐng)域應(yīng)用尤為廣泛,主要有汽車前照燈、轉(zhuǎn)向信號(hào)指示燈、制動(dòng)指示燈、后視鏡燈、儀表盤顯示燈、車內(nèi)氛圍燈等場合。汽車LED流水燈不僅具備裝飾效果,還會(huì)承擔(dān)一些功能性作用,比如汽車后視鏡、前照燈、尾燈上的流水燈就具有轉(zhuǎn)向信號(hào)指示功能。

        LED流水燈要想實(shí)現(xiàn)燈光顯示的流水效果,需要專門的控制系統(tǒng),目前比較常見的主要有兩種方案,一種是采用數(shù)字集成電路(移位寄存器、十進(jìn)制計(jì)數(shù)/譯碼器等)[2-3],另外一種是采用單片機(jī)[4-5]。相對于數(shù)字集成電路,單片機(jī)具有體積小、功能強(qiáng)、成本低、控制電路外圍元件較少、控制程序相對簡單、制作難度低等顯著優(yōu)點(diǎn),在實(shí)現(xiàn)LED燈流水顯示效果方面具有明顯的優(yōu)越性。

        本文采用STC(宏晶)公司的8位51單片機(jī)STC89C52RC為主控芯片,首先進(jìn)行51單片機(jī)最小系統(tǒng)及8位LED硬件電路設(shè)計(jì),然后利用Keil uVision5集成開發(fā)軟件進(jìn)行C語言軟件編程設(shè)計(jì),分別通過位輸出操作、移位操作及循環(huán)移位操作3種控制方案進(jìn)行8位LED汽車流水燈顯示功能設(shè)計(jì)和仿真調(diào)試。

        1 總體設(shè)計(jì)目標(biāo)

        流水燈顯示是指將多個(gè)LED燈組成的燈串按順序依次點(diǎn)亮,反復(fù)循環(huán)。本設(shè)計(jì)的首要目標(biāo)是控制8個(gè)LED燈珠(按順序分別為D1、D2、D3、D4、D5、D6、D7、D8),模擬汽車流水燈的顯示效果,根據(jù)人眼的視覺暫留特性設(shè)定燈珠點(diǎn)亮?xí)r間間隔為200ms,按照D1~D8的順序逐次亮滅,產(chǎn)生流水顯示的效果,其工作過程如圖1所示?;谏鲜龌A(chǔ)設(shè)計(jì),就能進(jìn)一步實(shí)現(xiàn)正反向流水顯示、箭頭流水轉(zhuǎn)向顯示、菱形流水顯示、魚骨流水顯示等功能。

        圖1 LED流水燈工作過程

        其次,為了防止在開機(jī)或工作中因干擾而使程序失控,或工作中程序運(yùn)行陷入某種死循環(huán)狀態(tài)等,系統(tǒng)需要具備復(fù)位的功能。另外,為了方便設(shè)計(jì)程序的調(diào)試驗(yàn)證,需要能夠下載目標(biāo)程序到單片機(jī)中,即系統(tǒng)還應(yīng)具備通過串口進(jìn)行燒錄的功能。

        2 硬件電路設(shè)計(jì)

        本設(shè)計(jì)采用的STC89C 52RC是宏晶公司的增強(qiáng)型MCS-51單片機(jī),是一種低功耗、高性能的8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器,可為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52RC的主要特性如表1所示,引腳如圖2b所示。

        表1 STC89C52RC單片機(jī)的主要特性

        單片機(jī)若要正常工作,首先必須要具備一個(gè)最簡單的系統(tǒng)組成,即單片機(jī)最小系統(tǒng)。對于51單片機(jī),最小系統(tǒng)主要包括電源電路、時(shí)鐘電路、復(fù)位電路及燒錄電路等部分。為了簡化系統(tǒng)設(shè)計(jì),減少系統(tǒng)開發(fā)工作量,由前述總體設(shè)計(jì)目標(biāo),本設(shè)計(jì)需要實(shí)現(xiàn)8個(gè)LED燈流水顯示效果,因此本設(shè)計(jì)的硬件電路主要包括兩個(gè)部分:單片機(jī)最小系統(tǒng)和8位LED電路。

        2.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)

        本設(shè)計(jì)基于STC89C52RC的單片機(jī)最小系統(tǒng)包括USB供電電路、時(shí)鐘電路、復(fù)位電路及串口燒錄電路,如圖2所示。

        圖2 基于STC89C52RC的單片機(jī)最小系統(tǒng)

        2.1.1 USB供電電路

        作為電子元器件,單片機(jī)也是需要供電的。而單片機(jī)供電有一個(gè)技術(shù)范圍,不同單片機(jī)的供電范圍不盡相同,需要查看相關(guān)的技術(shù)手冊才知道具體的供電范圍。對于STC89C52RC單片機(jī),需要使用5V電源,本設(shè)計(jì)通過USB接口來獲取5V電源,同時(shí)采用一片電源穩(wěn)壓芯片AMS1117,可輸出穩(wěn)定的3.3V直流電壓,為其它需要3.3V的外圍器件供電,具體如圖2a所示。需要注意的是,單片機(jī)承載不了過高的電壓,千萬不可以把單片機(jī)接到超標(biāo)的電源電壓上,同時(shí)單片機(jī)正負(fù)極也要正確接上,否則容易燒壞單片機(jī),嚴(yán)重的甚至可能發(fā)生爆炸。

        2.1.2 時(shí)鐘電路

        時(shí)鐘電路主要是產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率,提供單片機(jī)工作時(shí)的時(shí)間基準(zhǔn),單片機(jī)的一切指令的執(zhí)行都是建立在這個(gè)基礎(chǔ)上的。單片機(jī)的時(shí)鐘電路可以使用有源晶振或無源晶振。晶振是一種高精度、高穩(wěn)定度的石英晶體振蕩器,可產(chǎn)生頻率穩(wěn)定且峰值穩(wěn)定的正弦波。本設(shè)計(jì)的時(shí)鐘電路采用的是11.0592MHz的無源晶振,能夠滿足STC89C52RC單片機(jī)的工作要求。STC89C52RC單片機(jī)的時(shí)鐘輸入引腳是18號(hào)引腳XTAL2和19號(hào)引腳XTAL1,需要兩個(gè)20pF的電容和一個(gè)11.0592MHz晶振作為外圍器件,具體如圖2b所示。

        2.1.3 復(fù)位電路

        當(dāng)單片機(jī)工作過程中程序失控或者運(yùn)行陷入死循環(huán)等故障狀態(tài)時(shí),需要復(fù)位電路來讓整個(gè)電路恢復(fù)初始狀態(tài)。復(fù)位電路啟動(dòng)的手段主要有:一是上電復(fù)位,即在給電路通電時(shí)立即進(jìn)行復(fù)位操作;二是在必要時(shí)可以由按鍵手動(dòng)操作復(fù)位;三是根據(jù)程序或者電路運(yùn)行的需要自動(dòng)進(jìn)行復(fù)位。復(fù)位電路的原理一般是利用電容電壓不能突變的原理,將電容與電阻串聯(lián),上電時(shí)刻,電容沒有充電,兩端電壓為0,此時(shí)提供復(fù)位脈沖,電源不斷地給電容充電,直至電容兩端電壓為電源電壓,電路進(jìn)入正常工作狀態(tài)。復(fù)位電路一般比較簡單,大都是只用電阻和電容組合就可以實(shí)現(xiàn),再復(fù)雜點(diǎn)就利用三極管等配合程序來實(shí)現(xiàn)。本設(shè)計(jì)電路采用按鍵復(fù)位,將一個(gè)10pF電容與一個(gè)10kΩ電阻串聯(lián),復(fù)位按鍵并聯(lián)在電容兩端,一端接于電源VCC上,具體如圖2b所示。

        2.1.4 串口燒錄電路

        燒錄電路用于將計(jì)算機(jī)開發(fā)的軟件程序傳輸至單片機(jī),實(shí)現(xiàn)計(jì)算機(jī)和單片機(jī)的通信。單片機(jī)燒錄電路通常采用典型的RS232串行接口,本設(shè)計(jì)是采用USB接口進(jìn)行供電和燒錄程序的,因此燒錄電路采用了一片USB轉(zhuǎn)串口的轉(zhuǎn)接芯片CH340G,同時(shí)采用了一個(gè)12MHz的晶振和一些電阻、電容、穩(wěn)壓二極管等外圍電子元器件,具體如圖2c所示。其中,CH340G的第5號(hào)引腳UD+與USB接口的D+端連接,CH340G的第6號(hào)引腳UD-與USB接口的D-端連接;CH340G的第2號(hào)引腳,即串口發(fā)射端TXD與STC89C52RC的P3.0口,即串口接收端RXD連接,CH340G的第3號(hào)引腳,即串口接收端RXD與STC89C52RC的P3.1口,即串口發(fā)射端TXD連接。

        2.2 8位LED電路設(shè)計(jì)

        STC89C52RC單片機(jī)擁有4個(gè)8位并行的I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。本設(shè)計(jì)采用獨(dú)立連接方式來控制LED燈,即每一個(gè)LED燈采用一個(gè)獨(dú)立的物理接口來控制。根據(jù)總體設(shè)計(jì)目標(biāo),需要控制8個(gè)LED燈工作,因此本設(shè)計(jì)采用了STC89C52RC單片機(jī)的P1.0~P1.7端口,具體電路如圖3所示。由圖3可見,8個(gè)LED為共陽極連接,每個(gè)LED陽極串聯(lián)一個(gè)限流電阻接于電源VCC上,若想使某一個(gè)LED燈亮,只需將它的陰極端變?yōu)榈碗娖郊纯伞@?,如果想點(diǎn)亮接在P1.0口的D1,那么只要使P1.0口的輸出電平變?yōu)榈碗娖?,LED的陽極電位大于陰極電位,二極管導(dǎo)通,LED發(fā)光。相反,如果想熄滅D1,就需要把P1.0口的輸出電平變?yōu)楦唠娖?,二極管截止。其他的7個(gè)LED燈的點(diǎn)亮和熄滅操作同理。

        圖3 8位LED流水燈電路圖

        3 軟件設(shè)計(jì)

        Keil軟件是目前最流行的開發(fā)MCS-51系列單片機(jī)的軟件,它提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,并通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。本文利用Keil uVision5集成開發(fā)環(huán)境進(jìn)行8位LED流水燈的C語言軟件編程設(shè)計(jì),軟件主要分為兩個(gè)部分:延時(shí)控制部分和流水控制部分。

        3.1 延時(shí)控制及程序

        本設(shè)計(jì)的要求是8個(gè)LED燈輪流點(diǎn)亮,一個(gè)LED燈點(diǎn)亮、熄滅后,另一個(gè)LED燈再點(diǎn)亮、熄滅。由于人眼的視覺存在暫留效應(yīng),即人眼在觀察物體時(shí),光信號(hào)傳入大腦神經(jīng),由于視神經(jīng)的反應(yīng)滯后,物體的影像會(huì)停留一段時(shí)間,在這段時(shí)間內(nèi)即使物體消失,視覺中的影像也不會(huì)立即消失。而單片機(jī)執(zhí)行語句的速度是非??斓模谝曈X暫留的影響下,程序執(zhí)行時(shí)會(huì)使得我們從視覺上感覺所有LED燈均處于長亮狀態(tài),無法看到輪流點(diǎn)亮的流水效果。因此,在軟件設(shè)計(jì)時(shí)必須要加入延時(shí)控制,以消除視覺暫留的影響。

        單片機(jī)實(shí)現(xiàn)延時(shí)通常有兩種方法:一種是硬件延時(shí),要用到定時(shí)器/計(jì)數(shù)器,這種方法可以提高CPU的工作效率,也能做到精確延時(shí);另一種是軟件延時(shí),這種方法主要采用循環(huán)體進(jìn)行,程序?qū)崿F(xiàn)方便。本設(shè)計(jì)選擇軟件延時(shí),方法就是讓機(jī)器什么都不做,讓機(jī)器執(zhí)行空指令,機(jī)器就會(huì)延時(shí)。具體做法就是首先將參數(shù)傳遞至for循環(huán)中,確定循環(huán)次數(shù)控制延時(shí)時(shí)間,在for循環(huán)體內(nèi)再嵌套一個(gè)for循環(huán)以延長單個(gè)延時(shí)時(shí)間,通過設(shè)定總循環(huán)次數(shù)來控制延時(shí)時(shí)間,具體程序如下所示:

        void delay(unsigned int xms)

        {

        unsigned int i,j;

        for(i=xms;i>0;i--) //i=xms即延時(shí)約xms毫秒

        for(j=112;j>0;j--);//嵌套循環(huán)

        }

        3.2 LED流水燈控制及程序

        流水燈的控制方案有很多,其中比較典型的有位輸出操作、移位操作及循環(huán)移位操作3種控制方案,本設(shè)計(jì)分別采用這3種控制方案進(jìn)行8位LED汽車流水燈仿真設(shè)計(jì)。

        3.2.1 位輸出操作

        位輸出操作是一種最直觀最易理解的方法,采用順序程序結(jié)構(gòu),用位指令控制P1口每一位輸出高低電平,從而控制相應(yīng)的LED燈的點(diǎn)亮熄滅。位輸出操作的流程如圖4所示,具體的C程序如下所示:

        圖4 位輸出操作流程圖

        #include<reg52.h> //引用頭文件reg52.h

        #define ON 0; //定義低電平時(shí)燈亮,0為低電平,ON為燈亮

        #define OFF 1; //定義高電平時(shí)燈滅,1為高電平,OFF為燈滅

        sbit LED0=P1^0; //將P1.0接口位定義為LED0,LED0連接第一個(gè)LED燈D1

        sbit LED1=P1^1;

        sbit LED2=P1^2;

        sbit LED3=P1^3;

        sbit LED4=P1^4;

        sbit LED5=P1^5;

        sbit LED6=P1^6;

        sbit LED7=P1^7;

        void main()

        {

        while(1) //加入死循環(huán),讓8個(gè)LED燈輪流點(diǎn)亮后,繼續(xù)循環(huán)點(diǎn)亮

        {

        LED0=ON; //點(diǎn)亮第一個(gè)LED燈D1

        delay(200); //延時(shí)200 ms

        LED0=OFF; //熄滅第一個(gè)LED燈D1

        LED1=ON;

        delay(200);

        LED1=OFF;

        LED2=ON;

        delay(200);

        LED2=OFF;

        LED3=ON;

        delay(200);

        LED3=OFF;

        LED4=ON;

        delay(200);

        LED4=OFF;

        LED5=ON;

        delay(200);

        LED5=OFF;

        LED6=ON;

        delay(200);

        LED6=OFF;

        LED7=ON;

        delay(200);

        LED7=OFF;

        }

        }

        3.2.2 移位操作

        在移位操作程序中,for語句的表達(dá)式用來描述循環(huán)的次數(shù),即小燈的個(gè)數(shù)。在硬件電路中C51單片機(jī)的引腳輸出低電平時(shí),燈亮;反之,燈熄。D1~D8循環(huán)亮的過程通過在for循環(huán)之中將對低點(diǎn)位進(jìn)行移位指令來實(shí)現(xiàn)。移位操作流程見圖5。C程序如下:

        圖5 移位操作流程圖

        #include<reg52.h> //引用頭文件reg52.h

        #define ON 0; //定義低電平時(shí)燈亮,0為低電平,ON為燈亮

        #define OFF 1; //定義高電平時(shí)燈滅,1為高電平,OFF為燈滅

        void main()

        {

        unsigned char i;

        while(1)

        {

        P1=0xfe; //將P1寄存器的8位賦值為二進(jìn)制數(shù)1111 1110,即點(diǎn)亮D1

        for(i=0;i<8;i++)

        {

        delay(200); //延時(shí)200 ms

        P1<<=1; //將P1左移一位

        P1=P1|0X01; //將P1與二進(jìn)制數(shù)0000 0001進(jìn)行位或

        }

        }

        }

        3.2.3 循環(huán)移位操作

        在上述位輸出操作程序中是逐個(gè)控制P1端口的每一位來實(shí)現(xiàn)的,而在移位操作程序中是先將P1寄存器左移一位再進(jìn)行一次位或運(yùn)算,因此程序都略顯復(fù)雜。循環(huán)移位操作是在程序一開始就給P1口送一個(gè)數(shù),這個(gè)數(shù)讓P1.0為低電平,其他位為高電平,然后延時(shí)一段時(shí)間,再讓這個(gè)數(shù)據(jù)向高位移動(dòng),然后再輸出至P1口,這樣就實(shí)現(xiàn)“流水”效果。循環(huán)移位操作流程見圖6。具體C程序如下所示,程序中用到了intrins.h庫函數(shù)中的循環(huán)左移指令_crol_,程序結(jié)構(gòu)簡單了很多。

        圖6 循環(huán)移位操作流程圖

        程序如下:

        #include<reg52.h> //引用頭文件reg52.h

        #include<intrins.h> //引用頭文件intrins.h

        void main()

        {

        P1=0Xfe; //將P1寄存器的8位賦值為二進(jìn)制數(shù)1111 1110

        while(1)

        {

        delay(200); //延時(shí)200 ms

        P1=_crol_(P1,1); //循環(huán)左移函數(shù),將P1寄存器內(nèi)的數(shù)向左移1位

        }

        }

        4 調(diào)試與驗(yàn)證

        應(yīng)用Keil uVision5和STC-ISP軟件進(jìn)行調(diào)試與驗(yàn)證。啟動(dòng)Keil開發(fā)環(huán)境,建立新工程liushuideng.uvproj,將文中流水燈控制程序輸入至主程序main.c中,調(diào)試程序,然后通過編譯生成為hex文件,再通過STC-ISP軟件將hex文件燒錄到設(shè)計(jì)電路板中(圖7)。燒錄完成后,電路板上電,8個(gè)LED燈即呈現(xiàn)流水的效果。通過驗(yàn)證可見,文中所述位輸出、移位及循環(huán)移位3種流水燈操作控制程序均能實(shí)現(xiàn)汽車LED流水燈效果,但是觀察程序復(fù)雜程度,明顯第3種操作,即循環(huán)移位操作程序最為簡潔。需要注意的是,在使用STC-ISP燒錄軟件之前,需要安裝一個(gè)串口軟件,系統(tǒng)會(huì)分配一個(gè)串口號(hào)給電路板,STC-ISP軟件燒錄時(shí)需要正確配置。

        圖7 STC-ISP燒錄軟件

        5 結(jié)論

        本文以宏晶公司的51單片機(jī)STC89C52RC為主控芯片,設(shè)計(jì)了8位LED流水燈的硬件電路,以及位輸出、移位及循環(huán)移位3種操作的C軟件程序,通過Keil和STC-ISP軟件進(jìn)行調(diào)試和驗(yàn)證,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。本設(shè)計(jì)的硬件電路和軟件程序完全可應(yīng)用于汽車LED流水燈的實(shí)現(xiàn),并且可以通過修改文中代碼,進(jìn)一步拓展汽車流水燈應(yīng)用?;谏鲜龌A(chǔ)設(shè)計(jì)和驗(yàn)證,通過各種燈珠形狀排列,就能進(jìn)一步實(shí)現(xiàn)正、反向流水顯示,箭頭流水轉(zhuǎn)向顯示,菱形流水顯示,魚骨流水顯示等功能,比如汽車花式流水燈、汽車燈光模式切換等。

        猜你喜歡
        流水單片機(jī)程序
        流水
        文苑(2020年10期)2020-11-07 03:15:26
        基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機(jī)的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機(jī)的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        試論我國未決羈押程序的立法完善
        “程序猿”的生活什么樣
        流水有心
        天津詩人(2017年2期)2017-11-29 01:24:12
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        前身寄予流水,幾世修到蓮花?
        視野(2015年6期)2015-10-13 00:43:11
        日本av天堂一区二区三区| 中文字幕肉感巨大的乳专区| 日产学生妹在线观看| 国产午夜无码片在线观看影院| 久久精品国产日本波多麻结衣| 久久国产偷| 亚洲成片在线看一区二区| 在线成人影院国产av| 日韩精品综合一本久道在线视频| 中文www新版资源在线| 无码人妻精品一区二区三区免费| 亚洲五月婷婷久久综合| 中文亚洲一区二区三区| 久久亚洲中文字幕精品熟| 国产伦人人人人人人性| 国产精品_国产精品_k频道| 欧美视频第一页| 亚洲一区二区三区美女av| 人妻少妇偷人精品一区二区| 亚洲人精品午夜射精日韩| 最新亚洲精品国偷自产在线| 久久国产精品不只是精品| 亚洲高清视频在线播放| 日产一区二区三区的精品| 45岁妇女草逼视频播放| 超级乱淫片国语对白免费视频| 香蕉人人超人人超碰超国产| 欧美国产亚洲精品成人a v| 国产精品香蕉网页在线播放| 亚洲不卡在线免费视频| 妺妺窝人体色www聚色窝| 在线视频你懂的国产福利| 亚洲综合精品一区二区三区| 日本成人午夜一区二区三区| 国产精品泄火熟女| 国产成人vr精品a视频| 欧美亚洲尤物久久综合精品| 中文字幕一区二区三区乱码人妻 | 亚洲国产精品免费一区| 亚洲三级香港三级久久| 亚洲av福利院在线观看|