您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 单片机课程设计(交通灯、秒表)
课程设计报告(2010—2011学年第2学期)课程名称:单片机课程设计班级:学号:姓名:指导教师:2011年03月实习报告一、目的运用所学理论知识及实验方法解决实际问题,通过这些活动培养分析问题和解决问题的能力。具体表现在构造一个控制系统框架的能力;检索和阅读文献资料的能力;综合运用所学专业知识使之对所设计系统具有独立调试的能力和故障处理的能力;绘图能力;计算机运用能力;逻辑思维能力与形象思维能力;文字及口头表达的能力;撰写实习报告的能力。二、内容和要求1、用PROTEL99SE画单片机系统原理图;2、焊接电路板;3、根据编程任务要求编写并调试程序;4、撰写报告;5、参加实习成果验收及面试或考试;任务1:交通灯(1)基本要求:以单片机为核心设计一个完整的交通灯模拟系统。所谓模拟就是以每组有绿,红,黄色3支共两组发光二极管表示交通信号灯,数码管2只共两组以递减的方式表示各色信号灯的时间。在双干线路口上,交通信号灯的变化是定时的。假定:(1)、放行线:绿灯亮放行25秒,黄灯亮警告5秒然后红灯亮禁止。(2)、禁止线:红灯亮禁止30秒,然后绿灯亮放行。使两条路线交替地成为放行线和禁止线,就可以实现定时交通控制。假定以P1口线接6支发光二极管(即交通信号灯),因为电路中有反相器的关系,所以口线输出高电平则“信号灯”熄灭,口线输出低电平则“信号灯“亮。(2)进阶要求一:在基本要求的基础上,要求红绿灯时间可通过按键设置,例如红灯60秒,绿灯52秒,黄灯8秒。提示:时间设置一定是要遵循以下规律:红灯时间=绿灯时间+黄灯时间。任务2:秒表要求:至少包括4个功能:时间清零;启动计时;暂定计时;继续计时;计时最小单位0.1秒,最大计时时间999.9秒。实习报告三、过程(如实际程序开发、电子制作,详细说明有关原理、开发过程、调试过程、结果)交通灯:(一)、功能描述:这是一个交通灯模拟系统,每组有绿,红,黄色3支共两组发光二极管表示交通信号灯,数码管2只共两组以递减的方式表示各色信号灯的时间。在双干线路口上,交通信号灯的变化是定时的。初始时间设定为红灯30秒,绿灯25秒,黄灯5秒,在此基础上可通过按键修改红绿灯的时间。(二)、硬件部分:电源模块:1、模块功能简介:此模块为整个系统提供稳定的5V电压。2、电路图:3、所用芯片介绍:LM2576系列开关稳压集成电路是线性三端稳压器件的替代品,它具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力,从而为MCU的稳定、可靠工作提供了强有力的保证。主要特性:最大输出电流:3A;最高输入电压:LM2576为40V,LM2576HV为60V;输出电压:3.3V、5V、12V、15V和ADJ(可调)等可选;振动频率:52kHz;转换效率:75%~88%(不同电压输出时的效率不同)。实习报告实习报告单片机最小系统模块:1、模块功能介绍:本系统包括时钟电路和复位电路。本课程设计采用的单片机是SST89E58,晶振采用12MHz。2、电路图:以上电路包括时钟电路和复位电路。时钟电路是由振荡电路和分频电路组成,其中振荡电路是由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲;分频电路则用于把振荡脉冲分频,以得到所需要的时钟信号。晶振采用12MHz。复位电路是采用的按键电平复位,通过使复位端经电阻与VCC电源接通而实现的。3、所用芯片介绍:SST89E58是通用的8位系列兼容微处理器,工作电压在4.5V和5.5V之间;内部RAM共有1KB;4个8位并行双向I/O口(32个I/O引脚);有4个中断源(2个定时器中断和2个外部中断);采用40引脚双列直插式的封装形式。实习报告8段数码管显示模块:1、模块功能介绍:此模块用来显示实验中药显示的时间等数字。这是由条形发光二极管组成“8”字形的LED显示器。发光响应快,亮度强,高频特性好。2、电路图:为了给发光二极管加驱动电压,上图中公共引脚的接法为共阳极接法,把发光二极管的阳极连在一起作为阳极公共引脚,这样阴极引脚上加低电平时即可导通点亮。3、显示原理介绍:本次课程设计中为并排使用的4位数码管,采用动态显示方式。显示时通过位控信号采用扫描的方法逐位地循环点亮各位数码管。虽然在任一时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果一样。动态显示需要为各位提供段控和位控,把段码表预先存放在存储器中,使用时通过查表就可以得到段码。而通过并行口输出的相互独立的位码则是起选通作用的,用于选择显示位。因此,需要用到接口芯片的两个数据口。本设计中所用的是8155,下面介绍。4、所用芯片介绍:见下页实习报告8155:芯片引脚介绍:CE:芯片片选端。/RD、/WR:读写信号。ALE:地址锁存信号。IO/E:为IO/RAM选择线,低电平选择RAM,高电平选择I/O。PA0~PA7为端口A。PB0~PB7为端口B。PC0~PC7为端口C。在设计中,使用PB口为位码输出口,以PB7~PB4输出位控线。PA口为段码输出口,加接74HC244进行段控输出驱动。因为8155只能输出显示段码而不具有控制功能,所以动态显示要靠程序实现。实习报告LED灯模块:1、模块功能介绍:此模块用来作为模拟交通灯的红黄绿灯的闪烁。2、电路图:3、显示原理介绍:本设计中使用两组发光二极管,采用共阳极接法,阳极公共引脚接+5V,阴极引脚上加低电平时即可导通点亮。按键模块:1、模块功能介绍:此模块用来作为开关选择。2、电路图:使用时,用跳线将所需引脚与相应开关相连接。实习报告(三)、软件部分:1、设计思想:此次设计是在基本功能上修改的,实现了可修改红黄绿灯时间的功能。首先,基本功能是两组发光二极管表示交通灯信号,4个数码管分2组以递减的方式表示各色信号灯的时间。然后,在此基础之上,要求红绿灯时间可通过按键设置,则需要用到相应存储单元来控制时间。2、流程图:交通灯的基本功能大致可分为两部分,一部分为信号灯的控制,另一部分为数码管时间的显示,这两部分都是通过相应的关系控制的。可分为4种情况:(1)、A组红灯亮,B组绿灯亮;(2)、A组红灯继续亮,B组黄灯亮;(3)、B组红灯亮,A组绿灯亮;(4)、B组红灯继续亮,A组黄灯亮。流程图如下:实习报告定时中断子程序:中断服务程序的主要功能是进行计时操作,设计一个以1秒为周期的中断子程序。流程图如下:(四)、程序的调试与运行:程序的调试运行采用KEILC51编译器,支持汇编语言和标准C语言。经过一系列的调试之后,终于可以成功运行。保护现场是否满20次计数器重新加载循环次数减1秒加1秒缓冲单元清零YN是否满红黄绿时间之和YN定时中断入口现场恢复返回实习报告秒表:(一)、功能描述:这是一个简易秒表,具有4个功能:启动计时、暂定计时、继续计时、时间清零。其中计时最小单位0.1秒,最大计时时间999.9秒。(二)、硬件部分:详细请见交通灯硬件部分(除去LED灯部分)(三)、软件部分:1、设计思想:使用3个按键实现4个功能,其中暂停和继续是一个键,这里通过判断存储单元的奇偶来选择暂停和继续。主要采用按键查询加中断定时的方法。2、流程图:其中定时中断子程序与交通灯思想类似,此处不再叙述。开始开始键暂停键清零键暂停是否按过暂停存储单元开始暂停继续清零YYYNY偶奇循环检查按键NNN实习报告(四)、程序的调试与运行:秒表程序设计过程中,初步完成时遇到2个bug:1、未开始时,按两下暂停键,秒表也会开始计数;后来加了开始键计数单元,来判断有没有开始,若没有开始,暂停键不作用。2、暂停后,按开始键也会继续;后来加了暂停键计数单元来判断暂停键是否按过,若已按过,开始键则不作用。总电路图:这是总的PCB图,其中电源模块没有画出来。实习报告附:设计程序(主要部分)任务一:交通灯/******交通灯的基本功能********/LOOP:SETBTR0MOVA,60HADDA,61HMOV62H,A;62H存放红灯时间MOVA,61HADDA,62HMOV63H,A;63H存放红灯时间加绿灯时间ADDA,60HMOV64H,A;64H存放红黄绿时间之和CLRCMOVA,51HSUBBA,61HJCLOOP1;计数值与61H比较CLRCMOVA,51HSUBBA,62HJCLOOP2;计数值与62H比较CLRCMOVA,51HSUBBA,63HJCLOOP3;计数值与63H比较CLRCMOVA,51HSUBBA,64HJCLOOP4;计数值与64H比较CLRCLOOP1:MOVP1,#0DEH;A组红灯亮,B组绿灯亮11011110MOVA,62HSETBCSUBBA,51HMOV53H,A;62H-当前计数值送到53HA组灯CLRCSUBBA,60HMOV52H,A;61H-当前计数值送到52HB组灯CLRCSJMPSHUMA1LOOP2:MOVP1,#0EEH;A组红灯继续亮,B组黄灯亮11101110MOVA,62HSETBCSUBBA,51HMOV53H,A;62H-当前计数值送到两组MOV52H,ACLRCSJMPSHUMA1LOOP3:MOVP1,#0F3H;B组红灯亮,A组绿灯亮11110011实习报告MOVA,63HSETBCSUBBA,51HMOV53H,AADDA,60HMOV52H,ACLRCLJMPSHUMA1LOOP4:MOVP1,#0F5H;B组红灯继续亮,A组黄灯亮11110101MOVA,64HSETBCSUBBA,51HMOV53H,AMOV52H,ALJMPSHUMA1/*********设置黄灯绿灯的时间********/NEXT1:CLRTR0LCALLDELAY2LCALLDELAY2MOV60H,#00HMOV61H,#00HMOV20H,#00HMOV21H,#00HMOVP1,#0FFHNEXT:JNBP3.2,COUNTER0;查询INT0口,有外部脉冲时60H自加1JNBP3.3,COUNTER1;查询INT1口,有外部脉冲时61H自加1JNBP3.5,L;查询,有外部脉冲时执行交通灯红黄绿基本功能LJMPSHUMAL:LCALLDELAY2LCALLDELAY2LJMPLOOPCOUNTER0:LCALLDELAY2INC60HMOV52H,60HLJMPSHUMACOUNTER1:LCALLDELAY2INC61HMOV53H,61HLJMPSHUMADELAY2:MOVR6,#0FFHDELAY3:MOVR5,#0FFHDJNZR5,$DJNZR6,DELAY3RET以上设置时间部分主要采用查询按键的方法来进行设置时间,同时送到数码管显示。实习报告任务二:秒表NEXT:MOVR5,25HCJNER5,#01H,LJNBP3.2,BEGINL:JNBP3.3,COUNT0;以上可以使在暂停的情况下,按开始键不会继续JNBP3.4,CLEARLCALLDISP;调用显示子程序SJMPNEXT;重新循环NOPNOPNOPCOUNT0:LCALLDELAY2;此段用来判断有没有开始,若没有开始,摁两下暂停键也不会开始MOVR6,26HCJNER6,#00H,COUNT1LJMPLCOUNT1:;当按键存储单元为奇数时继续,为偶数则暂停LCALLDELAY2INC25HMOVA,25HMOVB,#02HDIVABMOVR7,BCJNER7,#00H,CONTINUEJMPSTOPJMPNEXTBEGIN:LCALLDELAY2;开始,并用26H记录INC26HSETBTR0JMPNEXTSTOP:LCALLDELAY2;暂停CLRTR0JMPNEXTCONTINUE:LCALLDELAY2;继续SETBTR0JMPNEXTCLEAR:LCALLDELAY2;清零LJMPMAINDELAY2:MOVR6,#0FFHDELAY3:MOVR5,#0FFHDJNZR5,$DJNZR6,DELAY3RET/************定时中断处理程序*************/TIME:PUSHACC;保护现场PUSHPSWMO
本文标题:单片机课程设计(交通灯、秒表)
链接地址:https://www.777doc.com/doc-226655 .html