实验三-交通灯控制实验
实验03 交通灯实验

实验三交通灯焊接及编程一、实验目的①了解7段数码管及其动态扫描原理。
②掌握7段数码管的编程控制显示技术。
二、实验设备1.实验工具每人一套:烙铁、烙铁架;两人一套:尖嘴钳、偏口钳;万用表一个,用于检查焊接电路的正确性。
一人一台:装有Keil集成开发环境和STC下载软件的PC机。
2.实验材料器件名称说明数量LED 红色2个,绿色2个,黄色2个 6电阻510欧姆 4数码管3261BS共阳2位数码管 1排针长11mm 2.54mm间距20针 1导线1米 1焊锡丝0.4米 1三、实验内容1.流水灯电路设计和焊接图1 流水灯电路原理图2.流水灯编程通过使用定时器实现一秒钟亮一盏灯,8盏灯循环轮流点亮。
定时器编程可采用轮询方式或者中断方式,定时器可采用T0或者T1,定时器工作方式也可以自由选定。
四、实验准备1.了解实验中器件AGFE DC B DP510第一位的共阳端第二位的共阳端图2 3261BS 数码管外部引脚图3 3261BS 共阳数码管的内部电路2.I/O 编程3.中断编程4.定时器五、 程序示例#include <reg51.h> //包含特殊功能寄存器库 sbit Wei1=P1^3; sbit Wei2=P1^2;char SegCode[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; char LightCasePattern[2]={0x21,0xC}; char LightCaseCnt[2]={25,25}; char LightCase; char TimeCount;int i,j; int cnt; void main() {TMOD=0x01;TH0=0xD8;TL0=0xf0; EA=1;ET0=1;i=0;cnt=0;TimeCount=0;P2=~0x9;j=0;TR0=1;LightCase=0;TimeCount=5;while(cnt<=500);cnt=0;P2=~LightCasePattern[LightCase];TimeCount=LightCaseCnt[LightCase];while(1){if(cnt==LightCaseCnt[LightCase]*100){cnt=0;LightCase++;LightCase=LightCase%2;P2=~LightCasePattern[LightCase];TimeCount=LightCaseCnt[LightCase];}};}void time0_int(void) interrupt 1 //中断服务程序{TH0=0xD8;TL0=0xf0;i++;j++;cnt++;if (i==5){i=0;if(Wei1==1){Wei1=0;Wei2=1;P0=SegCode[TimeCount%10];} else{Wei2=0;Wei1=1;P0=SegCode[TimeCount/10];}}if (j==100){j=0;TimeCount--;}}。
交通信号灯PLC自动控制实验

一、实验目的
1.掌握十字路口交通信号灯的控制原理;
2.掌握PLC定时器﹑计数器的使用方法;
二、实验要求
1.本装置与交通信号灯控制一致,采用LE模拟信号灯,信号灯分东西﹑南北二组分别有
“红”“黄”“绿”三种颜色;其工作状态由PLC程序控制,“启动”、“停止”按钮分别控制信号灯的启动和停止;“白天/黑夜”开关控制信号灯白天黑夜转换;
2.对“红”“黄”“绿”灯控制要求如下:
1)假设东西方向交通比南北方向繁忙一倍,因此东西方向的绿灯通行的时间多一倍;
控制时序要求如
2)图错误!未定义书签。
所示;
3)按下“启动”按钮开始工作,按下“停止”按钮停止工作,“白天/黑夜”开关按下闭合时
为黑夜工作状态,这时只有黄灯闪烁,断开时按时序控制图工作;
3.根据具体情况还可增加控制要求,如紧急控制,某一方向绿灯常亮;
图错误!未定义书签。
三、实验设备
四、PLC-2型可编程控制器实验台1台,PLC-EMO001PLC1交通信号灯自动控制演示版1
块,FX-10P-E1编程器1只,编程电缆1根,自锁式连接导线若干;
五、实验内容
接线图:
程序指令:
梯形图:
六、实验记录
程序测试过程
七、实验总结
通过交通灯PLC控制系统的设计,掌握了十字路口交通信号灯的控制原理,以及PLC定时器﹑计数器的使用方法,同时学会了PLC系统设计的步骤和方法;。
交通灯控制电路综合设计实验

