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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的交通信号灯设计.docx

1、基于单片机的交通信号灯设计课 程 设 计 目 的 本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机使用系统设计并在实验室实现。该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理和使用”课程中所学的理论知识和实验能力,基本掌握单片机使用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的使用经验,为以后从事生产和科研工作打下一定的基础。 课 程 设 计 要 求交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间(其中黄灯亮时数码管关闭。用8051做输出口,控

2、制六个发光二极管燃灭,模拟交通灯管理。课 程 设 计 注 意 事 项(1)了解实际交通信号灯的变化情况和规律性;(2)根据实际情况思考程序,编程中注意不可出现时间延迟失误;(3)编程过程中,思路要清晰;(4)运行时注意交通灯的管理。 课 程 设 计 内 容 因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北绿灯。此时可以设置红绿灯时间,按下ok开始键之后,过一段时间转状态1东西和南北的黄灯亮,并关闭数码管显示(设有延时程序)之后再转状态2,东西绿灯通车,南北红灯。过一段时间转状态3,东西和南北黄灯亮,最后循环至状态

3、0课 程 设 计 简 要 操 作 步 骤1.给单片机(交通灯系统)上电(或者已上电按复位键)。 2.以连续方式从0100H开始执行程序,初始态0为南北路口的红灯亮东西路口的绿灯亮,并设置了初始时间24秒,数码管显示24秒。 3.此时可以设置红绿灯时间(ADD键加,DEC键减每次各一,注意本设置红灯和绿灯为同一初始时间)。 4.按下ok开始键系统关闭设置红绿灯时间功能进入倒计时,系统进入运行,经过一段时间,转为状态1东西和南北路口黄灯亮经过5秒延时并关闭数码管显示,进入状态2南北路口绿灯亮东西路口红灯亮经过倒计时之后返回初始0状态实现循环。课 程 设 计 心 得 体 会 通过两周单片机课程设计,

4、对于单片机有了更加深刻的理解,了解了单片机的使用和编辑其程序,掌握了一些课程设计的设计要求和设计方法,开发及设计工具的使用方法,最重要的是通过这一设计实践的过程,我们不再约束在理论上,而且锻炼了动手能力和分析解决问题的能力,积累了经验,培养了按部就班,一丝不苟的态度和对所学知识的综合使用能力,而且通过同学间的分组合作课题,锻炼了我们的团队合作能力。这次的单片机课程设计,让我受益匪浅,不只是老师和书本带来的知识和收获,还可以通过我们的自我实践来完成目标设计,是对我们很好的锻炼,既巩固知识,又提高了实践动手能力。课 程 设 计 评 语 及 成 绩评 语成 绩指导教师(签 名)年 月 日 摘要 近年

5、来随着科技的飞速发展,单片机的使用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机使用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了红绿灯循环点亮,红绿灯交替时5秒黄灯亮并关闭数码显示管(交通灯信号通过P1口输出,显示时间直接通过P0口输出至双位数码管);可通过按键重设通行时间

6、(本系统设了两个按键,一个加键,另一个减键,所加时间通过编程设定)并通过双位数码管显示(本系统必须复位后才能加减设置时间,在按完ok开始键之后不能再设置时间)。关键词:单片机 交通灯 重设通行时间 1.51单片机的功能和简介1.1单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3,3代的发展,目前单片

7、机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。1.2 MSC-51芯片简介MCS-51单片机内部结构 8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运

8、算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 图1程序存储器(ROM)8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数

9、据的传输。全双工串行口:8051内置一个全双工串行通信口,用于和其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器和数据存储器合二为一的结构,即普林斯顿(Princeton

10、)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图2。 图2 MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线和P3口线复用。现在我们对这些引脚的功能加以说明:如图3Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化

11、后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 图4Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信

12、号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令

13、。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。 2.交通信号灯方案(1)、南北直行绿灯亮,东西直行红灯亮,延时。(2)、南北直行绿灯闪烁几次转黄灯,南北左转(固定绿灯)亮,南北直行红灯亮,东西直行仍然红灯亮,延时。(3)、南北左转灯闪几次转黄灯,东西直行绿灯亮,南北直行仍然红灯,延时。(4)、东西直行绿灯闪烁几次转黄灯,东西左转灯亮,东西直行红灯亮,南北直行仍然红灯,延时。(5)、循环至1,继续。(这里左转时绿灯亮,不转时灭)(6)、倒计时部分。(南北、东西方向时间独立) 3.引脚分配及元件清单引脚图 灯 引脚东西红灯 P1.0 东西黄

14、灯 P1.1 东西绿灯 P1.2 东西左转灯(绿) P1.3 南北左转灯(绿) P1.4 南北红灯 P1.5 南北黄灯 P1.6 南北绿灯 P1.7元件清单表 LED 绿灯 8个 LED 黄灯 4个 LED 红灯 4个 插针 10 共阴数码管 2个 排阻 2个 4.主程序及流程图 程序 WW BIT 00H;1s标志位 MM EQU 40H;秒值计数器,用于累加秒值 AA EQU 41H ;中断次数,用于统计定时中断的次数 BB EQU 5EH ;定义5eh,5fh为显示缓冲区 XIAOYING EQU 10;消隐吗在字形表的第十位 ORG 0000H; 程序从0000h开始 JMP MAIN

15、; ORG 000BH;定时器t0中断人口 LJMP TIME0 ORG 0003H;外部中断入口 LJMP INT_0 ORG 030H;主程序从这里开始MAIN: MOV SP,#70H MOV MM,#0;秒计数器 MOV MM,#30; MOV BB,#3;立即数送显示缓冲区十位 MOV BB+1,#0;立即数送个位缓冲区 ACALL DISP;调显示子程序 ACALL TIME0_INIT;;调定时器t0初始化子程序 CLR WW; 清零秒标志位;/*- 南北车辆直行 15S - L1: mov p1,#07eh ;绿灯共亮10S ACALL LOOP3 /调用显示程序 MOV R7

16、,MM CJNE R7,#21,L1; 到21S时跳转到绿灯闪烁L2: mov p1,#0feh ; 灭 绿灯闪3次 ACALL LOOP3 JBC WW,L2L3: mov p1,#7eh; 亮 ACALL LOOP3 JBC WW,L3 WW秒标志位不为1,继续循环 MOV R7,MM CJNE R7,#15,L2 ; 南北直行绿灯共亮15S *- 南北左拐 10S - */ SETB P1.7 ;灭南北绿灯 mov p1,#0BEh ;亮南北黄灯,同时亮南北直行红灯 ACALL LOOP3 JBC WW,L2L16: ACALL LOOP3 JBC WW,L16 SETB P1.6 ;

17、灭南北黄灯共亮3S ACALL LOOP3 JBC WW,L2 L4: mov p1,#0ceh ;亮南北左拐灯 ACALL LOOP3 MOV R7,MM CJNE R7,#6,L4 ;L5: mov p1,#0deh; 南北左拐灯闪3次 ACALL LOOP3 JBC WW,L2 mov p1,#0ceh ; ACALL LOOP3 JBC WW,L3 MOV R7,MM CJNE R7,#2,L5; SETB P1.4 灭左拐灯L6: CLR P1.6 亮黄灯 ACALL LOOP3 JBC WW,L6 L15 : ACALL LOOP3 JBC WW,L15;/*=东西方向直行 15S

18、 =*/ L7: mov p1,#0dbh ; / 东西绿灯亮 ACALL LOOP3 MOV R7,MM CJNE R7,#21,L7;L8: mov p1,#0dfh ;绿灯闪3次 ACALL LOOP3 JBC WW,L8L9: mov p1,#0dbh; ACALL LOOP3 JBC WW,L9 MOV R7,MM CJNE R7,#15,L8 ; /*= 东西左拐 10S = */ SETB P1.2 ;灭东西绿灯 mov p1,#0DDh ;亮黄灯 ACALL LOOP3 JBC WW,L8 ACALL LOOP3 JBC WW,L8L17: SETB P1.1 ;灭黄灯 ACA

19、LL LOOP3 JBC WW,L8L10: mov p1,#0d6h;亮左转灯 ACALL LOOP3 MOV R7,MM CJNE R7,#6,L10 ;L11: mov p1,#0deh;灭东西左拐灯 ACALL LOOP3 JBC WW,L11 mov p1,#0d6h ; ACALL LOOP3 JBC WW,L11 MOV R7,MM CJNE R7,#2,L11; SETB P1.3 L12: CLR P1.1;亮黄灯 ACALL LOOP3 JBC WW,L12 ACALL LOOP3L18: JBC WW,L18 LJMP L1; - 中断0服务程序 -INT_0:PUSH

20、ACC PUSH PSW MOV P1,#0FFH MOV P2,#0FFH MOV MM,#11 L13: ACALL LOOP3 mov p1,#0deh ;东西红灯亮;南北红灯亮 MOV A,MM CJNE A,#1,L13 MOV P1,#0FFH MOV P2,#0FFH POP ACC ;恢复现场 POP PSW RETI/*=显示子程序=*/LOOP3:NOP LOOP: JBC WW,NEXT;WW为1,说明1s到 ACALL DISP;不为1调用显示子程序 AJMP LOOP;一秒未到继续循环NEXT: lCALL CC ;调用转换子程序 RETCC: MOV A,MM;获得

21、秒值,并送到a MOV B,#10 DIV AB JZ NEXT1;如果a中的值为0,高位消隐 AJMP NEXT2;否则直接送去显示NEXT1:MOV A,#XIAOYING;消隐码送aNEXT2:MOV BB,A;十位送显示BB MOV BB+1,B;个位送BB+1 ACALL DISP ;调用显示子程式 RET ;- 显示子程序 -DISP: PUSH ACC PUSH PSW MOV A,BB;去十位带显示位 MOV DPTR,#TAB; MOVC A,A+DPTR MOV P0,A CLR P2.1 ACALL DELAY SETB P2.1 MOV A,BB+1 MOV DPTR,

22、#TAB; MOVC A,A+DPTR MOV P0,A CLR P2.0 ACALL DELAY SETB P2.0 POP PSW POP ACC RET ; -10ms延时子程序- DELAY:MOV R5,#50 LOOP2:MOV R4,#100LOOP1: DJNZ R4,LOOP1 DJNZ R5,LOOP2 RET ;定时初始化程序TIME0_INIT:MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H CLR IT0; SETB EA SETB EX0;开外部中断0 SETB PT0 ; 定时器中断优先 SETB ET0 SETB TR0;启动定

23、时器 RET;-定时50ms中断程序- TIME0:PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0B0H INC AA MOV A,AA CJNE A,#20,TIME_EXIT;20*50=1 MOV AA,#0; SETB WW; DEC MM; MOV A,MM; CJNE A,#0,TIME_EXIT;若秒值不到30,则跳转到TIME_EXIT MOV MM,#30;若秒数到30,则秒值计数复位为0TIME_EXIT:POP PSW POP ACC RETI TAB:DB 0C0H,0F9H,0A4H,0B0H,99H; DB 92H,82H,0F8

24、H,80H,90H,0FFH END 5.原理图及分析分析:交通灯的计数的数码管用采用了动态扫描方式来计时,由于单片机的输出负载驱动数码管能力不足,所以用了74LS240作为数码管的驱动芯片,使得数码管能正常工作。做为交通灯的LED其阳极通过一个1K的电阻限流接VCC,阴极连单片机I/O口。 6、总结在学习单片机这门课程时,老师便围绕着交通灯使用系统来给我们讲课,并布置了交通灯使用系统的设计作为我们的期末测试。在学习期间我们不断的学习和了解了单片机的使用和编辑其程序。这也为我们接下来所要做的交通灯使用系统而打下了坚实的基础。在学期末,我们运用我们所学的知识设计了我们小组自己的交通灯使用系统,在

25、我们分工合作下,虽然第一次检查没有通过,但通过最后几天查看书籍和网络资源及仿真,交通灯使用系统被我们一步步的通过仿真模拟完成了程序的编写,这是我们一起用心完成的作品,虽然不是很完美,但却是我们一起努力携手完成的作品。经过我们的不懈努力,我们初步实现了交通灯和倒计时的分别测试,最后通过了合成,但还是存在着缺陷。经过我们小组再研究讨论后,我们又精心的修改了程序,终于成功的实现了交通灯要求的功能。学习使用单片机只能靠循序渐进的积累,尤其是在编写程序,不可能一蹴而就。万事开头难、要勇敢迈出第一步知识点用到才学,不用的暂时丢一边。想把厚厚的一本书看完在做实验,估计是不太可能的。所以,最好结合实际程序进行

26、仿真,在不断调试中完善和得到成功的喜悦。这样实验的成功率会大大提高。在编写程序也不要光看不写,看别人的知识了解别人的编程思路而已,最终的程序还是要靠自己,尤其是在一些细节上要特别注意,对一些程序指令要理解的运用好,刚开始我们可以模仿别人的程序,然后慢慢的学会自己编写,这是一个完全自主学习的过程,需要恒心和信心。7.参考文献1 姜志海单片机原理及使用M.北京:电子工业出版社,2005.7.27-712 龙脉工作室51单片机C语言使用开发技术大全M.北京:人民邮政出版社,2008.9.240-5003 彭为 黄科 雷道仲单片机典型系统设计M.北京:电子工业出版社,2006.5.246-2734 谢维成单片机原理及使用M.北京:清华大学出版社,2009.2.11-26

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

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