欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    交通灯课程设计复习过程.doc

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

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

    交通灯课程设计复习过程.doc

    如有侵权,请联系网站删除,仅供学习与交流交通灯课程设计【精品文档】第 17 页交通信号灯模拟控制系统设计第一章1.1 交通灯国内外发展概况随着经济的发展,城市现代化程度不断提高,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应日益突出。交通问题已经日益成为世界性的难题。为了解决车和路的矛盾,常用的两种方法:一是控制需求,最直接的办法就是限制车辆的增长:二是增加供给,也就是修路。但是这两个办法都有其局限性。交通是社会发展和人民生活水平提高的基本条件,经济的发展必然带来出行的增加而且在我国汽车工业正处在起步阶段的时期。因此限制车辆的增长不是解决问题的好办法。所以在道路管理方面就要加强交通安全,而在道路管理中最长见的就是交通灯。1.2交通信号灯的作用和工作原理改善交通秩序,增加交通安全;减少交通延误,提高经济效益;降低污染程度,保护生态环境;节省能源和土地消耗。 交通信号灯由红灯、绿灯、黄灯组成。红灯表示禁止通行,绿灯表示准许通行,黄灯表示警示。交通信号灯分为机动车信号灯、非机动车信号灯、人行横道信号灯、车道信号灯、方向指示信号灯、闪光警告信号灯、道路与铁路平面交叉道口信号灯。交通信号灯用于道路平面交叉路口,通过对车辆、行人发出行进或停止的指令,使各同时到达的人、车交通流尽可能减少相互干扰,从而提高路口的通行能力,保障路口畅通和安全。 设计一个十字路口交通灯自动控制电路:  工作顺序为南北绿灯,东西红灯南北黄灯,东西红灯南北红灯,东西绿灯南北红灯,东西绿灯 要求各状态的工作时间如下所示。绿灯-(30s)-黄灯-(5s)-红灯-(35s)-绿灯-(循环) 第二章2.1 单片机系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。下面给出一个51单片机的最小系统电路图。 图2.1最小系统2.1.1晶振电路 复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍。图2.1.1晶振2.1.2 复位电路 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)。 图2.1.2复位电路2.1.3信号灯控制电路,LED及显示接口 发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性,当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现,因此而发光。使用LED作指示电路时,应该串接限流电阻,该电阻的阻值大小应根据不同的使用电压和LED所需工作电流来选择。发光二极管的压降一LED的光学参数与pn结结温有很大的关系。一般工作在小电流IF10mA,或者1020 mA长时间连续点亮LED温升不明显。 绿灯是通行信号,面对绿灯的车辆可以直行红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告,信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。图2.1.3LED及红绿灯2.2 系统总体框图数码管倒计时显示STC89C51单片机 复位电路按键控制时钟电路交通信号灯显示图2.2总体框图2.3 设计流程图图2.3流程图第三章3.1 信号灯亮灭的定时在单片机应用系统中,实现定时的方法一般有以下三种: 1、软件定时:让计算机执行一段程序来进行事件延时。这个程序段本身份没有安排其他的执行目的,只是利用该程序段的执行花费的一个固定时间。通过适当的选择指令和安排循环次数,可调节这段程序执行所需花费的时间的长短。其特点是定时时间精确,不需外加硬件电路,但占用时间。因此软件定时的时间不宜过长。 2、硬件定时:利用硬件电路实现定时。其特点是不占用时间,通过改变电路元器件参数调来节定时,但使用不够灵活方便。对于时间较长的定时,常用硬件电路来实现。 3、可编程定时器:通过专用的定时计数器芯片来实现。其特点是通过对系统时钟脉冲进行计数实现定时,定时的时间可通过程序的设定的方法改变,使用灵活方便。也可实现对外部脉冲的计数功能。 4、单片机交通控制器的设计,当定时计数器设置为计数工作方式时,技术器对来自输入引脚T0和T1的外部信号计数,外部信号的下降沿将触发计数。最高检测频率为振荡频率的二十四分之一。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。 当设置了定时器的工作方式并启动定时器工作后,定时器就安倍设定的工作方式独立工作,不在占用CPU的操作时间,只有在计数器计满溢出时才能中断CPU当前的操作。 第四章4.1 原理图图4.1原理图第五章5.1 最小系统调试5.1.1调试首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否是电源电压,我们所用的电源电压是5V。接下来就是检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。然后再检查晶振是否起振了,一般用示波器来看晶振引脚的波形,注意应该使用示波器探头的“X10”档。另一个办法是测量复位状态下的IO口电平,按住复位键不放,然后测量IO口(没接外部上拉的P0口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。另外还要注意的地方是,要将EA引脚拉高,因为我们用的是片内ROM,否则会出现程序乱跑的情况。有时用仿真器可以,而烧入片子不行,往往是因为EA引脚没拉高的缘故(当然,晶振没起振也是原因只一)。经过上面几点的检查,一般即可排除故障了。如果系统不稳定的话,有时是因为电源滤波不好导致的。在单片机的电源引脚跟地引脚之间接上一个0.1uF的电容会有所改善。如果电源没有滤波电容的话,则需要再接一个更大滤波电容,例如220uF的。遇到系统不稳定时,就可以并上电容试试。5.1.2故障点分析 检测故障点的方法如下: 测量电压法。首先要确认的是各芯片电源引脚的电压是否正常,其次检查各种参考电压是否正常,另外还有各点的工作电压是否正常等。 信号注入法。将信号源加至输入端,然后依次往后测量各点的波形,看是否正常,以找到故障点。有时我们也会用更简单的办法,例如用手握一个镊子,去碰触各级的输入端,看输出端是否有反应。 当然,还有很多其它的寻找障点的方法,例如看、听、闻、摸等。“看”就是看元件有无明显的机械损坏,例如破裂、烧黑、变形等;“听”就是听工作声音是否正常,例如一些不该响的东西在响,该响的地方不响或者声音不正常等;“闻”就是检查是否有异味,例如烧焦的味道、电容电解液的味道等,对于一个有经验的电子维修人员来说,对这些气味是很敏感的;“摸”就是用手去试探器件的温度是否正常,例如太热,或者太凉。5.2软件调试问题及解决一个应用系统并非一次就可以正确无误地设计出来,尤其是设计的程序,必须经过多次的调试才能确凿无误地工作。为避免浪费,并不把刚刚编写好的程序直接写到EPROM、EEPROM等中去,更不会急于生产安装部分硬件,在专用的仿真器或开发试验台上进行。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 Keil软件可以对我们写的汇编程序进行编译,它能清晰的显示出程序的各种信息,并能明确的指出程序的错误之处和错误的原由。以致我们能够得到结构,书写都无误的汇编语言的程序。第六章总结通过过这里课程设计,我学到了很多专业知识,拓展了我们的专业知识面,因为我们这次课设的任务是完成一个基于单片机的交通信号灯控制系统,在此之前我们对单片机的概念还是比较模糊,虽然有了一些理论上知识,但是没有亲自动手实践的经验。通过这一段时间做课程设计的学习,我们对单片机有了更深层次的了解,此外,因为我们要完成的任务涉及到软件和硬件,所以我们在学习单片机的过程中也熟悉并掌握了相关软件的使用,如protel,proteus等,与及巩固了模拟电路和数字电路相关的知识,还有熟练了C语言编写和汇编语言编写的一些规则和规范原则。因为,我们这个学期开设了微机原理的课程,学习了相关的汇编语言,所以我们所设计的交通信号灯系统是用汇编语言实现的,这有助于我们巩固相关的专业知识。硬件电路上,我们参考了学长及网上的相关资料,两者相结合而设计的。而这次主要的收获在于调试部分,在调试的过程中遇到的种种错误,让我们学到了不少的东西,确实是从失败中比从成功中能学到更多的东西,比如设计思路,还有各个元器件的参数,比如LED灯给多大电流会亮,数码管要多大电流才可以驱动,最主要的是要深入了解单片机的物理接口,每个物理接口可以灌入的最大电流是多少,每8个接口可以灌入的最大电流是多少,与及I/O接口的驱动能力,只有了解各个元器件的具体参数,才能有效并快速的检查出错误所在的位置。此外,还解决了一些问题如1、如何驱动发光二极管?LED的因为是一种低电压直流产品,而市电是交流220V,所以其工作需要LED驱动电源。LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电源转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。2、LED驱动原理:正向压降(VF)和正向电流的(IF)关系,当正向电压超过某个阈值(约2V),即通常所说的导通电压之后,可近似认为,IF与VF成正比。当前超高亮LED的最高IF可达1A,而VF通常为24V。由于LED的光特性通常都描述为电流的函数,而不是电压的函数,因此采用恒流源驱动可以更好地控制亮度。此外,LED的正向压降变化范围比较大(最大可达1V以上),VF的微小变化会引起较大的,IF变化,从而引起亮度的较大变化。所以,采用恒压源驱动不能保证LED亮度的一致性,并且影响LED的可靠性、寿命和光衰。因此,超高亮LED通常采用恒流源驱动。注:LED的温度与光通量(V)成反比,85时的光通量是25时的一半,而一40时光输出是25时的18倍。温度的变化对LED的波长也有一定的影响,因此,良好的散热是LED保持恒定亮度的保证。 3、数码管显示电路的设计 LED数码管带小数点的LED数码管由8段发光二极管组成,分别定义为a、b、c、d、e、f、g和dp,8段发光二极管的一个同名端接在一起,定义为公共端(com)。根据所接同名端的不同,LED数码管分为共阴和共阳两种,图4为其外形及结构图。要令数码管显示不同的字符,一要分别控制各段的独立端的电平,二要控制公共端,使相应的发光二极管点亮。如要显示“1”,则应使b、c点亮。以共阴数码管为例,应向b、c端送高电平,其余段送低电平,向com端送低电平。我们通常称控制ag和dp的信号为段码,控制com端的信号为位码。 4、如何实现定时功能 如果是普通51的话,其实可以这么说,比如16位的定时器。首先分清一个概念,其实定时器和计数器的原理都是一样的,都是“数”脉冲,有些人强行的认为,定时器是定时的,计数器是计数的,那就不对了。一般来说,定时器使用的是内部时钟(有时候也是用外部基准时钟,但情况比较少),因为时钟稳定的特点,我们就可以通过计N个脉冲,那么时间T=N*(1/F)(f为时钟频率)。计数器,一般计外部脉冲。有时候定时器和计数器联合使用,是用来测量外部秒冲频率。51的,具体实现是,计数到65535再加一的话,定时器就会溢出,如果开了中断的话,就会进入中断服务程序。 5、如何读取键盘数据只须将时间变量设置为“全局变量”即可。既使其在定时中断中自动累加循环,又使其随键盘控制而增减。显示数据亦从全局变量读取并处理后完成。 参考文献参考文献: 1 曹国华、余锡存等编著,单片机原理及接口技术M,西安电子科技大学出版社  2 周航慈等编著,单片机程序设计基础M,北京航空航天大学出版社3 康华光等编著,电子技术基础 第五版 数字部分M,高等教育出版社边4 海龙,孙永奎等编著, 单片机开发与典型工程项目实例详解M,电子工业出版社 5 何立民等编著,单片机应用系统设计M,北京航空航天大学出版社6 黄冰,覃伟年,黄知超等编著,微机原理及应用,重庆大学出版社7 王港元等编著,电子技能基础,四川大学出版社附  录 软件流程图: ORG 0030H AJMP INIT ORG 00H;设置初始状态;INIT:MOV 42H,#1 ;闪烁标志位 MOV R0,#0 ;R0为状态标志位 MOV SP,#60H ;设置堆栈指针 MOV DPTR,#TABLE ;将TABLE送DPTR MOV P2,#0FFH ;所有计数器片选置1 MOV R7,#0 ;计数器1十位 MOV R6,#5 ;计数器1个位 MOV R5,#60 ;循环次数 MOV R2,#0 ;计数器2十位 MOV R1,#5 ;计数器3个位 MOV P1,#0F6H ;红绿灯状态 LJMP SCAN ;跳计数器扫描段代码;设置状态1;STATE1:MOV P1,#0EEH ;红绿灯状态 MOV R0,#1 ;R0为状态标志位 MOV 40H,#1 ;判断闪烁位 MOV 41H,#1 ;判断闪烁位 MOV P2,#0FFH ;所有计数器片选置1 MOV R7,#3 ;计数器1十位 MOV R6,#5 ;计数器1个位 MOV R5,#60 ;循环次数 MOV R2,#3 ;计数器2十位 MOV R1,#0 ;计数器3个位 LJMP SCAN ;跳计数器扫描段代码;设置状态2;STATE2:MOV P1,#0F5H ;红绿灯状态 MOV 42H,#1 ;判断闪烁位 MOV R0,#2 ;R0为状态标志位 MOV P2,#0FFH ;所有计数器片选置1 MOV R7,#3 ;计数器1十位 MOV R6,#0 ;计数器1个位 MOV R5,#60 ;循环次数 MOV R2,#3 ;计数器2十位 MOV R1,#5 ;计数器2个位 LJMP SCAN ;跳计数器扫描段代码;扫描显示数码管和红绿灯;SCAN:MOV A,R7 ;将计数器十位送A MOVC A,A+DPTR ;取数据对应的码 MOV P0,A ;送P0口显示 CLR P2.7 ;选中第一个数码管显示 LCALL DELA ;延迟 SETB P2.7 ;取消选中的第一个数码管 MOV A,R6 ;计数器个位送A MOVC A,A+DPTR ;取计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.6 ;选中第二个数码管显示 LCALL DELA ;延迟 SETB P2.6 ;取消选中的第二个数码管 MOV A,R2 ;将计数器十位送A MOVC A,A+DPTR ;取计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.5 ;选中第三个数码管显示 LCALL DELA ;延迟 SETB P2.5 ;取消选中的第三个数码管 MOV A,R1 ;选中第四个数码管 MOVC A,A+DPTR ;去计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.4 ;选中第四个数码管显示 LCALL DELA ;延迟 SETB P2.4 ;取消选中的第四个数码管 DJNZ R5,SCAN ;循环扫描 MOV R5,#60 ;扫描一秒到 给R5送扫描下一秒时间 DEC R6 ;计数器1个位减1 DEC R1 ;计数器2个位减1 CJNE R1,#5,LP1 ;判断计数器1个位是否为5 SJMP LP2 ;若是则跳转LP2LP1: CJNE R6,#5,LOOP ;判断1、2个位是否为5,不是则跳转LOOP SJMP LP3 ;若是则跳转LP3LP2: CJNE R2,#0,LP3 ;计数器2个位是否为0 SJMP LP4 ;跳LP4LP3: CJNE R7,#0,LOOP ;判断1、2十位是否为0,不是则跳转LOOP SJMP LP4 ;跳LP4LP4: MOV R5,#60 ;若计数器为05,则开始闪烁 CJNE R0,#0,SET1 ;闪烁初始态为当前状态决定 LJMP SHINESCAN ;跳闪烁语句SET1:CJNE R0,#1,SET2 ;设置闪烁初始态-数码管10s和5s MOV R7,#1 MOV R6,#0 MOV R2,#0 MOV R1,#5 LJMP SHINESCAN ;跳转到闪烁段代码SET2:CJNE R0,#2,SET3 ;设置闪烁初始态-数码管5s和10s MOV R7,#0 MOV R6,#5 MOV R2,#1 MOV R1,#0 LJMP SHINESCAN ;跳转到闪烁段代码SET3:NOP LJMP SHINESCAN ;跳转到闪烁段代码LOOP:CJNE R1,#0FFH,LOOP1 ;判断2个位是否减为0 MOV R1,#9 ;超出给2个位赋9 DEC R2 ;并且将2十位减1LOOP1:CJNE R6,#0FFH,LOOP2 ;判断1个位是否减为0 MOV R6,#9 ;超出给1个位赋9 DEC R7 ;并且将1十位减1LOOP2:CJNE R2,#0FFH,LOOP3 ;判断2十位是否减为0 MOV R2,#0 ;减为0则计数器2置0 MOV R1,#0 ;计数器2置0LOOP3:CJNE R7,#0FFH,MID ;判断计数器1十位是否为0 AJMP STATE1 ;为0则跳到状态1MID: LJMP SCAN ;不为0则跳SCAN继续扫描 ;闪烁代码-计数器1、2全亮状态;SHINESCAN:MOV A,41H ;41H内容送A CJNE A,#0,VV1 ;判断41H内容是否为0 CLR P1.5 ;是则东西黄灯开始闪烁VV1: MOV A,42H ;42H内容送A CJNE A,#0,TT1 ;判断42H内容是否为0 CLR P1.2 ;是则南北黄灯开始闪烁TT1: MOV A,R7 ;将计数器十位送A MOVC A,A+DPTR ;取数据对应的码 MOV P0,A ;送P0口显示 CLR P2.7 ;选中第一个数码管显示 LCALL DELA ;延迟 SETB P2.7 ;取消选中的第一个数码管 MOV A,R6 ;计数器个位送A MOVC A,A+DPTR ;取计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.6 ;选中第二个数码管显示 LCALL DELA ;延迟 SETB P2.6 ;取消选中的第二个数码管 MOV A,R2 ;将计数器十位送A MOVC A,A+DPTR ;取计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.5 ;选中第三个数码管显示 LCALL DELA ;延迟 SETB P2.5 ;取消选中的第三个数码管 MOV A,R1 ;选中第四个数码管 MOVC A,A+DPTR ;去计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.4 ;选中第四个数码管显示 LCALL DELA ;延迟 SETB P2.4 ;取消选中的第四个数码管 DEC R5 ;R5减1 CJNE R5,#30,SHINESCAN ;闪烁代码-计数器1亮;TAP: SETB P1.2 ;将东西黄灯灭掉 CJNE R0,#1,PP1 ;判断红绿灯状态是否为1 MOV A,41H ;将41H内容送A CJNE A,#0,TT ;判断41H是否为0 SETB P1.5 ;将南北黄灯灭掉TT: MOV A,R7 ;将计数器十位送A MOVC A,A+DPTR ;取数据对应的码 MOV P0,A ;送P0口显示 CLR P2.7 ;选中第一个数码管显示 LCALL DELA ;延迟 SETB P2.7 ;取消选中的第一个数码管 MOV A,R6 ;计数器个位送A MOVC A,A+DPTR ;取计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.6 ;选中第二个数码管显示 LCALL DELA ;延迟 SETB P2.6 ;取消选中的第二个数码管 MOV A,42H ;将42H的内容送A CJNE A,#1,QQ1 ;判断42H内容是否为1 MOV A,40H ;将40H的内容送A CJNE A,#1,PP1 ;判断40H的内容是否为1,不为1跳转PP1(不是1即计数器2闪烁) LCALL DELA ;若为1则开始延时 LCALL DELA DEC R5 ;R5减1 JMP TAP3 ;跳TAP3;闪烁代码-计数器2亮;PP1: SETB P1.5 ;将南北黄灯灭掉 MOV A,42H ;将42H内容送A CJNE A,#0,BB ;判断42H内容是否为0,不是则跳转BB SETB P1.2 ;为0则将东西黄灯灭掉BB: MOV A,R2 ;将计数器十位送A MOVC A,A+DPTR ;取计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.5 ;选中第三个数码管显示 LCALL DELA ;延迟 SETB P2.5 ;取消选中的第三个数码管 MOV A,R1 ;选中第四个数码管 MOVC A,A+DPTR ;去计数器个位对应的码 MOV P0,A ;送P0口显示 CLR P2.4 ;选中第四个数码管显示 LCALL DELA ;延迟 SETB P2.4 ;取消选中的第四个数码管 CJNE R0,#1,QQ ;判断是否为状态1 JMP QQ1 ;是则跳转QQ1QQ: MOV A,42H ;将42H内容送A CJNE A,#1,TT ;判断42H是否为1,不是则跳转TT(不是1则计数器1和2全亮) LCALL DELA ;是则延时 LCALL DELAQQ1: DEC R5 ;R5减1;判断状态代码段;TAP3:CJNE R5,#0,TAP ;判断是否为0,不是则继续扫描显示 MOV R5,#60 ;若为0(1S到)阅媳彬送R5 60继续扫描 DEC R6 ;并且将计数器1的个位 减1 CJNE R6,#0FFH,WW1 ;判断计数器1的个位是否减到了0,没有则跳转到WW1 CJNE R0,#2,XX ;如果减到了0,判断是否为状态2,不是则跳转到XX JMP AA1 ;如果是状态2,跳转到AA1XX: MOV R7,#0 ;不是状态2,给计数器赋值09 MOV R6,#9WW1: CJNE R6,#5,WW2 ;计数器1的个位是否为5,不是跳WW2 MOV 41H,#0 ;计数器1已减至5,则将0赋给41H MOV P1,#0DEH ;东西红灯, 南北黄灯WW2: CJNE R6,#0,AA1 ;计数器1个位是否为0,不是则跳AA1 CJNE R0,#2,AA ;是否在状态2,不是则转TAP1AA1: CJNE R6,#0FFH,TAP1 ;判断计数器1是否减为0,不是则跳转TAP1 MOV R7,#0 ;计数器1送固定值00 MOV R6,#0 MOV 42H,#0 ;想42H中送0 JMP TAP1 ;跳转TAP1 AA: MOV 41H,#1 ;给41H送1 LJMP STATE2 ;跳转STATE2状态2TAP1:DEC R1 ;计数器2个位减1 CJNE R1,#0FFH,WW ;判断计数器2是否减为0 CJNE R2,#1,WW3 ;判断计数器2十位是否为1,不是则跳转到WW3 MOV R2,#0 ;是则给计数器2赋值09 MOV R1,#9 SJMP TAP2 ;跳转TAP2WW3: MOV R2,#0 ;给计数器2赋值00 MOV R1,#0WW: CJNE R1,#0,ZZ ;判断计数器2个位是否为0,不是则跳转ZZ MOV R2,#0 ;给计数器2赋值00 MOV R1,#0 MOV 40H,#0 ;给40H赋值0 CJNE R0,#2,YY ;判断是否为状态2,不是则跳转YY MOV 42H,#1 ;是则将42H置1 LJMP STATE1 ;跳转状态1YY: NOP ;空指令ZZ: CJNE R1,#5,TAP2 ;判断计数器2个位是否为5,不是则跳转TAP2 MOV 42H,#0 ;是则将42H置0 MOV P1,#0F3H ;将东西黄灯,南北红灯亮TAP2:LJMP SHINESCAN ;跳转闪烁代码;延迟代码段;DELA:MOV R4,#10 ;

    注意事项

    本文(交通灯课程设计复习过程.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开