放风筝小学生二年级作文7篇放风筝是清明时节人们所喜爱的一项活动,此时的气候风向也非常适宜放风筝。
下面是小编为大家整理的放风筝小学生二年级作文7篇,仅供参考,欢迎大家阅读借鉴。
放风筝小学生二年级作文1星期天下午,阳光明媚,微风吹拂,天气格外温暖,我的心情也很好,因为叔叔要带我去放风筝。
我和叔叔一路走一路说笑着,不知不觉就来到了广场。
广场上的人可真多呀!很多人都在放风筝。
天上的风筝一个比一个飞得高,像鸟儿一样在空中自由地盘旋。
看着一个个高高飞起的风筝,我的心痒痒的,已经有些迫不及待了。
我是第一次放风筝,所以需要身为高手的叔叔示范一次。
只见叔叔拉着风筝线边跑边慢慢放线,不一会儿,风筝便高高地飞了起来。
看着叔叔的示范,我觉得我会放风筝了。
于是,我学着叔叔的样子慢慢放线。
因为我总站在原地,风一停,风筝就会掉下来。
这时,叔叔对我喊:“跑,跑起来!”听了这话,我立马在广场上跑起来,风筝果然如叔叔说的那样飞了起来。
但是广场上放风筝的人太多了,我一放开跑,风筝线就和别人的风筝线缠在一起。
叔叔赶紧过来帮我解开风筝线,并教了几种方法避开别的风筝。
我又重新开始放,这次很顺利,风筝飞得很高。
我仰望我的风筝,它像鸟儿一样在湛蓝的天空中飞翔,和其他风筝一起,让这场空中舞会变得热闹非凡。
望着天空飞舞的风筝,我不禁想到,有时我们就像那风筝,总想飞得更高更远,可总被拿着风筝线的父母紧紧拽着,可换个角度想,没有了父母的帮助,我们怎会高高飞起?放风筝小学生二年级作文2星期天下午,秋高气爽,微风习习,我兴高采烈地和妈妈去太子山公园放风筝我的风筝是金鱼形状的,它有一双圆溜溜的眼睛、淡蓝色的鱼鳞、金色的脑袋和金黄色的尾巴,非常惹人喜爱!我们来到太子山公园,看道人们三个一群五个一伙的在放风筝。
天上无颜六色、形态各异的风筝让人眼花缭乱,有展翅高飞的老鹰,有精美别致的脸谱,有喜气洋洋的猪八戒,还有拖着长长尾巴的蜻蜓……我一边欣赏,一边和妈妈找了一个空旷的地方放风筝。
交通灯实训实验报告

一、实验目的1. 理解交通灯控制系统的工作原理。
2. 掌握使用单片机进行交通灯控制系统的设计与实现。
3. 提高动手实践能力和问题解决能力。
二、实验原理交通灯控制系统通常采用单片机作为核心控制单元,通过编程实现对交通灯的红、黄、绿三种灯光状态的切换。
本实验采用单片机(如STC89C52)作为核心控制单元,利用定时器实现灯光的定时切换,并通过LED灯模拟交通灯的灯光状态。
三、实验器材1. 单片机开发板(如STC89C52开发板)2. LED灯(红、黄、绿各一个)3. 电阻(根据LED灯的规格选择)4. 跳线5. 编程器6. 计算机四、实验步骤1. 硬件连接:- 将红、黄、绿LED灯分别连接到单片机的P1.0、P1.1、P1.2端口。
- 将电阻串联在每个LED灯的两端,防止LED灯过载。
- 将跳线连接到单片机的相关引脚,用于编程和调试。
2. 软件编程:- 使用Keil软件编写单片机程序,实现交通灯的控制逻辑。
- 设置定时器,实现灯光的定时切换。
- 编写主循环程序,根据定时器的值切换LED灯的状态。
3. 程序调试:- 将程序烧录到单片机中。
- 使用示波器或逻辑分析仪观察LED灯的状态,确保程序运行正常。
4. 实验验证:- 将LED灯连接到实际交通灯的位置。
- 启动单片机,观察LED灯的状态是否符合交通灯的控制逻辑。
五、实验结果与分析1. 实验结果:- 红灯亮时,表示禁止通行。
- 绿灯亮时,表示允许通行。
- 黄灯亮时,表示准备切换到红灯。
2. 实验分析:- 通过本次实验,掌握了使用单片机进行交通灯控制系统的设计与实现。
- 了解了定时器在实现灯光切换中的作用。
- 提高了动手实践能力和问题解决能力。
六、实验总结1. 优点:- 实验操作简单,易于上手。
- 理论与实践相结合,提高了学生的动手能力。
2. 不足:- 实验内容较为简单,未能涉及到复杂交通灯控制系统的设计。
- 实验器材较为有限,限制了实验的拓展性。
七、实验拓展1. 研究复杂交通灯控制系统的设计,如多路口交通灯协同控制。
交通灯控制实验

