ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:204.87KB ,
资源ID:7553607      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7553607.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计 交通灯设计070310135.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计 交通灯设计070310135.docx

1、单片机课程设计 交通灯设计070310135信息与电气工程学院 课程设计说明书(2009/2010学年第二学期)课程名称 : 单片机课程设计 题 目 : 交通信号灯控制器的设计 专业班级 : 通信工程0701班 学生姓名 : XXX 学 号 : 070310135 指导教师 :吴开兴 贾少锐 李晓东 刘会军 马永强 设计周数 : 2周 设计成绩 : 年 月 日目录1.设计目的 22.交通管理方案论述 22.1 设计任务 22.2 设计要求 22.3 设计方案介绍 22.3.1 定时方案 22.3.2 显示方案 22.3.3 按键控制方案 22.3.4 交通信号灯控制方案 33.交通灯系统硬件设

2、计 33.1 单片机概述 33.2单元电路设计 43.2.1 单片机芯片AT89S51单元 43.2.2 LED数码管显示单元 73.2.3 交通信号灯显示单元 83.2.4 按键控制单元 93.3交通灯硬件电路图 104.交通灯软件设计 104.1 程序设计流程图 104.2按键扫描 124.3 定时器初始化 134.4 定时器中断服务程序 145系统调试 166课程设计心得 167参考文献 161.设计目的使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路等或者使用单片机系统构建交通信号灯控制器。2交通管理方案论述2.1设计任务东西、南北两干道交于一个十字路口,各干道有一组红、黄

3、、绿三个指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。两干道通行时间一致,时间减到还剩4s时,禁止方向红灯不变,通行方向的黄灯、绿灯交替闪烁。可以通过按键处置紧急状况,改变倒计时的初始显示数据,复位、启动系统倒计时。本人在小组中主要负责软件仿真模块,包括画原理图,程序的调试,电路的调试和仿真。要用到的软件:preteus 7.5,Keil 7.12,protel 99。2.2设计要求1.利用单片机既发光管、LED等器件设计交通信号灯2.至少实现一组十字路口的交通的模拟控制情况3.LED数码管直接显示4.时间长短可以通过按键设置2.3 设计方案介绍2.3.1 定时方案利用MCS

4、-51内部的定时器/计数器进行定时,配合软件延时实现倒计时。采用T0定时/计数器,设置每50ms产生定时中断,执行20次定时中断为1s,每1s显示数值减1当倒计时减为0时,再从设置的初始值重新开始倒计时。2.3.2 显示方案显示分为静态显示和动态显示,静态显示由于占用较多的接口,在单片机设计中常采用串行扩展来完成。该方案占用接口资源多,实用于并行接口资源较少以及对显示没有要求的场合。LED动态显示硬件连接简单,但动态扫描的显示方式需占用CPU较多的时间,在该系统中由于单片机除了扫描89S51芯片外没有太多的实时测控任务。本课程设计采用静态显示,并设计程序。采用共阳极LED数码管,由P0口控制十

5、位LED数码管引脚,P2口控制个位LED数码管引脚。2.3.3按键控制方案设定三个按键:(1)按键1(P3.0):当系统处于定时执行状态时,按下按键1,系统复位为设置的初始值状态,并停止倒计时;当系统处于定时停止状态时,按下按键1,系统从设定的初始值开始倒计时。(2)按键2(外部中断0):当交通出现紧急状况时,按下按键2,东西南北方向均变为红灯,停止倒计时;再次按下按键2,系统恢复为之前的状态,继续倒计时。(3)按键3(P3.4):按下按键3,为系统设定显示的初始值,显示范围为099,即显示数据超过99时,显示数据清0。2.3.4 交通信号灯控制方案由P1口控制交通信号灯:南北红灯:P1.0;

