1、河北工业大学计算机硬件技术基础(MCS-51)2007 年课程设计报告一、题目:汽车信号灯控制系统(编号 23)二、详细设计:1、硬件详细设计:硬件系统设计图软件系统设计流程图启动设置定时器 0 初值设置定时器 0 位模式 1置软件计数器初值允许定时器 0 中断总允许中断启动定时器 0等待接线:使用排线将 A2 区的 J61 接口与 D1 区的 J52 接口相连。Sw1 与 p1.6 相接 sw2 与 p1.7 相接 k1 与 INTO 相接 ,k2 与INT1 相接三、程序清单ORG 8000HMAIN: MOV TMOD,#01H ;定义计时器,计时MOV TH0,#4CH ;定义计时器高
2、八位MOV TL0,#00H ;定义计时器低八位MOV IE,#82H ;开 CPU 的中断和中段源的允许标志位MOV R0,#00HMOV R2,#00HSETB TR0 ;将 TR0 置 1LOOP: JBC TF0,DO1 SJMP LOOPDO1: JNB P3.3,YINGJI ;判断 P3.3=0 跳至 YINGJI JB P1.6,ZUOZ ;判断 P1.6=1 跳至 ZUOZJB P1.7,YOUZ ;判断 P1.7=1 跳至 YOUZJNB P3.2,SHACHE ;判断 P3.2=0 跳至 SHACHESJMP TING ;无条件跳至 TING YINGJI: INC R0
3、 ;给 R0 加 1CJNE R0,#08H,NEXT1 ;判断 R0,当 R0=4 时跳至 NEXT1,延时 400 毫秒CPL P1.0 ;取反 P1.0CPL P1.1 ;取反 P1.0CPL P1.2 ;取反 P1.0CPL P1.3 ;取反 P1.0CPL P1.4 ;取反 P1.0CPL P1.5 ;取反 P1.0MOV R0,#00HJNB P3.3,NEXT1SJMP DO1 ;此程序可实现六盏灯的频闪ZUOZ: INC R2 ;给 R2 加 1CJNE R2,#14H,NEXT1 ;判断 R2=8 时,跳至 NEXT1,延迟 1 秒CPL P1.0 ;取反 P1.0CPL P
4、1.1 ;取反 P1.1CPL P1.2 ;取反 P1.2SETB P1.3 ;把 P1.3 置 1,使灯灭SETB P1.4 ;把 P1.4 置 1,使灯灭SETB P1.5 ;把 P1.5 置 1,使灯灭MOV R2,#00HJB P1.6,NEXT1SJMP DO1 ;此程序可实现左转信号灯的频闪,时间间隔 1 秒YOUZ : INC R2 CJNE R2,#14H,NEXT1 SETB P1.0SETB P1.1SETB P1.2CPL P1.3CPL P1.4CPL P1.5MOV R2,#00HJB P1.7,NEXT1SJMP DO1 ;同“ZUOZ”程序类似NEXT1: MOV
5、 TH0,#4CHMOV TL0,#00HSJMP LOOPSHACHE: SETB P1.0 ;把 P1.0 置 1,使灯灭SETB P1.1 ;把 P1.1 置 1,使灯灭CLR P1.2 ;把 P1.2 清零,左尾灯常亮SETB P1.3 ;把 P1.3 置 1,使灯灭SETB P1.4 ;把 P1.4 置 1,使灯灭CLR P1.5 ;把 P1.5 清零,右尾灯常亮JNB P3.2,SHACHESJMP DO1TING: MOV P1,#0FFH SJMP DO1 ;停车程序,六盏灯全灭END四、调试程序的方法按照以前所学实验方法,将程序输入,编译无误,按照硬件系统设计图并对照实验书后
6、的对照表进行接线,然后运行,通过开关控制灯的亮灭。五、你所设计的程序最终完成的功能1)功能:(1)车辆转弯时,相应一侧之前灯、尾灯及仪表板指示灯均应闪烁。即左转时,左头灯、左尾灯、仪表板左转弯灯闪烁,右转时则右头灯、右尾灯和仪表板右转弯灯闪烁;(2)紧急开关闭合时要求前述 6 个信号灯全部闪烁;(3)刹车时 2 个尾灯亮,若转弯时刹车,则转弯时原应闪烁的信号灯仍应闪烁;(4)转向闪烁频率 1Hz,应急闪烁频率 2.5Hz。2)按照以前所学实验方法,将程序输入,编译无误,按照硬件系统设计图并对照实验书后的对照表进行接线,然后运行,通过开关控制灯的亮灭。六、对该设计题目的更完善的方案在满足原有基本
7、动能的基础上,此方案又增加了一项:汽车停靠而停靠开关合上时(如在高速公上,车辆因故障停靠时)左头灯、右头灯、左尾灯、右尾灯应高频闪烁;及增加倒车灯,应再加两盏灯比较好。七、收获及心得体会通过这次课程设计,我对所学的知识有了更深一步的理解和认识。熟练掌握了 MCS-51 系列单片机各种操作指令的运用,中断及延时程序的原理及应用,用软件控制的汽车信号灯指示系统,及各种闪烁信号的产生办法同时,通过这段时间的学习与操作,我明显的觉察出所学知识的漏洞,深刻体会到实践的重要性,在今后的学习中,我一定要扎扎实实,真正的把知识学到手,做到融会贯通,运用自如。在这次课程设计中,我深刻认识到合作的重要性。在编程过程中,我和同伴互相帮助,配合默契,对设计的成功起了很大推动作用。单片机的应用在生活中及其广泛,例如交通灯、洗衣机等日常生活中接触到的东西都是应用了单片机程序。我这次课程设计是有关汽车信号灯控制系统的,在制作过程中,虽然有很多地方不明白但是也通过学习讨论掌握了一些单片机基础知识。在答辩过程中,通过老师的提问,我深刻认识到了自己对单片机知识的匮乏,知道了自己的不足之处,以后要针对不足展开深入的学习。日期: 2007 年 12 月 30 日