评分:__________ 实验报告实验题目:交通灯控制实验_____________班级:电信07-2 _________________________姓名:曾文平学号:07034030234指导教师:左敬龙________________________实验日期:年月日实验三交通灯控制实验一、实验要求1.以74LS273作为输出口,控制4个双色LED灯(可发红, 绿,黄光),模拟交通灯管理。
2.以P1 为输出口,控制8个发光二极管,在交通灯状态转换时(黄灯状态)闪烁。
二、实验目的1.学习在单片机系统中扩展简单I/O 接口的方法。
2.学习数据输出程序的设计方法。
3.学习模拟交通灯控制的方法。
4.学习双色灯的使用。
学习P1 口的使用方法三、实验电路及连线接线说明:P1.0〜P1.7接DL1〜DL8 PO0- PO3接DG 什DG4P04 PO7接 DR 〜DR4 /CS 接 8200H四、实验说明1. 因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化 规律。
假设一个十字路口为东西南北走向。
初始状态 0为东西红 灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段 时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然 红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状 态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最 后循环至状态1。
2. 双色LED 是由一个红色LED 管芯和一个绿色LED f 芯封装在一起, 公用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮; 红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高 电平时,黄灯亮3L 24G ru 12345&7&DDDDPDDD11 1 11 1 1 1 7 ? V Y234 2 2 2 2 A R a A 1 2 3 4 2 2 2 Y Y Y Y1 2 3 斗 1 2 G i GD0-O7D 1 G 74L"柑>CLK CLR12345678 QQQQQQQQB75324682 G ru3 -h I ■4 G 7■ a12 3 F 1 r [(高低电平控制颜色与具体实验元器件有关,预作实验测试)。
交通灯控制实验(TPC-USB 微机接口实验系统集成开发环境)

