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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机交通灯控制系统.docx

1、单片机交通灯控制系统计算机控制技术课程设计报告题 目:计算机温度控制硬件系统设计学 院: 专业班级: 姓 名: 指导教师: 2011年 06月28 日目 录第1章 引言1第2章 硬件系统组成与说明4第3章 结论10参考书目引言十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本设计是根据我所学习的单片机课程,按照大纲要求对我进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。掌握单片机技术是一门不可或缺的技术,对我将来的工作以及生活和学习都有很密切的联系。当今世界的

2、发展是以科学技术为基础的,微控技术在生产中所占的比重也越来越大。单片机的出现是近代计算机技术发展史上的一个重要里程碑。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。1课程设计目的1.通过单片机课程设计,熟练掌握汇编语言的编程方法2.通过交通信号灯控制系统的设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。2课程设计题目和要求题目 利用单片机制作交通控制系统要

3、求1.设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。时间 方向 控制要求白天 东西 绿灯 黄灯 红灯 南北 红灯 绿灯 黄灯夜晚 东西 黄灯 南北 黄灯2.总体设计方案现在流行的一种设计为两主干线相交的十字路。本设计采用一主干道(南北方向),一从干道(东西方向)的路口,即主干道的通行时间为从干道的2倍。在正常情况下,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED上;另发挥部分为当出现紧急情况时,路口的交通灯全为红灯,紧急情况解除时,恢复到原来的状态。3课程设计报告内容3.1设计方案的选定与说明芯片的选定 主控芯片采用AT89S52单片机。

4、单片机,亦称单片微型计算机。它是把中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。于是,微型计算机(即单片机)在这种情况下诞生了。纵观生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子 宠物等,这些都离不开单片机。 单片机以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领

5、域中独占鳌头。如果说C语言程序设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。 MCS-51单片机是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。 8051单片机包含中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数

6、据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:3.2论述方案的各部分工作原理 3.2.1中央处理器(CPU) 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 3.2.2程序存储器(

7、内部ROM):程序存储器用于存放程序和固定不变的常数等。通常采用只读存储器,且其又多种类型,在89系列单片机中全部采用闪存。AT89S51内部配置了4KB闪存。 定时/计数器(ROM): 定时/计数器用于实现定时和计数功能。AT89S51共有2个16位定时/计数器。并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。每个口都由1个锁存器和一个驱动器组成。它们主要用于实现与外部设备中数据的并行输入与输出,有些I/O口还有其他功能。全双工串行口:A89S51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收

8、发器,也可以当同步移位器使用。3.2.3时钟电路:时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。3.2.4中断系统:中断系统的作用主要是对外部或内部的终端请求进行管理与处理。AT89S51共有5个中断源,其中又2个外部中断源和3个内部中断源。3.2.5定时/计数器 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。3.4交通灯设计方案的图表 主程序 有车车道放行时的中断服务程序(外中断1) 中断响应 关中断 保护现场 开中断 A道有车吗 B道有车吗 A绿灯、B红灯 延时15S A红灯、B绿灯 关中断 恢复现场 返回 开中断 紧急情况时的中断服务程序(外中

9、断0) 中断响应 返回 恢复现场 延时20S A红灯、B红灯 保护现场3.5交通系统主程序 #include #define uchar unsigned char #define uint unsigned int #define time 50000 #define on 0 #define off 1sbit RED_ZHU = P00; /南北 红灯 sbit YELLOW_ZHU = P01;/南北 黄灯sbit GREEN_ZHU = P02; /南北 绿灯 sbit RED_ZHI = P03; /东西 红灯sbit YELLOW_ZHI = P04; /东西 黄灯sbit GR

10、EEN_ZHI = P05; /东西 绿灯sbit P23 = P34;sbit P22 = P35; /东西方向数码管位选sbit P21 = P36;sbit P20 = P37; /南北方向数码管位选sbit int0_key = P32;sbit int1_key = P33;void display1(uchar,uchar);void display2(uchar,uchar);void delayms(uint k);uchar temp1,temp2,temp3,temp4,temp5,temp6;/*=倒计时=*/uchar N = 50,Y = 45,Z = 50,M =

11、75,G = 80,U =80;uchar C50ms,t0;uchar seg = 1;uchar flag=0,led_data_temp;void InitialT1(void) TMOD = 0x11; /定时器0,1工作在方式1 TH1 = (65536 - time)/256; /相当于(65536-time)/256; TL1 = (65536 - time)%256;/初值为time(50ms) TR1 = 1;/开定时器1中断 ET1 = 1;/允许定时器1中断 ET0 = 1; TH0 = (65536 - time)/256; TL0 = (65536 - time)%2

12、56; EX0 = 1; /允许外部中断0 IE0 = 1;/启动外部中断0 PX0 = 1; EX1=1; IE1=1; EA = 1; /开总中断void int0(void) interrupt 0 /外中断0 flag = 0; led_data_temp = P0; t0 = 20; if(!int0_key) delayms(10); if(!int0_key) while(!int0_key); TH0 = (65536 - time)/256; TL0 = (65536 - time)%256; TR1 = 0; TR0 = 1; EX0 = 0; EX1 = 0; C50ms

13、 = 0; void int1(void) interrupt 2 /外部中断1 t0=15; flag = 1; led_data_temp = P0; if(RED_ZHU = 0) & (GREEN_ZHI = 0)|(YELLOW_ZHI = 0)&(RED_ZHU = 0) P0 = 0xff; GREEN_ZHU = 0; RED_ZHI = 0; else /if(RED_ZHI = 0)&(GREEN_ZHU = 0) P0 = 0xff; GREEN_ZHI = 0; RED_ZHU = 0; if(!int1_key) delayms(10); if(!int1_key)

