模拟汽车转向灯控制系统设计(2)

2019-01-07 17:34

四川师范大学成都学院专科毕业设计

上电复位电路如图3所示,是利用外部复位电路实现。振荡器启动时间不超过10ms,在加电情况下,可以使单片机复位。电平复位将复位端通过电阻与Vcc相连,按键脉冲复位是利用RC分电路产生正脉冲来达到复位的。如图3.3-1所示:

图3.3-1 复位电路

3.4 LED显示电路

本设计通过驱动芯片ULN2803将AT89C51单片机的P1口输出与LED发光二极管相连当AT89C51单片机的P1引脚是高电平时,LED不亮,当P1引脚是低电平时,LED亮。但是在汽车转向灯里要根据汽车方向来控制信号灯,而实现LED的亮与灭。

4 软件设计

主程序中完成对汽车转向灯控制系统的初始化工作,判断是否有键被按下,当开关没有动作时无输出,调用延时程序,延时1s,当判断有开关被按下时,进入中断。中断程序主要完成各开关按下时汽车转向灯信号的相应显示,其中也在各分支中调用了延时程序,以使LED在不同的分支以相应的频率闪烁。在Protel软件中,找到所需要的元器件,调入后,连线,下载程序到AT89C51芯片中,运行可看到相应的信号灯亮或闪烁。

原理图按键连线: P1.0=刹车;P2.1=熄灭; P1.1=停靠;P2.2=左转; P1.2=右转;P2.0=倒车;

键值是根据P1的状态来确定的。例:P1=00111110,表明刹车键按下,它的键值是3EH(只看后面六位),P1.1=11000001,表明刹车键松开,它的键值是0EH,而P1.2=11100110,它的键值是1EH,表明左转向灯熄灭,P2.1=10100101,它的键值是2EH,表明紧急转向,P2.0=10101111,表明倒车转向灯打开,它的键值是4EH。具体过程如图4-1所示:

6

四川师范大学成都学院专科毕业设计

图4-1 汽车转向灯控制系统键功能程序流程图

4.1 总控制程序设计

汽车转向灯控制系统子程序设计、系统中断服务程序设计、按键功能程序设计汽车转向灯控制系统子程序设计,子程序是构成单片机应用程序必不可少的一部分,由于AT89C51单片机有ACALL和LCALL两条子程序调用子令,将K1和K2设置成出口参数用于补充P1和P2接口,此函数中的参数值的是检测故障的位置。由于电路连接对应的是单片机的P3口,所以该函数要借助辅助子函数unsigned char getQ(unsigned char i)来将1~8转化为P2口的P2^0~P2^7管脚即:0x01,0x02,0x04,0x10,0x20,0x40,0x80.以支持单总线操作。所以如果要检测第8号监测点,循环指示灯C程序设计如下。 #include

#define_MHZ_12 /设置单片机使用的晶振频率 unsigned int count=0,precount,Maichong;

7

四川师范大学成都学院专科毕业设计

void t1 (void); /t1定时子函数 void int1(void) interrupt1; /中断服务子函数 void Yudi(void); /判断循环灯子函数 sbit Q7=p3^3; sbit int1=p3^3; main() {

t1(); /调用定时子程序 while(precount!=0) { Yudi();

P0=Maichong; /调用转向灯多少子程序 t1(); } }

void t1 (void); {

TMOD=0x10; /定时器1工作在方式1,即为16位计数器

TH1=0X01; /设置60ms定时时间的初值 TL1=0XA0;

TR1=1; /启动T1

IT1=1; /设置INTR1中断方式为边沿触发方式,负跳变时产生中断 EA=1;

ET1=1; /允许定时器1中断 EX1=1; /允许外部中断1中断 EA=1; /CPU开放中断 count=0; }

void int1(void) interrupt1; /外部中断1处理函数 TR1=0; TH1=0X15;

8

四川师范大学成都学院专科毕业设计

TL1=0XA0; while (int1==0); count ++; precount=count; TR1=1; }

void Yudi(void); /转向传感器子程序 {

if(precount>=3&&precount<12) {Maichong=04H;

else if (precount>=12&&precount<20) {Maichong=0FH;} else Maichong=00H Maichong=P0; }

在汽车转向系统中断服务设计中,依然使用的是AT89C51单片机,在AT89C51中有6个中断源,其中有两个为外部中断源,也就是在单片机外部引脚上加了触发信号,以便产生中断请求,T0、T1、T2、T3、T4的入口地址分别是00003H,000BH,0013H,001BH,当这4个接口发出请求信号时,闪光灯会依次亮起来,以右转弯状态仿真图为例,转弯灯仿真图见附录1,C程序设计如下。 #include #include

float pwmcycle, pwmcycle1,pwmcycle2; char E(k)[8],Ec(k)[8]; sbit pwm1=P0.0; sbit pwm1=P0.1; sbit pwm2=P0.3; sbit pwm2=P0.4;

void delay(unit m); /声明延时函数 void dianji(void);

void timer1(void)interrupt 0 using 1; void timer2(void)interrupt 1 using 1;

9

四川师范大学成都学院专科毕业设计

void shijiancha(void); void Tongbu(void); void gengxin(void); main { P1=P0; dianji(); shijiancha(); tongbu(); dengxin();

if(timer1!=timer2) {dianji();} }

void delay(unit m) /延时1ms子程序 { uchar i; while(m--)

for(i=125;i>0;i--) }

void dianji(void) /循环子程序 {

while (Maichong==4) {if(SA1==1 or SA3==1) {P0=09H;}

else if(SA0==1or SA2==1) {P0=12H;}

pwmcycle=40% delay(20); P0=00H; delay(30);

while (Maichong==16) {if(SA1==1 or SA3==1) {P0=09H;}

10


模拟汽车转向灯控制系统设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017-2022年中国LED封装行业市场运营态势与投资决策分析报告(目

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: