新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 一种用AT89C2051制作的新颖汽车尾灯指示器

一种用AT89C2051制作的新颖汽车尾灯指示器

作者:时间:2016-10-22来源:网络收藏

本文介绍一种新颖的汽车尾灯指示器,指示器由特制的发光二极管点阵组成,共有八组,每组同时点亮由九个发光二极管,置于汽车后玻璃窗上,共有五种显示状态,当有停车或刹车信号时,八组发光管点阵全点,有后退信号时,发光二极管点阵闪亮,当有危险信号时,八组发光二极管分为左右两组交替闪亮,有右转弯信号时,右边四组发光二极管从中间向右边依次点亮,有左转弯信号时,左边四组发光二极管从中间向左边依次点亮,在转弯信号未消失时不断重复,此指示器新颖别致,给人以赏新悦目的感觉。

本文引用地址:http://www.eepw.com.cn/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 尾灯

评论


相关推荐

技术专区

关闭