14、while(!int1_key); TH0 = (65536 - time)/256; TL0 = (65536 - time)%256; TR1 = 0; TR0 = 1; EX0 = 0; EX1 = 0; C50ms = 0; void ISRT0(void) interrupt 1/定时器0中断服务子程序 temp1 = N,temp2 = Y,temp3 = Z,temp4 = M,temp5 = G,temp6 = U; TH0 = (65536 - time)/256; TL0 = (65536 - time)%256; /重装初值time YELLOW_ZHU=1; /如果在黄

15、5S时进行熄灭黄灯 YELLOW_ZHI=1; if(!flag) P0 = 0xf6; C50ms+; if(C50ms 19) t0-; C50ms = 0; if(t0 = 0) P0 = led_data_temp; N = temp1,Y = temp2,Z = temp3,M = temp4,G = temp5,U = temp6; TR0 = 0;/禁止定时器1中断 TR1 = 1;/开定时器1中 EX1 = 1; /EX0 = 1; C50ms = 0; return; void ISRT1(void) interrupt 3 /定时器1中断服务子程序 TH1 = (65536

16、 - time)/256; TL1 = (65536 - time)%256; /重装初值time C50ms+; if(C50ms 19) N-; M-; Y-; Z-; G-; U-; C50ms = 0; /*=延时=*/void Delay10uS(uchar second) uint i; while(second-) != 0) for(i = 0;i 5;i+) void delayms(uint k) uint i,j; for(i = 0;i k;i+) for(j = 0;j 120;j+);/*=数码管控制=*/uchar code discode= 0xC0,0xf9,

17、0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳数码管0-9代码 void display1(uchar num1,uchar num2) /控制南数码管显示 P2=discodenum1; P21=on; Delay10uS(10); P21=off; /低位 P2=discodenum2; P20=on; Delay10uS(10); P20=off; /高位 void display2(uchar num3,uchar num4) /控制东西数码管显示 P2 = discodenum3; P23 = on; Delay10uS(10); P23 =

18、off; /低位 P2 = discodenum4; P22 = on; Delay10uS(10); P22 = off; /高位 /*=主函数=*/main()/*=初始状态:东西南北都红灯=*/ RED_ZHU=on; RED_ZHI=on; delayms(1000); RED_ZHU = off; RED_ZHI = off; InitialT1(); while(1) / 初始化计时器 /*=状态1:东西绿灯(45s) 南北红灯(40s)=*/ /*=状态2:东西黄灯(5s) 南北红灯(5s)=*/ RED_ZHI = on; GREEN_ZHU = on; while(N !=

19、0) if(TR0 = 1) display2(t0/10,t0%10);/ 当t0=20时东西、南北红灯(20s) display1(t0/10,t0%10);/ 当t0=15时东西、南北红、绿灯交换点亮 else if(N = 5) while(Z != 0) if(TR0 = 1) display2(t0/10,t0%10); display1(t0/10,t0%10); else display1(N/10,N%10); / 东西黄灯(5s) display2(Z/10,Z%10); / 南北红灯(5s) GREEN_ZHU = off; YELLOW_ZHU = on; else d

20、isplay1(N/10,N%10); / 东西绿灯(45s) display2(Y/10,Y%10); / 南北红灯(40s) GREEN_ZHU = off; RED_ZHI = off; YELLOW_ZHU = off; P0 = 0xff; /数码管全关掉 Delay10uS(1); /*=状态3:东西红灯(20s) 南北绿灯(25s)=*/ /*=状态4:东西红灯(5s) 南北黄灯(5s)=*/ GREEN_ZHI = on; RED_ZHU = on; while(G != 0) if(TR0 = 1) display2(t0/10,t0%10); display1(t0/10,

21、t0%10); else if(G = 5) while(U != 0) if(TR0 = 1) display2(t0/10,t0%10); display1(t0/10,t0%10); else display2(G/10,G%10);/ 东西红灯(5s) display1(U/10,U%10);/ 南北黄灯(5s) GREEN_ZHI = off; YELLOW_ZHI = on; else display2(G/10,G%10);/ 东西红灯(25s) display1(M/10,M%10);/ 南北绿灯(20s) GREEN_ZHI = off; RED_ZHU = off; YEL

22、LOW_ZHI = off; P0 = 0xff; Delay10uS(1); /*=重新赋值=*/ N =50,Y = 45,Z = 50,M = 75,G = 80,U =80; 4总结通过这次交通灯的课程设计,使我得到了一次用专业知识、专业技能分析和解决现实问题的能力。使我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为一名合格的应用型人才打下良好的基础。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料

23、以及和周围同学交流得到解决。在这次单片机课程设计中,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。参考书目:1.杨立 计算机控制与仿真技术,北京,中国水利水电出版社,20062.张毅坤,单片机卫星计算机原理及应用,西安,西安电子科技大学出版社,19983.余锡存,曹国华,单片机原理及接口技术M,陕西,西安电子科技大学出版社,2000.74.雷丽文,微机原理及接口技术M,北京,电子工业出版社,1997.25.李华,MCS51系列单片机实用接口技术,北京,航天航空大学出版社,19996.胡汉才,单片机原理及其接口技术,北京,清华大学出版社,2002

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

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