单片机课程设计报告 2.docx
《单片机课程设计报告 2.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告 2.docx(17页珍藏版)》请在冰豆网上搜索。
![单片机课程设计报告 2.docx](https://file1.bdocx.com/fileroot1/2022-12/14/1c072515-f862-4e19-a6a9-247ce6d205fc/1c072515-f862-4e19-a6a9-247ce6d205fc1.gif)
单片机课程设计报告2
(此文档为word格式,下载后您可任意编辑修改!
)
郑州轻工业学院
单片机系统设计
姓名:
姜之妍
学号_______________
专业班级:
电子信息工程11-02
指导老师:
姜之妍
所在学院:
电子信息工程学院
摘要
本设计是关于单片机控制的交通灯模拟系统的设计。
主要内容有交通灯模拟系统设计方案,主要功能,各功能模块的介绍,电路设计,硬件部分设计,软件部分设计,模拟系统的仿真调试,设计方法以及课程设计的心得体会等等。
该设计中用光二极管来模拟信号灯,紧急车的优先通过请求信号由外部中断技术来模拟。
根据交通灯系统所需要实现的功能要求,先画出中断程序部分的流程图和主程序流程图,然后根据流程图写出其子程序。
从而通过模拟系统的仿真来实现该设计所要求的功能。
本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。
最后,系统要求实现如下的交通灯的功能:
1、南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行时间为20秒,时间可设置修改;
2、在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;
3、黄灯亮时,要求每秒闪亮一次。
4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。
5、一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。
6、有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟。
关键字:
单片机交通灯模拟系统显示
目录
1概述4
1.1设计的作用4
1.2设计的方案5
1.3设计满足的基本功能5
2系统方案及硬件设计6
2.1系统方案的确定6
2.2显示部分电路设计6
2.3时钟部分电路设计7
2.4复位部分电路设计8
3软件设计10
3.1应用系统软件设计要求10
3.2主程序模块的设计10
3.3时间中断程序12
4Proteus软件仿真13
4.1仿真开发系统的功能13
4.2Proteus软件系统仿真13
4.3正常状态13
4.4紧急状况14
4.5时间调整15
5课程设计体会16
参考文献16
附1:
源程序代码17
附2系统原理图23
1概述
1.1设计的作用
交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。
交通灯是城市交通中的重要指挥系统,它与人们日常生活密切相关.随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性。
对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。
单片机自问世以来,性能不断提高和完善,其资源又能满足很多场合的应用,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉,其易于产品化、抗干扰能力强、可在各种恶劣环境下可靠的工作等特点。
特别是它强大的面向控制能力,使它在工业控制领域,智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。
考虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,拟采用MCS–52系列的单片机来实现十字路口交通信号灯的控制。
正常情况下,十字路口的红绿灯应交替变换,考虑紧急情况下,如有救护车或警车到来时,应优先让其通过。
另外,单片机课程设计是我们自动化专业学生的必修课程。
通过交通灯模拟系统的设计可以进一步认识单片机在控制系统中的重要性。
在完成理论学习和必要的实验后,我们掌握了单片机的基本原理和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不够了解,实际动手能力也有欠缺,因此该课程的设计对我们认识和学习单片机有很大的帮助。
交通灯模拟系统的课程设计既让我们巩固了课本中学到的理论,还让我们学习了单片机硬件电路设计和用户程序设计的整个过程,同时在此期间我们还学习和查阅了大量的相关资料。
单片机的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对单片机的认识,充分发挥学生的个体创新能力。
1.2设计的方案
该设计在熟练掌握单片机及其仿真系统的使用方法基础上,综合应用单片机原理、微机原理、微机接口技术等课程方面的知识,设计一个采用AT89S52单片机控制的交通灯控制电路。
根据设计功能及要求,我们可得系统的原理框图如图所示。
根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。
具体设计思路如下:
收集并整理资料,硬件设计,软件设计,Proteus仿真,设计体会与总结。
1.3设计满足的基本功能
1、南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行时间为20秒,时间可设置修改;
2、在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;
3、黄灯亮时,要求每秒闪亮一次。
4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。
5、一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。
6、有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟。
2系统方案及硬件设计
2.1系统方案的确定
交通灯在安全行车过程中起着十分重要的作用,交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,如何全面有效地利用交通灯指示交通情况,我们尝试用单片机来控制交通灯,在软、硬件方面采取一些改进措施,,使交通灯在控制中灵活而有效。
硬件系统是指构成单片机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。
该交通灯拟系统的硬件部分主要由键盘、显示和运算部分组成。
按照题目的设计要求,本课题需要使用LED数码管显示和扩展键盘。
在该交通灯系统的设计中采用AT89S52单片机。
2.2显示部分电路设计
LED显示器有两中工作方式:
静态显示方式和动态显示方式。
静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字型码。
送入一次字型码显示自行一直保持,直到送入新字型码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
各数码管在显示过程中持续得到显示信号,与各数码管接口的IO口是专用的。
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而
大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
各数码管在显示过程中轮流得到显示信号,与各数码管接口的IO口是共用的。
该设计采用如下所示的数码管,分别显示南北和东西灯的剩余时间。
片选部分和数码段显示部分,分别接单片机管脚的P0口和P2口,具体的共阴数码管下见图。
其中,A到G为码段控制端口,1,2,3,4为片选端口。
2.3时钟部分电路设计
时钟电路用于产生MCS-52单片机工作时所必须的时钟控制信号。
其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。
本设计采用12MHz晶振和两个30Pf瓷片电容,他们构成一个稳定的自激振荡器。
该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
为单片机提供标准时钟。
其中两个瓷片电容起微调作用。
如图所示:
时钟电路
2.4复位部分电路设计
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路通常采用上电自动复位和按钮复位两种方式。
该设计采用加电直接复位,复位电容采用22uF,电阻1000欧,为了节省元件,没有采用上电加按键模式。
加电瞬间,RES管脚为高电平。
通过电阻回路放电,使电压逐渐降为零,从而实现了复位功能。
其连接图如下图所示:
复位电路
3软件设计
3.1应用系统软件设计要求
在进行应用系统的总体设计时,软件设计与硬件设计应统一考虑,相结合进行。
当系统的电路设计定型以后,软件的任务也就明确了。
一般来说,软件的功能可分为两大类。
一类是执行软件,它能完成各种实质性的功能,如测量计算、显示、打印、输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织协调角色。
我们设计时,应从以下几个方面考虑:
1)根据软件功能的要求,将系统软件分为若干个相对独立的部分。
设计出合理的软件总体结构,使其清晰、简捷、流程合理。
2)各功能程序实行模块化、子程序化。
3)在编写应用软件之前,应绘制出程序流程图。
4)要合理分配系统资源,包括ROM、RAM、定时器计数器、中断源等。
本设计采用了模块化设计,主要由主程序模块、功能实现模块两大部分模块组成。
3.2主程序模块的设计
主程序流程图如下图A所示:
该交通信号灯控制系统的四中工作状态(南北方向的交通灯为例):
(1)南北方向A车道红灯亮,东西方向B车道绿灯亮。
表示南北方向A车道上的车辆禁止通行,东西方向B车道允许通行。
绿灯亮足规定的时间隔时,控制器发出状态信号,转到下一工作状态。
(2)南北方向A车道红灯亮,东西方向B车道黄灯亮。
表示东西方向B车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,南北方向A车道禁止通行。
黄灯亮足规定时间间隔时,控制器发出状态转换信号,转到下一工作状态。
(3)南北方向A车道绿灯亮,东西方向B车道红灯亮。
表示南北方向A车道允许通行,东西方向B车道上的车辆禁止通行,绿灯亮足规定的时间间隔时,控制器发出状态转换信号,转到下一工作状态。
(4)南北方向A车道黄灯亮,东西方向B车道红灯亮。
表示东西方向B车道禁止通行,南北方向A车道上位过限停车线的车辆停止通行,已过停车线的车辆继续通行。
黄灯亮足规定的时间间隔时,控制器发出状态转换信号,系统又转换到第
(1)种工作状态。
控制灯程序流程图如下:
该设计的主程序中已经包含了显示模块的程序段,具体的主程序如下:
MAIN:
MOVSP,#30H
MOV40H,#5;A道红灯时间
MOV41H,#5;A道绿灯时间
MOV42H,#6;B道红灯时间
MOV43H,#4;B道绿灯时间
MOVTMOD,#11H;定时器初始化
MOVTH0,#3CH
MOVTL0,#0AFH
MOVTH1,#3CH
MOVTL1,#0AFH
MOV60H,#20
MOV61H,#60
CLR4EH
CLR4FH
SETBEA
SETBEX0
SETBEX1
SETBTR1
SETBET0
SETBET1
SETBPT1
3.3时间中断程序
对绿灯,黄灯,红灯剩余时间的处理通过定时中断来处理。
设置定时器初始值MOVTH1,#03CH,MOVTL1,#0B0H,每50ms产生一次中断,循环20次后即一秒后再处理中断程序,对当前正在亮着的灯的缓存单元的值减一然后返回,当减到零时付初值,使R3为00返回(当主程序检查到R3为零时会转换到下一个状态)。
4Proteus软件仿真
4.1仿真开发系统的功能
一个单片机系统经过总体设计,完成了硬件和软件开发。
元器件安装后在系统存储器中放入编制好的应用程序,系统即可运行。
一般来说,仿真开发系统应具有如下的功能:
1)用户样机硬件电路的诊断与检查;
2)用户样机程序的输入与修改;
3)程序的运行、调试(单步运行、设置断点)、排错、状态查询功能;
4)将程序固化到EPROM芯片中。
但对于一个较完善的仿真开发系统,还应具备:
1)有较全的开发软件,同时要求用户可用汇编语言编制应用软件;开发系统自动生成目标文件;并配有反汇编软件能将目标程序转换成汇编语言程序;有丰富的子程序可供用户选择调用。
2)有跟踪调试、运行的能力。
3)为了方便模块化软件调试,还应配置软件转储、程序文本打印功能及设备。
4.2Proteus软件系统仿真
如硬件系统图所示接线,图中,在十字路口的红,黄,绿交通灯中A道的两组同色灯连在起,B上的也互联,受MCS-52的P1.0-P1.5控制.紧急车请求通过时由人工控制,以中断方式输入单片机。
打开WAVE6000集成调试环境,把已经编好的程序输入,保存为“交通灯.asm”。
选择菜单[文件][新建项目]功能,加入模块文件和保存文件,然后保存项目,系统自动生成“交通灯.PRJ”文件。
设置好仿真器后,编译程序无误后调试执行程序,结果显示符合要求。
4.3正常状态
4.4紧急状况
当有紧急车辆通过时候,主次干道都亮红灯,只允许紧急车辆通过,通过特殊情况与紧急刹车按钮来控制。
4.5时间调整
当车道放行时间需要调整的时候,我们可以通过设置与红黄灯按钮来调整时间,控制车辆的放行时间。
5课程设计体会
这次课程设计经过这两周的反复琢磨与修改,终于完成了。
从查资料,整理资料到读程序,写程序,改程序,仿真直至通过老师的验收,一切都充满了刻苦与艰辛,其间充满了挫折可是同时又伴随着欢乐。
另外,在重复修改与设计的过程中,我又重新把《单片机原理与应用技术》这本书仔细的看了一下,弄懂了一些以前一知半解的东西,进一次加强和巩固了我的理论知识。
在此次课程设计过程中,我们把单片机的理论知识用于实践中,使理论与实践相结合,使我的理论知识的到了巩固,在查资料翻阅资料的过程中也丰富了我的知识跟阅历。
参考文献
[1]蔡美琴等-2版.MCS-51系列单片机系统及其应用.北京:
高等教育出版社,2004.1-4
[2]张毅刚,刘杰.MCS-51系列单片机原理及应用.哈尔滨:
哈尔滨工业大学出版社,2004.
[3]蔡美琴,张为民等.MCS-51系列单片机系统及其应用.北京:
高等教育出版社,1992.68-96
[4]蒋廷彪等.单片机原理及应用(MCS-51).重庆:
重庆大学出版社,2003.56-89
[5]余发山,王福忠.单片机原理及应用技术.徐州:
中国矿业大学出版社,2003.98-120
附1:
源程序代码
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT0
ORG000BH
LJMPTIME0
ORG0013H
LJMPINT1
ORG0040H
MAIN:
MOVSP,#70H
MOV41H,#30;南北(主干道)绿灯显示时间
MOV40H,#20;东西(支干道)绿灯显示时间
MOV42H,#5;黄灯闪烁时间
START:
MOVA,41H
ADDA,42H
MOV43H,A
MOVA,40H
ADDA,42H
MOV77H,A
MOVTMOD,#01H;T0模式1,定时50ms
MOVTH0,#3CH;计数初值
MOVTL0,#0B0H
SETBEA;开总中断
SETBET0;开T0中断
SETBTR0;启动定时器T0
SETBEX0
SETBINT0
SETBINT1
SETBEX1
STATUS1:
MOVP1,#B;东西绿灯,南北红灯
MOV44H,40H
MOV45H,77H
J11:
MOVR4,#14H
J0:
LCALLDISP
MOVA,R4
JNZJ0
DEC44H
DEC45H
MOVA,44H
JNZJ11
STATUS2:
;东西黄灯闪,南北红灯亮
MOVP1,#B
MOVR3,42H
J22:
MOV44H,R3
MOVR4,#0AH
J20:
LCALLDISP
MOVA,R4
JNZJ20
MOVP1,#B
MOVR4,#0AH
J21:
LCALLDISP
MOVA,R4
JNZJ21
MOVP1,#B
LCALLDISP
DEC44H
DEC45H
DJNZR3,J22
STATUS3:
;东西红灯,南北绿灯
MOVP1,#B
MOV44H,43H
MOV45H,41H
J31:
MOVR4,#14H
J30:
LCALLDISP
MOVA,R4
JNZJ30
DEC44H
DEC45H
MOVA,45H
JNZJ31
STATUS4:
;东西红灯亮,南北黄灯闪
MOVP1,#B
MOV45H,42H
J42:
MOVR4,#0AH
J40:
LCALLDISP
MOVA,R4
JNZJ40
MOVP1,#B
MOVR4,#0AH
J41:
LCALLDISP
MOVA,R4
JNZJ41
MOVP1,#B
LCALLDISP
DEC44H
DJNZ45H,J42
JMPSTART
RET
DISP:
MOVA,44H;显示
MOVB,#0AH
DIVAB
MOV46H,A
MOV47H,B
MOVA,46H
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV46H,A
MOVA,47H
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV47H,A
MOVA,45H
MOVB,#0AH
DIVAB
MOV48H,A
MOV49H,B;46h,47h东西显示的十位、个位
MOVA,48H
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV48H,A
MOVA,49H
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV49H,A
MOVP0,46H
MOVP2,#B
LCALLDELAY
MOVP2,#0FFH
MOVP0,47H
MOVP2,#B
LCALLDELAY
MOVP2,#0FFH
MOVP0,48H
MOVP2,#B
LCALLDELAY
MOVP2,#0FFH
MOVP0,49H
MOVP2,#B
LCALLDELAY
MOVP2,#0FFH
RETI
DELAY:
MOVR7,#06H
HERE:
DJNZR7,HERE
RETI
TIME0:
PUSHA
PUSHPSW
DECR4
MOVTH0,#3CH
MOVTL0,#0B0H
SETBEA
SETBET0
SETBTR0
POPPSW
POPA
RETI
INT0:
PUSHA
PUSHPSW
MOVP1,#B
MOV44H,#58H
MOV45H,#58H
INTS:
LCALLDISP
JNBP3.5,RED
JNBP3.6,YELLOW
JNBP3.7,JEND
LJMPINTS
RED:
MOV44H,41H
MOV45H,41H
LCALLDISP
MOVA,40H
INCA
MOV40H,A
MOV41H,A
CJNEA,#58H,DDD
MOV40H,#1H
MOV41H,#1H
DDD:
MOV44H,41H
MOV45H,41H
LCALLDISP
JNBP3.7,JEND
JNBP3.6,YELLOW
JNBP3.5,DDD
LJMPINTS
YELLOW:
MOV44H,42H
MOV45H,42H
LCALLDISP
MOVA,42H
INCA
MOV42H,A
MOVA,42H
CJNEA,#0AH,DDD1
MOV42H,#1H
DDD1:
MOV44H,42H
MOV45H,42H
LCALLDISP
JNBP3.7,JEND
JNBP3.5,INTS
JNBP3.6,DDD1
LJMPINTS
JEND:
POPPSW
POPA
LJMPSTART
RETI
INT1:
PUSHA
PUSHPSW
INT1S:
MOVP1,#B
MOV44H,#0H
MOV45H,#0H
LCALLDISP
JBP3.7,INT1S
POPPSW
POPA
RETI
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
RETI
END
附2系统原理图