十字路口红绿灯以及倒计时的显示.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
十字路口红绿灯以及倒计时的显示

十字路口红绿灯以及倒计时的显示 ORG 0000H ;主程序入口地址 LJMP START ORG 0003H ;外部中断0入口地址 LJMP INT_0 ;紧急车中断服务例程 ORG 000BH ;定时器T0入口地址 LJMP INTER ;定时器T0中断服务例程 ORG 0013H LJMP INT_1 START: MOV R2,#100 ;定时器T0溢出的次数 MOV TMOD,#01H ;定时器T0工作于方式1 MOV TL0,#0F0H ;给定时器T0赋初值 MOV TH0,#0D8H MOV IE,#87H ;开中断,并且允许定时器T0和外部中断0、1产生中断 SETB IT0 ;外部中断0为下降沿触发 SETB IT1 SETB PT0 ;设置定时器0的中断优先级别高 MOV R0,#60 ;状态1数码管倒计时初值 BB1:MOV P0,#81H ;状态1:东西车行道红灯亮,南北绿灯亮 SETB P2.0 ;东西人行道红灯亮,南北人行道绿灯亮 CLR P2.1 SETB P2.3 CLR P2.2 SETB TR0 ;开定时器T0,下同 LCALL DAOJISHI ;调用数码管倒计时显示子程序,下同 CJNE R0,#0FFH,BB1 ;判断状态1的倒计时是否完成,不是跳到BB1,是则继续执行 CLR TR0 ;倒计时完成后关闭定时器T0 MOV R0,#5 ;状态2数码管倒计时初值 SETB TR0 AA2:ACALL DAOJISHI CJNE R2,#50,EE2 ;判断是否溢出50次,也就是判断是否到0.5秒,不是跳到EE2,是则继续执行 MOV P0,#42H ;溢出50次,则各个路口黄灯亮 EE2:CJNE R2,#1,FF2 ;判断是否溢出99次,也就是判断是否要到1秒,不是跳到FF2,是则继续执行 MOV P0,#00H ;溢出99次,各个路口黄灯灭 FF2:CJNE R0,#0FFH, AA2 ;判断状态2倒计时是否完成,不是跳到AA2,是则继续执行 CLR TR0 MOV R0,#80 ;状态3数码管倒计时初值 BB3:MOV P0,#24H ;状态3:东西车行道绿灯亮,南北红灯亮 CLR P2.0 ;东西人行道绿灯亮,南北人行道红灯亮 SETB P2.1 SETB P2.2 CLR P2.3 SETB TR0 LCALL DAOJISHI CJNE R0,#0FFH,BB3 ;判断状态4的倒计时是否完成,不是跳到BB3,是则继续执行 CLR TR0 MOV R0,#5 ;状态4数码管倒计时初值,执行过程和状态2一样 SETB TR0 AA4:ACALL DAOJISHI CJNE R2,#50,EE4 MOV P0,#42H EE4:CJNE R2,#1,FF4 MOV P0,#00H LCALL DELAY FF4:CJNE R0,#0FFH,AA4 CLR TR0 LJMP START ;状态4倒计时完成,跳到程序开始处继续执行 INTER: ;定时器T0中断服务例程 CLR TR0 MOV TL0,#0F0H ;重新装入计数初值 MOV TH0,#0D8H CLR TF0 ;对定时器T0的溢出标志位清零 DJNZ R2,DD ;判断是否溢出100次,是继续执行,不是则跳到DD MOV R2,#100 ;溢出100次之后重新装入溢出次数 DEC R0 ;倒计时值减1 DD: SETB TR0

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档