《1014604890单片机课程设计交通灯.doc》由会员分享,可在线阅读,更多相关《1014604890单片机课程设计交通灯.doc(19页珍藏版)》请在三一办公上搜索。
1、课 程 设 计课程名称 单片机原理与应用 课题名称 交通灯 专 业 班 级 学 号 姓 名 任课教师 课 程 设 计 任 务 书课程名称 单片机原理与应用 课 题 交通灯 专业班级 学生姓名 学 号 指导老师 审 批 任务书下达日期 年 月 日任务完成日期 年 月 日设计内容与设计要求设计内容:本课题以MCS-51系列单片机为核心,有两个功能:1、设计一个交通灯系统,分东西、南北四个方向上的红、黄、绿灯并且在灯亮时有计时显示。设计要求:1)确定系统设计方案; 2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)应用程序的调试。主 要 设 计 条 件单片机开发板
2、,12个LED灯:4个红色、4个绿色、4个黄色,2个9012,10个100电阻,1块万用板。说 明 书 格 式1. 课程设计任务书2. 目录3. 总体方案确定4. 各单元硬件电路设计说明及计算方法5. 软件设计与说明(包括流程图)6. 调试结果与必要的调试说明7. 使用说明8. 总结9参考文献附录附录A 程序清单附录B 系统原理图进 度 安 排设计时间为两周第一周星期一、上午:布置课题任务,讲课及课题介绍 下午:借阅有关资料,总体方案讨论星期二、总体方案星期三、系统设计及调试星期四、系统设计及调试星期五、软件设计及调试第二周星期一、软件设计及调试星期二、写说明书星期三、写说明书星期四、上午:写
3、说明书,整理资料 下午:交设计资料,答辩目录目录6第1章 前言7第2章 基本原理7第3章 总体设计思路83.1 设计方案8第4章 硬件电路的设计方案84.1 LED显示部分的电路设计94.2 按键电路设计10第5章 软件设计方案115.1交通灯工作设计115.2交通灯数码管显示时间设计12第6章 系统调试146.1 软件模拟仿真146.2 硬件调试14第7章 使用说明15第9章 参考文献15附录16第1章 前言目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。例如计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种卡,民用豪华轿车的安全保障系统
4、,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。还有就是我们自动控制领域的机器人、智能仪表、医疗器械等等。因此,学好单片机非常重要。第2章 基本原理利用AT89S51作为主控器组成一个交通灯控制系统和电子时钟。交通灯采用普通LED灯,用+5V的电源来驱动6个LED灯,在+5V电源与LED灯之间加了9012三极管一个,起到开关的作用。电子时钟的设计只用开发板上的电路即可。进入的是交通灯系统,先是东西方向上的绿灯亮,南北方向上的红灯亮,数码管由30开始递减计时,当计时显示到00时,东西方向上的黄灯亮,而南北方向上仍是红灯亮,这时数码管由05开始递减计时,减到0
5、0后,东西方向开始亮红灯,南北方向开始亮绿灯,数码管由30开始递减计时,当计时显示到00时,南北方向上的黄灯亮,而东西方向上仍是红灯亮,这时数码管由05开始递减计时,减到00后,东西方向开始亮红灯,南北方向开始亮绿灯,这样循环。第3章 总体设计思路3.1 设计方案该系统的功能概括起来就是实现简单的交通灯系统和电子时钟。要完成交通灯系统功能,关键在于用单片机选通9012及LED灯让其红、黄、绿灯亮灭交替的变化,数码管的显示用软件延时程序控制。要完成电子时钟功能,需要编写硬件定时程序。交通灯系统采用单片机开发板作为基本元件。在89S51单片机的P1 口的P1.2P1.4口接东西方向上的LED灯,在
6、P1.5P1.7口接南北方向上的LED灯,从P3.5和P3.6口引出线连到9012的基极上,作为LED灯可以点亮的开关信号,9012集电极上的100电阻为了给9012限流,在红灯和黄灯的电路中加入了100的限流电阻,但因为绿灯亮所需压降较大,所以没有给绿灯加100 的限流电阻。第4章 硬件电路的设计方案根据设计要求和设计思路,硬件电路有两部分组成,即单片机开发板,LED灯组成的模拟交通灯系统。在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可通过软件定时实现。硬件定时是利用单片机内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU时间,CPU有较高的工作效率。交通灯系统设计方案
7、采用软件定时的方式,通过编写Delay函数来进行软件延时,可以方便的控制定时时间的长短。4.1 LED显示部分的电路设计本课题所采用得是由LED(数码管)作为显示电路,用以显示红、绿、黄灯点亮的时间。数码管电路即开发板上的数码管电路。4.2 按键电路设计 本课题用按键K3控制交通灯工作的开始,上电后当K3键按下,交通灯开始工作,数码管开始计时。按键电路即采用开发板上的电路。第5章 软件设计方案根据设计要求和设计思路,进行模块设计。5.1交通灯工作设计按K3键启动选通9012,东西绿灯亮,南北红灯亮,关闭9012,数码管显示计时30s选通9012,东西黄灯亮,南北红灯亮,关闭9012,数码管显示
8、计时5s选通9012,南北绿灯亮,东西红灯亮,关闭9012,数码管显示计时30s选通9012,南北黄灯亮,东西红灯亮,关闭9012,数码管显示计时5s 图5-1 交通灯工作图说明:数码管显示程序中即有延时程序,所以交通灯程序内没有调用延时程序。5.2交通灯数码管显示设计显示程序1:启动计时个位显示90,延时,十位保持不变,当个位到0后,十位显示下一数据十位是否显示3个位只显示0,延时,十位显示下一数据 是 否 图5-2 数码管显示程序1显示程序2:启动计时个位显示50,延时,十位保持0不变,当个位计到0后计数结束图5-3数码管显示程序1主程序:启动当按键K3按下,进入死循环,调用交通灯程序,
9、图5-5 主程序图第6章 系统调试6.1 软件模拟仿真 试验所涉及的2个软件keil和multisim10,以下是仿真步骤。 程序调试部分keil先新建一个工程,并保存在所建工程弹出的对话框中选择AT89S51处理器。新建一个文档以编辑程序,将所设计的程序输入到新建文档中,并保存文档.c(c文件)。将所保存的文档添加到工程中去,再进行工程配置,点击Project菜单下的Options for Target ,将Create HEX File打上勾,再编译文件。仿真部分multiim10,运行multism10后进入仿真界面将所需元件选择好,根据原理图画出仿真图(当选择了8051单片机后,系统自
10、动提示装入程序的路径,并建立工程文件),待仿真图连好后点击仿真按钮仿真即可。 6.2 硬件调试硬件调试的步骤如下:接通电源和串口、并口线,打开ISplay软件,进行程序设置,关掉ISPlay,再打开,通过软件将在keil中生成的.hex文件下载到单片机板子上即可。当程序下载完之后,只有电源指示灯亮,按下K3键交通灯开始工作,并且数码管同步显示计时,按复位键可是交通灯和数码管都停止工作。第7章 使用说明 插上电源,若先按下键K3则进入交通灯系统:交通灯开始工作并且数码管开始计时,若想进入电子时钟系统则按复位键,再按K4;按下键K4进入电子时钟系统:按下键K1秒数加1,按下键K2分钟数加1,按下键
11、K4分钟数、秒数都清0,计时从新开始。若想进入交通灯系统则按复位键,再按K3。第9章 参考文献参考文献 :单片机c语言程序设计实例100例单片机电路设计、分析与制作附录A、程序清单:#include /51单片机头文件#define uchar unsigned char /定义两个宏定义,就是定义unsigned型的int,char变量#define uint unsigned intuchar code Tab1=0xB0,0xA4,0xF9,0xC0; /定义十位显示数据30uchar code Tab2=0x90,0x80,0xF8,0x82,0x92,0x99,0xB0,0xA4,0
12、xF9,0xC0; /定义个位显示数据90sbit r1=P12; /绿灯1的控制端sbit y1=P13; /黄灯1的控制端sbit g1=P14; /红灯1的控制端sbit r2=P15; /红灯2的控制端sbit y2=P16; /黄灯2的控制端sbit g2=P17; /绿灯2的控制端sbit P10=P10;sbit P11=P11;sbit P23=P23;sbit P26=P26;sbit csdx=P35; /交通灯使能端,低电平有效 sbit csnb=P36;void delay(uint z) /延时函数,就是两个for循环uint x;for(;z0;z-)for(x=
13、400;x0;x-);void display1() /显示程序1:为了给红灯和绿灯亮定时 uint i,j,k;P10=1;P11=1;for(i=0;i4;i+) for(k=0;k10;k+) for(j=0;j100;j+) if(i=0) /如果十位要显示3,则个位只显示0,显示1s k=9; P23=0;P0=Tab1i;delay(3);P23=1; P26=0;P0=Tab29;delay(3);P26=1; else /如果十位显示2、1、0,则个位显示从90,每个数据显示1s P23=0;P0=Tab1i;delay(3);P23=1; P26=0;P0=Tab2k;del
14、ay(3);P26=1; void display2() /显示程序2:为了给黄灯亮定时 uint j,k;P10=1;P11=1; for(k=4;k10;k+) /十位显示0不变,个位显示有50,每个数据显示1s for(j=0;j100;j+) P23=0;P0=Tab13;delay(3);P23=1; P26=0;P0=Tab2k;delay(3);P26=1; void deng() while(1) /死循环,就是程序一直在执行这个程序段 csdx=0;csnb=0; /东西绿灯亮,南北红灯亮r1=1;r2=0;g1=0;g2=1;y1=1;y2=1;display1(); cs
15、dx=1;csnb=1; csdx=0;csnb=0; /东西黄灯亮,南北红灯亮g1=1;r2=0;y1=0;g2=1;r1=1;y2=1;display2(); csdx=1;csnb=1; csdx=0;csnb=0; /东西红灯亮,南北绿灯亮 y1=1;r2=1;r1=0;g2=0;g1=1;y2=1;display1(); csdx=1;csnb=1;csdx=0;csnb=0; /东西红灯亮,南北黄灯亮y1=1;g2=1;r1=0;y2=0;g1=1;r2=1;display2(); csdx=1;csnb=1;void main() /主函数 P3=0xff; if(P3&0x3c
16、)=0x1c) while(1) MINITE=0; SECOND=0; TCNT=0; TMOD=0x01; /定时器0工作在方式1 TH0=(65536-25000)/256; /装入计数初值,定时50ms TL0=(65536-25000)%256; IE=0x82; /开总中断允许位,并允许定时器中断 TR0=1; /启动定时器0 while(1) KEY_TEST(); if(restar=1) break; B、电路原理图单片机原理与应用课程设计评分表班级:姓名: 学号:项 目评 价设计方案的合理性与创造性开发板焊接及其调试完成情况硬件设计或软件编程完成情况*硬件测试或软件调试结果*设计说明书质量设计图纸质量答辩汇报的条理性和独特见解答辩中对所提问题的回答情况完成任务情况独立工作能力组织纪律性(出勤率)综合评分 指导教师签名:_ 日 期:_