交通灯控制软延时
图34交通灯控制
功能描述模拟交通灯的实现是SWLED上的灯模拟红绿灯数码管模拟倒计时显示器先是南北路口绿灯亮东西路口红灯亮倒计时30秒南北路口黄灯亮东西路口红灯亮倒计时5秒南北路口红灯亮东西路口绿灯亮倒计时30秒南北路口红灯亮东西路口黄灯亮倒计时5秒然后不停的循环这四种状态。可按任意键退出该程序K0键为东西紧急键K1为南北紧急键。按动K0K01后东西方向一直为绿灯南北方向一直为红灯直到再次搬动K0使K00时南北绿灯东西红灯恢复上述四种状态的循环。按动K1使K11时南北一直绿灯
f东西一直红灯知道再次按动K1使K10使南北红灯东西绿灯
恢复上述四种状态的循环。
在SWLEDUNIT中D7、D5、D3分别表示东西方向的红、绿、黄灯
D6、D4、D3分别表示南北方向的红、绿、黄灯。
5交通灯控制8254
这部分的功能模块图与功能描述与上述交通灯控制软延时相同只
是实现方式有所不同。
四、详细设计
1、用8255实现流水灯熟悉8255的使用和工作原理。
在该试验中使8255的A口、B口、C口均工作在输出状态下让B口与SWLEDUNIT的D0D7相连给B口得初值为FE并输出在LED灯上显示然后让该值循环右移并显示在每次输出时使用软件延时使灯的每次变换间隔大约为1秒
数据流程图为
图41流水灯数据流程图
2、用8255与LEDKEYBOARDUNIT相连实现八段数码管的静态显示。实验线路图如下图42所示
f共阴极LED数码管字形代码如下表42所示
实验步骤
设计实验线路图如上图42所示完成连接。
编写程序实现将给定数值用LED的前两位显示出来
8255初始化
MOVDX1463H
MOVAL10000001B初始化ABC口都工作在方式0都为输出口
OUTDXAL
LED显示数NUM
MOVBXOFFSETTABLE1取八段数码管表的首地址
fMOVALNUM
XLAT查表找出NUM对应的共阴极字形代码MOVDX1461H
OUTDXAL将该代码送到B口
打开试验箱电源进入纯DOS环境运行程序观察LED数码管显示情况。
实验流程图如下图44
图44静态显示程序数据流程图
3用8255与LEDKEYBOARDUNIT相连实现八段数码管的动态显示
实验连线图如下图45所示
f图45动态显示实验的连线图
实验步骤
设计实验连线图如上图45所示完成连线。
编写程序实现用LED数码管动态显示3000先使用软件延时使其实现30秒得倒计时。
8255初始化
MOVDX1463H
MOVAL10000001B初始化ABC口都工作在方式0都为输出口OUTDXAL
LED动态显示30秒得倒计时
DISPLYPROC
MOVNUM25使十位数与个位数循环交替显示25次MOVBXOFFSETTABLE1
SHOW
MOVALNUM1显示十位数
XLAT查表
MOVDX1461H
OUTDXAL将该数的LED数码管字形代码送到B口MOVDX1460H接通8段代码管r