ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:333.95KB ,
资源ID:19038284      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19038284.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(交通灯控制Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

交通灯控制Word格式.docx

1、前提:本次设计,是针对实际要求,灵活应用所学知识,独立进行系统综合设计的过程,以达到巩固单片机基础知识、掌握单片机系统开发过程和提高动手实践能力的目的。要求:某十字路口,设计一个十字路口交通灯信号控制器,指挥交通车的通行。要求如下:1)东西通道和南北通道交替通行,东西通道每次放行时间大于南北通道每次放行时间。2)绿灯亮表示可以通行,红灯亮表示禁止通行。3)每次绿灯变红灯时,绿灯先闪转变黄灯(此时另一干道上的红灯不变)。4)十字路口要有数字显示,作为时间提示,以便人们更直观地把握时间。具体要求东西通道、南北通道通行时间及黄灯亮的时间均以秒为单位作减计数。二硬件电路说明MCS-51单片机是美国IN

2、TE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。电路工作原理:本设计是以89C51为主控芯片 ,利用P1口控制74LS240(八反相缓冲器,线驱动器)驱动发光二极管模拟交通灯。倒计时显示部分采用串口实现。串口工作在方式0时通过外接移位寄存器74L

3、LS164实现串并转换。需要显示的数据经RXD端输出 经过74LS164串并转换输出到共阳极的LED数码管显示,利用T0定时器进行1S定时。2原理图中部分构成说明:1、 单片机的最小系统:晶振和时钟电路2、74LS240和74LS164由于单片机的驱动能力太弱,所以给加了驱动电路,又因为发光二极管驱动,功率不大所以我选用了八反相缓冲器/8位三态门电路74LS240设计采用164把串行口逐位输出的数据进行串并转换进而控制LED的显示74LS164的真值表和构成如下图:3、改进部位本设计添加了应急通行,用按钮开关控制东西南北的应急通行信号。其中东西方向接外中断0 南北接外中断1,按一下按钮该方向通

4、行,另外方向停止,按两下恢复原样。三软件部分说明:(1)、定时/计数器介绍:定时/计数器的四种工作方式:工作方式0:定时/计数器的工作方式0称之为13位定时/计数器方式。它由TL的低5位和TH的8位构成13位的计数器,此时TL的高3位不用。工作方式1:工作方式1是16位的定时/计数器方式,将TMOD的M1M0设为“01”即可,其他特性与工作方式0相同。工作方式2:在工作方式2中,只有8位参与计数,而高8位是不参与计数的,用作预置数的存放,这样计数范围就小了,每当计数溢出,就会打开T0的高、低8位之间的开关,预置数就进入低8位。当然这是由硬件自动完成的,不需要我们去操心。通常工作方式2用于波特率

5、发生器,对于这种用途,定时器就是为了提供一个时间基准,计数溢出后不需做任何的事情,要做的仅仅只有一件,就是重新装入预置数,再开始计数,而且中间不能有任何的延迟,可见这个任务用这种工作方式来完成是最妙不过了。工作方式3:在这种工作方式下,T0被拆成2个独立的定时/计数器来用。其中,TL0可以构成8位的定时器或计数器工作方式;而TH0则只能作为定时器用,我们知道定时/计数器使用时需要有控制,计满后溢出需要有溢出标记,T0被分成两个来用,那就要两个控制及溢出标记了,从何而来呢?TL0还是用原来的T0的标记,而TH0则借用T1的标记,如此一来T1不是标记、控制可用了吗?是的,在一般情况下,只有在T1以

6、工作方式2运行时,才让T0工作于方式3。(2)、定时1S十字路口交通灯模拟控制器定时器采用工作方式1,先定时125MS,然后在定时中断程序中累加中断次数,8次为一秒,这样就可以起到定时1S的功能。工作方式由工作方式控制寄存器(TMOD)决定,FR寄存器TMOD用于2个定时器/计数器T1/T0的工作方式设定,各位的含义表示如下:GATE:门控位,定义T1/T0的启动方式,C/T-:定时/计数功能选择位。为“0”作定时器用;为“1”,作计数器用。M1M0:工作方式选择位。00 方式0 13位计数器01 方式1 16位计数器10 方式2 初值自动重装8位计数器11 方式3 2个8位计数器,仅适用于T

7、0由于十字路口交通灯模拟控制器设计采用6M晶振,因此定时125MS,可用下列语句实现。工作方式1是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。初始化如下:MOV TMOD,#01MOV TH0,#3CHMOV TL0,#0B0H定时1S在定时器0中断程序中完成,即计数八次为1S。定时器中断初始化程序如下:SETB EA ;开中断SETB ET ;定时器0允许中断SETB TR ;开始定时、中断流程图如下图:(3)、中断的初始化步骤:、要使用中断则首先必须中断中断允许。、硬件的初始化:设置引脚连接设置I/O口的输入输出。3、软件的初始化:设置中断寄存器,设置中断服务地址,清

