新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 一種用AT89C2051制作的新穎汽車尾燈指示器

        一種用AT89C2051制作的新穎汽車尾燈指示器

        作者: 時間:2016-10-22 來源:網絡 收藏

        本文介紹一種新穎的汽車尾燈指示器,指示器由特制的發光二極管點陣組成,共有八組,每組同時點亮由九個發光二極管,置于汽車后玻璃窗上,共有五種顯示狀態,當有停車或剎車信號時,八組發光管點陣全點,有后退信號時,發光二極管點陣閃亮,當有危險信號時,八組發光二極管分為左右兩組交替閃亮,有右轉彎信號時,右邊四組發光二極管從中間向右邊依次點亮,有左轉彎信號時,左邊四組發光二極管從中間向左邊依次點亮,在轉彎信號未消失時不斷重復,此指示器新穎別致,給人以賞新悅目的感覺。

        本文引用地址:http://www.104case.com/article/201610/309783.htm

        本裝置采用的AT89C2051芯片是Atmel公司生產的自帶2KB可編程Flash存儲器的與MSC-51兼容的高性能處理器。它與常規的51芯片有相同的核心和相近的結構功能如RAM、定時/記數器、中斷結構、串行口、振蕩器和時鐘電路等;有最高達24MHz的振蕩頻率,有較少的精簡I/O端口,因此體積很小,非常適用做小型應用系統的處理器。

        匯編程序及詳細注釋如下:

        STOP BIT 32H ;剎車標志

        DANGE BIT 33H ;危險標志

        BACK BIT 34H ;倒車標志

        RIGHT BIT 35H ;右轉標志

        LEFT BIT 36H ;左轉標志

        FLASH BIT 37H ;閃爍標志

        LRSET BIT 38H ;依次點亮標志

        COUNT EQU 32H ;依次亮點計數器

        ORG 0000H

        AJMP MAIN ;跳轉主程序

        ORG 0030H

        AJMP MAIN

        MAIN: NOP

        MOV R0,#20H ;20H至60H單元清零

        MOV A,#0

        RES: MOV @R0,A

        INC R0

        CJNE R0,#60H,RES

        MOV SP,#60H ;設置堆棧指針為60H

        MOV COUNT,#0 ;清依次顯示循環計數器

        CLR TIME_OUT ;清定時時間到標志

        CLR EA

        CLR RIGHT ;清右轉標志

        CLR STOP ;清剎車標志

        CLR DANGE ;清危險標志

        CLR BACK ;清倒車標志

        CLR LEFT ;清左轉標志

        CLR LRSET ;清依次點亮標志

        LOP: ACALL DL1 ;調用延時子程序

        ACALL DL1 ;調用延時子程序

        CPL FLASH ;閃爍標志取反

        JNB LRSET,LOP1 ;無依次點亮標志轉LOP1

        INC COUNT ;依次點亮計數器加1

        MOV A,COUNT

        CJNE A,#5,LOP1

        MOV COUNT,#0 ;計數計到5清零

        LOP1: ACALL CL ;調用過程處理子程序

        LOPA: ACALL KEY ;調用按鍵處理子程序

        AJMP LOP ;返回主循環

        DL1 : MOV R6,#200 ;延時子程序

        DL11: MOV R5,#250

        DJNZ R5,$

        DJNZ R6,DL11

        RET

        CL: NOP ;過程處理子程序

        JNB STOP,CL1

        MOV A,#0FFH ;有停車或剎車標志

        CPL A ; 顯示器全亮

        MOV P1,A

        AJMP CLE

        CL1: JNB DANGE,CL2

        JB FLASH,CL11 ;有危險標志

        MOV A,#0FH ;左右兩組顯示器交替閃爍

        MOV P1,A

        AJMP CLE

        CL11: MOV A,#0F0H

        MOV P1,A

        AJMP CLE

        CL2: JNB BACK,CL3

        JB FLASH,CL21 ;有倒車標志

        MOV A,#0FFH ;顯示器做全亮或全滅交替

        MOV P1,A ;顯示器全亮

        AJMP CLE

        CL21: MOV A,#00H

        MOV P1,A ;顯示器全滅

        AJMP CLE

        CL3: JNB RIGHT,CL4

        MOV DPTR,#RIGHT_CHAR ;有右轉標志

        MOV A,COUNT ;右邊四個一組的發光陣列依次循環亮

        MOVC A,@A+DPTR ;取顯示值

        CPL A

        MOV P1,A

        AJMP CLE

        CL4: JNB LEFT,CL5

        MOV DPTR,#LEFT_CHAR ;有左轉標志

        MOV A,COUNT ;左邊四個一組的發光陣列依次循環亮

        MOVC A,@A+DPTR ;取顯示值

        CPL A

        MOV P1,A

        AJMP CLE

        CL5: MOV A,#0 ;若無任何標志,關閉顯示器

        CPL A

        MOV P1,A

        CLE: RET

        KEY: NOP ; 按鍵處理子程序

        CLR STOP ; 清除停止標志

        CLR DANGE ; 清除危險標志

        CLR BACK ; 清除倒車標志

        CLR RIGHT ; 清除右轉標志

        CLR LEFT ; 清除左轉標志

        JNB P3.2,KEY1

        SETB STOP ; P3.2有鍵按下,置停止標志

        AJMP KEYE

        KEY1: JNB P3.3,KEY11

        SETB DANGE ; P3.3有鍵按下,置危險標志

        KEY11: MOV A,P3

        CJNE A,#22H,KEY2

        SETB DANGE ; P3.5 P3.1同時按下,置危險標志

        AJMP KEYE

        KEY2: JNB P3.4,KEY3

        SETB BACK ;P3.4有鍵按下,置倒車標志

        AJMP KEYE

        KEY3: JNB P3.5,KEY4

        SETB RIGHT ;P3.5有鍵按下,置右轉標志

        JB LRSET,KEYE

        SETB LRSET ;設置左右轉循環顯示標志

        MOV COUNT,#0 ;循環顯示計數器清零

        AJMP KEYE

        KEY4: JNB P3.1,KEY5

        SETB LEFT ;P3.1有鍵按下,置左轉標志

        JB LRSET,KEYE

        SETB LRSET ;設置左右轉循環顯示標志

        MOV COUNT,#0 ;循環顯示計數器清零

        AJMP KEYE

        KEY5: CLR LRSET ;清左右轉循環顯示標志

        KEYE: RET

        LEFT_CHAR: DB 00H,10H,30H,70H,0F0H ;從右到左依次點亮值

        RIGHT_CHAR: DB 00H,08H,0CH,0EH,0FH ;從左到右依次點亮值



        關鍵詞: AT89C2051 尾燈

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鄂伦春自治旗| 宜阳县| 乌兰县| 枣强县| 台东市| 大英县| 新疆| 雷山县| 石门县| 卓尼县| 深州市| 如东县| 东阿县| 荆门市| 高青县| 炎陵县| 古蔺县| 镇坪县| 射洪县| 平塘县| 通江县| 莆田市| 兴城市| 东乌| 汕尾市| 长治市| 富民县| 鄱阳县| 吴桥县| 郴州市| 阿尔山市| 普格县| 泰来县| 张家界市| 额济纳旗| 安陆市| 全州县| 酒泉市| 海门市| 诏安县| 济南市|