【毕业设计】基于单片机的汽车尾灯电路设计与实现(附原理图与源码)

1 引言

在日新月异的21世纪里,电子产品得到了迅速发展。许多电器设备都趋于人性化、智能化,这些电器设备大部分都含有CPU控制器或者是单片机。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。用单片机来控制的小型电器产品具有便携实用,操作简单的特点。

本文设计的汽车尾灯控制电路属于小型智能电子产品。利用单片机进行控制,实时时钟芯片进行记时,外加掉电存储电路和显示电路。此设计具有相当重要的现实意义和实用价值。

2 系统概述

本设计以AT89S52单片机为核心,构成单片机控制电路,完成对它们的自动调整和掉电保护。人机接口由四个按键来实现,用这四个按键对汽车左转,右转,停车和检测进行控制。。软件控制程序实现所有的功能。整机电路使用+5V稳压电源,可稳定工作。系统框图如图2-1所示,其软硬件设计简单,可广泛应用于长时间工作的系统中。

图2-1 系统框图

3 方案选择

    由于汽车尾灯控制电路的种类比较多,因此方案选择在设计中是至关重要的。正确地选择方案可以减小开发难度,缩短开发周期,降低成本,更快地将产品推向市场。

3.1 方案1——基于AT89S52单片机的汽车尾灯控制电路设计

直接用AT89S52单片机来实现汽车尾灯控制电路设计。AT89S52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦写1000余次。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

用单片机来实现汽车尾灯控制电路设计,无须外接其他芯片,充分利用了单片机的资源。

3.2 方案2——基于电子元件的汽车尾灯控制电路设计

   用电子元件接的汽车尾灯控制电路,电路复杂,接点较多,电路稳定性差。

                    汽车左右和刹车仿真电路

汽车尾灯控制电路设计总体框图

4 系统硬件电路的设计

按照系统设计功能的要求,初步确定设计系统由主控模块、键盘接口模块、显示模块共3个模块组成,电路系统构成框图如图4-1所示。主控芯片使用52系列AT89S52单片机,

图4-1 汽车尾灯控制电路系统构成框图

4.1 系统核心部分——闪电存储型器件AT89S52

4.1.1 AT89S52具有下列主要性能[5]:       

·8KB可改编程序Flash存储器(可经受1000次的写入/擦除周期)   

·全静态工作:0Hz~24MHz

·三级程序存储器保密

·128×8字节内部RAM

·32条可编程I/O线

·2个16位定时器/计数器

·6个中断源

·可编程串行通道

·片内时钟振荡器

4.1.2 AT89S52的引脚及功能

AT89S52单片机的管脚说明如图4-2所示。

图4-2 AT89S52管脚

(1) 主要电源引脚

    ①VCC  电源端

    ②GND  接地端

(2) 外接晶体引脚XTAL1和XTAL2

    ①XTAL1  接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。

    ②XTAL2  接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。

(3) 控制或与其它电源复用引脚RST、ALE//PROG、/PSEN和/EA/VPP

    ①RST  复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。

    ②ALE//PROG  当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)[6]。

    ③/PSEN  程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当AT89S52/LV52由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

④/EA/VPP  外部访问允许端。要使CPU只访问外部程序存储器(地址为0000H~FFFFH),则/EA端必须保持低电平(接到GND端)。当/EA端保持高电平(接VSS端)时,CPU则执行内部程序存储器中的程序。

(4) 输入/输出引脚 P0.0~ P0.7、P1.0~P1.7、P2.0~ P2.7 和P3.0~P3.7

①P0端口(P0.0~ P0.7) P0是一个8位漏极开路型双向I/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。

②P1端口(P1.0~ P1.7) P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

    ③P2端口 (P2.0~P2.7) P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

④P3端口(P3.0~P3.7)  P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。

P3口也可作为AT89S52的一些特殊功能,这些特殊功能见表4-1[7]。

表4-1 P3端口的特殊功能

  端口引脚

      兼   用   功    能

   P3.0

RXD    (串行输入口)

   P3.1

TXD    (串行输出口)

   P3.2

/INT0  (外部中断0)

   P3.3

/INT1  (外部中断1)

   P3.4

T0     ( 定时器0的外部输入)

   P3.5

T1     (定时器1的外部输入)

   P3.6

/WR    (外部数据存储器写选通)

   P3.7

/RD    (外部数据存储器读选通)

4.5 键盘电路

本设计共采用按键4个,分别与单片机的P2.0、P2.1、P2.2、P2.3口相连,分别对应汽车左转,汽车右转,刹车和检测的功能。

7 结论

本设计硬件电路较简单,所用器件较少,电路中使用了AT89S52单片主要芯片,实现了预计功能。

在对芯片的管脚功能和用法有充分的了解后,根据设计要求设计硬件电路,然后通过软件编程,用按键进行控制,用发光二极管进行显示。

汽车尾灯控制电路可以正常显示汽车的左转,右转,停车和检测功能,基本完成了预期要实现的目标。

参考文献

1.康华光主编,电子技术基础(数字部分),高等教育出版社

2.标准集成电路数据手册TTL电路,电子工业出版社

附录1:汽车尾灯控制电路设计电路原理图

附录2 主程序

  org   00h

       ajmp  start

       ORG 001BH        ;定时器T1中断程序入口

       LJMP    time1  ;跳至INTT1执行

       org   0030h

start: mov   TMOD,#10h

       mov   IE,#88h

       MOV   TH1,#00h

       MOV   TL1,#00h

       mov    r7,#03h;

       setb  TR1

turn:     jnb  p2.0,is_key

          jnb  p2.1,is_key

          jnb  p2.2,is_key

          jnb  p2.3,is_key

          orl  p1,#0ffh;

is_key  : jb  p2.3,no_check;

          anl  p1,#0c0h;

          jmp  turn

no_check:

          jmp turn





time1:    push acc

          mov   TH1,#010h

          mov   TL1,#00h





          jb    p2.0,left

          djnz  r7,return

          mov   r7,#3

          xrl   p1,#3fh



left:     jb    p2.1,right

          dec  r7;

          cjne r7,#6,next1;

          mov   p1,#0fbh

next1:    cjne  r7,#3,next2;

          mov   p1,#0fdh;

next2:    cjne  r7,#0,right;

           mov  p1,#0feh

           mov  r7,#9;



right:    jb    p2.2,return

          dec  r7;

          cjne r7,#6,next11;

          mov   p1,#0f7h

next11:    cjne  r7,#3,next21;

          mov   p1,#0efh;

next21:    cjne  r7,#0,return;

          mov  p1,#0dfh

          mov  r7,#9;



return: pop acc

        reti

        end

                 

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值