《单片机课程设计-有急救车的交通信号灯.doc》由会员分享,可在线阅读,更多相关《单片机课程设计-有急救车的交通信号灯.doc(19页珍藏版)》请在金锄头文库上搜索。
1、目 录0.前言21 课程设计的目的和要求31.1 课程设计的目的31.2 课程设计的基本要求32 总体设计42.1 基本工作原理42.2 硬件总体设计42.3 软件总体设计52.3.1 存储单元的分配、标志位的定义52.3.2主程序框图及清单63 硬件设计104 软件设计125 结束语186 参考文献200.前言随着计算机技术的高速发展,作为微型计算机的一个重要分支,单片机自20世纪70年代问世以来在工业控制,机电一体化,家电等领域的应用越来越广泛,正朝着高性能和多品种方向发展,单片机的作用越来越大。单片机应用在交通信号控制中,作为主要的控制系统,需要把单片机的硬件结构和软件结构有机的集合起来
2、,设计硬件电路,编制程序以及最后进行调试,验证设计内容。 正是由于单片机种种的优点,应用到十字路口上,使得交通信号能有条不紊的工作,疏导交通车辆,很大程度的提高了交通安全。本设计中,采用80C51单片机,红、绿、黄LED灯及数码显示管,进行十字路口交通信号灯的模拟设计以及当有急救车通过时,信号灯东西南北方向显示为红灯,持续时间为10S。1 课程设计的目的和要求1.1 课程设计的目的(1)掌握用定时器延时或软件延时进行定时控制的方法。(2)掌握外部中断技术的基本使用方法。(3)掌握中断处理程序的编程方法1.2 课程设计的基本要求(1)正常情况下东西与南北两个方向轮流点亮红、绿灯信号,每次持续时间
3、30S,中间有2S的黄灯过度。(2)控制六个发光二极管亮灭,模拟交通灯管理。(3)当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。2 总体设计2.1 基本工作原理首先必须了解交通路灯的亮灭规律。本题目需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时30S后,东西路口绿灯灭,黄灯
4、开始闪烁2s。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时30S后,南北路口的绿灯灭,黄灯开始闪烁2s。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。2.2 硬件总体设计 主要用到的硬件:P2口、P3口、LED发光二级管、电容、电阻、电感。 P2口作为输出口,与LED发光二极管相连,东西路上的红、绿、黄灯分别于P2.0、P2.1、P2.2相连,南北路上的红、绿、黄灯分别于P2.3、P2.4、P2.5相连。P3.2控制外部中断0。2.3 软件总体设计2.3.
5、1 存储单元的分配、标志位的定义用外部中断0进行中断。IT0为外部中断0的触发方式控制位,将IT0设置为1,选择外部中断为边沿触发方式。IE0为外部中断0的中断请求标志位,在边沿触发方式中,IE0由1变为0时,向CPU请求中断。中断允许寄存器IE的字节地址为A8H,定义如图2.1所示。IE(A8H) D7 D6 D5 D4 D3 D2 D1 D0EA ET2 ESET1EX1ET0EX0 图2.1 中断允许寄存器IEEA中断允许控制位。ET2定时/计数器T2的溢出中断位,只用于52子系列,51子系列无此位。ES串行口中断允许位。ET1定时/计数器T1的溢出中断位。EX1外部中断1的中断允许位。
6、ET0定时/计数器T1的溢出中断位。EX0外部中断0的中断允许位。中断优先级寄存器IP的字节地址为B8H,各位定义如图2.2所示。 IP(B8H) D7 D6 D5 D4 D3 D2 D1 D0 PT2 PSET1PX1PT0PX0 图2.2 中断优先级寄存器IPPT2定时/计数器T2的中断优先级控制位,只用于52子系列。PS串行口的中断优先级控制位。PT1定时/计数器T1的中断优先级控制位。PX1外部中断1的中断优先级控制位。PT0定时/计数器T1的中断优先级控制位。PX0外部中断0的中断优先级控制位。2.3.2主程序框图及清单主程序框图如图2.3所示。 图2.3 主程序框图主程序:STAR
7、T: SETB EA ;外部中断0初始化 SETB EX0 SETB IT0 ;外部中断0置位 MOV P2, #09H ;东西、南北路口红灯亮 ACALL DEALY ;启用延时0.5秒 ACALL DEALY ACALL DEALY ACALL DEALY ACALL DEALY ACALL DEALY ACALL DEALY ACALL DEALY LOOP: MOV P2, #0AH ;东西路口绿灯亮,南北路口黄灯 ACALL DEL10s ACALL DEL10s ACALL DEL10s MOV P2, #08H ;东西路口绿灯灭,南北路口黄灯亮 ACALL DEALY ;调用延时
8、0.5s的子程序 MOV P2, #0CH ;东西路口黄灯亮,南北路口红灯亮 ACALL DEALY MOV P2, #08H ACALL DEALY MOV P2, #0CH ACALL DEALY MOV P2, #11H;东西路口红灯亮,南北路口绿灯亮30秒 ACALL DEL10s ACALL DEL10s ACALL DEL10s MOV P2, #01H ;东西路口红灯亮,南北路口绿灯灭 ACALL DEALY MOV P2, #21H ;东西路口红灯亮,南北路口黄灯亮 ACALL DEALY MOV P2, #01H ACALL DEALY MOV P2, #21H ACALL
9、DEALY SJMP LOOP3 硬件设计80C51引脚图如图3.1所示。 图3.1单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。(1)电源:a. VCC - 芯片电源,接+5V;b. VSS - 接地端;(2) 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。(3) 控制线:控制线共有4根, a. ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 b. PSEN:外ROM读选通信号。c. RST/VPD:复位/备用电源。 RS
10、T(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。d. EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。(4) I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。4 软件设计 本系统的主要子程序:延时10s的子程序:DEL10s: MOV R5,#100DEL1 : MOV R6, #200DEL2 : MOV R7, #126DEL3 : D
11、JNZ R7, DEL3 DJNZ R6, DEL2 DJNZ R5, DEL1 RET 延时0.5s的子程序:DEALY: MOV R3, #05H ;0.5秒延时子程序DE1 : MOV R4, #0FFHDE2 : DJNZ R4, DE2 DJNZ R3 ,DE1 RET 中断服务程序的框图如图4.1所示 图4.1 中断程序如下:INTEX0:PUSH PSW ;保护现场 PUSH ACC CLR EX0 MOV P2, #09H ACALL DEL10S ;调用延时10s的子程序 SETB EX0 RETI END 软件仿真结果及分析1. 程序:2. 仿真结果如图所示 图4.2图4.
12、35 结束语通过此次单片机的课程设计使我们对单片机有了更进一步的了解,比如在编程序时知道了设置中断的优先级,对外部中断的低电平和边沿触更加的熟悉,对中断的入口地址也熟悉了不少,同时在使用循环方面得到了提高,对单片机的硬件方面也有了一些了解,如晶振电路、复位电路、共阴数码管、共阳led灯等等;另外在仿真方面也熟悉了不少,以前都没仿真过,虽然这次的设计不一定是最好的,但我们会继续努力学习的。另外,很希望多做一些有关单片机的课程设计,从设计中增加自己的知识和能力。通过这次的实训,对单片机的I/O口的使用的条件有更深的理解,对单片机的各个管脚功能的理解也加深了,以及在常用编程设计思路技巧(特别是汇编语
13、言)的掌握方面都能向前迈了一大步。这两周的实习真的有点郁闷,程序里面的好多内容不懂,自我感觉是单片机我们所学的内容还不足以编出这两个程序,但是只好硬着头皮去看去理解。但在学习过程中也充满了乐趣,当看懂了程序的一些语句,画出了要求的设计图,那我喜悦那种成就感油然而生。 这次实习让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的