单片机课程设计最终版Word下载.docx
《单片机课程设计最终版Word下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计最终版Word下载.docx(11页珍藏版)》请在冰点文库上搜索。
在左转弯或右转弯时,通过转弯操作杆应使左转开关或右转开关合上,从而使左头灯、仪表板左转弯灯、左尾灯或右头灯、仪表板右转弯灯、右尾灯闪烁;
合紧急开关时要求前面所述的6个信号灯全部闪烁;
汽车刹车时,两个尾灯点亮;
如正当转弯时刹车,则转弯时原应闪烁的信号灯仍应闪烁。
现代汽车信号灯灯具已经开始使用发光二极管(LED)技术以及光导技术。
2设计方案及原理
2.1设计方案
如图1所示,汽车转向灯主要有单片机、按键、复位、时钟、电源、故障检测电路、LED显示电路组成最基本的单片机系统。
单片机本身的功能强大,汽车转向灯的驱动用单片机本身的驱动来驱动。
使得单片机的功能得到充分的运用。
本方案的故障检测电路具有故障监控性能,它能提高系统的可靠性。
2.2设计原理
由定时器/计数器与中断系统的联合组成控制系统的工作原理。
如汽车上有一个转弯控制杆,其中有三个位置:
中间位置,汽车不转弯;
向上,汽车左转;
向下汽车右转。
转弯时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号。
应急开关合上时,6个信号灯都应闪烁。
汽车刹车时,2个尾灯发出不闪烁信号。
如正当转弯时刹车,转弯时原应闪烁的信号仍应闪烁。
它们都是频率为1Hz低频闪烁,在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为10Hz频率快速闪烁。
任何在下表中未出现的组合,都将出现故障指示灯闪烁,闪烁频率为10Hz。
本系统采用AT89S51单片机为运算和控制的核心,其中AT89S51有P0、P1、P2、P3四个8位的并行双向I/O口,而且P3口用于控制信号输入,P1口用于控制LED信号灯的显示。
将汽车信号灯的输出等效转换为如下真值表1。
表1汽车信号灯控制功能真值表
输入信号输出信号
左转右转刹车紧急停靠左头灯右头灯左转弯灯右转弯灯左尾灯右尾灯
10000闪烁闪烁闪烁
01000闪烁闪烁闪烁
00100亮亮
00010闪烁闪烁闪烁闪烁闪烁闪烁
00001闪烁闪烁闪烁闪烁
10100闪烁闪烁闪烁亮
01100闪烁闪烁亮闪烁
00110闪烁闪烁闪烁闪烁亮亮
10110闪烁闪烁闪烁闪烁闪烁亮
01110闪烁闪烁闪烁闪亮闪烁
2.2.1开关状态检测
开关状态检测,对AT89C51来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示,采用JNBP1.X,REL指令来完成;
也可以一次性检测五路开关状态,让它指示,可以用MOVA,P1指令一次把P1端口的状态全部读入,取低5位的状态来指示。
2.2.2输出控制
以发光二极管D1—D6来指示,此设计用SETBP0.X和CLRP0.X指令来完成,也可以用指令MOVP0,#111XXXXXB方法来实现。
2.2.3定时初始化
定时主要与编程有关。
编程对定时器控制寄存器(TCON)、工作方式控制寄存器(TMOD)和中断允许控制寄存器(IE)进行操作。
2.2.4汽车转向灯显示
在汽车转弯或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为1HZ,称低频信号。
当停靠开关合上时,外部信号灯以10HZ频率闪烁此时为高频信号。
3硬件设计
3.1硬件系统框图
汽车转弯灯单片机控制系统框图由5个部分组成:
AT89S51、晶振电路、复位电路、控制电路和输出电路。
图1汽车转弯灯单片机控制系统框图
3.2硬件接线图
本次设计是在单片机的P2口接6个发光二极管,在设计时,用P0口的高电平表示开关断开,低电平表示开关闭合,用P0口输出高电平来使二极管发光,输出低电平二极管则熄灭,通过程序查询、延时和等程序控制实现每个发光二极管指示灯闪烁或者亮灭。
汽车转向灯的硬件接线图见附录1.
4软件系统设计
4.1系统流程图如图2所示:
图2系统流程图
4.2程序清单见附录2。
5总结
这次课程设计我主要是做了转向灯的模拟,进行仿真后,能清晰的看到在控制输入信号的状态下,相应的信号灯发出转弯的指示信号。
通过对单片机控制系统进行仿真调试,完全达到了设计预期目的。
参考文献
[1]余光钧.单片机应用技术教程[M].北京:
电子工业出版,2000:
5-16.
[2]何立名.单片机应用系统设计[M].北京:
北京航空航天大学出版,1990:
63-86.
[3]张靖武,周灵彬.单片机系统的PROTURES设计与仿真[M].北京:
电子工业出版,2005:
65-93.
附录
附录1:
整体硬件连接及仿真图
附录2:
程序代码
ORG0000H
AJMPSTART1
ORG0030H
SAMEEQU4EH
START1:
MOVP1,#7FH;
无输入时无输出
START:
MOVA,P3;
读P3口数据
ANLA,#1FH;
取用P3口的低五位数据
CJNEA,#1FH,SHIY;
对P3口低五位数据进行判断
AJMPSTART1
SHIY:
MOVSAME,A
LCALLYS;
延时
MOVA,P3;
读P3口的数据
ANLA,#1FH;
CJNEA,#1FH,SHIY1;
对P3口的低五位数据进行判断
AJMPSTART1;
开关没有动作时无输出
SHIY1:
CJNEA,SAME,START1
CJNEA,#17H,NEXT1;
P3.3=0时进入左转分支
AJMPLEFT
NEXT1:
CJNEA,#0FH,NEXT2;
P3.4=0时进入左转分支
AJMPRIGHT
NEXT2:
CJNEA,#1DH,NEXT3;
P3.1=0时进入紧急分支
AJMPEARGE
NEXT3:
CJNEA,#1EH,NEXT4;
P3.0=0时进入刹车分支
AJMPBRAKE
NEXT4:
CJNEA,#16H,NEXT5;
P3.0=P3.3=0时进入左转刹车分支
AJMPLEBR
NEXT5:
CJNEA,#0EH,NEXT6;
P3.0=P3.4=0时进入右转刹车分支
AJMPRIBR
NEXT6:
CJNEA,#1CH,NEXT7;
P3.0=P3.1=0时进入紧急刹车分支
AJMPBRER
NEXT7:
CJNEA,#14H,NEXT8;
P3.0=P3.1=P3.3=0时进入左转紧急刹车
分支
AJMPLBE
NEXT8:
CJNEA,#0CH,NEXT9;
P3.0=P3.1=P3.4=0时进入右转紧刹
车分支
AJMPRBE
NEXT9:
CJNEA,#1BH,NEXT10;
P3.2=0时进入停靠分支
AJMPSTOP
NEXT10:
AJMPERROR;
其他情况进入错误分支
LEFT:
MOVP1,#55H;
左转分支
LCALLY1s
MOVP1,#7FH
AJMPSTART
RIGHT:
MOVP1,#2BH;
右转分支
EARGE:
MOVP1,#01H;
紧急分支
BRAKE:
MOVP1,#1FH;
刹车分支
LEBR:
MOVP1,#15H;
左转刹车分支
MOVP1,#3FH
RIBR:
MOVP1,#0BH;
右转刹车分支
LCALLY1s
MOVP1,#5FH
BRER:
MOVP1,#01H;
紧急刹车分支
MOVP1,#1FH
LBE:
左转紧急刹车分支
RBE:
右转紧急刹车分支
STOP:
MOVP1,#19H;
停靠分支
LCALLY100ms
ERROR:
错误分支
MOVP1,#7EH
YS:
MOVR7,#20H;
延时
YS0:
MOVR6,#0FFH
YS1:
DJNZR6,YS1
DJNZR7,YS0
RET
Y1s:
MOVR7,#04H;
Y1s1:
Y1s2:
MOVR5,#0FFH
DJNZR5,$
DJNZR6,Y1s2
DJNZR7,Y1s1
Y100ms:
MOVR7,#66H;
Y100ms1:
MOVR6,#0FFH
Y100ms2:
DJNZR6,Y100ms2
DJNZR7,Y100ms1
END