扫的多音字组词?
2022-06-18
更新时间:2025-10-04 15:04:46作者:佚名
《单片机原理及应用》课程设计题 目 基于 STC89C52 单片机的交通灯控制系统设计学生姓名 沈邦振学 号学 院 信息与控制学院专 业 测控技术与仪器指导教师 孙伟二O一二 年六月五日基于 STC89C52 单片机的交通灯控制系统沈邦振项目概述随着我国经济的高速发展,私家车、公家车的增加,无疑会给我国道路交通系统带来沉重的压力,很多大城市都不同程度的受到交通堵塞问题的困扰。下面以 STC89C52单片机为核心,设计出以人性化、智能化为目的的交通信号灯控制系统。项目意义用 STC89C52单片机控制一个交通信号灯系统,晶振采用 12MHz。设 A 车道与 B 车道交叉组成十字路口, A 是主道, B 是支道。设计要求如下:1)用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。2)正常情况下, A、B 两车道轮流放行, A 车道放行 9s ,其中 3s 用于警告; B 车道放行 6s, 其中 3s 用于警告。3)在交通繁忙时,交通信号灯控制系统应有手控开关,可人为的改变信号灯的状态,以缓解交通拥挤状况。在 B 车道放行期间,若 A 车道有车而 B 车道无车,按下开关 K1 使 A 车道放行 5s;在 A 车道放行期间,若 B 车道有车而 A 车道无车,按下开关 K2 是 B 车道放行 5s。( 4)有紧急车辆通过时,按下 K3 使 A、 B 车道均为红灯,禁行 5s。系统设计交通控制系统主要控制 A、 B 两车道的交通,以 STC89C52单片机为核心芯片,通过控制三色 LED的亮灭来控制各车道的通行;另外通过 3 个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。根据要求,制定总体设计思想如下:1)正常情况下运行主程序,采用 0.5s 延时子程序的反复调用来实现各种定时时间。( 2)一车道有车,而另一车道无车时,采用外部中断 1 执行中断服务程序,并设置该中断为低优先级中断。3)有紧急车辆通过时,采用外部中断 0 执行中断服务程序,并设置该中断为高优先级中断,实现二级中断嵌套。3.1 框图设计基于 STC89C52单片机的交通信号灯控制系统由电源电路、单片机主控电路、按键控制电路和道路显示电路几部分组成。3.2 关键技术单片机最小系统工作原理及设计(晶振电路和复位电路)按键电路工作原理及设计驱动电路 74LS07的特性及使用(4)LED 的特性及使用(5)STC89C52单片机引脚单片机汇编语言及程序设计硬件设计用 12 只 LED模拟交通信号灯,以 STC89C52单片机的 P1 口控制这 12只发光二极管,由于单片机带负载能力有限,因此,在 P1 口与发光二极管之间用 74LS07 作驱动电路, P1 口输出 0 时,信号灯亮;输出 1 时,信号灯灭。在正常情况和交通繁忙时, A、B 两车道的 6 只信号灯的控制状态有 5 种形式,即 P1 口控制功能及相应控制码如表 1-2 所示。分别以按键K1、K2 模拟 A、B 道的车辆检测信号,开关 K1 按下时, A 车道放行;开关K2 按下时, B 车道放行;开关 K1 和 K2 的控制信号经异或取反后,产生中断请求信号( 0 有效),通过外部中断 1 向 CPU发出中断请求;因此产生外部中断 1 中断的条件应是: INT1=K1 ⊕K2。采用中断加查询扩展法,可以判断出要求放行的是 A 车道( K1)还是 B 车道( K2)。以按键 K0模拟紧急车辆通过开关,当 K0 为高电平时属正常情况,当K0 为低电平时,属紧急车道通过的情况,直接将 K0 信号接至 INT0(P3.2)脚即可实现外部中断 0 中断。交通信号灯与控制状态对应关系P1 口P1.P1.P1.P1.P1.P1.P1.P1.控制码76543210控制状态未未B道 B道 B道 A道 A道 A道用用绿黄红绿黄红A 道放行,B 道禁止F3H11110011A 道警告,B 道禁止F5H11110101A 道禁止,B 道放行DEH11011110A 道禁止,B 道警告EEH11101110A 道禁止,B 道禁止F6H11110110综上所述,可设计出基于 STC89C52单片机控制交通信号灯模拟信号灯控制系统的电路图如图所示。4.1 元器件清单基于 STC89C52单片机的交通信号控制系统元件清单如下表所示:元件名称型号数量个用途单片机STC89C521控制核心晶振12MHz1晶振电路电容30pF2晶振电路电解电容10μ F10V1复位电路电阻10KΩ1复位电路驱动器74LS071LED驱动发光二极管LED12黄、红、绿灯集成块74LS041按键电路集成块74LS861按键电路电阻4.7KΩ2按键电路按键4按键电路电阻300Ω12LED限流电源+5V0.5A1提供 +5V4.2 电路原理图4.3 电路仿真图软件设计主程序采用查询方式定时,由 R2寄存器确定调用 0.5s 延时子程序的次数,从而获取交通灯的各种时间。子程序采用定时器 1 方式 1 查询式定时,定时器定时 50ms,R3寄存器确定 50ms循环 10 次,从而获取 0.5s 的延时保护时间。有车车道放行的中断服务程序首先要保护现场,因需要用到延时子程序和 P1 口,故需要保护的寄存器有 R3、P1、TH1和 TL1,保护现场时还需要关中断,以防止高优先级中断(紧急车辆通过所产生的中断)出现导致程序混乱。开中断,由软件查询 P3.0 和 P3.1 口,判别哪一车道有车。待交通灯信号出现后,保持 5s 的延时,然后关中断,恢复现场,再开中断,返回主程序。紧急车辆出现时的中断服务程序也需保护现场,但无须关中断(因其为高优先级中断),然后执行相应的服务,待交通灯信号出现出现后延时5s,确保紧急车辆通过交叉路口,然后,恢复现场,返回主程序。5.1程序流程图5.2程序清单ORG 0000HLJMP MAIN;转向主程序ORG 0003HLJMP INTT0;转向紧急车辆中断服务程序ORG 0013HLJMP INTT1;转向有车车道中断服务程序ORG 0200HMAIN: MOV SP,#30HSETB PX0;置外部中断 0 为高优先级中断MOV TCON,#00HMOV TMOD,#10HMOV IE,#85HLOOP: MOV P1,#0F3HMOV R1,#18DIP1: ACALL DELAYDJNZ R1,DIP1MOV R1,#05WAN1: CPL P1.2;置外部中断 0、1 为电平触发;置定时器 1 为方式 1;开 CPU中断,开外中断 0、1 中断;A 道绿灯放行, B 道红灯禁止;置 0.5s 循环次数( 0.5x18=9s );调用 0.5s 延时子程序;9s 不到继续循环;置 A 绿灯闪烁循环次数;A 绿灯闪烁ACALL DELAYDJNZ R1,WAN1MOV P1,#0F5HMOV R1,#04H;闪烁次数未到,继续循环;A 黄灯警告, B 红灯禁止;置 0.5s 循环次数( 0.5x4=2s )YL1: ACALL DELAYDJNZ R1,YL1MOV P1,#0DEHMOV R1,#12;2s 未到继续循环;A 红灯, B绿灯;置 0.5s 循环次数(0.5x12=6s )DIP2: ACALL DELAYDJNZ R1,DIP2;6s未到继续循环MOV R1,#05HWAN2: CPL P1.5;B 绿灯闪烁ACALL DELAYDJNZ R1,WAN2MOV P1,#0EEH;A 红灯, B黄灯MOV R1,#04HYL2: ACALL DELAYDJNZ R1,YL2AJMP LOOP INTT0: PUSH P1 PUSH TH1 PUSH TL1 MOV P1,#0F6H MOV R2,#10;循环执行主程序;P1 口数据压栈保护;TH1压栈保护;TL1 压栈保护;A、B 道均为红灯;置 0.5s 循环初值(5s)DEY0: ACALL DELAYDJNZ R2,DEY0POP TL1;5s 未到继续循环;弹栈恢复现场POP TH1POP P1RETIINTT1: CLR EAPUSH P1;返回主程序;关中断;压栈保护现场PUSH TH1PUSH TL1SETB EAJB P3.0,BOPMOV P1,#0F3HSJMP DEL1BOP: JB P3.1,EXITMOV P