李 娜,虎 号,牛晓飞,3
1.宿州学院机械与电子工程学院,安徽宿州,234000;2.河海大学计算机与信息学院,江苏南京,211100;3.安徽大学物理与材料科学学院,安徽合肥,230039
基于单片机交通灯设计的实践教学
李 娜1,2,虎 号1,牛晓飞1,3
1.宿州学院机械与电子工程学院,安徽宿州,234000;2.河海大学计算机与信息学院,江苏南京,211100;3.安徽大学物理与材料科学学院,安徽合肥,230039
以AT89C51为核心控制部件,指导学生进行智能交通灯的设计,利用四组红、黄、绿发光二极管显示东南西北的交通灯情况,两组数码管倒计显示南北、东西方向交通灯点亮时间。在智能交通灯的设计制作和软件编程过程中,学生可以快速掌握单片机定时/计数器、I/O设备的原理和应用。同时,可以激发学生的学习兴趣,培养学生的职业素养,从而提升他们的实践创新性。
AT89C51;定时/计数器;交通灯;LED数码管
定时/计数器、I/O设备接口技术是《单片机原理及应用》课程中需要学生学以致用的重要内容。教师一味地按照课本讲解定时/计数器的基本原理、I/O设备工作方法,学生不免感觉空洞抽象、枯燥乏味。将书本知识结合生活中的实际应用,则能激发学习兴趣,实现教学目标。交通灯在生活中随处可见,由学生自己动手设计制作一款简易的智能交通灯,学生兴致浓厚,主动探索单片机知识。本文采用AT89C51作为核心控制元件,利用单片机定时/计数器功能实现计时,并通过LED数码管倒计显示[1]。学生硬件设计和软件编程过程,可以快速掌握单片机定时/计数器、I/O设备的原理和应用。
为让学生理解单片机最小系统、I/O设备等抽象概念,教学中教师应着重分析交通灯的设计原理。首先介绍单片机最小系统,它由单片机、电源电路、复位电路、晶振电路构成。再介绍交通灯部分,它由四组红、黄、绿发光二极管组成,分别代表东、南、西、北四个方向的交通灯。最后介绍交通灯时间显示部分,该部分由两组LED数码管组成,分别显示东西、南北方向的时间。本设计中南北方向红灯亮25秒,黄灯亮5秒,绿灯亮20秒;东西方向绿灯亮30秒,红灯亮15秒,黄灯亮5秒。这样交替变换不产生因时间差导致的灯光变化不一致现象。该设计的原理框图如图1所示。
图1 原理框图
2.1 最小系统
在实践中,学生弄清楚了最小系统的组成部分、工作原理及应用。本设计采用STC公司生产的STC89C51作为整个系统的核心控制部分。STC89C51是一种低功耗、高性能CMOS 8位微控制器,4个8位可编程并行I/O口,2个可编程16位定时器[2]。在智能交通灯设计中,电源电路、复位电路、晶振电路与单片机组成最小系统,如图2所示[3]。本设计采用12 MHz晶振为电路提供1μs的时钟周期,按键复位电路实现系统复位。最小系统的运行才能确保智能交通控制功能的实现。
2.2 LED数码管
数码管是单片机设计常用的元件之一,在此环节可以引导学生思考LED数码管在生活中的其他应用,如电子钟、电梯显示、抢答器、记分器等。基于单片机的交通灯设计采用LED数码管实时显示亮灯时间。LED数码管利用单只LED组合排列成“8”字型的数码管,数码管通过点亮相应的点划来显示数字0~9。如图3所示,本设计采用共阳极数码管,0~9对应的位码分别为C0H、F9H、A4H、B0H、99H、92H、82H、F8H、80H、90H[4]。若时钟显示的时间为30 s,则传送到两段数码管的位码分别为B0H、C0H。
图2 最小系统
图3 LED数码管
2.3 硬件整体结构
图4 硬件整体结构图
在教学中,可以让学生查阅资料、分组讨论,用Protues软件自行绘制硬件整体结构图,如图4所示。为了准确设计电路图,需要学生了解整个设计思路,尤其是每一处引脚的连接方式。
单片机作为核心控制部件通过引脚P1.0-P1.5与四组红、黄、绿发光二极管相连,其中P1.0-P1.2与南北方向的红、黄、绿发光二极管相连,P1.3-P1.5与东西方向的红、黄、绿发光二极管相连。单片机通过引脚P0.0-P0.7分别与其连接。单片机与两组LED数码管相连,其中南北方向数码管的段码1、2与单片机P2.0、P2.1相连,位码A-DP与单片机P0.0-P0.7相连。东西方向数码管的段码1、2与单片机P2.2、P2.3相连,位码A-DP与单片机P0.0-P0.7相连。段码1、2选择两段中需要点亮的数码管,位码A、B、C、D、E、F、G、DP决定相应段码显示具体内容。
若系统南北红灯亮25秒,东西绿灯亮30秒,则P2.0先为低电平0,让南北方向连接1号的段码点亮,单片机通过P0.0-P0.7传送2的位码A4H到数码管的A-DP;动态显示轮流点亮南北方向2段,则P2.1为低电平0,单片机通过P0.0-P0.7传送5的位码92H到数码管的A-DP;点亮东西方向1段,则P2.2为低电平0,单片机通过P0.0-P0.7传送3的位码B0H到数码管的A-DP;点亮东西方向2段,则P2.3为低电平0,单片机通过P0.0-P0.7传送0的位码C0H到数码管的A-DP。
复杂难记的100多条指令让很多学生对单片机设计望而却步,然而常用的汇编指令并不多,本设计采用的指令不过10多条。教师在教学时应帮助学生克服恐惧心理,引导学生解决问题,培养学习兴趣。
整体流程图是每个软件设计的灵魂,本设计的程序流程图如图5所示。本设计中南北方向红灯亮25秒,黄灯亮5秒,绿灯亮20秒;东西方向绿灯亮30秒,红灯亮15秒,黄灯亮5秒。因此本设计中的交通灯共有四种状态S1、S2、S3、S4,其中S1态为南北红灯25秒,东西绿灯25秒;S2态为南东西绿灯5秒;S3态为南北绿灯15秒,东西红灯15秒;S4态为南北绿灯5秒,东西黄灯5秒。
图5 程序流程图
关键代码如下[5-7]:
(1)定时器初始化
MOV MOD,#01H;设T0为方式1
MOV TH0,#3CH;给T0装入计数初值
MOV TL0,#0B0H
SETB ET0;允许T0申请中断
SETB EA;总中断允许
SETB TR0
(2)S1态子程序
MOV P0,#11111010B;设置S1态,即南北红灯、东西绿灯25秒
CALL DELAY25;调用延时25秒
(3)25秒延时子程序
DELAY25: MOV R1,#25
D1: MOV R2,#100
D2: MOV R3,#20
D3: MOV R4,#248
DJNZ R4,$
DJNZ R3,D3
DINZ R2,D2
DJNZ R1,D1
RET
基于单片机的交通灯设计,可让学生从硬件设计和软件编程过程中理解和掌握定时器/计数器、I/O接口的基本原理和应用[8]。在实践教学中,学生对编程实现交通灯控制兴趣浓厚,在学习理解S1态子程序的情况下,可以自行编写S2态、S3态、S4态的子程序。学生用自己设计的电路控制交通灯,能体会到学习“单片机原理及应用”课程的实用性、趣味性。该设计有助于学生探索该学科的有效学习方法,在培养学生动手能力的同时,也激发了学生的创新思维。部分学生尝试将该设计拓展,增加时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。
[1]张毅刚,彭喜元.单片机原理及应用[M].北京:高等教育出版社,2010:45-65
[2]彭虎,周佩玲,傅忠谦.微机原理与接口技术[M].北京:电子工业出版社,2010:170-171
[3]李勇.简易交通灯系统的软件设计[J].工业控制计算机,2007(5):80
[4]姚龙水,王永飞.基于AT89C51单片机的交通灯控制系统设计[J].电子世界,2013(23):17-18
[5]徐鑫.单片机智能交通灯控制系统的设计[J].电子世界,2013(23):23-24
[6]侍金凤.基于51单片机的交通灯智能控制系统[J].科技信息,2010(35):485-487
[7]苏玉萍.基于单片机的交通灯控制系统的设计与仿真[J].甘肃科技,2011(19):32-34
[8]福洲.《微机原理与接口技术》课程教学设计[J].电子世界,2012(2):74-75
(责任编辑:汪材印)
2014-10-28
宿州学院校级教研项目“单片机项目教学法的探索与研究”(szxyjyxm201307);宿州学院校级教研项目“‘工程教育’背景下,电气信息类专业计算机课程改革的探索与实践”(szxyjyxm201230),“‘工程教育’背景下,电气信息类基础课教学实践与探索”(szxyjyxm201231)。
李娜(1983-),女,安徽宿州人,博士生,主要研究方向:无线通信、微机控制。
10.3969/j.issn.1673-2006.2014.12.038
G642;U491.5
A
1673-2006(2014)12-0125-03