6、 南北黄灯:P1.2; 南北绿灯 :P1.4; 东西红灯: P1.1 ; 东西黄灯:P1.3 ; 东西绿灯:P1.5; 设定初始状态为南北绿灯,东西红灯。当显示数据减为4s,直到显示数据减为0,禁止方向红灯不变,通行方向黄灯、绿灯交替闪烁,显示状态如表1(a)、表1(b)所示。显示数据减为0,交通信号灯状转换。交通信号灯状态南北干道显示东西干道显示南北黄灯,东西红灯4s4s南北绿灯,东西红灯3s3s南北黄灯,东西红灯2s2s南北绿灯,东西红灯1s1s南北黄灯,东西红灯00 表1(a) 南北通行,东西禁止交通信号灯状态南北干道显示东西干道显示南北红灯,东西黄灯4s4s南北红灯,东西绿灯3s3s南

7、北红灯,东西黄灯2s2s南北红灯,东西绿灯1s1s南北红灯,东西黄灯00 表1(b) 南北禁止,东西通行相关程序:DIS_S: LCALL D40MS ;按键去抖 JNB P3.4,DIS_SN AJMP DIS_R DIS_SN: MOV A,GEWEI CJNE A,#9,ADD_GEWEI ;按键按下,先判断个位是否为9,不是9跳转 MOV GEWEI,#0 ;个位是9,清0 MOV R3,GEWEI MOV A,SHIWEI CJNE A,#9,ADD_SHIWEI ;个位清0后,判断十位是否为9 MOV SHIWEI,#0 ;十位是9,清0 MOV R4,SHIWEI LCALL X

8、IANSHI ;显示数据 AJMP DIS_R ;十位、个位都为0,返回ADD_GEWEI: INC GEWEI ;个位不是9,数值加1 LCALL XIANSHI MOV R3,GEWEI ;将个位数值存入R3 AJMP DIS_R ;返回ADD_SHIWEI:INC SHIWEI ;个位进一位清0,十位不是9,则十位加1 MOV R4,SHIWEI LCALL XIANSHI ;显示DIS_R: RET3交通等系统硬件设计3.1 单片机概述3.2. 单元电路设计3.2.1 单片机芯片AT89S51单元3.2.2 LED数码管显示单元 本课程设计采用共阳极LED数码管如图2所示,数码管显示码

9、如表2所示:图2 共阳极LED数码管显示数值a b c d e f g h 驱动代码(16进制)00 0 0 0 0 0 1 10C0H11 0 0 1 1 1 1 10F9H20 0 1 0 0 1 0 10A4H30 0 0 0 1 1 0 10B0H41 0 0 1 1 0 0 199H50 1 0 0 1 0 0 192H60 1 0 0 0 0 0 182H70 0 0 1 1 1 1 10F8H80 0 0 0 0 0 0 180H90 0 0 0 1 0 0 190H表2 共阳极数码管显示码 交通灯硬件设计电路中,LED数码管显示单元如图3所示:P0口引脚控制十位数码管,即P0.

10、0-P0.7分别控制a-h ;P2口引脚控制个位数码管,即P2.0-P2.7分别控制a-h。 图3 LED数码管显示单元显示子程序:;查表显示数据 XIANSHI: MOV A,GEWEI MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P2,A ;个位查询并显示 MOV A,SHIWEI MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P0,A ;十位查询并显示 RET;/查表指令0,1,2,3,4,5,6,7,8,9TAB1: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H3.2.3 交通信号灯显示单

11、元六只交通信号灯设置: 南北红灯:P1.0; 南北黄灯: P1.2; 南北绿灯: P1.4; 东西红灯: P1.1 东西黄灯:P1.3 东西绿灯: P1.5; 单元电路如图4所示图4 交通信号灯显示单元初始化时给定一个时间,当时间倒数到4S的时候,如果南北方向为绿灯,则绿灯和黄灯交替闪烁,直到0,南北方向变为红灯,东西方向变为绿灯。相关程序:;判断黄灯闪烁 MOV A,SHIWEI CJNE A,#0,M1 ;十位不为0,跳转到M1 MOV A,GEWEI SUBB A,#6 JC S1 AJMP M1S1: JNB SNF,S2 CPL P1.2 CPL P1.4 ;南北方向通行,显示还剩4

