实验三-交通灯控制实验

合集下载

实验03 交通灯实验

实验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自动控制实验

交通信号灯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 微机接口实验系统集成开发环境)

交通灯控制实验(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报告资料

华南理工大学数字系统设计实验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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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秒,数码管显示计数器的当前值,当还剩三秒的时候,绿灯开始闪烁。

相关文档
最新文档