1、单片机 急救车优先通过交通灯设计单片机原理及应用课程设计 急救车优先的交通灯控制系统设计班级: 测控071 学号: *42 * * 完成日期:2010 年 6 月一、课程设计目的和基本要求.31、课程设计目的.32、课程设计基本要求.3二、题目描述及要求.31、题目要求.32、设计方案选择与论证.4三、LED灯简介.51、 LED 的结构及发光原理.52、 LED 光源的特点.53、单色光 LED 的种类及其发展历史.6四、芯片的选择与简介.61、核心芯片AT89C51单片机的说明.62、中央处理器(CPU).93、存储器.104、定时器/计数器.115、中断系统.116、内部总线.117 、
2、AT89C51单片机工作方式.12五、系统设计.131、系统方框图.132、工作原理.143、交通灯状态分析.14六、电路原理图.161、 单片机最小系统.162、交通灯电路图.173、总的电路图.184、救护车来时处理.19七、程序流程图.19八、程序源代码.21九、程序仿真.24十、课程设计总结.28十一、参考文献.29急救车优先的交通灯控制系统设计一、课程设计目的和基本要求:1、课程设计目的大学本科学生动手能力的培养和提高是大学本科教育的一个重要内容,单片机原理及应用是一门应用性较强的课程。如何让学生在学好基础知识的同时,迅速掌握应用技术,实验与课程设计环节起着非常重要的作用。本课程设计
3、的目的,是让学生通过课程设计,首先建立起单片机应用系统的概念,根据实际的系统设计要求,掌握初步的单片机系统设计方法,从硬件系统和软件系统设计两个方面得到实际的提高,为今后的毕业设计打下良好的基础。2、课程设计基本要求:1)在课程设计过程中,运用89S51单片机,根据设计要求绘制系统电路图、编制系统程序流程图、根据系统程序流程图编制汇编源程序(或C51程序),进行运行调试(运用仿真软件proteus或在单片机实验平台上)进行调试运行,最后提供课程设计报告。在此过程中,学生必须学会手册的使用及相应绘图软件的使用方法,使各方面的实际能力上得到一定的提高。2)课程设计应由学生本人独立完成完成,严禁抄袭
4、(对自己的设计不熟悉,读不懂设计中的关键功能部分,对设计的结构不清楚,对设计的功能不了解等),一经验收教师认定其抄袭行为,成绩即为不及格。3)认真编写课程设计报告,课程设计报告的书写格式见附录2二、题目描述及要求1、题目要求请设计一个交通灯控制电路,并且编写相应的软件,完成交通灯的管理任务。该控制任务应该完成下列功能:1) 控制LED灯,完成交通灯的管理任务;2) 允许急救车优先通过的要求。有急救车到达时,所有的交通信号灯为红灯,以便让急救车通过。假定急救车通过路口时间为20秒,急救车通过后交通灯恢复中断前状态;3) 按照分析、设计、调试和测试的软、硬件开发过程完成这个控制任务。4) 根据交通
5、灯控制变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过20秒钟转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过20秒钟转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1;5)以按键为中断申请,表示有急救车通过,所有的交通信号灯全红20秒钟。2、设计方案选择与论证:交通灯控制系统,可由多种电路来构成,我们这里提供三种方案供选择:方案一:由普通的数字电路集成芯片组成这种方案的特点是:硬件设计思路简单,但用元器件多,电路比较复杂,焊接调试容易出错,而且不利于智能控制
6、,调时电路复杂。方案二:用VHDL语言编程控制这种方案的特点是:硬件设计简单,电路结构清晰,电路比较复杂 ,VHDL语言编程控制硬件,可方便的进行仿真,调试。方案三:单片机控制采用单片机控制,可提高电路的可靠性与稳定性,硬件电路比较简单,主要用软件来控制,控制方式灵活多样,能满足不同情况的控制,可利用中断等方式通过程序来方便的实现调时。综合以上三种方案的特点,结合我们自身的知识结构,我们采用方案三,选择常用的51系列单片机构成。三、LED灯简介1、 LED 的结构及发光原理50 年前人们已经了解半导体材料可产生光线的基本知识 ,第一个商用二极管产生于 1960 年。 发光二极管的核心部分是由
7、p 型半导体和 n 型半导体组成的晶片,在 p 型半导体和 n 型半导体之间有一个过渡层,称为图1发光二极管的构造图p-n 结。在某些半导体材料的 PN 结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。 PN 结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称 LED 。当它处于正向工作状态时(即两端加上正向电压),电流从 LED 阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。 2、 LED 光源的特点1). 电压: LED 使用低压电源,供电电压在 6-24
8、V 之间,根据产品不同而异,所以它是一个比使用高压电源更安全的电源,特别适用于公共场所。 2). 效能:消耗能量较同光效的白炽灯减少 80% 3). 适用性:很小,每个单元 LED 小片是 3-5mm 的正方形,所以可以制备成各种形状的器件,并且适合于易 变的环境 4). 稳定性: 10 万小时,光衰为初始的 50% 5). 响应时间:其白炽灯的响应时间为毫秒级, LED 灯的响应时间为纳秒级 6). 对环境污染:无有害金属汞 7). 颜色:改变电流可以变色,发光二极管方便地通过化学修饰方法,调整材料的能带结构和带隙,实现红黄 绿兰橙多色发光。如小电流时为红色的 LED ,随着电流的增加,可以
9、依次变为橙色,黄色,最后为绿色 8). 价格: LED 的价格比较昂贵,较之 于白炽灯,几只 白炽灯 的价格就可以与一只LED灯的价格相当,而通 常每组信号灯需由上 300 500 只二极管构成。 图2 LED灯3、单色光 LED 的种类及其发展历史最早应用半导体 P-N 结发光原理制成的 LED 光源问世于 20 世纪 60 年代初。当时所用的材料是 GaAsP ,发红光( p =650nm ),在驱动电流为 20 毫安时,光通量只有千分之几个流明,相应的发光效率约 0.1 流明 / 瓦。70 年代中期,引入元素 In 和 N ,使 LED 产生绿光( p =555nm ),黄光( p =5
10、90nm )和橙光( p =610nm ),光效也提高到 1 流明 / 瓦。到了 80 年代初,出现了 GaAlAs 的 LED 光源,使得红色 LED 的光效达到 10 流明 / 瓦。90 年代初,发红光、黄光的 GaAlInP 和发绿、蓝光的 GaInN 两种新材料的开发成功,使 LED 的光效得到大幅度的提高。在 2000 年,前者做成的 LED 在红、橙区( p =615nm )的光效达到 100 流明 / 瓦,而后者制成的 LED 在绿色区域( p =530nm )的光效可以达到 50 流明 / 瓦四、芯片的选择与简介1、核心芯片AT89C51单片机的说明 (1)主要特性: 与MCS
11、-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器 5个中断源 可编程串行通道低功耗的闲置和掉电模式 片内振荡器和时钟电路(2).管脚说明: VCC:供电电压。 GND:接地。 AT89C51 图3 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0
12、输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1 后,被内部 上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2
13、口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT
14、1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 图4RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个A
15、LE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于
16、施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。(3)振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(4)芯片擦除: 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储
17、字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2、中央处理器(CPU)CPU是单片机内部的核心部件,是一个8位二进制数的中央处理单元,主要由运算器、控制器和寄存器阵列构成。2.1运算器运算器用来完成算术运算和逻辑运算功能,它是AT89C51内部处理各种信息的主要部件。运算器主要由算术逻辑单元(ALU)、累加器(ACC)、暂存寄存器(TMP
18、1、TMP2)和状态寄存器(PSW)组成。(1)算术逻辑单元(ALU):AT89C51中的ALU由加法器和一个布尔处理器组成。(2)累加器(ACC):用来存放参与算术运算和逻辑运算的一个操作数或运算结果。(3)暂存寄存器(TMP1、TMP2):用来存放参与算术运算和逻辑运算的另一个操作数,它对用户不开放。(4)状态寄存器(PSW):PSW是一个8位标志寄存器,用来存放ALU操作结果的有关状态。2.2控制器控制器是单片机内部按一定时序协调工作的控制核心,是分析和执行指令的部件。控制器主要由程序计数器PC、指令寄存器IR、指令译码器ID和定时控制电路等构成。程序计数器PC是专门用于存放现行指令的1
19、6位地址的。CPU就是根据PC中的地址到ROM中去读取程序指令码和数据,并送给指令寄存器IR进行分析。指令寄存器IR用于存放CPU根据PC地址从ROM中读出的指令操作码。指令译码器ID是用于分析指令操作的部件,指令操作码经译码后产生相应于某一特定操作的信号。定时控制逻辑中定时部件用来产生脉冲序列和多种节拍脉冲。2.3寄存器寄存器阵列是单片机内部的临时存放单元或固定用途单元,包括通用寄存器组和专用寄存器组。通用寄存器组用来存放过渡性的数据和地址,提高CPU的运行速度。专用寄存器组主要用来指示当前要执行指令的内存地址,存放特定的操作数,指示指令运行的状态。3、存储器AT89C51单片机内部有256
20、个字节的RAM数据存储器和4Kb的闪存程序存储器(Flash),当不够使用时,可分别扩展为64Kb外部存储器和64Kb外部程序存储器,它们的逻辑单元是分开的,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈弗型结构的单片机。程序存储器是可读不可写的,用于存放编好的程序和表格常数。数据存储器是即可读也可写的,用于存放运算的中间结果,进行数据暂存和数据缓冲等。AT89C51单片机对外部电路进行控制或交换信息都是通过I/O端口进行的。单片机的I/O端口分为并行I/O端口和串行I/O端口,它们的结构和作用并不相同。(1)并行I/O端口AT89C51有四个8位并行I/O端口,分别命名为P0口、P1口
21、、P2口和P3口,它们都是8位准双向口,每次可以并行输入或输出8位二进制信息。(2)串行I/O端口 AT89C51有一个全双工的可编程串行I/O端口,它利用了P3口的第二功能,即将P3.1引脚作为串行数据的发送线TXD,将P3.0引脚作为串行数据的接收线RXD。4、定时器/计数器AT89C51内部有两个16位可编程定时器/计数器,简称为定时器0(T0)和定时器1(T1),T0和T1分别由两个8位寄存器构成,其中T0由THO(高8位)和TL0(低8位)构成,T1由TH1(高8位)和TL1()低8位构成。TH0、TL0、TH1、TL1都是SFR中的特殊功能寄存器。T0和T1在TCON和TMOD的控
22、制下可工作在定时器模式下或计数器模式下,每种模式下又有不同的工作方式。当定时或计数益处时可申请中断。5、中断系统单片机中的中断系统指CPU暂停在正在执行的程序转而为中断源服务(执行中断服务程序),在执行完终端服务程序后再回到原程序继续执行。中断系统是指能够处理上述中断过程所需要的部分电路。AT89C51的中断系统由中断源、中断允许控制器IE、中断优先控制器IP、定时器控制器TCON(中断标志寄存器)等构成,IE、IP、TCON均为SFR特殊功能寄存器。6、内部总线 总线是用于传送信息的公共途径,总线可分为数据总线、地址总线和控制总线。单片机内的CPU、存储器、I、O接口等单元部件都通过总线连接
23、到一起。采用总线结构可以减少信息传输线的根据,提高系统可靠性,增强系统灵活性。 AT89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的。7 、AT89C51单片机工作方式复位方式单片机在开机时或在工作中因干扰而使程序失控或工作中程序处于某种死循环状态等情况下都需要复位。复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,从这个状态开始工作。(1)复位原理 AT89C51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位。复位后,PC程序计数器的内容为0000H。片内
24、RAM中内容不变。(2)常用复位电路一般有上电复位、手动开关复位和自动复位电路三种,如图所示。图5单片机复位电路(3)AT89C51时钟电路振荡器于时钟电路单片机内各部件之间有条不紊的协调工作,其控制信号是在一种基本节拍的指挥下按一定时间顺序发出的,这些控制信号在时间上的相互关系就是CPU时序。而产生这种基本节拍的电路就是振荡器和时钟电路。AT89C51单片机内部有一个用于构成振荡器的单级反向放大器,如图所示:图6 AT89C51内部振荡电路图引脚XTAL1为反相器输入端,XTAL2为反相器输出端。当在放大器两个引脚上外接一个晶体和电容组成的并联谐振电路作为反馈元件时,便构成一个自激振荡器,如
25、下图所示:图7 内部振荡器等效电路图五、系统设计1、系统方框图 图82、工作原理 交通灯的亮、灭由P0口引脚P0.0、P0.4、P0.2、P0.3、P0.4、P0.5的高、低电平控制,高电平时亮,低电平时灭。即东西红灯亮 P0.0=1 东西红灯灭 P0.0=0东西绿灯亮 P0.2=1 东西绿灯灭 P0.2=0东西黄灯亮 P0.1=1 东西黄灯灭 P0.1=0南北红灯亮 P0.3 =1 南北红灯灭 P0.3=0南北绿灯亮 P3.5 =1 南北绿灯灭 P3.5=0南北黄灯亮 P3.4 =1 南北黄灯亮 P3.4=03、交通灯状态分析 十字路口交通灯如下图所示,将12个交通灯进行编号 图9这12个交
26、通灯共有四个状态:状态1(S1):东西红灯(4、10)亮,南北绿灯(3、9)亮。状态2(S2):南北绿灯(3、9)灭,黄灯(2、8)亮,东西仍为红灯(4、10)亮。状态3(S3):南北红灯(1、7)亮,东西绿灯(6、12)亮。状态4(S4):东西绿灯(6、12)灭,黄灯(5、11)亮,南北仍为红灯(1、7)亮。 具体的延时程序:mov tmod,#01h ;定时器T0工作方式mov th0,#03ch mov tl0,#0b0h ;延时mssetb tr0 ;启动T0工作loop1:jbc tf0,loop2;100ms到,即TF0=1,转到loop2,并清TF0sjmp loop1 ;未到ms,再检查TF0loop2: 以上程序延时100毫秒,用软件循环的方法,循环几次就是几百毫秒,如下loop0: mov tmod,#01h ;定时器T0工作方式mov th0,#03ch mov tl0,#0b0h ;延时mssetb tr0 ;启动T0工作loop1:jbc tf0,loop2;100ms到,即TF0=1,转
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1