12、s时,东西方向的黄灯、绿灯交替闪亮 AJMP M1S2: CPL P1.3 CPL P1.5 ;东西方向通行,显示还剩4s时,南北方向的黄灯、绿灯交替闪亮M1: MOV A,#00H MOV A,GEWEI ;判断个位是否为0 CJNE A,#0,JIAN_GEWEI ;不是0,跳转 MOV A,SHIWEI ;个位是0,检测十位是否为0 CJNE A,#0,JIAN_SHIWEI ;十位不是0,跳转 AJMP L1 ;十位是0,个位也是0,则显示数据,交通灯状态取反JIAN_GEWEI:DEC GEWEI ;个位不是0,直接减1 LCALL XIANSHI AJMP L2 ;返回,继续倒计数

13、 JIAN_SHIWEI:DEC SHIWEI MOV GEWEI,#9 ;个位减为0,十位不为0,则十位减1,个位置9 LCALL XIANSHI AJMP L2 ;返回,继续倒计数L1: MOV GEWEI,R3 MOV SHIWEI,R4 ;十位、个位均减为0,将设定的显示初值重新赋值给个位、十位 LCALL XIANSHI JNB SNF,M2 CLR P1.3 ;下一次变为东西通行,将东西黄灯清0 CPL P1.0 CPL P1.4 ;南北红、绿灯取反 CPL P1.1 CPL P1.5 ;东西红、绿灯取反 JMP M3M2: CLR P1.2 ;下一次变为南北通行,将南北黄灯清0

14、CPL P1.0 CPL P1.4 CPL P1.1 CPL P1.5M3: CPL SNFL2: SETB TR0 POP PSW POP ACC RETI、3.2.4 按键控制单元K1键:P3.0 系统复位和启动定时;K2键:P3.2 紧急中断;K3键:P3.4 显示数据加1按键控制单元电路图如图5所示:图5 按键控制单元3.3 交通灯硬件电路图图6 交通灯硬件电路图 4交通灯系统软件设计4.1 程序设计流程图程序设计流程图如图7所示: 图7 程序流程图4.2 按键扫描为了确保一次按键动作只确认一次按键,必须消除机械开关的抖动影响。消除按键的抖动,通常有硬件、软件两种消除方法。一般采用软件

15、的方法消除抖动。即在第一次检测到有按键被按下时,执行一段延时子程序,本系统使用40ms延时子程序后,再确认该键电平是否仍保持为闭合状态电平,如果保持为闭合状态电平就可以确认真正有键按下,从而消除抖动的影响。按键循环扫描(包括去抖,延时)程序如下:LOOP: LCALL ANJIAN ;调用扫描按键子程序 AJMP LOOP ;循环ANJIAN: JNB P3.0,DIS_RES ;查询设置重启按键是否按下 JNB P3.4,DIS_S ;查询设置南北显示按键是否按下 AJMP DIS_R ;没有键按下则返回,继续扫描;复位启动按键DIS_RES: LCALL D40MS ;按键去抖 JNB P

16、3.0,DIS_RES1 AJMP DIS_R ;没有按下,继续扫描DIS_RES1:CPL TR0 MOV GEWEI,R3 ;将设定的初值赋给个位 MOV SHIWEI,R4 ;将设定的初值赋给十位 LCALL XIANSHI ;调用显示程序 MOV P1,#11101101b ;恢复交通灯初始状态 ;设置显示数据DIS_S: LCALL D40MS ;按键去抖 JNB P3.4,DIS_SN AJMP DIS_R DIS_SN: MOV A,GEWEI CJNE A,#9,ADD_GEWEI ;按键按下,先判断个位是否为9,不是9跳转 MOV GEWEI,#0 ;个位是9,清0 MOV

17、R3,GEWEI MOV A,SHIWEI CJNE A,#9,ADD_SHIWEI ;个位清0后,判断十位是否为9MOV SHIWEI,#0 ;十位是9,清0 MOV R4,SHIWEI LCALL XIANSHI ;显示数据 AJMP DIS_R ;十位、个位都为0,返回ADD_GEWEI: INC GEWEI ;个位不是9,数值加1 LCALL XIANSHI MOV R3,GEWEI ;将个位数值存入R3 AJMP DIS_R ;返回ADD_SHIWEI:INC SHIWEI ;个位进一位清0,十位不是9,则十位加1 MOV R4,SHIWEI LCALL XIANSHI ;显示DIS

