模拟交通灯设计_第1页
模拟交通灯设计_第2页
模拟交通灯设计_第3页
模拟交通灯设计_第4页
模拟交通灯设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模拟交通灯设计目 录 摘要1 绪论21.1设计思路21.2基本原理22 交通灯自动控制电路硬件设计32.1单片机的结构32.2主要元器件选择32.3交通口模型32.4总电气图32.5显示原理43 交通灯自动控制电路软件设计53.1单片机中断系统基本结构53.2交通灯自动控制的设计程序流程图73.3每秒钟的设定73.4计算器初值计74 系统仿真8附录一 程序流程图10附录二 源程序代码12总结与体会191 绪论作为一种交通规则的指示,交通灯它起着及其重要的作用。从最初的单车道到现在的四车道八车道等,交通指示的自动控制也越来越完善。它不再仅仅拥有交通指示的作用,还有其它特殊情况的处理,比如对闯红灯

2、的肇事者进行的监督,紧急救护车的通过时保持道路畅通,等等都需要非常的处理,这也是对交通灯功能的新要求。而且,也从最初的只有红,黄,绿三种灯的指示到现在的倒计时电子显示,让人们从单一的信号判别到时间的准确明了有了进一步认知。这都表明交通灯的研究还具有它实际的意义。1.1 设计思路交通灯的自动控制系统的主要功能包括:普通交通灯的显示、led倒计时显示。振荡器和时钟电路:这部分电路主要由89c51单片机和一些电容、晶振组成。设计控制部分:主要由89c51单片机的外部中断电路组成1。设计显示部分:led数码显示部分。led数码显示部分由七段数码显示管组成。1.2 基本原理主体电路:交通灯自动控制模块。

3、这部分电路主要由89c51单片机的i/o端口、定时计数器、外部中断扩展等组成。本设计先是通过单片机如at89c51并接数码管及发光二极管来模拟交通灯的变化规律,8个数码管用来显示秒值,东西南北各两个,12个发光二极管,东西南北各三个,分为红绿黄三种颜色。设计思路,首先东西方向绿灯亮,南北方向红灯亮,同时开始计时20s,在7段数码管上显示时间。当20s倒计时结束后,开始3s倒计时,并且东西方向绿灯开始闪烁,南北方向红灯亮。当3s倒计时结束后再开始2s倒计时,并且东西方向黄灯亮,南北方向还是红灯亮。当2s倒计时结束后开始20s的倒计时,此时是南北方向绿灯亮,东西方向红灯亮。接下来就是南北方向绿灯闪

4、烁3s,再南北方向黄灯闪烁2s,接着又开始循环。 2交通灯自动控制电路硬件设计2.1单片机的结构 单片微机(single-chip microcomputer)简称为单片机。它在一块芯片上集中成了中央处理单元cpu、随机存储器ram、只读存储器rom、定时/计数和多功能输入/输出i/o口,如并行口i/o、串行口i/o和转换a/d等。就其组成而言,一块单片机就是一台计算机2。其典型结构如图所示。由于它具有体积小、功能强和价格便宜等优点,因而被广泛地应用于产品智能化和工业控制自动化上。2.2 主要元器件选择1开关管的选择:button按钮2led发光二极管 ledred ledyellow lde

5、green发光二极管的主要技术参数有额定电压和额定工作电流。限流电阻i是限制线路电流的,阻值的大小由i=u/r计算得到。例如发光二极管的额定电压为2v,额定工作电流为20ma,计算ri(5-2)/0.02=1503。3二位一体数码管 7seg-mpx2-cat-red:共阳数码管(红色)4at89c51系列单片机 2.3交通路口模型图2.1 模拟交通路口模型2.4总电气图总电路功能介绍:设计主要研究交通灯自动控制。本次设计的内容包括两个方面,一是普通三色灯的指示;二是两位一体数码管的倒计时显示;最后就是对交通灯的模拟设计。图2.2 模拟交通灯总电气图2.5显示原理: 当定时器定时为1秒,时程序

6、跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环4。图2.3 led与单片机连接电路3 交通灯自动控制电路软件设计 3.1单片机中断系统基本结构 中断是一项重要的计算机技术,是处理正常工作与紧急状态的好办法,是实现人机实时交互的重要途径,在单片机应用系统中,中断技术得到了广泛应用。下面详细介绍单片机中断系统基本结构、与中断相关的特殊寄存器的设置及中断应用系统编程方法。当cpu查询到系统有中断请求时,如果系统处于中断允许状态,cpu

