目录第一章 前言…………………………………………………………………………3第二章 单片机概述………………………………………………………………1单片机的定义……………………………………………………………………2单片机的发展方向…………………………………………………………3 单片机的应用……………………………………………………………………4 MCS-51简介………………………………………………………………………6第三章 单片机交通灯控制……………………………………………………………1 硬件电路……………………………………………………………………………1芯片选用……………………………………………………………………………1.2硬件电路图……………………………………………………73.1.3系统工作原理………………………………………………………………………2软件设计………………………………………………………………2.1 每秒钟的设定………………………………………………………2.2 计数器初值计算………………………………………………………2.3 综合计算………………………………………………………2.4 设定一秒的方法………………………………………………………2.5 程序设计………………………………………………………3 软件延时………………………………………………………4 时间及信号灯显示………………………………………………………5 程序………………………………………………………13第四章 总结……………………………………………………………………………12参考文献………………………………………………………………………………13致谢………………………………………………………………………………14第一章 前言城市交通是保持城市活力最主要的基础设施,是城市生活的动脉,制约着城市经济的发展。展望21世纪的城市交通事业,给我们提出了更高要求。发展多层次、立体化、智能化的交通体系,将是城市建设发展中普遍追求的目标。而发展大、中、低客运量相互匹配的多种形式相结合的客运交通工具,将是实现上述远景目标的一项重大技术决策措施。自改革开放以来,我国的城市规模和经济建设都有了飞速的发展7城市化进程在逐步加快,城市人口在急剧增加,大量流动人口涌进城市,人员出行和物资交流频繁,使城市交通面临着严峻的局势。当前,全国大中城市普遍存在着道路拥挤、车辆堵塞、交通秩序混乱的现象。如何解决城市交通问题已成为全社会关注的焦点和大众的迫切呼声。当今,红绿灯安装在各个交通要道上已经成为了缓解交通问题最常见、最根本、最有效的方法。交通灯的出现使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显的效果。单片机是一种集成的微型计算机,与微处理器相比,它可单独地完成现代工业控制所要求的智能化控制功能,它有唯一的、专门为嵌入式应用而设计的体系结构和指令系统。红绿灯的控制有PLC控制,单片机控制等方法,随着近年来单片机控制交通灯技术的成熟,单片机给交通带来了很大的便利。第二章 单片机概述二十世纪七十年代,微电子技术正处于发展阶段,集成电路属于中规模发展时期,各种新材料新工艺尚未成熟,单片机仍处在初级的发展阶段。1974年,美国研制出了世界第一台单片微型计算机F8,深受家用电器和仪器仪表领域的欢迎和重视,从此拉开了研制单片机的序幕。1单片机的定义所谓单片机,即把组成微型计算机的各个功能部件,如中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、输入/输出接口电路(I/O口)、定时/计数器以及串行通信接口等集成在一块芯片中,构成一个完整的微型计算机。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。与微处理器相比,它可单独地完成现代工业控制所要求的智能化控制功能,它有唯一的、专门为嵌入式应用而设计的体系结构和指令系统这是单片机最大的特征。现代单片机加上了中端单元、定时单元及A/D转换电路等更复杂、更完善的电路,使得单片机的功能越来越强大,应用更广泛。因此可以把单片机理解为一个单芯片形态的微控制器。单片机是单芯片形态作为嵌入式应用的计算机,它有唯一的、专门为嵌入式应用而设计的体系结构和指令系统,加上它的芯片级体积的优点和在现场环境下可高速可靠地运行的特点,因此单片机又称为嵌入式微控制器。2单片机的发展方向单片机的发展趋势将是向着高性能化,大容量,小容量、低价格化及外围电路内装化等几个方面发展。(1)单片机的高性能化:主要是指进一步改进CPU的性能,加快指令运算的速度和提高系统控制的可靠性,并加强了位处理功能、中断和定时控制功能;采用流水线结构,指令以队列形式出现在CPU中,从而有很高的运算速度。(2)片内存储器大容量化:以往单片机的片内ROM为1到4KB,RAM为64到128B。因此在一些较复杂的应用系统中,存储器容量就显得不够,不得不外扩存储器。为了适应这种领域的要求,利用新工艺,将片内存储器的容量大幅度增加,不得不外扩存储器。为了适应这种领域的要求,利用新工艺,将片内存储器的容量大幅度增加,片内ROM可以达到12KB。(3)小容量、低价格化:与上述相反,小容量、低价格化的4位、8位单片机也是发展方向之一。这类单片机主要用于儿童玩具等较小规模的控制系统。(4)外围电路内装化:随着集成度的不断提高,有可能把众多的各种外围功能器件集成在片内。除了一般必须具备的CPU、RAM、ROM、定时/计数器等之外,片内集成的部件还有A/D、D/A转换器,DMA控制器,声音发生器,监视定时器,液晶显示驱动器,彩色电视机和录像机用的锁相电路等。(5)增强I/O接口功能:为了减少外部驱动芯片,进一步增加单片机并行口的驱动能力,现在有些单片机可直接输入大电流和高电压,以便直接驱动显示器。(6)加快I/O接口的传输速度:有些单片机设置了高速I/O接口,以便能以更快的速度触发外围设备,以更快的速度读取数据。3单片机的应用单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个:在计算机网络和通信领域中的应用;在工业控制中的营运;在家用电器中的应用;在智能仪器仪表上的应用;在医用设备领域的应用;4 MCS-51简介MCS-51系列单片机在结构上基本相同,只是在个别模块和功能上有些区别。MCS-51单片机是在一块芯片中集成了一个8位CPU、128B RAM、4KB ROM、两个16位定时/计数器、32个可编程I/O口和一个可编程的全双工串行接口、五个中断源、一个片内振荡器等。中央处理器(CPU):中央处理器是单片机的核心部分,是一个8位的中央处理单元,它对数据的处理是以字节为单位进行的,CPU主要由运算器、控制器和寄存器阵列组成。数据存储器(片内RAM):数据存储器用于存放变化的数据。在8051单片机中,通常把控制与管理寄存器(简称为“专用寄存器”)在逻辑上划分在片内RAM中,因为其地址与RAM是连续的。8051单片机数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128个被专用寄存器占用。程序存储器(片内ROM):程序存储器用于存放程序和固定不变的常数、表格等。通常采用只读存储器,且其有多种类型。定时/计数器:定时/计数器用于实现定时和计数功能。8051单片机共有两个16位定时/计数器,8052单片机共有三个16位定时/计数器。并行I/O口:8051单片机共有四个8位的并行I/O(P0、P1、P2、P3),每个口都由一个锁存器和一个驱动器组成。并行I/O口主要是用于实现与外部设备中数据的并行输入/输出,有些I/O口还具有其他功能。串行口:8051单片机有一个全双工异步串行口,用以实现单片机和其他具有相应接口的设备之间的异步串行数据传送。时钟电路:时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。中断系统:中断系统的主要作用是对外部或内部的中断请求进行管理与处理。8051单片机的中断系统可以满足一般控制应用的需要:共有五个中断源,其中有两个外部中断源INT0和INT1、三个内部中断源(两个定时/计数器中断和一个串行口中断);此外,8052单片机还增加了一个定时器2的中断源。第三章 交通灯单片机控制1 硬件电路3,1.1芯片选用:选用设备8031单片机一片,8255并行通用接口芯片一片,74LS07,MAX692“看门狗”一片,共阴极的七段数码管两个,双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。1.2 硬件电路图:1.3 系统工作原理:开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统。由8051单片机的定时器每秒钟通过P0口向8255的数据口传送信息,由8255的PA口显示红、绿、黄等的燃亮情况;由8255的PC口显示每个灯的燃亮时间。8051通过设置各个信号等的燃亮时间,通过8031设置,绿、红时间分别为60秒,80秒循环由8051的P0口向8255的数据口输出。通过8051单片机的P0位来控制系统的工作或设置初值,当牌位0就对系统进行初始化,为1系统就开始工作。红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后恢复正常。增加每次绿灯时间车流量检测的功能,并且通过查询P0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。绿灯时间倒计时完毕,重新循环。2 软件设计2.1每秒钟的设定:利用MCS-51内部定时器材溢出中断来确定1秒的时间。2.2 计数器初值计算:定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的,他是以加法计数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC,即:TC=M-C;式中,M为计数器模值,该值和计数器工作方式有关,在方式0时M为213;在方式1时M的值为216;在方式2和3时为28。2.3 综合计算:T=(M-TC)T1 或者 TC=M-T/T1 式中T1是单片机时钟周期的12倍;TC为定时初值。这种方法在使用后悔超过计数器的最大定时间,所以再采用定时器和软件相结合的办法。2.4 设定一秒的方法:我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒,这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序,在中断子程序中,CPU先使软件计数器减1,然后判断它是否为零,为零表示1秒已到可以返回到输出时间显示程序。2.5 程序设计:主程序:定时器定时50毫秒,故T0工作于方式1,初值:TC=M-T/T1=216-50ms/1us=3CBOHORG 1000HSTART:MOV TMOD, #01H; 令T0为定时器方式1MOV TH0, #3CH; 装入定时器初值MOV TL0, #BOH;MOV IE, #82H; 开T0中断SEBT TR0; 启动T0计数器MOV R0, #14H; 软件计数器赋初值LOOP: SJMP S; 等待中断中断服务子程序:ORG 000BHAJMP BRT0ORG 00BHBRT0:DJNZ R0,NEXT AJMP TIME; 跳转到时间及信号灯显示子程序DJNZ:MOV R0,#14H; 恢复R0值MOV TH0,#3CH; 重装入定时器初值MOV TL0,#BOH;MOV IE, #82HRET1END3 软件延时MCS-51的工作频率为2-12MHZ,我们选用的8051单片机的工作频率为6MHX,机器周期与主频由关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us,我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。4时间及信号灯显示当定时器定时为1秒时,程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后再重新给时间计数器赋初值,重新进入循环。由于发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光,所以可以用复位方法点亮红,绿,黄发光二极管。5 程序实现交通灯的交替控制及特殊情况(如急救车等)通过时 ,通过外中断实现:North_South_Red BIT P0North_South_Yellow BIT P1North_South_Green BIT P2East_West_Red BIT P3East_West_Yellow BIT P4East_West_Green BIT P5Scd EQU 30H ;秒ORG 0000HJMP STARTORG 0003HJMP INIT0ORG 000BHJMP TIME0交通灯交替工作时,红绿黄交替点亮: 红灯亮33秒钟后绿灯亮27秒,然后闪烁3秒,最后黄灯点亮三秒 ,循环。TIME0:MOV TH0,#30HMOV TL0,#0B0HINC 31HMOV A,31HN: CJNE A,#20,EXIT ;判断是否到一秒MOV 31H,#0INC ScdMOV A,ScdCJNE A,#27,NEXT1 ;判断绿灯是否到27sSETB F0JMP EXITNEXT1: MOV A,ScdCJNE A,#30,NEXT2 ;判断绿灯是否亮30sCLR F0MOV P1,#0EEHJMP EXITNEXT2:MOV A,ScdCJNE A,#33,NEXT3MOV P1,#0F3H ;初始化NEXT3:MOV A,ScdCJNE A,#60,NEXT4SETB 00HJMP EXITNEXT4: MOV A,ScdCJNE A,#63,NEXT5CLR 00HMOV P1,#0F5HJMP EXITNEXT5: MOV A,ScdCJNE A,#66,EXITMOV P1,#0DEHMOV Scd,#0EXIT: RETI外中断:东西方向出现特殊情况 时南北红灯亮,东西绿灯亮,延时10s。INIT0:PUSH PSWPUSH ACCCLR EAMOV R2,P1 ;保存数据MOV P1,#0F6HCALL DELLAY10SMOV P1,R2 ;恢复SETB EAPOP ACCPOP PSWRETI主程序:START:MOV Scd, #00HMOV 31H, #00HMOV P1, #0FFHCLR 00HCLR F0MOV TMOD, #01H ;设定定时器1MOV IE, #83H ;设定中断使能 定时器中断0、外部中断0和1MOV SP, #60HMOV TH0, #30HMOV TL0, #0B0HSETB TR0LOOP:JNB F0,N0CPL East_West_Green ;绿灯闪三秒CALL DELAY500MSJMP N1N0:JNB 00H,N1CPL North_South_Green ;绿灯闪三秒CALL DELAY500MSN1:JMP LOOP第四章 总结本系统实现了红、绿灯燃亮时间的功能,红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示。车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现。通过此次课题的研究,让我更加深入的了解了单片机的一些功能,对于单片机在日常生活中的运用有了更深层次的了解。在研究时也发现了自身对于单片机的不理解之处,并查看相关书籍等资料解决了不懂的问题。结合实际工作中的实践,和这次的毕业论文撰写,了解了很多也学到了很多。同时,对以前所学的专业知识,有了进一步的加深和巩固。参考文献[1] 张国锋单片机原理及应用[J]高等教育研究,8[2] 张毅坤单片微型计算机原理及运用,西安电子科技大学出版社,1998[3] 胡汉才单片机原理及其接口技术[M]北京:清华大学出版社,5[4] 胡乾斌单片机原理与应用[M]华中科技大学出版社2006[5] 张毅刚单片机原理及接口技术[M]哈尔滨:哈尔滨工业大学出版社,1990[6] 雷丽文微机原理与接口技术,北京:电子工业出版社,2[7] 余锡存 曹国华单片机原理及接口技术,陕西:西安电子科技大学出版社,7致谢通过这段时间的研究设计学习,我学到了很多以前不知道的知识,并且在学习中培养了一种做事情一丝不苟的态度和耐心,为以后的工作打下了坚实的基础。在此我要向我们论文的指导老师表示衷心的感谢,可以让我通过这次机会系统学习了单片机的有关知识,并能具体结合实践生活完成交通灯的设计,他幽默,风趣,严谨的教学作风将是我学习的榜样。