18、_R: RET;/延时40ms与1msD40MS: MOV R7,#200 MOV R6,#200 L3: DJNZ R6,$ DJNZ R7,L3 RET4.3 定时器初始化AT89S51内有两个可编程的定时/计数器T0,T1,本系统使用T0。定时/计数器有四种工作方式,本系统采用工作方式1,即16位定时/计数器。在方式1下,最大的计数值为M=65536,而晶振为12MHz的机器周期为1s,所以最大定时时间Tmax=65536s=65.536ms。我们要求交通灯显示数据每秒减1,而晶振为12MHz的机器周期为1s,最大定时时间Tmax=65536s=65.536ms,所以不满足1s的要求。那

19、么我们设定T0的定时时间为50ms,中断20次T0可以定时1s。设T0的定时时间为50ms,则初始值X为:X=65536-50000=15536=3CB0H,则:(TL0)=0B0H,(TH0)=3CH定时器初始化程序如下:MOV R2,#20 ;定时器中断20次为1s MOV TMOD,#01H ;初始化定时器 MOV TL0,#0B0H MOV TH0,#3CH SETB EA ;开定时中断与紧急中断 SETB ET0 4.4 定时器中断服务程序 定时器中断服务程序如下: ;/定时中断处理程序DS_C: LJMP L2 ;接力跳转DSZD: PUSH ACC ;保护现场 PUSH PSW

20、;CLR TR0 ;关定时器及中断标志位并重新赋值 CLR TF0 MOV TL0,#0B0H MOV TH0,#3CH DJNZ R2,DS_C ;判断1s时间是否到达 MOV R2,#20 ;到达1s后重新赋值;判断黄灯闪烁 MOV A,SHIWEI CJNE A,#0,M1 ;十位不为0,跳转到M1 MOV A,GEWEI SUBB A,#6 JC S1 AJMP M1S1: JNB SNF,S2 CPL P1.2 CPL P1.4 ;南北方向通行,显示还剩4s时,东西方向的黄灯、绿灯交替闪亮 MOV 32H,P1 AJMP M1S2: CPL P1.3 CPL P1.5 ;东西方向通行

21、,显示还剩4s时,南北方向的黄灯、绿灯交替闪亮 MOV 32H,P1M1: MOV A,#00H MOV A,GEWEI ;判断个位是否为0 CJNE A,#0,JIAN_GEWEI ;不是0,跳转 MOV A,SHIWEI ;个位是0,检测十位是否为0 CJNE A,#0,JIAN_SHIWEI ;十位不是0,跳转 AJMP L1 ;十位是0,个位也是0,则显示数据,交通灯状态取反JIAN_GEWEI:DEC GEWEI ;个位不是0,直接减1 LCALL XIANSHI AJMP L2 ;返回,继续倒计数 JIAN_SHIWEI:DEC SHIWEI MOV GEWEI,#9 ;个位减为0

22、,十位不为0,则十位减1,个位置9 LCALL XIANSHI AJMP L2 ;返回,继续倒计数 L1: MOV GEWEI,R3 MOV SHIWEI,R4 ;十位、个位均减为0,将设定的显示初值重新赋值给个位、十位 LCALL XIANSHI JNB SNF,M2 SETB P1.3 ;下一次变为东西通行,将东西黄灯清0 CPL P1.0 CPL P1.4 ;南北红、绿灯取反 CPL P1.1 CPL P1.5 ;东西红、绿灯取反 JMP M3M2: SETB P1.2 ;下一次变为南北通行,将南北黄灯清0 CPL P1.0 CPL P1.4 CPL P1.1 CPL P1.5M3: C

23、PL SNF MOV 32H,P1 L2: SETB TR0 POP PSW POP ACC ;恢复现场 RETI5. 系统调试(1)软件调试:通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正。还有软件调试要和硬件调试结合起来,硬件调试才会成功,比如说硬件显示管的编码可能会和仿真软件上的编码顺序是不一样的,必须要把顺序搞清楚了再调试硬件。(2)硬件调试: 6. 课程设计总结当得到设计要求后,大家积极的从图书馆和网上找寻资料,开始课程设计后,大家将资料进行整合,确定设计方案。由于单片机课程很紧,大家对于书上内容并没有真正的掌握,经常不得要领,无从下手,或者是编写的程