7、将停止当前的工作,响应中断请求,转向中断服务,中断服务完成后,返回原程序继续执行当前任务,这叫单片机中断。89c51系列单片机中断系统结构如图4.1所示。能让cpu产生中断的信号源叫中断源。89c51单片机有nt0、int1、t0、t1、ti、ri六个中断源,但只有ex0、et0、ex1、et1、es五个向量,下面简要介绍六个中断源5。图3.1 单片机中断系统基本结构int0、int1:外部中断源,由p3.2和p3.2引脚输入。具有低电平和脉冲两种触发方式,在每个机器周期的s5p2采样引脚信号,如有效则由硬件将它的中断请求标志ie置1,请求中断。当cpu响应中断时,由硬件复位。t0、t1:定时

8、/计数器中断,当定时/计数器产生溢出时,置位中断请求标志tf请求中断处理。ri、ti:串行中断,ri是接收,ti为发送。单片机串行口接收到一个字符后ri置1,发送完一个字符ti置1。值得注意的是,ri、ti在响应中断后,必须由用指令将其复位。 中断响应cpu在执行程序的过程中,在每个机器周期的s5p2对中断标志位按中断优先级进行查询,一旦查询到有中断请求,cpu只要不在执行同级或高级的中断服务程序和当前指令(reti指令或访问ie、ip的指令除外)执行完毕两种情况,则响应中断。如果当前正在执行的指令是reti或访问ie、ip的指令,则当前指令执行完毕后,cpu才可响应中断。中断响应时间可以从中

9、断信号被查询开始算起,中断响应时间在以下三种情况下,响应时间还会更长: cpu正在执行一个比要响应的中断源优先级相等或更高的中断源的中断服务程序,此时须等到中断服务程序执行完毕才可中断响应。 正在执行的当前指令不是在最后一个机器周期,只有指令执行完后才响应中断。 如果当前执行的是reti或访问ie、ip的指令,则当前指令执行完毕后,cpu需再执行一条指令才可以中断响应,因此附加等待响应时间不会超过5个机器周期。单片机响应中断后,将转向特定的入口进行中断服务,单片机的中断入口地址如表3.1所示。表3.1 mcs-51单片机中断服务程序入口地址表中 断 源入 口 地 址ie0(外部中断0)0003

10、htf0(定时器0溢出中断)000bhie1(外部中断1)0013htf1(定时器1溢出中断)001bhri+ti(串行口中断)0023h 从表中可以看出,两相邻中断源的入口地址间隔为8个单元。这意味着如果要把中断源对应的中断服务程序从入口地址开始存放,则程序的长度不能超过8个字节,否则会影响到下一个中断源的入口地址的使用。而通常的情况下,中断服务程序的长度不止8个字节,因此,常见的处理方法是:在入口地址处存放一条无条件转移指令,通过这条转移指令转向对应的中断服务程序入口,中断服务程序以reti为结束。中断请求的撤销6cpu响应中断请求,在中断返回(reti)之前,该中断请求应被撤除,否则会引

11、发另一次中断。定时/计数器中断请求撤销:cpu在响应中断后,由硬件自动清除中断请求标志tf。外部中断请求撤销:如果采用脉冲触发方式,cpu在响应中断后,由硬件自动清除中断请求标志ie;对于电平触发方式的外部中断请求,中断标志的撤销是自动的,由于造成中断请求的低电平继续存在,所以在响应中断后再次会产生中断请求,为此响应中断后要撤销外部信号。单片机有int0、int1两个外部中断源,int0对应单片机p3.0,int1对应p3.2。单片机的外部中断与特殊寄存器ie、tcon、ip有关。int0中断入口地址是0003h,int1中断入口地址是000bh,下面介绍单片机外部中断的设置与应用。3. 2交

12、通灯自动控制的设计程序流程框图开始初始化程序end20秒倒计时显示东西黄灯闪亮2秒南北绿灯亮,东西红灯亮20秒倒计时显示南北黄灯闪亮2秒南北红灯亮,东西绿灯亮图3.2 交通灯自动控制的设计程序流程框图3.3每秒钟的设定 延时方法可以有两种一中是利用mcs-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。 3.4计数器初值计算 定时器工作时必须给计数器送计数器初值,这个值是送到th和tl中的。我们可以把计数器记满为零所需的计数值设定为c和计数初值设定为tc 可得到如下计算通式: tc=m-c4 系统仿真由交通灯自动控制程序一开始可以看到,首先东西方向绿灯亮,南北方向红灯亮,

