全球旧事资料 分类
子程序设置南北绿灯的倒计时时间,后进行查表选择相应的LED灯的段选码,使相应的灯亮,显示南北绿灯交通灯变化,然后做南北绿灯的闪烁,和黄灯的亮持续,最后做主程序的循环,利用无条件跳转指令。
6
f基于8086的交通信号控制器的设计
2)、程序流程图
开始
程序初始化
路口红灯全亮
东西红南北绿
东西绿南北红开始倒计时倒计时开始Cx5
Cx5
东西绿灯,南北红灯
南北绿灯灭
延时500ms
延时500ms
东西绿灯灭,cx自减1
南北绿灯亮cx自减1
Cx0
Cx0
东西黄灯亮延时5s
南北黄灯亮延时5s
图16主控制程序
再次,也设计了一个到计时显示子程序,用来显示绿灯的到计时时间,设计思路:首先要保存进入到计时子程序时的断点保存,以保证能够子程序结束能够正常返回主程序,其次设置LED灯的秒数跳的快慢,使其运行结果便于观察,再次设置程序分别显示到计时LED灯的秒数的个位与十位,在显示秒数的个位与十位
7
f基于8086的交通信号控制器的设计
时要做秒数的个位与十位计数是否到零的判断,与此同时也要做秒数的个位与十位的断选码指示器的移动,最后做恢复断点和子程序的返回。其控制流程图:
进入
个位减一
显示个位
N
延时
个位等于表外第一个地址
显示十位
十位减一
延时
个位赋9
N
CX0
十位等于表外第一个地址
返回图17:倒计时显示程序
最后,还设计了两个延时程序,一个是绿灯闪烁3次时间的延时DL500子程序,一个是延时黄灯亮的时间DELAY子程序;DL500子程序的设计思路利用了设备提供的软中断实现的延时,其控制流程如(流程图:17);DELAY子程序的设计利用的是多次循环空操作实现,思路首先保存断点设置空操作的次数,做判断循环是否该结束,然后恢复断点,返回主程序,其控制流程如下
8
f基于8086的交通信号控制器的设计
保存断点
MOVAH0FFHINT21H星研公司提供的软中断实现延时
恢复保存中断
返回图18500ms延时程保存断电
置空操作循环次数
N
循环计数器是否为0
恢复断点
7段LED灯显示清0
返回图19DELAY延时程序
9
f基于8086的交通信号控制器的设计
3)、控制程序
IO2EQU20HCODESEGMENTCODEASSUMECSCODEDSCODESTARTMOVAXCODEMOVDSAXMOVAL10000000BMOVDXIO26OUTDXALMOVDXIO22MOVAL00100100B黄灯亮OUTDXALMOVBX100WAIT1MOVCX882LOOPDECBXJNZWAIT1MOVAL00000000B黄灯灭OUTDXALMOVBX100WAIT2MOVCX882LOOPDECBXJNZWAIT2MOVAL00100100B黄灯亮OUTDXALMOVBX200WAIT3MOVCX882LOOPDECBXJNZWAIT3LMOVAL00010001B红灯,绿灯亮OUTDXALMOVBX400
WAIT4MOVCX882LOOPDECr
好听全球资料 返回顶部