单片机课程设计报告-交通信号灯控制系统设计.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:8 大小:91KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

单片机课程设计报告-交通信号灯控制系统设计.doc

单片机课程设计报告-交通信号灯控制系统设计.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

单片机课程设计报告一、设计目的1、通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。2、通过交通信号灯控制系统的设计,掌握定时/计数哭的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。二、设计任务和要求任务:设计一个能够控制十二盏交通信号灯的模拟系统要求:利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。三、设计原理分析人行道人行道人行道人行道1、首先了解实际交通灯的变化情况和规律。假设一个十字路口如上图所以,为东南西北走向。初始状态0为东西南北都红灯亮。然后转状态1东西绿灯通车,南北红灯亮。过一段时间后,转状态2,东西绿灯灭,黄灯闪几下,南北还是红灯。再转状态3,南北绿灯通车,东西红灯亮。过一段时间后转状态4,南北绿灯灭,闪几个黄灯,东西还是为红灯亮,一段时间后,又循环至状态1。列出交通信号灯的状态表如下:(其中,1代表灯亮,0代表灯灭)状态北西南东绿黄红绿黄红绿黄红绿黄红000100100100110011000011002001010001010310000110000140100010100012、对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O口上的P1口中的6个引脚即可来控制6个信号灯。3、通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。4、通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒计时间的显示功能,实现其功能的扩展。四、硬件资源及其分配主要用到的硬件:P1口、P3口、LED数码管、LED发光二级管、定时器T0硬件分配:1、P1口:做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下:方向状态无南北东西十六进制值说明P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.000000100109H都为红灯亮1000011000CH东西绿南北红2000010100AH东西黄闪南北红0000100008H30010000121H东西红南北绿40001000111H南北黄闪东西红0000000101H2、P3口中的P3.0(RXD)和P3.1(TXD)作特殊用途,数据(倒计时时间)从RXD端输入,TXD端输出。3、74LS240和LED发光二极管用来显示灯亮情况。4、定时/计数器T0用来产生1秒的定时5、74LS240和数码管用来显示时间五、硬件图六、程序框图七、程序流程图及程序程序流程图:主程序:程序清单:;主程序:ORG0000HAJMPMAINORG0030HMAIN:MOVSP,#60HMOVSCON,#00H;设置串行口工作方式为方式0CLRTICLRRIMOVA,#09H;置初态,东南西北都为红灯亮MOVP1,AMOVR2,#4LCALLDELAY;调用4次1秒的延时子程序H1:MOVA,#0CH;东西绿灯亮,南北红灯亮MOVP1,AMOVR2,#10LCALLDELAY;调用10次1秒的延时子程序MOVR7,#03H;黄灯闪烁次数为3次H2:MOVA,#0AH;东西黄灯闪,南北红灯亮MOVP1,AMOVR2,#1LCALLDELAY;每1秒闪烁一次MOVA,#18H;南北红灯亮,南北黄灯也闪MOVP1,AMOVR2,#1LCALLDELAY;调用1秒的延时子程序DJNZR7,H2;判断闪烁次数是否达到MOVA,#21H;东西红灯亮,南北绿灯亮MOVP1,AMOVR2,#10;LCALLDELAY;延时10秒MOVR7,#03HH3:MOVA,#11H;东西红灯亮,南北黄灯闪MOVP1,AMOVR2,#1LCALLDELAYMOVA,#03H;东西红灯亮,东西黄灯闪MOVP1,AMOVR2,#1LCALLDELAYDJNZR7,H3;判断黄灯闪的次数是否达到LJMPH1;循环;1秒的延时子程序:DELAY:MOVR3,#20;定时1秒MOVTMOD,#10H;T1定时器,方式1MOVTH1,#3CHMOVTL1,#0B0HSETBTR1LOOP:JBCTF1,NEXTSJMPLOOPNEXT:MOVTL1,#080HMOVTH1,#3CHDJNZR3,LOOP;数据传送:DECR2;R2自动减1MOVDPTR,#CDATA;置表初地址MOVA,R2;屏蔽R2的高位SWAPAANLA,#0FH;MOVCA