江苏师范大学 电气工程及自动化 实习报告姓 名:班 级:学 号:实习科目:单片机实训指引教师:实习时间: 智能交通信号灯摘 要本设计是在纯熟掌握单片机及其仿真系统使用措施基本上,综合应用单片机原理、微机原理等课程方面的知识,设计一种采用STC89C52单片机控制的交通灯控制电路该设计结合实际状况给出了一种简朴低成本都市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行具体解说分析交通在人们的平常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致交通信号灯的浮现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果近年来随着科技的飞速发展,单片机的应用正在不断进一步,同步带动老式控制检测技术日益更新在实时检测和自动控制的单片机应用系统中,单片机往往作为一种核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件构造软硬件结合,加以完善根据给出的规定设计交通灯东西、南北两干道交于一种十字路口各干道有一组红、黄、绿三色的批示灯指挥车辆和行人安全通行。
红灯亮严禁通行绿灯亮容许通行黄灯亮提示人们注意红、绿灯的状态即将切换且黄灯亮的时间为东西、南北两干道的公共停车时间 核心词:电子线路、STC89C52、交通灯目录第一章 引言 11.概述 12.设计目的 43.设计规定 44.实验原理 4第二章 芯片与元件 51.MCU 52.74HC573 63.led数码管 6第三章 外围电路 61.单片机最小系统 62.数码管显示电路 73.12位流水灯 8第四章 整体设计 81.交通控制系统总体设计 82.单片机交通控制系统的基本构成及原理 83.系统软件程序的设计 9 第五章 总结 10参照文献 11附录A 智能交通灯电路原理图 12附录B 智能交通灯汇编源程序 13第一章 引言1.概述 在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红黄绿信号灯其中红灯亮,表达该条道路严禁;黄灯亮表达该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮表达该条道路容许通行交通灯控制电路自动控制十字路口红黄绿交通灯的状态转换,指挥多种车辆和行人安全通行,实现十字路口交通管理的自动化。
2.设计目的2.1 通过本次课程设计进一步熟悉和掌握单片机的构造及工作原理,巩固和加深“单片机原理与应用”课程的基本知识,掌握电子设计知识在实际中的简朴应用2.2 综合运用“单片机原理与应用”课程和先修课程的理论及生产实际知识去分析和解决电子设计问题,进行电子设计的训练2.3 学习电子设计的一般措施,掌握STC89C52芯片以及简朴电子设计过程和运营方式,培养对的的设计思想和分析问题、解决问题的能力,特别是总体设计能力2.4 通过计算和绘制原理图、布线图和流程图,学会运用原则、规范、手册、图册和查阅有关技术资料等,培养电子设计的基本技能2.5 通过完毕一种涉及电路设计和程序开发的完整过程,理解开发单片机应用系统全过程,为此后从事的工作打基本3.设计规定3.1 运用单片机的定期器定期,实现道路的红绿灯交替点亮和熄灭3.2 以STC89C52单片机为核心,设计一种十字路口交通灯控制系统用单片机控制LED灯模拟交通信号灯显示假定东西、南北方向方向通行(绿灯)时间为30秒,缓冲(黄灯)时间5秒,停止(红灯)时间30秒3.3 南北方向、东西方向车道除了有红、黄、绿灯批示外,每一种灯亮的时间都用显示屏进行显示(采用倒计时的措施)。
4.实验原理4.1 基本原理 主体电路:交通灯自动控制模块这部分电路重要由80C51单片机的I/O端口、定期计数器等构成 本设计先是从一般三色灯的批示开始进行设计,用P1口作为输出程序的初始化是东西南北方向的红灯全亮然后南北方向红灯亮,东西方向绿灯亮,60秒后东西方向黄灯闪亮5秒后南北方向绿灯亮,东西方向红灯亮反复执行倒计时用到定期器T0,用P2口作为LED的显示二位一体的LED反复执行60秒的倒计时作为突发事件的解决,本设计重要用到外部中断EX0用一模拟开关作为中断信号实际中可以接其他可以产生中断信号的信号源 第二章 芯片与元件1.MCU:STC89C52是一种低功耗、高性能CMOS 8位微控制器,具有8K 系统可编程Flash存储器高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容片上Flash容许程序存储器在系统可编程,亦适于常规编程器在单芯片上,拥有机灵的8 位CPU 和在系统可编程Flash,使得STC89C52在众多嵌入式控制应用系统中得到广泛应用重要性能:①与MCS-51单片机产品兼容;②8K字节在系统可编程Flash存储器;③1000次擦写周期;④全静态操作:0Hz-33MHz;⑤三级加密程序存储器;⑥32个可编程I/O口线;⑦三个16位定期器/计数器;⑧8个中断源;⑨全双工UART串行通道;⑩低功耗空闲和掉电模式;⑪掉电后中断可唤醒;⑫看门狗定期器;⑬双数据指针;⑭掉电标记符。
2.74HC573:74HC573涉及八进制3态非反转透明锁存器,是一种高性能硅门CMOS器件当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)当锁存使能变低时,符合建立时间和保持时间的数据会被锁存重要功能:三态总线驱动输出、置数全并行存取、缓冲控制输入、使能输入有改善抗扰度的滞后作用3.led数码管:led数码管(LED Segment Displays)由多种发光二极管封装在一起构成“8”字型的器件,引线已在内部连接完毕,只需引出它们的各个笔划,公共电极数码管事实上是由七个发光管构成8字形构成的,加上小数点就是8个这些段分别由字母a,b,c,d,e,f,g,dp来表达 第三章 电路设计1.单片机最小系统:STC89C52单片机最小系统重要由电源、复位、振荡电路三个部分构成最小系统原理图如图3.1所示 图3.1 51单片机最小系统版2. 数码管显示电路:由8位共阴LED数码管即驱动芯片74HC573构成,单片机控制两片锁存器是使能端,通过不断打开关闭使能端达到单片机一种8位I/O口控制8位数码管显示的效果。
数码管显示电路如图3.2所示图3.2 数码管显示电路3.12位LED灯:由12个LED小灯排列起来,加上限流电阻就构成了12位交通灯12位流水灯的阴极接在单片机的I/O端口,以灌电流输进单片机从而驱动LED交通LED灯的原理图如图3.3所示图3.3 12位LED灯 第四章 整体设计1.交通控制系统总体设计 设在十字路口,分为东西向和南北向,在任一时刻只有一种方向通行,另一方向禁行共有4种状态,这4种状态如下,周而复始,循环变化4个状态归纳如下:⑴.南北方向红灯亮,倒计时30s同步东西方向绿灯亮,倒计时30s,此状态下,南北方向严禁通行,东西方向直行⑵.南北方向黄灯亮,倒计时5s,同步东西方向红灯亮,倒计时30s,此状态下,除了已经正常在通行的车辆外其她车辆严禁通行⑶.南北方向绿灯亮,倒计时30s,同步东西方向红灯亮,倒计时30s,此状态下,南北方向车辆可以直行⑷.南北绿灯亮,倒计时30s,东西黄灯亮,倒计时5s2.单片机交通控制系统的基本构成及原理单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,固然,接入LED数码管就可以显示倒计时以提示行使者,更具人性化。
本系统在此基本上,加入了紧急状况解决与时间调节功能据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设立模块产生输入,信号灯状态模块,LED倒计时模块模块接受输出系统的总体框图如图4.1所示单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同步将时间数据倒计时输入到LED数码管上实时显示在此过程中随时调用急停按键和时间调节中断 图4.1 交通灯系统框图3.系统软件程序的设计所有控制程序事实上分为若干模块:键盘设立解决程序,状态灯控制程序,LED显示程序紧停程序,中断服务子程序等整个软件程序方面重要分两大部分:主程序部分和中断解决程序流程图如图4.2所示具体程序见附录2 图4.2 交通灯软件程序流程图第五章 总结 19通过这三周的单片机实训,我对51单片机有了很进一步的理解,从汇编程序一行行的敲写与硬件电路搭建,最后将她们看做一种整体一种系统,从系统的角度来设计单片机的整体框架这次智能交通灯的整体系统设计,起到了理论结合实践的学习效果,也感谢学校学院为我们搭建的单片机实训室,也在此感谢张兴奎教师在这次实训中对我的指引和协助!参照文献[1] 张鑫.单片机原理及应用(第2版).北京:电子工业出版社..10[2] 刘海宽.包建华.张兴奎.南京:东南大学出版社..1[3] 李广弟等.单片机基本 [M].北京:北京航空航天大学出版社, [4] 张靖武等.单片机系统PROTEUS设计与仿真[M].北京:电子工业出版社, .附录A智能交通灯电路原理图: 附录B智能交通灯汇编源程序:/*********************************************************///功能:交通灯//阐明:使用74HC573驱动共阴数码管;红绿灯各30s,黄灯5s//作者:杨勇/*********************************************************/ DEYADDR EQU 40H;延时计数个数定义 DULA bit P2.6;段选引脚定义 WELA bit P2.7;位选引脚定义 SMGDU EQU 51H;数码管段值 TIMCTR EQU 52H;定期计数值 LIGHTCTR EQU 53H;交通灯计时状态计数值 SN_NUM EQU 54H;南北倒计时显示值 EW_NUM EQU 55H;东西倒计时显示值 ORG 0000H LJMP main ORG 000BH;定期器0的中断入口地址 LJMP T0_SER;跳到定期器0的中断服务函数 ORG 001BH;定期器1的中断入口地址 LJMP T1_SER;跳到定期器1的中断服务函数 ORG 0030Hmain: MOV SP,#60H;初始化堆栈指针 MOV TIMCTR,#00H; //如下几行为数据初始化 MOV LIGHTCTR,#00H; // MOV SMGDU,#00H; // MOV SN_NUM,#30; // MOV EW_NUM,#30; // CLR A; // LCALL T01_INIT;定期器0初始化BACK: MOV A,TIMCTR;读出目前计数值 CJNE A,#20,BACK;若计数值达到20,则计时到1s,往下执行 ;否则,继续等待,懂得加到1s MOV TIMCTR,#0;清定期计数值,重新计数 MOV A,LIGHTCTR;//读出交通灯计时状态计数值 CJNE A,#0,Q1;如果相等,继续执行,否则,判断下一种 MOV P1,#0FEH;南北红灯亮 MOV P3,#0FBH;东西绿灯亮 MOV SN_NUM,#30;南北倒计时显示值给30s MOV EW_NUM,#30;东西倒计时显示值给30s LJMP Q5;LIGHTCTR继续加1Q1: CJNE A,#30,Q2;如果相等,继续执行,否则,判断下一种 MOV P1,#0FDH;南北黄灯亮 MOV P3,#0FEH;东西红灯亮 MOV SN_NUM,#5;南北倒计时显示值给30s MOV EW_NUM,#30;东西倒计时显示值给30s LJMP Q5;LIGHTCTR继续加1Q2: CJNE A,#35,Q3;如果相等,继续执行,否则,判断下一种 MOV P1,#0FBH;南北绿灯亮 MOV P3,#0FEH;东西红灯亮 MOV SN_NUM,#30;南北倒计时显示值给30s LJMP Q5;LIGHTCTR继续加1Q3: CJNE A,#60,Q4;如果相等,继续执行,否则,判断下一种 MOV P1,#0FBH;南北绿灯亮 MOV P3,#0FDH;东西黄灯亮 MOV EW_NUM,#5;东西倒计时显示值给5s LJMP Q5;LIGHTCTR继续加1Q4: CJNE A,#65,Q5;如果相等,继续执行,否则,判断下一种 MOV LIGHTCTR,#0;LIGHTCTR重新计数 LJMP BACK;Q5: MOV A,SN_NUM;//南北灯倒计时,即SN_NUM每秒减1 DEC A; // MOV SN_NUM,A;// MOV A,EW_NUM;//东西灯倒计时,即EW_NUM每秒减1 DEC A; // MOV EW_NUM,A;// MOV A,LIGHTCTR;//交通灯计时状态计数值加1 INC A; // MOV LIGHTCTR,A;// LJMP BACK; SHOW_SN: MOV A,SN_NUM;读取南北灯倒计时 MOV B,#10;十位放A中,各位放B中 DIV AB;高位在A中,低位在B中 //南北灯倒计时的高位显示(计数值0~99s) MOV DPTR,#TABLE; MOVC A,@A+DPTR;取出数码管的编码 MOV P0,A;数字送P0,数码管显示 SETB DULA;开段选送数 CLR DULA;关段选 MOV P0,#0FDH;南北灯倒计时的高位显示 SETB WELA;开位选送数 CLR WELA;关位选 MOV DEYADDR,#2;延时xms,变化该数可变化数码管扫描的速度 LCALL deyxms;延时一会,动态显示 //南北灯倒计时的低位显示 MOV DPTR,#TABLE; MOV A,B;十位放A中,各位放B中 MOVC A,@A+DPTR;取出数码管的编码 MOV P0,A;数字送P0,数码管显示 SETB DULA;开段选送数 CLR DULA;关段选 MOV P0,#0FEH;南北灯倒计时的低位显示 SETB WELA;开位选送数 CLR WELA;关位选 MOV DEYADDR,#2;延时xms,变化该数可变化数码管扫描的速度 LCALL deyxms;延时一会,动态显示 RET SHOW_EW: MOV A,EW_NUM;读取东西灯倒计时 MOV B,#10;十位放A中,各位放B中 DIV AB;高位在A中,低位在B中 //东西灯倒计时的高位显示(计数值0~99s) MOV DPTR,#TABLE; MOVC A,@A+DPTR;取出数码管的编码 MOV P0,A;数字送P0,数码管显示 SETB DULA;开段选送数 CLR DULA;关段选 MOV P0,#0F7H;东西灯倒计时的高位显示 SETB WELA;开位选送数 CLR WELA;关位选 MOV DEYADDR,#1;延时xms,变化该数可变化数码管扫描的速度 LCALL deyxms;延时一会,动态显示 //南北灯倒计时的低位显示 MOV DPTR,#TABLE; MOV A,B;十位放A中,各位放B中 MOVC A,@A+DPTR;取出数码管的编码 MOV P0,A;数字送P0,数码管显示 SETB DULA;开段选送数 CLR DULA;关段选 MOV P0,#0FBH;东西灯倒计时的低位显示 SETB WELA;开位选送数 CLR WELA;关位选 MOV DEYADDR,#1;延时xms,变化该数可变化数码管扫描的速度 LCALL deyxms;延时一会,动态显示 RETT01_INIT: MOV TMOD,#11H;方式1,16位定期器 MOV TH0,#3CH;T0 65535-50000=3CAFH,即50ms触发中断 MOV TL0,#0AFH; MOV TH1,#0D8H;T1 65535-10000=D8EFH,即10ms触发中断 MOV TL1,#0EFH; SETB EA;开总中断 SETB ET0;开定期器0中断 SETB ET1;开定期器1中断 SETB TR0;启动定期器0 SETB TR1;启动定期器1 RETT0_SER: PUSH ACC;//保存数据 PUSH PSW;// MOV TH0,#3CH;重装初值 MOV TL0,#0AFH; MOV A,TIMCTR;//TIMCTR里的计数值加1 INC A; // MOV TIMCTR,A;// POP PSW;//弹出数据 POP ACC;// RETI //每10ms刷新一次数码管显示T1_SER: CLR TR1;关定期器1,避免延时函数执行时跳入中断导致干扰 PUSH ACC;//保存数据 PUSH PSW;// MOV TH1,#0D8H;重装初值 MOV TL1,#0EFH; LCALL SHOW_SN;//南北灯倒计时数码管显示 LCALL SHOW_EW;//东西灯倒计时数码管显示 POP PSW;//弹出数据 POP ACC;// SETB TR1;重新打开定期器1中断 RETI //延时函数deyxms: MOV 42h,#4 ;40h,41h,42h用于延时 delay : MOV 41h,#191 NOP NOP DJNZ 41h,$ DJNZ 42h,delay DJNZ DEYADDR,deyxms ;DEYADDR里存延时参数x 延时1*x ms RET TABLE: DB 3fh,06h,5bh,4fh,66h,6dh,7dH,07h//数码管显示的编码 DB 7fh,6fh,77h,7ch,39h,5eh,79h,71h END实习(设计)成绩评估表班级 12电51 姓名 杨勇 学号 12285027 1、实习(设计)名称: 单片机实训 2、实习(设计)题目: 智能交通灯的设计 3、实习(设计)时间:自 年12 月15 日 至 年 01 月 04 日4、实习(设计)地点:12#405A 5、重要内容简述: (1)车辆通行繁忙的十字交叉路口,设计一交通灯控制器,设计南北方向通行时间为30秒,5秒黄灯,东西方向通行时间30秒,5秒黄灯。
2)南北、东西方向各用三个(红、黄、绿)LED表达,并用数码管显示南北、东西方向的剩余时间 6、指引教师评语: 7、指引小组复评意见: 8、成绩: 指引教师签名: 年 月 日 指引小组组长签名: 年 月 日 教研室主任签名: 年 月 日。