实验八 交通灯控制实验一、实验目的:1、学习并掌握并行接口8255A的内部结构,功能及编程。
2、通过并行接口8255A实现十字路口交通灯的模拟控制,进一步掌握对并行A、B、C端口能在以下三种方式下工作:方式0—基本输入/出方式方式1—选通输入/出方式方式2—双向选通输入/出方式8255A的工作方式控制字用来决定8255A端口的工作方式,方式控制字的格式如图2-2所示。
表2-1 8255端口地址L12、L11、L10作为东西路口的交通灯与PC0、PC1、PC2相连,编程使六个交通灯按如下变化规律燃灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮。
(2)南北路口的黄灯闪烁若干次,同时东西路口红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮。
(4)南北路口的红灯继续亮,同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
四、实验步骤1、按图2-1连接实验线路,注意切断实验箱电源。
2、参考下面的实验流程编写实验程序。
实验流程如下:3、经汇编、链接后将程序装入系统。
4、运行程序,观察交通灯的变化。
交通灯控制实验程序1: data segmentprotc1 db 9bh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbh db 7eh,7dh,7fh,7dh,7fh,7dh,7fhdb 0ffhdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,0e3hmov al,90hout dx,almov dx,0e2hloop1: mov bx,0000hloop2:mov al,protc1[bx]cmp al,0ffhjz loop1out dx,alcall delayinc bxjmp loop2delay:mov cx,01ffhde1: mov di,0ffhde0: dec dijnz de0loop de1retcode endsend start交通灯控制实验程序2:data segmentprotc1 db 0dbh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbhdb 7eh,7dh,7fh,7dh,7fh,7dh,7fhdb 0ffhdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,0e3hmov al,90hout dx,almov dx,0e2hloop1: mov bx,0000hloop2:mov al,protc1[bx]cmp al,0ffhjz loop1out dx,aland al 21hcmp al,21hjz aamov cx,0effhjmp bbaa: mov cx,01dfhbb: call delayinc bxjmp loop2delay:de1: mov di,0ffhde0: dec dijnz de0loop de1retcode endsend startdata segmentportc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志 data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255bmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255are_on: mov bx,0on: mov al,portc1[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,20 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,5000 ;有,长延时de1: mov di,9000 ;di赋初值5000de0: dec di ;减1计数jnz de0 ;di不为0loop de1push dxmov ah,06hmov dl,0ffhint 21hpop dxjz on ;没有,转到onexit: mov ah,4ch ;返回int 21hcode endsend start。
交通灯实验报告

交通灯实验报告交通灯实验报告引言:交通灯是城市交通管理中不可或缺的一部分,它通过红、黄、绿三种信号灯的变化来引导车辆和行人的通行。
本次实验旨在通过观察交通灯的工作原理和效果,了解交通灯在交通管理中的重要性。
实验目的:1. 观察交通灯的信号灯变化规律;2. 分析交通灯对车辆和行人通行的引导作用;3. 探讨交通灯在交通管理中的优势和不足。
实验过程:在实验室中,我们使用了一套模拟交通灯系统进行实验。
该系统包括红、黄、绿三种信号灯和相应的控制器。
首先,我们观察了交通灯的信号灯变化规律。
根据实验室提供的资料,红灯表示停止,黄灯表示准备,绿灯表示通行。
交通灯的变化规律是:红灯亮→绿灯亮→黄灯亮→红灯亮。
这个变化过程是有序的,为车辆和行人提供了明确的信号。
接下来,我们进行了交通灯对车辆和行人通行的引导实验。
在实验室中,我们设置了一段模拟道路和人行横道,并安装了交通灯。
通过控制器,我们模拟了不同的交通情况,观察交通灯对车辆和行人通行的影响。
实验结果显示,当红灯亮起时,车辆停止通行,行人等待过马路;当绿灯亮起时,车辆可以通行,行人可以过马路;当黄灯亮起时,车辆应减速停车,行人应尽快过马路。
交通灯的引导作用使得车辆和行人的通行更加有序和安全。
讨论:交通灯作为一种交通管理工具,具有一定的优势和不足。
首先,交通灯通过明确的信号灯变化规律,为车辆和行人提供了明确的指示,减少了交通事故的发生。
其次,交通灯可以根据交通流量的变化进行智能调控,提高道路的通行效率。
此外,交通灯还可以与其他交通设施相结合,形成综合交通管理系统,进一步提升交通管理水平。
然而,交通灯也存在一些不足之处。
首先,当交通流量较大时,交通灯的信号周期较长,可能导致车辆和行人等待时间过长,影响通行效率。
其次,交通灯对车辆和行人的通行进行了简化处理,不能完全满足各种交通情况的需求。
例如,在某些情况下,行人可能需要额外的通行时间,以确保安全过马路。
结论:通过本次实验,我们深入了解了交通灯的工作原理和效果。
华南理工大学数字系统设计实验3报告资料

实验三基于状态机的交通灯控制地点:31号楼312房;实验台号:12实验日期与时间:2017年12月08日评分:预习检查纪录:批改教师:报告内容:一、实验要求1、开发板上三个led等分别代表公路上红黄绿三种颜色交通灯。
2、交通灯状态机初始状态为红灯,交通灯工作过程依次是红→绿→黄→红。
3、为了方便观察,本次实验要求红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s,时间需要倒计时,在数码管上显示。
编程之前要求同学们先画好ASM图。
4、1Hz分频模块请采用第二次实验中的内容,7段码显示模块请参考书本相关内容。
5、第三次实验课用到EP2C8Q208C8通过74HC595驱动数码管,有两种方法写该模块代码:方法1,用VHDL语言写,(自己写VHDL代码有加实验分)。
方法2,可调用verilog数码管驱动模块,该模块在附件“seg.zip”中。
和其它VHDL编写的模块可以混搭在一个电路图中使用。
EP2C8Q208C8的SCTP,SHCP,SER_DATA数码管信号线通过两块74HC595集成块,再驱动数码管。
6、芯片型号:cyclone:EP2C8Q208C8,开发板所有资料都在“新板”附件中,其中管脚配置在实验要求中是不对的,以“新板”附件中为准。
二、实验内容1设计要求开发板上三个led等分别代表公路上红黄绿三种颜色交通灯。
交通灯状态机初始状态为红灯,交通灯工作过程依次是红→绿→黄→红。
本次实验要求红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s,时间需要倒计时,在数码管上显示。
2设计思路(1)数码管驱动第三次实验课用到EP2C8Q208C8通过74HC595驱动数码管,有两种方法写该模块代码:方法1,用VHDL语言写,(自己写VHDL代码有加实验分)。
方法2,可调用verilog数码管驱动模块,该模块在附件“seg.zip”中。
和其它VHDL 编写的模块可以混搭在一个电路图中使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□√设计□创新实验日期:实验成绩:实验三交通灯控制实验一.实验目的掌握十字路口交通灯控制方法。
二.实验内容利用系统提供的双色LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。
4 位LED 数码管显示时间,LED 显示红绿灯状态。
三.实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四.实验说明和电路原理图交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。
开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20 秒),东西路口的绿灯,闪烁若干次后(3 秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。
双色LED 是由一个红色LED 管芯和一个绿色LED 管芯封装在一起,共用负极,当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
本实验需要用到CPU 模块(F3 区)、静态数码管/双色LED 显示模块(B4 区)实验框图如图:五.实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。
六.实验步骤1)系统各跳线器处在初始设置状态。
P10 同时接G1、G3;P11 同时接R1、R3;P1.2 同时接G2、G4;P1.3 同时接R2、R4;P1.6、P1.7 分别接静态数码显示的DIN、CLK。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察十字路口交通灯效果。
七.实验程序//*******************************************************************SECOND1 EQU 30H ;东西秒寄存器SECOND2 EQU 31H ;南北秒寄存器DBUF EQU 40H ;显示缓冲1TEMP EQU 44H ;显示缓冲2LED_G1 BIT P1.0 ;东西绿灯LED_R1 BIT P1.1 ;东西红灯LED_G2 BIT P1.2 ;南北绿灯LED_R2 BIT P1.3 ;南北红灯Din BIT P1.6 ;串行显示数据CLK BIT P1.7 ;串行显示时钟ORG 0000HLJMP STARTORG 0100HSTART:LCALL STATE0 ;调用状态0LCALL DELAY ;调用延时MOV TMOD,#01H ;置T0工作方式1MOV TH0, #3CH ;置T0定时初值50mSMOV TL0, #0B0HSETB TR0 ;启动T0CLR EALOOP: MOV R2,#20 ;置1S计数初值50mS*20=1SMOV R3,#20 ;红灯20SMOV SECOND1,#25 ;东西秒显示初值25SMOV SECOND2,#25 ;南北秒显示初值25SLCALL DISPLAYLCALL STATE1 ;调用状态1WAIT1: JNB TF0,WAIT1 ;查询50mS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值50mSMOV TL0, #0B0HSETB TR0 ;启动T0MOV R2,#20 ;置50mS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALL DISPLAYDJNZ R3,WAIT1 ;状态1维持20S;***************************************************MOV R2,#5 ;置50mS计数初值5*4=20MOV R3,#3 ;绿灯闪3SMOV R4,#4 ;闪烁间隔200mSMOV SECOND1,#5 ;东西秒显示初值5SMOV SECOND2,#5 ;南北秒显示初值5SLCALL DISPLAYWAIT2: LCALL STATE2 ;调用状态2JNB TF0,WAIT2 ;查询50mS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值50mSMOV TL0, #0B0HDJNZ R4,WAIT2 ;判200mS到否?未到继续状态2CPL LED_G1 ;东西绿灯闪MOV R4,#4 ;闪烁间隔200mSDJNZ R2,WAIT2 ;判1S到否?未到继续状态2MOV R2,#5 ;置50mS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALL DISPLAYDJNZ R3,WAIT2 ;状态2维持3S;***************************************************MOV R2,#20 ;置50mS计数初值MOV R3,#2 ;黄灯2SMOV SECOND1,#2 ;东西秒显示初值2SMOV SECOND2,#2 ;南北秒显示初值2SLCALL DISPLAYWAIT3: LCALL STATE3 ;调用状态3JNB TF0,WAIT3 ;查询30mS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值50mSMOV TL0, #0B0HMOV R2,#20 ;置50mS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALL DISPLAYDJNZ R3,WAIT3 ;状态3维持2S;***************************************************MOV R2,#20 ;置50mS计数初值MOV R3,#20 ;红灯20SMOV SECOND1,#25 ;东西秒显示初值25SMOV SECOND2,#25 ;南北秒显示初值25SLCALL DISPLAYWAIT4: LCALL STATE4 ;调用状态4JNB TF0,WAIT4 ;查询50mS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值50mSMOV TL0, #0B0HDJNZ R2,WAIT4 ;判1S到否?未到继续状态4MOV R2,#20 ;置50mS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALL DISPLAYDJNZ R3,WAIT4 ;状态4维持20S;***************************************************MOV R2,#5 ;置50mS计数初值5*4=20MOV R4,#4 ;闪烁间隔200mSMOV R3,#3 ;绿灯闪3SMOV SECOND1,#5 ;东西秒显示初值5SMOV SECOND2,#5 ;南北秒显示初值5SLCALL DISPLAYWAIT5: LCALL STATE5 ;调用状态5JNB TF0,WAIT5 ;查询50mS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值100mSMOV TL0, #0B0HDJNZ R4,WAIT5 ;判200mS到否?未到继续状态5CPL LED_G2 ;南北绿灯闪MOV R4,#4 ;闪烁200mSMOV R2,#5 ;置100mS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALL DISPLAYDJNZ R3,WAIT5 ;状态5维持3S;***************************************************MOV R2,#20 ;置50mS计数初值MOV R3,#2 ;黄灯2SMOV SECOND1,#2 ;东西秒显示初值2SMOV SECOND2,#2 ;南北秒显示初值2SLCALL DISPLAYWAIT6: LCALL STATE6 ;调用状态6JNB TF0,WAIT6 ;查询100mS到否CLR TF0MOV TH0, #3CH ;恢复T0定时初值100mSMOV TL0, #0B0HDJNZ R2,WAIT6 ;判1S到否?未到继续状态6MOV R2,#20 ;置100mS计数初值DEC SECOND1 ;东西秒显示减一DEC SECOND2 ;南北秒显示减一LCALL DISPLAYDJNZ R3,WAIT6 ;状态6维持2SLJMP LOOP ;大循环STA TE0: ;状态0MOV P1,#0CLR LED_G1SETB LED_R1 ;东西红灯亮CLR LED_G2SETB LED_R2 ;南北红灯亮RETSTA TE1: ;状态1SETB LED_G1 ;东西绿灯亮CLR LED_R1CLR LED_G2SETB LED_R2 ;南北红灯亮RETSTA TE2: ;状态2CLR LED_R1CLR LED_G2SETB LED_R2 ;南北红灯亮RETSTA TE3: ;状态3SETB LED_G1SETB LED_R1 ;东西黄灯亮CLR LED_G2SETB LED_R2 ;南北红灯亮RETSTA TE4: ;状态4CLR LED_G1SETB LED_R1 ;东西红灯亮SETB LED_G2 ;南北绿灯亮CLR LED_R2RETSTA TE5: ;状态5CLR LED_G1SETB LED_R1 ;东西红灯亮CLR LED_R2RETSTA TE6: ;状态6CLR LED_G1SETB LED_R1 ;东西红灯亮SETB LED_G2SETB LED_R2 ;南北黄灯亮RETDISPLAY: ;数码显示MOV A, SECOND1 ;东西秒寄存器MOV B, #10 ;16进制数拆成两个10进制数DIV ABMOV DBUF+1,AMOV A,BMOV DBUF, AMOV A, SECOND2 ;南北秒寄存器MOV B, #10 ;16进制数拆成两个10进制数DIV ABMOV DBUF+3, AMOV A,BMOV DBUF+2, AMOV R0,#DBUFMOV R1,#TEMPMOV R7,#4DP10: MOV DPTR,#LEDMAPMOV A,@R0MOVC A,@A+DPTRMOV @R1,AINC R0INC R1DJNZ R7,DP10MOV R0,#TEMPMOV R1,#4DP12: MOV R7,#8MOV A,@R0DP13: RLC AMOV DIN,CCLR CLKSETB CLKDJNZ R7,DP13INC R0DJNZ R1,DP12RETLEDMAP: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,BDB 58H,5EH,7BH,71H,0,40H ;C,D,E,F,, -Delay: mov r5, #5DLoop0:mov r6, #0DLoop1:mov r7, #0DLoop2:NOPNOPdjnz r7, DLoop2djnz r6, DLoop1djnz r5, DLoop0retEND八.实验现象及小结当程序开始运行时,东西绿灯亮,南北红灯亮,且持续的时间为25秒,数码管显示计数器的当前值,当还剩三秒的时候,绿灯开始闪烁。