单片机课程设计简易交通灯控制系统.docx

上传人:b****8 文档编号:10689393 上传时间:2023-02-22 格式:DOCX 页数:16 大小:189.94KB
下载 相关 举报
单片机课程设计简易交通灯控制系统.docx_第1页
第1页 / 共16页
单片机课程设计简易交通灯控制系统.docx_第2页
第2页 / 共16页
单片机课程设计简易交通灯控制系统.docx_第3页
第3页 / 共16页
单片机课程设计简易交通灯控制系统.docx_第4页
第4页 / 共16页
单片机课程设计简易交通灯控制系统.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

单片机课程设计简易交通灯控制系统.docx

《单片机课程设计简易交通灯控制系统.docx》由会员分享,可在线阅读,更多相关《单片机课程设计简易交通灯控制系统.docx(16页珍藏版)》请在冰豆网上搜索。

单片机课程设计简易交通灯控制系统.docx

单片机课程设计简易交通灯控制系统

单片机课程设计报告书

 

课题名称

简易交通灯控制系统

姓名

屈文亭

学号

1014080319

院、系、部

物理与电子科学系

专业

电子信息科学与技术

指导教师

丁雷

2012年6月20日

一、设计任务及要求:

设计任务:

1、在十字路口的东西、南北向各有一组红黄绿灯和一个计时显示系统,计时系统由1位LED数码管组成,用于显示红绿灯点亮的时间。

2、东西路口红灯亮,南北路口绿灯亮,同时开始30秒倒计时,以七段数码管显示时间。

3、计时到最后5秒时,南北路口的绿灯闪烁,计时到最后2s时,南北路口黄灯亮。

4、30s结束后,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环。

要求:

1、进行预设计,根据设计的任务要求,先确定设计的硬件电路方案,然后进行硬件电路的初步设计,在计算机上画出硬件电路图,在老师的指导下进行修正硬件电路图,并对所涉及的参数进行计算。

2、在确定硬件的基础上,要进行软件的总体设计,包括软件主流程的设计以及各子程序的设计,同时,要写出详细的操作说明,如时间的调整方法,显示窗口的时间切换等,以配合软件的设计。

3、进入硬件的调试及编程工作,设计组内的同学可根据任务分工,有调试硬件各功能模块的,如键盘子程序、显示子程序等,有进行整体程序的编制的,各模块的编制过程中要注意资源的衔接。

4、进入联机调试,联机调试的原则也要采用分步走的原则,各个功能模块要逐步套入,通过一个再增加一项功能,从而达到设计的总体要求,不要上来编制个最大的程序,最后无法查找错误。

5、写出设计报告。

指导教师签名:

年月日

二、指导教师评语:

指导教师签名:

年月日

三、成绩

 

指导教师签名:

年月日

目录

一、绪言1

二、系统设计1

1设计任务1

2方案比较与论证1

2.1系统整体流程图2

2.2时钟电路方案论证2

2.3单片机的选择方案论证2

2.4键盘选择方案论证3

2.5显示模块的选择方案论证3

三硬件电路设计4

3.1日历时钟总体电路图4

3.2独立按键模块设计4

3.3蜂鸣器驱动电路的设计5

3.4主要元器件选择5

四、程序流程图6

4.1系统主程序流程图6

4.2定时器设计7

五、c语言程序设计7

5.1系统初始化程序7

5.2闹钟比较函数8

5.3按键处理函数8

5.4状态切换函数9

六、电子密码锁控制器仿真9

6.1Keil调试10

6.2Proteus调试10

七、结束语11

八、参考文献11

一、绪言

1.交通红绿灯的发展历史

红绿灯的历史其实并不复杂。

从最初发明时的手牵皮带转动灯箱,到20世纪开始的电气控制,从采用计算机控制到电子监控感应,其发展不超过150年。

  美国人带来红绿灯的主要技术进步,3年内有60项与交通信号灯有关的发明获得专利。

2.道路交通控制的必要性

近年来随着科技的飞速发展,十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然有序呢?

靠的就是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用AT89S52单片机为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P3口设置红、绿灯燃亮时间的功能:

红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。

本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。

二系统设计

1设计任务

1、在十字路口的东西、南北向各有一组红黄绿灯和一个计时显示系统,计时系统由1位LED数码管组成,用于显示红绿灯点亮的时间。

2、东西路口红灯亮,南北路口绿灯亮,同时开始30秒倒计时,以七段数码管显示时间。

3、计时到最后5秒时,南北路口的绿灯闪烁,计时到最后2s时,南北路口黄灯亮。

4、30s结束后,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环。

2方案比较与论证

2.1交通信号灯的控制方案论证

