MCS51单片机可调交通灯设计.docx
- 文档编号:18540408
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:15
- 大小:370.88KB
MCS51单片机可调交通灯设计.docx
《MCS51单片机可调交通灯设计.docx》由会员分享,可在线阅读,更多相关《MCS51单片机可调交通灯设计.docx(15页珍藏版)》请在冰点文库上搜索。
MCS51单片机可调交通灯设计
MCS-51单片机可调交通灯设计
目录
第一部分课程设计任务书2
一、课程设计题目2
二、课程设计时间2
三、课程设计提交方式2
四、设计要求2
第二部分课程设计报告3
一、单片机发展简史3
二、MCS-51单片机系统简介3
三、设计思路4
四、硬件设计电路5
五、软件设计流程8
六、程序源代码8
七、结束语14
八、参考文献14
第一部分课程设计任务书
一、课程设计题目
MCS-51单片机最小系统设计
二、课程设计时间
一周
三、课程设计提交方式
提交打印课程设计报告
四、设计要求
1、南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为35秒、支干道每次通行间为25秒,时间可设置修改。
2、在绿灯转为红灯时,要求黄灯先亮闪5秒钟,才能变换运行车道;
3、黄灯亮时,要求每秒闪亮一次
4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。
5、一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。
6、有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟
第二部分课程设计报告
一、单片机发展概况
单片机的发展从嵌入式系统的角度可分为SCM、MCU、SOC三大阶段。
1)SCM(Single-ChipMicrocomputer)单片微型计算机
最佳的单片形态、最佳体系结构。
如Intel公司的MCS系列。
(2)MCU(MicroControllerUnit)微控制器
对象的智能化控制能力。
如Atmel公司的FlashROM(闪存)技术的AT89S××系列。
(3)SOC(SystemOnChip)片上系统
应用系统在芯片上的最大化解决,如Silabs公司的C8051F系列。
v1974-1976年:
4位、8位单片机、Fairchild双片的F8系列
v1977-1978年:
8位单片机IntelMCS-48系列
v1979-1982年:
高档8位单片机IntelMCS-51系列8031/8051/8751、8032/8052/8752低功耗型80C31、高性能型80C252、廉价型89C2051/1051、AT89S51。
v1983年-至今16位单片机IntelMCS-96系列8098/8096、80C198/80C196,DSP32位单片机ARM系列
二、MCS-51单片机系统简介
8051是MCS-51系列单片机的典型产品。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
·中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
·数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
·程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
·定时/计数器(ROM):
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
·并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
·全双工串行口:
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
·中断系统:
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
·时钟电路:
38051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
三、设计思想
设计思路
根据题目要求,显示界面我们采用数码管和LED灯相结合的方法,因为实际既要求倒计时施主输出,又要求又状态灯输出等,为方便观看并考虑到现实状况,用8个数码管与12个LED(4个红灯、4个黄灯、4个绿灯)分别显示时间和提示信息。
这种方案既满足系统功能要求,又减少了系统实现的复杂度。
考虑到数码显示我们采用了动态显示的方法。
按键方面我用了三个,一个用于暂停和开启等,一个用于加时间,一个用减时间。
主控制方案采用AT89C51单片机作为控制器。
对于软件系统的设计,我们采用单片机汇编语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。
设计方案
电源提供方案:
为使模块稳定工作,须有可靠电源。
因此考虑了两种电源方案:
方案一:
采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
方案二:
采用单片机控制模块提供电源。
该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。
综上所述,我们选择第二种方案。
显示界面方案:
采用数码管显示。
这种方案只显示有限的符号和数码字符,简单,方便。
输入方案:
题目要求系统能调节灯亮时间,并可处理紧急情况,我门采用了直接在I/O口线上接上按键开关。
因为该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,
交通管理的方案:
东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯闪亮提示人们注意红、绿灯的状态即将切换。
指示灯燃亮的方案如下表
红灯
绿灯
黄灯
东西道
25s
30s
闪5s
南北道
35s
20s
闪5s
(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。
时间为25秒。
(2)黄闪5秒,警示车辆和行人红、绿灯的状态即将切换。
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。
时间为35秒。
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
四、硬件电路设计
LED显示器有两中工作方式:
静态显示方式和动态显示方式。
静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字型码。
送入一次字型码显示自行一直保持,直到送入新字型码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
各数码管在显示过程中持续得到显示信号,与各数码管接口的I/O口是专用的。
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
各数码管在显示过程中轮流得到显示信号,与各数码管接口的I/O口是共用的。
该设计采用如下所示的数码管,分别显示南北和东西灯的剩余时间。
片选部分和数码段显示部分,分别接单片机管脚的P2口和P0口,具体的共阴数码管下见图。
其中,A到G为码段控制端口,1,2为片选端口
时钟部分电路设计:
时钟电路用于产生MCS-51单片机工作时所必须的时钟控制信号。
其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。
本设计采用12MHz晶振和两个33Pf瓷片电容,他们构成一个稳定的自激振荡器。
该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
为单片机提供标准时钟。
其中两个瓷片电容起微调作用。
如图所示:
总电路图:
五、软件设计框图
六、程序源代码
ORG0000H
LJMPSTART1
ORG0003H
LJMPINTT0
ORG0013H
LJMPINTT1
ORG001BH
LJMPTT1
ORG0100H
TT1:
MOVTH1,#0D8H;定时器1,定时10ms
MOVTL1,#0F0H
DJNZR6,EXIT
MOVR6,#100;定时器定时100次
MOVR1,#0FFH
LCALLKEYSCAN
EXIT:
RETI
INTT0:
MOVP1,#0BEH;外部中断0,
JBP3.4,$
RETI
INTT1:
MOVP1,#0BBH;外部中断1,
JBP3.4,$
RETI
ORG1000H
START1:
MOVIE,#8DH;开总中断,开外部中断0,1,定时器1
SETBTR1
MOVR6,#100;主程序;
MOVR1,#00H
MOVTMOD,#10H;初始化
MOVTH1,#0D8H;定时10ms
MOVTL1,#0F0H
MOV20H,#30;NBL
MOV21H,#5;NBDXY
MOV22H,#20;DXL
MOV23H,#35;DXH
MOV24H,#25;NBH
MAIN:
LCALLSCAN
SJMPMAIN
DL1MS:
MOVR6,#14H
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET
SCAN:
;开启定时
ST1:
MOVP1,#0EBH;第一个状态,主干道亮绿灯、支干道亮红灯;
CJNER1,#0FFH,TZ1
MOVR1,#00H
DEC20H;时间减1
DEC23H
TZ1:
MOVR2,20H
MOVR3,23H
LCALLDISP;调用显示子程序。
MOVA,20H
CJNEA,#00H,ST1
MOV20H,#30
ST2:
MOVP1,#0EDH
LCALLDELAY1
MOVP1,#0EFH
LCALLDELAY1;第二个状态,主干道亮黄灯、支干道亮红灯;
CJNER1,#0FFH,TZ2
MOVR1,#00H
DEC21H
DEC23H
TZ2:
MOVR2,21H
MOVR3,23H
LCALLDISP;调用显示子程序。
MOVA,21H
CJNEA,#00H,ST2
MOV21H,#05
MOV23H,#35
ST3:
MOVP1,#0BEH;第三个状态,主干道亮红灯、支干道亮绿灯;
CJNER1,#0FFH,TZ3
MOVR1,#00H
DEC24H
DEC22H
TZ3:
MOVR2,24H
MOVR3,22H
LCALLDISP;调用显示子程序。
MOVA,22H
CJNEA,#00H,ST3
MOV22H,#20
ST4:
MOVP1,#0DEH
CALLDELAY1
MOVP1,#0FEH
CALLDELAY1
MOVP1,#0DEH;第四个状态,主干道亮红灯、支干道亮黄灯;
CJNER1,#0FFH,TZ4
MOVR1,#00H
DEC24H
DEC21H
TZ4:
MOVR2,24H
MOVR3,21H
LCALLDISP;调用显示子程序。
MOVA,21H
CJNEA,#00H,ST4
MOV21H,#05
MOV24H,#25
;LJMPST1;跳转到第一个状态。
RET
DISP:
MOVA,R2;显示子程序。
MOVB,#10
DIVAB
MOV60H,A
MOV61H,B
MOVA,R3
MOVB,#10
DIVAB
MOV62H,A
MOV63H,B
MOV40H,#04H
MOVR5,#0FEH
MOVR0,#60H
LLP:
MOVA,@R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
MOVA,R5
MOVP2,A
LCALLDELAY1
MOVP2,#0FFH
RLA
MOVR5,A
INCR0
DJNZ40H,LLP
RET
DELAY1:
;延时子程序
MOVR4,#12
DL22:
MOVR7,#12
DJNZR7,$
DJNZR4,DL22
RET
TABLE:
DB3FH,06H,5BH,4FH,66H;显示0到9
DB6DH,7DH,07H,7FH,6FH
KEYSCAN:
JNBP3.5,KEYSCAN0
KEYOUT:
;SETBEA
RET
KEYSCAN0:
LCALLDL1MS
LCALLDL1MS
LCALLDL1MS
LCALLDL1MS
LCALLDL1MS
MOVIE,#00
CLRTR1
JBP3.5,$
WAIT0:
JNBP3.5,WAIT0
RET
END
七、结束语
在本次课程设计中,重新巩固了单片机理论课时,感觉到的内容很多,知识点很杂、很繁琐。
通过我们合作的努力也更进一步掌握了单片机的内容构造和工作原理,以及接外部电路的情况。
当然光有理论知识那只是“纸上谈兵”,还需实际动手去实践。
真正把所学的用到日常生活中,理论联系实际,做出实物模型。
这次单片机课程设计,我们设计的是简易十字路口交通灯设计,通过这次课程设计我感觉到要想做成功,必须花时间多做准备,查阅大量资料,每个过程都很繁琐,都要认真地分析每一步每一个模块要实现大的功能,然后分步进行编写调试,最后整合成在一起。
在这次课程设计中,让我们感到过程决定结果,细节觉得成败。
过程很艰难,每个细节都要认真的分析。
通过本次课程设计,我们要对所做的事情有耐性,在编程的时候有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做;认真虚心求教老师和同学。
在本次课程设计中,遇到最难的问题是手动控制这个模块。
由于在开始时没有设计这一块,以至于到后来想程序里加非常困难。
虽然经过努力和老师的帮助,但最终还是没能实现着一块。
这是我们明白了做事情要从整体考虑,否则即使其他方面做的再好,但结果还是不能令人满意!
!
在本次课程设计中,我们用汇编语言编写,觉得汇编语言很复杂很麻烦,能用的寄存器少,每个参数都要放在寄存器里,很繁琐,而且格式是固定的,编写出来的程序很长。
在这次课程设计中,经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。
八、参考文献
[1]王鑫.单片机原理及其应用.北京:
电子工业出版社
[2]余发山,王福忠.单片机原理及应用技术.徐州:
中国矿业大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 单片机 可调 交通灯 设计