13、同时开始计时20s,在7段数码管上显示时间。当20s倒计时结束后,开始3s倒计时,并且东西方向绿灯开始闪烁,南北方向红灯亮。当3s倒计时结束后再开始2s倒计时,并且东西方向黄灯亮,南北方向还是红灯亮。当2s倒计时结束后开始20s的倒计时,此时是南北方向绿灯亮,东西方向红灯亮。接下来就是南北方向绿灯闪烁3s,再南北方向黄灯闪烁2s,接着又开始循环。仿真结果如下所示。 图4.1 模拟黄灯闪亮时的仿真图 图4.2 模拟交通灯运行仿真图附录一 程序流程图开始初始化参数东西方向亮红绿,南北方向亮红灯p1 2=0延时20秒东西方向亮黄灯,南北方向亮红灯延时2秒南北方向亮绿灯,东西方向亮红灯启动定时器,允许

14、中断延时20秒南北方向亮黄灯,东西方向亮红灯延时2秒n图1 主程序流程图附录二 源程序代码: second1 equ 30h ;东西路口计时寄存器 second2 equ 31h ;南北路口计时寄存器 dbuf equ 40h ;显示码缓冲1 temp equ 44h ;显示码缓冲2 led_g1 bit p1.0 ;东西路口绿灯 led_y1 bit p1.1 ;东西路口黄灯 led_r1 bit p1.2 ;东西路口红灯 led_g2 bit p1.5 ;南北路口绿灯 led_y2 bit p1.6 ;南北路口黄灯 led_r2 bit p1.7 ;南北路口红灯 org 0000h ljm

15、p start org 0003h ljmp into0 org 0100hstart: mov tmod,#01h 置t0工作方式1 mov th0,#3ch mov tlo,#0b0h clr tfo setb tro 启动t0 setb ex0setb px0 设置外中断0高优先级setb ealoop: mov r2,#20 置1s计数初值 mov r3,#20 绿灯亮20s mov second1,#20 东西路口计时显示初值20s mov second2,#20 南北路口计时显示初值20s lcall display lcall statel 调用状态1wait1:jnb tf0,

16、wait1 查询50ms到否 clr tf0 mov th0,#3ch 恢复t0定时初值50ms mov tl0,#0b0h djnz r2,wait1 判断1s到否?未到继续状态1 mov r2,#20 置50ms计数初值 dec secind1 东西路口显示时间减1 dec second2 南北路口显示时间减1 lcall display djnz r3,wait1 状态1维持20s mov r2,#5 置50ms计数初值 mov r3,#3 绿灯闪烁3s mov r4,#4 闪烁间隔200ms mov second1,#5 东西路口计时显示初值5s mov second2,#5 南北路口

17、计时显示初值5s lcall displaywait2:lcall state2 调用状态2 jnb tf0,wait2 查询50ms到否 clr tf0 mov th0,#3ch 恢复t0定时初值50ms mov tl0,#0b0h djnz r4,wait2 判断200ms到否?未到继续状态2 cplled_g1 东西绿灯闪烁 mov r4,#4 闪烁200ms djnz r2,wait2 判断1s到否?未到继续状态2 mov r2,#5 置50ms计数初值 dec second1 东西路口显示时间减1 dec second2 南北路口显示时间减1 lcall displaydjnz r3

18、,wait2 状态2维持3smov r2,#20 置50ms计数初值mov r3,#2 黄灯闪烁2smov second1,#2 东西路口计时显示初值2smov second2,#2 南北路口计时显示初值2slcall display wait3:lcall state3 调用状态3 jnb tf0,#3ch 查询100ms到否 clr tf0 mov th0,#3ch 恢复t0定时初值100ms mov tl0,#0b0h djnz r2,wait3 判断1s到否?未到继续状态3 mov r2,#20 置100ms计数初值 dec second1 东西路口显示时间减1 dec second2

19、 南北路口显示时间减1 lcall display djnz r3,wait3 状态3维持2s mov r2,#20 置50ms计数初值 mov r3,#20 红灯闪烁20s mov second1,#25 东西路口计时显示初值20s mov second2,#25 南北路口计时显示初值20s lcall displaywait4:lcall state4 调用状态4 jnb tf0,wait4 查询100ms到否 clr tf0 mov th0,#3ch 恢复t0定时初值100ms mov tl0,#0b0h djnz r2,wait4 判断1s到否?未到继续状态4 mov r2,#20 置

20、100ms计数初值 dec second1 东西路口显示时间减1 dec second2 南北路口显示时间减1 lcall display djnz r3,wait4 状态4维持2s mov r2,#5 置50ms计数初值 mov r3,#4 红灯闪烁20s mov r3,#3 绿灯闪烁3s mov second1,#20 东西路口计时显示初值20s mov second2,#20 南北路口计时显示初值20s lcall displaywait5:lcall state5 调用状态5 jnb tf0,wait5 查询100ms到否 clr tf0 mov th0,#3ch 恢复t0定时初值10