根据设计任务与要求,我们可以知道这个交通灯的设计是分主次干道的,两个方面的时间是不同的,东西方向通行30s,南北方向30s,这就要求我们要有两个计数器,根据我自己的经验,东西方向通行30s完,倒计时数字显示器会显示到0,然后切换到南北方向通行30s完之后,倒计时数字显示器也会显示到0之后然后切换到东西方向,这样如此循环,这样的话我们就要设计一个16进制和一个11进制的计数器,根据我们所学和知识,可以用两片74192芯片来构成对应进制的计数器,由于是30和30之间循环切换,我们可以用利用JK触发器的翻转功能来实现两种进制计数器之间的切换;当然还有每个方向倒计时只有5s时,绿灯闪,计时到最后2秒时,路口黄灯亮,一直到0为止,由于黄灯是当两个计数器倒计时到2时开始闪,我们就可以在这时发出一个脉冲然后一直保持到0,或者是接收0~2这段时间的脉冲都可以控黄灯只在到了这段时间才亮;还有就是一个紧急开关,我们可以控制在出现紧急情况时使用清零端使之清零,并且红灯直接接到电源,使之一直处于亮的状态。

2、单片机的控制方案论证

根据设计任务书中的设计要求,可选用Atmel公司的89系列单片机AT89S52,但考虑到将来控制功能的扩充,用AT89S52来完成本次设计。

控制方案如下:

单片机采用用AT89S52芯片,使用发光二极管(红,黄,绿)代笔各个路口的交通灯,用8段数码管对转换时间进行倒计时(东西、南北路口各30秒,黄灯2秒)。

三、硬件电路设计

2、主要元器件选择

主要元器件选用型号和数量如表2-1所示:

表2-1主要元器件清单

序号

材料名称

规格型号

数量

元件代号

1

单片机

74LS07

1

U1

2

晶振

6MHz

1

X1

3

数码管

共阳极

4

4

LED灯

4

4

绿

4

(二)程序流程图

1、内存单元分配

AT89C51片内RAM存储单元分配如表2-2所示:

表2-2片内RAM存储单元分配表

序号

存储单元

用途

1

2AH

堆栈区

2

R1

秒数个位字形码寄存器

3

R2

中断服务程序的延时计数初值

4

R3

信号灯控制码寄存器

5

R4

LED显示器位码寄存器

6

R5

LED显示器段码寄存器

2、主程序流程图

按交通灯控制方案要求,主程序应是完成正常情况下使A、B两车道轮流放行。

主程序流程图如下:

 

五、汇编语言程序设计

5.1计数器初值计算

定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。

他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。

因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:

TC=M-C

式中,M为计数器摸值,该值和计数器工作方式有关。

在方式0时M为213;在方式1时M的值为216;在方式2和3为28

5.2.2计算公式

T=(M-TC)T计数

或TC=M-T/T计数

 T计数是单片机时钟周期TCLK的12倍;TC为定时初值

如单片机的主脉冲频率为TCLK12MHZ ,经过12分频

方式0    TMAX=213 *1微秒=8.192毫秒

方式1    TMAX=216 *1微秒=65.536毫秒

 显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.

3、中断服务程序流程图

(1)紧急状态时,采用中断方式,通过按钮,使单片机执行中断服务程序,让干线红灯、支线红灯同时亮。

中断服务子程序如下:

ORG  000BH

     AJMP  BRT0

     ORG 00BH

 BRTO:

DJNZR0,NEXT

      AJMPTIME;跳转到时间及信号灯显示子程序

DJNZ:

MOV RO,#14H ;恢复RO值

  MOVTH0,#3CH;重装入定时器初值

MOVTL0,#BOH  ;

MOVIE,   #82H

      RET1

END

(三)汇编语言程序设计

1、主程序

ORG0000H;主程序的入口地址

LJMPMAIN;跳转到主程序的开始处

ORG0003H;外部中断0的中断程序入口地址

ORG000BH;定时器0的中断程序入口地址

LJMPT0_INT;跳转到中断服务程序处

ORG0013H;外部中断1的中断程序入口地址

MAIN:

MOVSP,#50H

MOVIE,#8EH;CPU开中断,允许T0中断,T1中断和外部中断1中断

MOVTMOD,#51H;设置T1为计数方式,T0为定时方式,且都工作于模式1

MOVTH1,#00H;T1计数器清零

MOVTL1,#00H

SETBTR1;启动T1计时器

SETBEX1;允许INT1中断

SETBIT1;选择边沿触发方式

MOVDPTR,#0003H

MOVA,#80H;给8255赋初值,8255工作于方式0

MOVX@DPTR,A

AGAIN:

JBP3.1,N0;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1则跳转

MOVA,P1

JBP1.7,RED;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间

MOVR0,#00H;R0清零

MOVR0,A;存入东西方向绿灯初始时间

MOVR3,A

LCALLDISP1

LCALLDELAY

AJMPAGAIN

RED:

MOVA,P1

ANLA,#7FH;P1.7置0

MOVR7,#00H;R7清零

MOVR7,A;存入东西方向红灯初始时间

MOVR3,A

LCALLDISP1

LCALLDELAY

AJMPAGAIN

;-------------------------------------------

N0:

SETBTR0;启动T0计时器

MOV76H,R7;红灯时间存入76H

N00:

MOVA,76H;东西方向禁止,南北方向通行

MOVR3,A

