您的位置 首页 基础

一种用AT89C2051制造的新颖轿车尾灯指示器

本文介绍一种新颖的汽车尾灯指示器,指示器由特制的发光二极管点阵组成,共有八组,每组同时点亮由九个发光二极管,置于汽车后玻璃窗上,共有

本文介绍一种新颖的轿车尾灯指示器,指示器由特制的发光二极管点阵组成,共有八组,每组一起点亮由九个发光二极管,置于轿车后玻璃窗上,共有五种显现状况,当有泊车或刹车信号时,八组发光管点阵全点,有撤退信号时,发光二极管点阵闪亮,当有风险信号时,八组发光二极管分为左右两组替换闪亮,有右转弯信号时,右边四组发光二极管从中心向右边顺次点亮,有左转弯信号时,左面四组发光二极管从中心向左面顺次点亮,在转弯信号未消失时不断重复,此指示器新颖别致,给人以赏新顺眼的感觉。

本设备选用的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 ;从左到右顺次点亮值

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/284999.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部