8、除中断标志,设置中断触发模式。4、使能中断.外中断程序:对于外中断必须有中断的初始化程序、中断服务程序。外中断是由外部原因引起的中断,有两个中断源,即外中断0和外中断1,中断请求信号由引脚P3.2和P3.3输入。外中断请求信号弹有两种方式,一是电平方式,二是脉冲方式,可通过有关控制位的定义进行规定。电平方式为低电平有效,只需在单片机的(INT0)和(INT1)中断请示输入端采样到有效的低电平时,就会激活外部中断。脉冲方式则在脉冲的后负跳沿有效,即在相邻两个机器周期对中断请求引入端电平进行采样中,如前一次为高,后一次为低即为有效中断请求。这就要求在这种中断方式,中断请求信号的脉冲宽度必须大于一个

9、机器周期,以保证电平变化能被单片机采样到。(4)、中断控制寄存器的状态设置设计中采用定时器中断,外中断0,外中断1。定时器中断、外中断、串口中断控制如下,其中外中断0、1优先级最高,保证了应急通行的需求。MOV SCON,#00H ; 工作于工作方式0,既移位寄存器状态SETB ES ;开总中断SETB ET0 ;开定时器中断SETB TR0 ;启动T0定时器SETB IT0 ;外中断0为脉冲触发方式SETB IT1 ;MOV IP,#05 ;外中断0,1为高优先级SETB EX0 ;开个中断0SETB EX1 ;开外中断1外中断程序逻辑流程:否是(5)串口工作方式设计(1)、串口有4种方式:

10、方式0、1、2、3,由串口控制寄存器SCON和PCON控制。1 0 方式0 同步移位寄存器 1 1 方式1 10位异步收发2 0 方式2 11位异步收发3 1 方式3 11位异步收发十字路口交通灯模拟控制器串口设计本例设计串口若悬河工作于工作方式0,即同步移位寄存器状态串口工作方式0传送数据语句如下:MOV DPTR,#SEGTABI;字形码09地址MOV A,DIS-LB ;低位数据MOVC A,A+DPTR ;查表MOV SBUF ,A ;发送数据DL1:JNB TI,DLI ;查询是否发送完一个字节CLR TI(6)字形编码:根据各管的接线形式,可分成共阴极型和共阳极型。给LED数码管的

11、七个发光二极管加不同的电平,二极管显示不同亮暗的组合就可以形成不同的字形,这种组合称之为字形码。显示字型HGFEDCBA共阴极字形码共阳极字形码10X3F0XC00X060XF920X5B0XA43OX4F0XB040X660X9950X6D0X9260X7D0X8270X070XF880X7F0X8090X6FOX90四、源程序和重要注释说明:DIS_LB EQU 32H ;时间数据低位DIS_HB EQU 33H ;时间数据高位E_PASST EQU 30 ;东西方向绿灯通电时间N_PASST EQU 20 ;南北方向绿灯通电时间FLASHT EQU 5 ;黄灯闪烁时间SECOND_F E

12、QU 20H.0 ;定时1S标志INT0_F EQU 20H.1 ;外中断0标志位INT1_F EQU 20H.1 ;外中断1标志位ORG 0000HAJMP MAINORG 0003H ;外中断0入口地址LJMP INT_0 ;调至外中断0服务程序ORG 000BH ;T0中断入口AJMP T0_INT ;调至T0服务程序ORG 0013H ;外中断1入口地址调至外中断1服务程序ORG 0100H MAIN: ;初始化程序*MOV SP,#50H MOV TMOD,#01;定时器T0工作于方式1,定时125MS,开起定时器0中断MOV TH0,#0BHMOV TL0,#0DCH MOV SC

13、ON,#00H;串口工作于工作方式0,即移位寄存器状态MOV IP,#05 ;开外中断0;*MOV R2,#0MOV 20H,#0;开始所有灯亮以便检测交通灯的好坏,亮一秒MOV P1,#0FFHSETB TR0开启定时JNB SECOND_F,$CLR SECOND_F*T_LIGHT:MOV R3,#E_PASSTF_STEP:MOV P1,#24H ;东西亮绿灯,南北亮红灯,即P1MOV A,R3LCALL H_D ;调用十六-十进制程序LCALL DIS ;调用显示程序JNB INT0_F,LP11AJMP F_STEPLP11:JNB INT1_F,LP12AJMP T_STEPLP