24、序出现很多的语法错误,给课程设计带来不少的困难。但随着设计的进行,大家慢慢的学习,对这些内容慢慢的掌握。对单片机的学习有非常大的帮助。通过本次课程设计,更加熟悉单片机的使用,学习如何使用开发板,对系统进行调试。掌握好的方法对以后的各种课程设计有很大的帮助。我是负责软件调试那一个模块,主要参与程序的汇编和调试,画仿真电路图,在这过程中遇到了不少问题,而且有些问题让自己完全摸不着头脑,不知道哪出错了,特别是在参与编写程序的过程中,让我深深地知道语言规范的重要性,还有在画图过程中,原器件不能直接放在一起,那样的话它们不会连接起来的,还有当软件调试成功了,给单片机载入程序的时候,发现显示管出现乱码,而

25、且数码管也不是软件调试中的那样工作,后来才知道问题出在硬件上的那个显示管编码顺序是不一样的,要自己测量然后记录下来,再按照那个顺序去编写程序,还有硬件上的数码管是低电平有效,载入编写程序时要先取反,再让它显示,还有很多的细节问题都让自己受益匪浅。总之这回的单片机程序设计更让我重视理论和实际的结合,在处理问题时要在细节上做好,遇到问题时不急不燥,通过同学和老师的帮助下好好的分析原因,然后解决问题。7. 参考文献1胡汉才 单片机原理及其接口技术 M 清华大学出版,19962蔡美琴 MCS-51系列单片机系统及其应用 高等教育出版社 2004.23李华 MCS -51系列单片机实用接口技术M 北京航

26、空航天大学出版社,19934周航慈 单片机应用程序设计技术M 北京航空航天大学出版社,1991.5张志良等 单片机原理与控制技术M 机械工业出版社,2001 年7 月第1 版6王守中 51单片机开发入门与典型事例 人民邮电出版社,2007年8月 附录一:交通信号灯控制器原理图图 8 交通信号灯控制器原理图附录二:交通信号灯控制器仿真图图 9 交通信号灯控制器仿真图附录三:程序代码:; 定时计数单元定义 GEWEI EQU 30H SHIWEI EQU 31H; 按键输入引脚定义 K1 EQU P3.0 ;设置重启按键 K2 EQU P3.2 ;紧急中断按键 K3 EQU P3.4 ;设置显示数

27、据按键 ;主程序 SNF BIT 01H URF EQU 02H ;紧急事件标志位 ORG 0000H LJMP MAIN ;上电转主程序 ORG 0003H ;紧急中断入口 LJMP URZD ORG 000BH ;定时中断入口 LJMP DSZD ORG 0030H MAIN: LCALL INIT ;调用初始化子程序LOOP:LCALL ANJIAN ;调用扫描按键子程序 AJMP LOOP ;循环;/初始化程序INIT: SETB SNF SETB URF MOV R2,#20 ;定时器中断20次为1s MOV TMOD,#01H ;初始化定时器 MOV TL0,#0B0H MOV T

28、H0,#3CH SETB EA ;开定时中断与紧急中断 SETB ET0 CLR TR0 SETB EX0 SETB IT0 ;设置中断程控方式 MOV GEWEI,#0 MOV SHIWEI,#0 MOV P0,#0C0H ;十位置0 MOV P2,#03H ;个位置0 MOV P1,#11101101b ;设置交通灯初始状态(南北通,东西禁) MOV 32H,#11101101b ;保存交通灯状态 RET;按键扫描 ANJIAN: JNB P3.0,DIS_RES ;查询设置重启按键是否按下JNB P3.4,DIS_S ;查询设置南北显示按键是否按下 AJMP DIS_R ;没有键按下则返回,继续扫描;复位启动按键DIS_RES: LCALL D40MS ;按键去抖 JNB P3.0,DIS_RES1 AJMP DIS_R ;没有按下,继续扫描DIS_RES1:CPL TR0 MOV GEWEI,R3 ;将设定的初值赋给个位 MOV SHIWEI,R4 ;将设定的初值赋给十位 LCALL

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1