21、0ms mov tl0,#0b0h djnz r4,wait5 判断200ms到否?未到继续状态5 cplled_g2 南北绿灯闪烁 mov r4,#4 闪烁200ms djnz r2,wait5 判断1s到否?未到继续状态5 mov r2,#5 置100ms计数初值 dec second1 东西路口显示时间减1 dec second2 南北路口显示时间减1 lcall display djnz r3,wait5 状态5维持3s mov r2,#20 置50ms计数初值 mov r3,#20 红灯闪烁2s mov second1,#20 东西路口计时显示初值20s mov second2,#2

22、0 南北路口计时显示初值20s lcall displaywait6:lcall state6 调用状态4 jnb tf0,wait6 查询100ms到否 clr tf0 mov th0,#3ch 恢复t0定时初值100ms mov tl0,#0b0h djnz r2,wait6 判断1s到否?未到继续状态6 mov r2,#20 置100ms计数初值 dec second1 东西路口显示时间减1 dec second2 南北路口显示时间减1 lcall display djnz r3,wait6 状态6维持3s ljmp loop state1: 状态1 setb led_g1 东西路口路灯

23、亮 clr led_y1 clr led_r1 clr led_g2 clr led_y2 setb led_r2 南北路口红灯亮 ret state2: 状态2 clr led_y1 clr led_r1 clr led_g2 clr led_y2 setbled_r2 南北路口红灯亮 ret state3: 状态3 clr led_g1 clr led_r1 clr led_g2 clr led_y2 setb led_r2 南北路口红灯亮 setb led_y1 东西路口黄灯亮 ret state4: 状态4 clr led_g1 clr led_y1setb led_r1 东西路口红灯

24、亮setb led_g2 南北路口绿灯亮 clr led_y2 clr led_r2 ret state5: 状态5 clr led_g1 clr led_r1 setb led_r1 东西路口红灯亮 clr led_y2 clr led_r2 ret state6: 状态6 clr led_g1 clr led_y1 setb led_r1 东西路口红灯亮 clr led_g2 clr led_r2 setb led_y2 南北路口黄灯亮 ret display: 数码显示 mov a,second1 东西路口计时寄存器 mov b,#10 div ab mov dbuf+3,a mov a

25、,b mov dbuf+2,a mov second2 南北路口计时寄存器 mov b,#10 diy ab mov dbuf+1,a mov a,b mov dbuf,a mov r0,#dbuf mov r1,#temp mov r7,#4 dp10:mov dpotr,#ledmap mov a,r0 movc a,a+dptr mov r1,a inc r0 inc r1 djnz r7,dp10 mov r0,#temp mov r1,#4 dp12:mov r7,#8 mov a,r0 dp13:rlc a mov p3.0,c clr p3.1 setb p3.1 djnz r7

26、,dp13 inc r0 djnz r1,dp12 ret lenmap:db 3fh,06h,5bh,4fh,66h,6dh db 7dh,07h,7fh,6fh org 0200hinto0:push psw push acc setb led_r1 setb led_r2 clr led_g1 clr led_y1 clr led_g2 clr led_y2 pop psw pop acc reti end 体会与总结 通过综合实践,实现电子产品从点穴观念设计到生成物理数据的全过程。它 改变了以往采用定量计算和搭电路实验为基础的传统设计方式,是电子电路的分 析与设计方法发生了重

27、大变革,成为当今电子系统及专用集成电路设计中不可缺 少的重要手段。. 目前,在电子行业设计中,实用电路辅助设计软件对产品进行辅助设计已经 成为了一种趋势,这类软件的问世极大地提高了电路设计人员第一产品的设计质 量与效率。鉴于目前计算机技术的发展,作为一名电子专业的学生,应该对这方 面的知识有一个比较系统的了解。通过这次综合实践的锻炼,我学到了很多的知 识。对我们来说设计电路图是一个比较复杂和艰难的事情,通过制作这个简易的 四路抢答器,首先,我了解了设计电路的程序,对电路设计过程有了一个较为系 统的了解;对单个的元器件的特性有了进一步的了解,并且一方面,使我在知识上的应用上了一个层次,更深一层地了解到书本上我们应该掌握的理论,并将其付诸实践,应用到人们的日常生活中去,从而使我找到了更浓厚的学习兴趣,也认识到单片机技术在现代生活中的重要地位,看到这个“口香糖大小的迷你主机”的无限潜能。比如,led 有它自己的工 作电压和电流,所以和发光二极管串联的电阻要选择合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论