MOVDPTR,#0000H;置8255A口,东西方向红灯亮,南北方向绿灯亮

MOVA,#0DDH

MOVX@DPTR,A

N01:

JBP2.0,B0

N02:

SETBP3.0

CJNER3,#00H,N01;比较R3中的值是否为0,不为0转到当前指令处执行

;------黄灯闪烁5秒程序------

N1:

SETBP3.0

MOVR3,#05H

MOVDPTR,#0000H;置8255A口,东西,南北方向黄灯亮

MOVA,#0D4H

MOVX@DPTR,A

N11:

MOVR4,#00H

N12:

CJNER4,#7DH,$;黄灯持续亮0.5秒

N13:

MOVDPTR,#0000H;置8255A口,南北方向黄灯灭

MOVA,#0DDH

MOVX@DPTR,A

N14:

MOVR4,#00H

CJNER4,#7DH,$;黄灯持续灭0.5秒

CJNER3,#00H,N1;闪烁时间达5秒则退出

;------------------------------------------------------------

N2:

MOVR7,#00H

MOVA,R0;东西通行,南北禁止

MOVR3,A

MOVDPTR,#0000H;置8255A口,东西方向绿灯亮,南北方向红灯亮

MOVA,#0EBH

MOVX@DPTR,A

N21:

JBP2.0,T03

N22:

CJNER3,#00H,N21

;------黄灯闪烁5秒程序------

N3:

MOVR3,#05H

MOVDPTR,#0000H;置8255A口,东西,南北方向黄灯亮

MOVA,#0E2H

MOVX@DPTR,A

N31:

MOVR4,#00H

CJNER4,#7DH,$;黄灯持续亮0.5秒

N32:

MOVDPTR,#0000H;置8255A口,南北方向黄灯灭

MOVA,#0EBH

MOVX@DPTR,A

N33:

MOVR4,#00H

CJNER4,#7DH,$;黄灯持续灭0.5秒

CJNER3,#00H,N3;闪烁时间达5秒则退出

SJMPN00

2、1S延时子程序

N7:

RETI

T0_INT:

MOVTL0,#9AH;给定时器T0送定时10ms的初值

MOVTH0,#0F1H

INCR4

INCR5

CJNER5,#0FAH,T01;判断延时是否够一秒,不够则调用显示子程序

MOVR5,#00H;R5清零

DECR3;倒计时初值减一

DECR2;报警初值减一

T01:

ACALLDISP;调用显示子程序

RETI;中断返回

3、显示子程序

DISP:

JNBP2.4,T02

DISP1:

MOVB,#0AH

MOVA,R3;R3中值二转十显示转换

DIVAB

MOV79H,A

MOV7AH,B

DIS:

MOVA,79H;显示十位

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#0002H

MOVX@DPTR,A

MOVDPTR,#0001H

MOVA,#0F7H

MOVX@DPTR,A

LCALLDELAY

DS2:

MOVA,7AH;显示个位

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#0002H

MOVX@DPTR,A

MOVDPTR,#0001H

MOVA,#0FBH

MOVX@DPTR,A

RET

三、交通信号灯控制器仿真

(一)系统仿真

在完成了交通灯控制器硬件设计和软件设计以后,便进入系统的调试阶段。

系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以及用户系统选用的单片机型号有关,如可选用Keil软件进行软件调试,用Proteus软件完成硬件调试。

1、Keil调试

图3-1程序调试完成图

2、Proteus调试

图3-2交通信号灯联调效果图

七、结束语

一分耕耘,一分收获。

只有亲自用实践来验证这句话,在能得其要领。

经过这次单片机课程设计,我从一个单片机实践的门外汉,已经越升为略知一二的新手。

虽然还有很多有关单片机的应用有待学习,但万变不离其宗,只要深入了解单片的原理,全部知识点,各个细节,一切设计皆有可能。

八、参考文献

[1]何立民主编.MCS-51系列单片机应用系统设计[M].北京:

北京航空航天大学出版社,1995

[2]薛钧义,张彦斌.MCS-51系列单片微型计算机及其应用[M].西安:

西安交通大学出版社,1997

[3]丁元杰.单片微机原理及应用[M].北京:

机械工业出版社,1994

[4]张毅坤,陈善久,裘雪红.单片微型计算机原理及应用[M].西安:

西安电子科技大学出版社,1998

[5]李广弟.单片机基础[M].北京:

北京航空航天大学出版社,1992

[6]彭介华.电子技术课程设计指导[M].北京:

高等教育出版社,1996.15-18

[7]谢自美.电子线路设计实验测试[M].武汉:

华中理工大出版社,1992.62-64

[8]彭志刚.利用单片机改进交通灯控制系统[J].湖南工业职业技术学院学报,2003,2

(2):

25-27.

[9]李广弟.单片机基础[M].北京:

北京航空航天大学出版社.2001.45-47

[10]张毅坤.单片微型计算机原理及应用[M].西安:

西安电子科技大学出版社,1998.52-57

[11]胡宴如.模拟电子技术[M].北京:

高等教育出版社,2004.121-134

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

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

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