14、12:JNB SECOND_F,$ ;显示上面数据1SCJNE R3,#0,F_STEP ;变化显示数据*MOV R3,#FLASHT ;东西亮绿灯,南北闪烁黄灯S_STEP: MOV A,R3MOV P1,#22HLCALL H_DLCALL DISJNB INT0_F,LP21是否第一次出现外中断0,是转东西亮绿灯,南北亮红灯, ;否则检测外中断1信号是否第一次出现LP21:JNB INT1_F,LP22AJMP T_STEP ;外中断1第一次出现转东西亮红灯,南北亮绿灯LP22: JNB SECOND_F,$ ;CLR SECOND_F ;示出现外中断正常显示CJNE R3,#0,LP1

15、LP1: MOV P1,#02HCJNE R3,#0,S_STEP*T_STEP:MOV R3,#N_PASST ;南北亮绿灯,东西亮红灯LP2: MOV P1,#81HJNB INT0_F,LP31LP31:JNB INT1_F,LP32LP32:CLR SECOND_F CJNE R3,#0,LP2南北亮绿灯,东西闪烁黄灯FORTH_STEP:MOV P1,#41HJNB INT0_F,LP41LP41: JNB INT1_F,LP42LP42: JNB SECOND_F,$CJNE R3 ,#0,LP3LJMP T_LIGHTLP3:MOV P1,#40HCJNE R3 ,#0,FORT

16、H_STEP*十六到十式转换H_D:MOV B,#10DIV ABMOV DIS_HB,AJNZ LP5MOV A,#10LP5:MOV A,BMOV DIS_LB,ARET*时间显示子程序,显示两位十进制数,发光显示共阳极DIS:MOV R7,#2MOV R0,#DIS_LBDL0:MOV A,R0ADD A,#0BHMOVC A,A+PCMOV SBUF,ADL1: JNB TI,DL1INC R0DJNZ R7,DL0SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HT0_INT:CLR TR0MOV TL0,#0DCHINC R

17、2CJNE R2,#8,RETURNSETB SECOND_FDEC R3RETIINT_0:CLR EX0 ;关外中断CLR EX1JNB INT0_F,INT0LP1 ;检测外中断0信号是否第一次,是则置位CLR INT0_F ;外中断0信号第二次出现,恢复数据,启动定时器0MOV R3,40H开外中断AJMP INT0LP2INT0LP1:CLR TR0 ;外中断0信号第一次出现,关定时器0清1S标志位SETB INT0_F ;置位外中断0标志位MOV 40H,R3 ;保存数据MOV R3,#99 ; 送99S显示INT0LP2:INT_1:CLR EX0JNB INT1_F,INT1L

18、P1CLR INT1_FSETB EX0AJMP INT1LP2INT1LP1:SETB INT1_FMOV 40H,R3MOV R3,#99INT1LP2:SETB EX1RETURN:END五、电路仿真原理图六、PCB制版图七、主程序流程图及状态显示图:八、课程设计总结通过这次的课程设计让我受益匪浅,设计中我把80C51,74LS240和74LS146结合起来,加上7段数码管用作显示通过51单片机进行定时和计数运用到很多联系,感觉自己的只是还是不够,所以在网上收集了很多大致的材料,进行借鉴和修改,从而我能深一步的了解控制的内容和方法,让知识连贯起来运用到实际的设计中。通过这次的课程设计,让

19、我受益匪浅,也让我了解和掌握了一些编程思想和对I/O接口的使用和应用的条件的思考,对单片机的各个管脚功能的理解和掌握。实现了软件和硬件的有效结合,缺一不可。设计让我把单片机的理论知识用在实践中,实现了理论和实践相结合,从中更懂得理论的是实践的基础,实践有能检验理论的正确性,更激发了我对专业知识的渴求,这些对我以后参加工作或者继续学习都会有很大的帮助和影响。一个小小的单片机居然涵盖了如此之多,输入输出端口不说,还有显示部分。用到中断、串行口、更使我对单片机的基本原理、单片机应用系统、开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。而作为一位学生,在对交通灯的设计中,因知识和经验的不足,只能通过模仿其它的编程思路,再加上一些自己的思想去完成这个设计,因此在各个方面都会有一些不足,敬请指正。但我会在以后的学习中逐渐去完善、巩固我的单片机知识。、所谓理论联系实际,控油理论知识而没有去动手操作,学的再好也还是书本上的知识,只有运用到实际中我们才可以发现利用自己所学的知识的价值,通过此次的课程设计,我更加明白了自己的知识和操作的不足,所以应当多涉猎点相关的知识并动手去做,这样才能让知识成为自己的利剑,让他大放异彩!参考文献(1)、倪志莲.单片机应用技术,北京理工大学出版社。(2)、徐根耀.电子元器件与电子制作。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1