欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的交通灯设计.docx

    • 资源ID:16150080       资源大小:66.58KB        全文页数:19页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的交通灯设计.docx

    1、基于单片机的交通灯设计 1 交通灯的设计目的及方案介绍1.1设计课题的目的 通过单片机的课程设计,加深和巩固单片机知识,提高综合及灵活运用所学的知识来解决日常生活及工业控制的能力,提高针对知识的需要,选择和查阅其他资料书籍、灵活运用其中知识及自学能力,提高组成系统、编程、制版、调试的全方面能力,通过对课题设计方案的分析、选择、比较,熟悉单片机运用于系统开发、研制的过程,软硬件设计的方法、内容及步骤。培养发现问题、分析问题和解决问题的能力以及创新能力和创新思维的提高。1.2设计要求及说明 设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状

    2、态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。1.3方案介绍及工作原理1.3.1 方案介绍系统整体框图如图1.1所示:1.3.2 工作原理 该系统采用的是使用现有单片机最小的硬件电路和P3口控制交通灯,P2口控制数码管各位,P0口控制数码管各段,P1.0、P1.1口线控制数码管各位和P1.2口接收紧急信号电路集合而成,构成交通灯的总体电路,即交通灯。通过对单片

    3、机编写对应的程序,控制各个部分,达到预期的效果。2 交通灯的硬件设计及PCB图2.1 交通灯原理图电路原理图如附录一,电路原理图由各功能模块组成。2.2 交通灯各模块功能2.2.1 单片机最小系统电路 单片机最小系统由CPU,复位电路,振荡电路三部分构成,CPU采用的是Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容的AT89S52芯片。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT

    4、89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52 。复位电路用于产生复位信号,通过RST引脚送入单片机,进行复位操作。而复位电路又可以分为上电复位,按键电平复位和按键脉冲复位这三种,在这次设计中,选用的是按键电平复位电路。其功能为:上电的同时,RC回路开始充电,RST引脚端出现正脉冲,只要RST段保持10ms以上的高电平,就能够使

    5、单片机有效的复位。振荡电路是从AT89S52的XTAL1和XTAL2接入时钟信号的。由外接晶振及电容C1,C2所构成的并联谐振电路接在放大器的反馈回路中。在设计电路板时为减小干扰,晶振和电容应该尽可能的与单片机近些,以减少寄生电容,更好的保证振荡器稳定可靠。其功能为:产生振荡脉冲,为单片机运行提供时序。 上拉电阻是为了拉高电压,增强IO口的驱动能力。2.2.2 显示电路设计单片机应用系统最常用的显示器是LED(发光二极管显示器)、LED(液晶显示器)。这两种显示器可显示数字、字符及系统的状态。它们的驱动电路简单、易于实现且价格低廉,因此,得到了广泛应用。本次设计要显示数字倒计时,用数码管动态显

    6、示。将LED显示器各位数码管的所有段控端相应地并联在一起,由P0的8个口线控制,形成段选线多路复用,而各位数码管的共阳极分别由P2口的其中四个口线控制,实现各位的分时选通。共阳极数码管字形代码表如表2.1所示。表2.1 共阳极数码管字形代码表字型共阳代码字型共阳代码0C0H682H1F9H7F8H2A4H880H3B0H990H499HP.0CH592H灭FFH2.2.3 数码管驱动电路设计本设计采用的数码管驱动是采用PNP三极管驱动,有效增强数码管显示的亮度。当给P2口线与三极管的发射极相连,用于连接数码管位控与三极管的集电极相连,三极管的基极通过电阻与地相连,当给P2高电平的同时,输出高电

    7、平信号控制数码管的显示位显示。 2.2.4 紧急按键电路设计紧急信号为低电平,通过设计紧急按键电路与P1.2口相连接,紧急信号通过P1.2输入单片机内部,当紧急事件过去后,单片机回到原来的地方继续工作。2.2.5 程序下载口电路设计ATMEL公司的89S5XX提供了支持ISP(在线下载程序) 并口下载功能,它只需一块八位锁存器就可以实现了,原理如下:MOSI:数据串行输出 (S52P1.5脚),MISO:串行数据输入(S52 P1.6脚),SCK:同步控制时钟(S51 P1.7脚),RST接单片机复位脚,当有足够的高电平使S51处于复位状态,它就会开启读写程序功能。2.2.6 电源电路设计因为

    8、本次设计所需电源的模块有单片机最小系统,数码管显示器,二极管交通灯,它们所需电源都为+5V,因而电源设计只需设计一个+5V电源。为了供电方便,我们直接在插孔处引一根数据线用USB接口供电。 2.2.7 交通灯元器件清单 交通灯元件清单如表2.2。表2.2 交通灯元件清单元件名称元件个数元件特性AT89S521电阻25 4.7K3 1K1 200电容2 33pF极性电容1 22FLED数码管2 4位一体共阳晶振1 12M发光二极管4 红色4 绿色按键9 四角开关1 六角USB电源接口12.3 PCB设计图我们可以根据设计电路原理图,以购买的元器件的尺寸、引脚,仔细封装各个元器件,如果不能在库里找

    9、到的我们自己根据实际需要,自己创建封装。2.3.1元器件布局图 交通灯元器件布局图如附录二所示2.3.2PCB图根据电路原理图,将每个元器件放置在适当的位子,按照PCB画线的原则,以正确,美观,认真将各个元器件连接起来。PCB图如附录三所示。 3 交通灯的软件设计3.1 单片机资源分配由电路原理图可知,单片机AT89S52的资源分配如下:第9脚RST接复位电路和下载口复位端;第18脚XTAL1、第19脚XTAL2接振荡电路;P0口用于数码管显示器的段控控制;P1口接数码管的位控控制 P3口接LED灯3.2 软件系统各模块功能3.2.1 显示P.模块 该模块的功能是在单片机上电或者复位后,在数码

    10、管上显示“P.”,此时系统处于等待工作状态。在按下开始按钮后,跳出此模块,进入正常的工作状态。3.2.2 亮灯模块 该模块的功能是控制交通灯的亮与灭,在程序中,先控制主路的绿灯亮57S,再黄灯闪烁3秒,即每秒亮半秒灭半秒,同时支路上的红灯亮60S;再控制支路上的绿灯亮27S,再黄灯闪烁3秒,即每秒亮半秒灭半秒,同时主路上的红灯亮30S。正常情况下,随着主程序循环。当紧急按钮按下后,控制两个路口的红灯同时亮十秒,待紧急时间过去,主动跳出。3.2.3 显示模块 该模块的功能是主路和支路上的时间显示。当系统开始运行时,同时在主路和支路上显示60S的倒计时,待60S过后,同时在主路和支路上显示30S的

    11、倒计时,正常情况下,随着主程序循环。当按下紧急按钮之后,同时在主路和支路上显示10S的倒计时,之后主动跳出。3.2.4 紧急按钮模块 该模块的功能是在出现紧急情况下,按下紧急按钮,送入单片机信号,系统进入紧急状态,在数码管显示10S倒计时,同时主路和支路的红灯都亮。待10S过后,自动跳出。3.2.5 延时模块 该模块的功能是为其他各模块提供延时。不论是数码管显示的延时,红绿灯亮的延时,黄灯的闪烁,都需要此模块来提供延时。采用延时子程序,延时50ms。3.3 程序流程框图交通灯程序流程框图如图3.1所示。 图3.1 程序流程框图3.4 交通灯程序清单 交通灯程序清单如附录四所示。4 交通灯设计仿

    12、真4.1 仿真原理图仿真是我们检测我们的硬件设计和软件与硬件的结合好坏的重要方法,也能为我们做实物提供保障。我们采用Kiel结合Proteus仿真,仿真电路原理图如附录五所示。4.2 仿真结果(1)当开始键按下时,数码管显示“P.”。如图4.1所示。图4.1 “P.”显示(2)当按开始按钮时,数码显示管和交通灯均开始正常工作。如图4.2所示。图4.2 正常工作显示(3)当紧急按钮按下时,数码显示管和交通灯均按照计划工作。如图4.3所示。图4.3 紧急情况下显示5 设计体会及出现的问题5.1 设计体会通过这次对交通灯的设计,我们更加认识了单片机,更加熟悉了对单片机的应用。在这次设计的过程中,从电

    13、路原理图的设计,就透彻的理解了单片机最小系统的构成及其工作原理。从数码管的选择中,懂得了可以采用不同的元器件,只要我们运用相应的程序,就能达到同样的效果。从三极管的应用中,发现了理论跟实践存在的巨大差别。只有实践才能检验所学的理论,才能发自己对理论认识的误区和盲点。在软件的设计过程中,收获更大。通过此次设计程序,透彻的明白了每一个指令的应用方法和功能,很好的统一复习了单片机的指令系统。也正是在运用中也发现了自己对部分指令的错误认识和误区,在改正错误中获得了收获。在实验的基础上,再一次对keil软件进行了一次全面的运用,更加熟悉了keil软件的各项功能。在做实物的过程中,很好的锻炼了自己的动手能

    14、力,同时也提高了自己发现问题,解决问题的能力。当最终看到自己的成果握在手中时,有一种非常美妙的成就感,也激发了自己的学习兴趣。增强了自信,培养了自己的各个方面的能力。5.2 设计中出现的问题 在本次试验中,由于理论和实践经验缺乏,出现了很多问题。首先是先到倒计时的问题,我设计了1秒钟的子程序,然后再按键功能1中调用它,同时在最后3秒钟闪烁灯,后来发现这样根本不能实现灯闪烁一秒,而是两秒,针对这个问题,我就将1秒钟的子程序改为0.5秒,然后再程序里面两次调用它。其次出现了按了一个键实现了功能不能跳往另外一个键功能程序,我就想到了要分别在键功能程序里面再调用子程序,这个问题就解决了。最后在应急的时

    15、候我只想到了在应急里面循环,在老师的提点下,我想到了应急之后应该恢复原来的交通秩序,这个就要牵扯到现场的保护和恢复,于是我马上联想到刚学完不久的中断知识,首先我想用外部中断,但是发现外部中断的两根口线已经被LED灯占用,然后我就想到要用定时器中断,编好以后,发现又有新的问题出现了。6 鸣谢 附录一原理图 附录二 程序清单 附录三仿真电路图 附录四PCB图附录二;*;设计者:XX;设计日期:2010年12月24日;*;堆栈栈底:7FH;*;LED数码管设置:;P0.0-P0.7接段控线,分别接a,b,c,d,e,f,g,dp.;P2.0-P2.7接位控线,分别接(从右至左)LED1-LED8;显

    16、示缓冲区:LED1-LED8分别对应78H-7FH;*;独立式键盘:;八个按键S0-S7分别接P1.0-P1.7;*;LED流水灯设置:;八个LED灯LED1-LED8分别接P3.0-P3.7;*;项目名称:交通灯;KEYA (S0键键功能程序);KEYB (S1键键功能程序);KEYC (S2键键功能程序);*;常数表格;KKK(系统显示四位序号表);TAB(共阳数码管字型代码表);* ;子程序;DELAY(延时10ms子程序);DL(延时2ms子程序);KEY(键扫描子程序);LOOP0(P1.0口数据处理子程序);LOOP1(P1.1口数据处理子程序);LOOP2(P1.2口数据处理子程

    17、序);DISP(数码管显示子程序);KK0(0.5秒显示处理程序);*;起始程序区:ORG 0000H LJMP MAIN ORG 0030H;*程序初始化*MAIN: MOV SP, #7FH ;堆栈初始化 MOV R0, #20H ;对RAM区清零 MOV R2, #96QL: MOV R0, #00H INC R0 DJNZ R2, QL MOV P2, #7FH ;送位控 MOV P0, #0CH ;送段控显示P.;*监控程序*KEY: LCALL KEYK ;监控程序 JB 20H.0, LOOP0 JB 20H.1, LOOP11 JB 20H.2, LOOP22 LJMP KEY

    18、LOOP11: LJMP LOOP1LOOP22: LJMP LOOP2;*键功能程序*LOOP0: MOV R3, #60 ;甲通道显示初值60秒 MOV R5, #57 ;乙通道显示初值57秒MM0: MOV P3, #33H ;显示交通灯,甲通道绿,乙通道红 LCALL KK0 ;调显示程序LCL0: LCALL KK0 JNB P1.0, LCL0 ;判按键0是否按下 JNB P1.1, LOOP1 ;判按键1是否按下 JNB P1.2, LL0 ;判按键2是否按下 LJMP LK0LL0: LCALL LOOP2LK0: DEC R5 DEC R3 CJNE R5, #00H, MM

    19、0M1: MOV R3, #03 ;等于3时显示乙通道黄灯处理 MOV R5, #03MM1: MOV P3, #33HLCL1: LCALL KK0 JNB P1.1, LOOP1 JNB P1.2, LL1 JNB P1.0, LCL1 MOV P3, #077H LCALL KK0 LJMP LK1LL1: LCALL LOOP2LK1: DEC R3 DEC R5 CJNE R3, #00H, MM1M2: MOV R3, #30 ;乙通道亮绿灯,甲通道亮红灯 MOV R5, #27MM2: MOV P3, #0CCH ;点亮交通灯 LCALL KK0LCL2: LCALL KK0 J

    20、NB P1.0, LCL2 JNB P1.1, LOOP1 JNB P1.2, LL2 LJMP LK2LL2: LCALL LOOP2LK2: DEC R3 DEC R5 CJNE R5, #05H, MM2M3: MOV R3, #03 MOV R5, #03MM3: MOV P3, #0CCH ;等于三秒时甲通道黄灯处理LCL3: LCALL KK0 JNB P1.0, LCL3 JNB P1.1, LOOP1 JNB P1.2, LL3 LJMP LK3LL3: LCALL LOOP2LK3: MOV P3, #0DDH LCALL KK0 DEC R3 DEC R5 CJNE R3,

    21、 #00H, MM3 ;等于三秒时乙通道黄灯处理 LJMP LOOP0 ;没有按键按下则在此程序循环LOOP1: MOV P3, #0FFH ;按键1按下处理程序 LCALL FUWEI JNB P1.0, KEY0 JNB P1.2, LOOP2 LJMP LOOP1 ;没有按键按下则在此程序循环LOOP2: MOV 24H, R3 ;按键2按下处理程序 MOV 25H, R5 ;将原寄存器内容保存 MOV R3, #10 MOV R5, #10 MOV R7, #00H MOV P3, #55H MM5: LCALL KK0 LCALL KK0 JNB P1.1, LOOP1 DEC R3

    22、 DEC R5 CJNE R3, #00H, MM5 MOV R3, 24H ;返回时将原寄存器内容还原 MOV R5, 25H ;保护现场 RET ;紧急十秒处理后返回KEY0: LJMP LOOP0KEY1: LJMP KEY;*显示子程序*DISP: PUSH DPH ;保护DPTR内容 PUSH DPL PUSH ACC PUSH PSW CLR RS0 SETB RS1 MOV R1, #78H MOV R5, #08H MOV R2, #0FEHDISP1: MOV A, R1 MOV DPTR, #TAB MOVC A, A+DPTR MOV P0, A MOV P2, R2 L

    23、CALL DL MOV A, R2 RL A MOV R2, A INC R1 DJNZ R5, DISP1DISP2: POP PSW POP ACC POP DPL POP DPH RET;*显示处理5秒钟处理程序*KK0: MOV DPTR, #KKK MOV R4, #08H MOV R0, #7FH MOV R6, #60G1: CLR A MOVC A, A+DPTR MOV R0, A DEC R0 INC DPTR DJNZ R4, G1KK3: MOV A, R3 MOV B, #10 DIV AB MOV 7DH, A MOV 7CH, BKK4: MOV A, R5 MO

    24、V B, #10 DIV AB MOV 79H, A MOV 78H, BLS: LCALL DISP DJNZ R6, LS RET ;*复位程序* FUWEI: MOV P2, #7FH ;位控 MOV P0, #0CH ;段控显示P. RET;*键扫程序*KEYK: LCALL KEYSAO JZ EXTI LCALL DELAY LCALL KEYSAO JZ EXTI MOV B, 20HPSF: LCALL KEYSAO JZ EXTI1 LCALL DELAY LJMP PSFEXTI1: MOV 20H, B EXTI: RETKEYSAO: PUSH PSW SETB RS0 MOV A, P1 ;将P1口内容送A CPL A MOV 20H, A ;按键值保存 POP PSW RET;*制表区*KKK: DB 10,10,6,0,10,10,6,0 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0CH;*延时区*DELAY: MOV R2, #10DL0: MOV R3, #0FFHLLL1: NOP N


    注意事项

    本文(基于单片机的交通灯设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开