用定时器做顺序启动延时停止,用移位指令也可的

一个周期4S的触发器就行了,1S一个,从第二个开始点灯,第四个复位计数器,循环就行了,

从你的图上可以看出,这是两种控制方法,第一种是:灯一亮后一直在亮,直至同灯四一起灭,下同。第二种是:灯一亮后,在灯二亮时就灭,下同。程序很好编,我给你一个实例,不是很完善,但可以借鉴。图片太小,看不清,我再发一个程序吧。网络1 LD I0.0 LPS EU MOVW 1, VW10 L

到底是4个还是8个??要求和时序图不付呀。如图所示,按8个编的,望采纳。。。

PLC编程一个控制4个指示灯循环闪烁程序,要求 每隔一秒反复闪烁

2、课程设计要求 交通灯控制系统的设计 1) 掌握在单片机系统中扩展简单I/O接口的方法。 2) 掌握数据输出程序的设计方法。 3) 掌握模拟交通灯控制的实现方法。 4) 掌握外部中断技术的基本使用方法。 5) 掌握中断处理程序的编程方法。 从课程设计的目的出发,通过设计工作的各个环节,达到以下要求: (

图1:十字路口交通示意图 图2:十字路口通行顺序示意图 图3:十字路口交通指示灯示意图 图4:交通灯控制系统硬件框图 3、硬件设计 本系统硬件上采用AT89C52单片机和可编程并行接口芯片8155,分别控制图2所示的四个组合。AT89C52单片机具有MCS-51内核,片内有8KB Flash、256字节RAM、6个中断源、

三、设计思路及电路图1.设计思路本设计采以用单片机AT89C52作为控制器,通行时间或等待时间通过数码管以倒计时方式显示,同时单片机P1口控制交通灯(红灯、黄灯、绿灯)的正常的替换工作,如果有意外发生(交通事故)就会产生中断,东西南北红灯全亮。系统设计框图1如下:图1系统框图以下四图所示为红黄绿灯

MOV R0,#00H MOV R3,#40 ;R3控制南北方向数码管显示 MOV R2,#10 ;R2控制东西方向数码管显示 STATE1: CJNE R0,#20,POOL1 MOV R0,#00H ;R0 控制1s的循环控制 DEC R3 DEC R2 LCALL JUST1 LCALL JUST2 LCALL DISP POOL1: CJNE R2,#00H,STATE1 ;;;MOV P0,#0A8H ;状

使用74LS273作为输出口,控制4个双色LED灯(可发红、绿、黄光),模拟交通灯的管理。二、实验目的 1. 学习在单片机系统中扩展简单I/O接口的方法。2. 学习数据输出程序的设计方法。3. 学习模拟交通灯控制的方法。4. 学习双色灯的使用。三、实验电路及连线 四、实验说明 1. 由于本实验是交通灯控制

有关‘单片机控制的交通灯控制系统 ’的课程设计

2. 将SB43(SB44)开关扳向“分”位,听主断路器断开声,看“主断”、“欠压”灯亮,TCMS屏显示:“主断分”。辅助电源及辅助电机停止运转。3. 重合主断路器。(三) 空压机试验 1. 将SB45(SB46)开关扳向“合”位。(1)当总风压力低于750kPa时,KM13、KM14间隔3秒得电吸合,

故障诊断:该车仪表上挡位指示灯闪烁、发动机故障灯点亮,车辆只能依2, 4, 6偶数挡行驶。电脑检测变速箱有05636控制单元损坏的故障码,发动机存有05688要求故障灯打开激活的故障码,出现这种情况99%就是由于变速箱机电控制单元内部损坏导致,7速DSG波箱通病。 故障排除:更换变速箱机电控制单元。 7、帕萨特1.8T加油后松油

30.(14分)喷墨打印机的结构简图如图4—12所示,其中墨盒可以发出墨汁微滴,其半径约为10-5 m,此微滴经过带电室时被带上负电,带电的多少由计算机按字体笔画高低位置输入信号加以控制。带电后的微滴以一定的初速度进入偏转电场,带电微滴经过偏转电场发生偏转后打到纸上,显示出字体.无信号输入时,墨汁微滴不带电,

算了 给你个思路好了 也许有的你不满意 自己看着修改吧

如图所示,望采纳。。。

(4)8盏指示灯的控制控制要求:奇数灯亮2s后停止,然后偶数灯亮3s后停止,循环?

软件编程:点亮LED的艺术 流水灯的魅力在于其动态变化,而软件编程则是关键。这里,我们将采用位操作法,通过顺序控制P1口的位,实现LED的循环点亮。比如,首先让LED 7亮起,通过SETB P1.6指令,紧接着LED 8亮起,执行CLR P1.7指令将其关闭。更深入的细节在于延时子程序的编写,如SETB/P1.7后,

一般来说,实现流水灯功能需要以下步骤:首先确定单片机型号和开发环境,并熟悉指令集和寄存器配置。然后确定LED灯的连接方式,并编写程序来控制LED灯的亮灭状态。最后在程序中添加延时函数来实现LED灯的亮灭延迟。在编写程序时,需要注意语法错误和逻辑错误,并进行测试和调试,以确保程序能够正确运行并实现

当按键被按下时,执行相应的流水灯点亮操作;否则,保持当前的灯状态。这样的程序结构,简单明了,却又充满无限可能,只需稍加调试,你的流水灯就会根据按键的指令,展现出丰富多彩的灯光秀。编程的世界,每一步都充满了惊喜。不要被看似复杂的代码吓倒,51单片机按键控制流水灯的程序编写,就像一场与

主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制LED指示灯逐渐一个一个地点亮或一个一个地熄灭。复杂点: 可以进行花式流水控制。例如: 可以由两边逐渐向内点亮 然后再由内逐渐向外一个一个熄灭。还可以由由内逐渐向两边内点亮 然后再由两边渐向内逐一个一

可以用for循环试试unsingned char i;for(i=0;i<5;i++)//流水灯闪烁程序。若干个灯泡依次点亮就叫流水灯,它用在夜间建筑物装饰方面。例如在建筑物的棱角上装上流水灯,可起到变换闪烁美不胜收的效果。单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定义单片机的端口,写入延时函数。6、中断跳转,使流水灯运行起来。

要实现流水灯效果,首先需要将每个LED灯的一个引脚连接到单片机的一个I/O端口上。然后,通过编程控制这些I/O端口的电平状态,就可以控制LED灯的亮灭。在编程时,通常使用循环结构来实现流水灯效果。例如,可以使用一个for循环,依次将每个LED灯对应的I/O端口置为高电平(通常为VCC或5V),然后延时一段

单片机中流水灯如何控制

4. 电动机的通电线圈在磁场中转动,实现了 向 的转化。二. 选择题:有10小题,每小题2分,共20分。在每小题给出的四个选项中,只有一个选项正确,请将正确选项前的代号填入题后的括号内1.我国家庭电路的电压值是( ) A. 1.5V B.36V C.220V D.380V2.我国公安部规定:小汽车驾驶员和前排的乘客都应在胸前

单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 ⒈ 电源: ⑴ VCC - 芯片电源,接+5V; ⑵ VSS - 接地端; ⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 ⒊ 控制线:控制线共有4根, ⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ① ALE功能:用来锁存P0口送出的低8位地址

sbit led3=P1^2;sbit led4=P1^3;void fun1_int() interrupt 0 using 1//5 定义中断服务函数:中断号为0,用第1组寄存器组 { while(1) //while循环(永远为真,死循环){ //循环体开始 led1=~led1; //发光二级管的显示状态取反 led2=~led2;led3=~led3;led4=~led4;f

个开关时,8盏灯从左到右依次被点亮,最后全亮;闭合第3个开关时,8盏灯从右到左依次被点亮,最后全亮个开关时,8盏灯从左到右依次被点亮,最后全亮;闭合第3个开关时,8盏灯从右到左依次被点亮,最后全亮个开关时,8盏灯从左到右依次被点亮,最后全亮;闭合第3个开关时,8盏灯从右到左依次被

引脚输出低电平亮灯(从你原来的程序看出来的)delay();//延时,就是第j盏灯要亮多长时间,可以自己修改delay的时间就可以了}}//向右循环3次for (i = 0; i < 3; i++) {//亮灯右移,

51单片机:ORG 0000H MOV P1, #15LP: DJNZ R7, $ DJNZ R6, $ - 2 XRL P1, #255 SJMP LP END

根据你的要求,我理解为,单片机控制8位逻辑输入采集与8位LED输出指示,那么做模型的时候,用8路开关量输入,8个LED灯做输出,系统启动的时候闪烁3次,间隔2秒,然后开始采集输入信号,在对应的输出端用LED显示出来!原理图如下:程序如下,我都加了标注说明:include "reg51.h"//头文件 unsigned char

单片机实训题目:8位逻辑电平模块上的LED小灯呈现右侧4盏先闪烁3次,左侧4盏再闪烁3次,状态间隔为2秒。

#include #define uchar unsigned char uchar num=0; void t0isr() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; num++; if(num>=20) { num=0; P1=~P1; } } main() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; ET0=1; EA=1; P0=0xf0; while(1); }
P1=0xF0这个就是4盏亮4盏灭
单片机中流水灯控制: 硬件连接很简单,只要将8个led指示灯接在p1口上 另一端通过220欧姆的电阻接+5v电源上,就可以了。 主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制led指示灯逐渐一个一个地点亮或一个一个地熄灭。 复杂点: 可以进行花式流水控制。 例如: 可以由两边逐渐向内点亮 然后再由内逐渐向外一个一个熄灭。 还可以由由内逐渐向两边内点亮 然后再由两边渐向内逐一个一个熄灭。 在程序的实现上 可以把各种花式流水的p1口亮灭状态字 事先定义成数组 然后每隔一定的时间 取出送p1口显示。 呵呵 俺只提供给你一个号的算法 程序就自己动手自立更生吧 满意 就选满意回答
郭天祥51教程里面的,如果有其他问题,追问或私信 /************************************************************************************** * LED闪烁的简单试验 * * 延时实现p2口LED流水灯效果 (用循环移位指令) * * 连接方法: JP11(P2)和JP1(LED灯) 用8PIN排线连接起来 * * * ***************************************************************************************/ #include //此文件中定义了51的一些特殊功能寄存器 #include void delayms(unsigned char ms) // 延时子程序 { unsigned char i; while(ms--) { for(i = 0; i < 120; i++); } } main() { unsigned char LED; LED = 0xfe; //0xfe = 1111 1110 while(1) { P2 = LED; delayms(250); LED = LED << 1; //循环右移1位,点亮下一个LED "<<"为左移位 if(P2 == 0x00 ) {LED = 0xfe; } // 0xfe = 1111 1110 } }
#include #define uchar unsigned char #define uint unsigned int sbit RED_A=P3^0; //东西向指示灯 sbit YELLOW_A=P3^1; sbit GREEN_A=P3^2; sbit RED_B=P3^3; //南北向指示灯 sbit YELLOW_B=P3^4; sbit GREEN_B=P3^5; sbit KEY1=P1^0; sbit KEY2=P1^1; sbit KEY3=P1^2; //延时倍数,闪烁次数,操作类型变量 uchar Flash_Count=0,Operation_Type=1,LEDsng,LEDsns,LEDewg,LEDews,discnt; uint Time_Count=0,time; uchar ledtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; void displaysn() { LEDsng=((time-Time_Count)/20)%10; LEDsns=((time-Time_Count)/20)/10; LEDewg=0x10; LEDews=0x10; } void displayew() { LEDewg=((time-Time_Count)/20)%10; LEDews=((time-Time_Count)/20)/10; LEDsng=0x10; LEDsns=0x10; } //定时器0 中断函数 void T0_INT() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; switch(Operation_Type) { case 1: //东西向绿灯与南北向红灯亮 if((Time_Count%20)==0)displayew(); RED_A=0;YELLOW_A=0;GREEN_A=1; RED_B=1;YELLOW_B=0;GREEN_B=0; if(++Time_Count!=time) return; Time_Count=0; Operation_Type=2; break; case 2: //东西向黄灯开始闪烁,绿灯关闭 LEDewg=0x0; LEDews=0x0; if(++Time_Count!=8) return; Time_Count=0; YELLOW_A=~YELLOW_A;GREEN_A=0; if(++Flash_Count!=6) return; //闪烁 Flash_Count=0; Operation_Type=3; break; case 3: //东西向红灯与南北向绿灯亮 if((Time_Count%20)==0)displaysn(); RED_A=1;YELLOW_A=0;GREEN_A=0; RED_B=0;YELLOW_B=0;GREEN_B=1; if(++Time_Count!=time) return; Time_Count=0; Operation_Type=4; break; case 4: //南北向黄灯开始闪烁,绿灯关闭 LEDsng=0x0; LEDsns=0x0; if(++Time_Count!=8) return; Time_Count=0; YELLOW_B=~YELLOW_B;GREEN_A=0; if(++Flash_Count!=6) return; //闪烁 Flash_Count=0; Operation_Type=1; break; } } void t1_isr() interrupt 3 { TR1=0; TH1=(65536-3000)/256; TL1=(65536-3000)%256; TR1=1; switch(discnt) { case 0: P2=0x02; P0=ledtab[LEDewg]; break; case 1: P2=0x01; P0=ledtab[LEDews]; break; case 2: P2=0x08; P0=ledtab[LEDsng]; break; case 3: P2=0x04; P0=ledtab[LEDsns]; break; default:discnt=0;break; } discnt++; discnt&=0x03; } void delay() { uint i; for(i=0;i<1000;i++); } //主程序 void main() { TMOD=0x11; //T0 方式1 EA=1; ET0=1; TR0=1; TH1=(65536-3000)/256; TL1=(65536-3000)%256; TR1=1; ET1=1; time=120; Time_Count=100; Time_Count=0; Operation_Type=1; while(1) { if(KEY1==0) //按一下加1S { delay(); if(KEY1==0) { while(KEY1==0); TR0=0; time+=20; LEDsng=(time/20)%10; LEDsns=(time/20)/10; LEDewg=0x10; LEDews=0x10; } } if(KEY2==0) //按一下减1S { delay(); if(KEY2==0) { while(KEY2==0); TR0=0; time-=20; if(time==0)time=20; LEDewg=(time/20)%10; LEDews=(time/20)/10; LEDsng=0x10; LEDsns=0x10; } } if(KEY3==0) //启动 { delay(); if(KEY3==0) { while(KEY2==0); TR0=1; Time_Count=0; } } } }
  你的题目写的太简单了,我只能看出来ABC口的地址是一样的   底下是我的论文,倒计时是用LED做的,红绿灯是用发光二极管做的   你自己在里面截吧   单片机控制交通灯的设计   论文目录   一、 摘要及关键字、参考文献   二、 方案设计与论证   三、正文:一、功能描述   二、系统硬件电路的设计   三、系统主要程序的设计   四、电路总原理图   五、主程序   一 摘要:   本系统采用单片机、键盘、LED显示、交通灯演示系统组成。设计一个用于十字路口的车辆及行人的交通管理,系统包括左拐、右拐、及行基本的交通灯的功能,计时牌显示路口通行转换剩余时间,在出现紧急情况时可由交通手动实现全路口车辆禁行而行人通行状态。另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。其他还有 84s与60s通行管理转换等功能。采用数码管与点阵LED相结合的显示方法,既要求倒计时数字输出,又要求有状态灯输出等。   关键字:   单片机系统(AT89C51)控制8255、交通规则、LED显示、动态扫描、按键输入、分时段调整   参考文献:《单片机课程设计指导》 北京航天航空大学出版社   《基于MCS-51系列的单片机原理的应用设计》 国防工业出版社   《单片机实训教程》 北京大学出版社   《单片机系统原理及应用》   《微机原理及应用》   二 、方案设计与论证   1电源提供方案:   采用独立的稳压电源,此方案稳定可靠,且有各种成熟电路可供选用   2显示界面方案   采用数码管和点阵LED相结合的方法,因为实际既要求倒计时施主输出,又要求又状态灯输出等,为方便观看并考虑到现实状况,用数码管与LED分别显示时间和提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。   3输入方案   直接在IO口上接按键开关。因为设计时精简和优化了电路,所以剩余口的资源还比较多。   4主控制方案   采用AT89C51单片机作为控制器,控制8255实行通行倒计时及左拐、右拐、直行、行人通行指示采用单块LCD液晶点阵显示器。这种方案设计占用单片机的端口最少,硬件也少。耗电也最小;   系 统 框 图   正 文   一、功能描述   本系统由单片机系统、键盘、发光二极管、交通灯演示系统组成,单片机作为主控制器用于十字路口的车辆及行人的交通管理,每个方向具有左拐、右拐、直行及行人4种通行指示灯,计时牌显示路口通行转换剩余时间。另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。并有手动控制分时段 84s与60s通行管理转换等功能。   二、系统硬件电路的设计   整套电路系统由控制系统模块、通行灯输出控制显示模块、时间显示模块、时间显示模块和自动特种车辆控制模块等组成。   1、主控制系统   单片机的P0口用于控制8255。8255的PA口和PB口用于控制南北及东 西的通行灯,。PC口及P3.0~P3.2口用于4组2位LED计时器的控制,特种车通过时使用外中断1口(P3.3),手动自动转换采用P1.0按键。   选择8255的工作方式0,在这种情况下三个端口都可以由程序设置为输入和输出。   2、通行灯输出控制   道口交通灯指示采用高亮度红绿双色发光二极管,左拐、直行、右拐及行人各一个。当发光电流为6mA时,按公式R=(5-1.8)/0.006计算,限流电阻应为510Ω.由于南北通行时双向指示牌相同,因此每个端口应具有12mA的吸收电流能力。图7.4所示为指示灯电路图。   3、时间显示模块   道口通行剩余时间采用高亮红色7段LED发光数码管显示,采用共阳数码管,如用单片机吸收电流驱动,列扫描驱动使用三极管,按每段6mA电流算,全显示字形“8”时,每个数码管需6mA×8=48mA。由于时间显示每个道口相同,4组需192mA,因此设计中采用中功率三极管9012.由于单片机每个断码输出口需吸收24mA 电流,因此在电路设计中也使用了驱动集成块74HC244。其显示驱动电路如图示。   4、特种车辆自动控制模块   自动道口灯在特种车辆到来时能自动关闭所有绿灯,让特种车通过。设计中采用红外线发生器作为特种车的发生器,使用实时中断来影响特种车的通行要求。红外线接收器一般采用电视机上用的一体化红外接收器,具有很高的灵敏度和较强的抗干扰能力.   5、电源电路   由于整个系统采用的电源电压需+5V电压,所以采用不可调的3端稳压器件,用常用的lm7850就可以满足系统电源的要求。LM7850三端集成稳压电源内部由准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成具有低功耗,高效率,波纹系数小,输出电压稳定等优点。   三、系统主要程序的设计   道口交通控制系统程序主要分为以下几个模块:初始化程序、主程序、定时中断程序和特种车实时响应程序等。   1、 初始化程序   初始化程序主要完成内存划,定时器的工作模式、中断方式等的设定。由于子程序调用较多,因此初始化时堆栈指针设于80H处。定时器T0、T1设为16位定时器模式,定时时间位50ms,为秒计时用,T1为通行结束闪烁用。   2、 主程序   主程序要负责总体程序管理功能,实现人机交换设定。由于采用动态扫描方式显示时间,因此主程序大部分时间要调用扫描显示程序。主程序流程图如下图示。   3、 外中断1中断服务程序   经过时,车中发射红外线信号,其信号被道口控制板上的接收器接收,并输出一个低电平处外中断1.中断处理程序流程图如下页图所示。   4、 定时服务中断程序   序主要用于行车与行人的通行指示,按照交通规则,红绿灯控制转换逻辑表如7.1表所列。   南北方向 端口 控制功能 120~110s 110~70s 70~60s 60~10s 10~0s   P*.7 左拐红 0 0 0 1 1   P*.6 左拐绿 1 1 1 0 0/1   P*.5 直行红 1 1 1 0 0   P*.4 直行绿 0 0 0/1 1 1   P*.3 右拐红 0 1 1 1 1   P*.2 右拐绿 1 0 0 0 0/1   P*.1 行人红 1 1 1 0 0   P*.0 行人绿 0 0 0/1 1 1   道口控制字 66H 6AH 6AH/7BH 99H 99H/DDH   东西方向 P*.7 左拐红 0 0 0 0 0   P*.6 左拐绿 1 1 1 1 1   P*.5 直行红 0 0 0 0 0   P*.4 直行绿 1 1 1 1 1   P*.3 右拐红 0 1 1 1 1   P*.2 右拐绿 1 0 0 0 0/1   P*.1 行人绿 0 0 0 0 0   P*.0 行人红 1 1 1 1 1   道口控制字 55H 59H 59H 59H 59H/5DH   通行规则如下:   (1) 车辆南北直行、各路右拐,南北向行人通行。南北向通行时间为1min,各路右拐比直行滞后10s开放。   (2) 车辆南北向左拐、各路右拐,行人禁行。通行时间为1min。   (3) 车辆东西向直行、各路右拐,东西向行人通行。东西向通行时间为1min,各路右拐比直行滞后10s开放。   (4) 车辆东西向左拐、各路右拐,行人禁行。通行时间为1min。   表中通行规则,是以给控制红绿灯端口送控制码的方式实现的。它的原理是,将按不同通行规则时的各路口的红绿灯亮灭情况转换为单片机端口控制码。其指示灯功能通过T0定时中断服务程序实现。   定时器T0定时益出中断周期为10ms,中断累计20次(即1s)时对120s倒计时单元减1操作。设计中将4种通行规则分成集中不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。控制码分为5个时间段:84—74s、74—58s、58—48s、48—10s、10—0s。交通管理定时功能程序流程图如下页图所示。   5、 调试及性能分析   设计时按红绿交通灯控制程序和特种车辆经过中断程序两大部分电路进行测试。   1、 红绿交通灯控制程序   时器T0,直接按照表7.1中算好的数据码送出来控制灯,观察其逻辑状态是否符合要求。可多次、反复地进行调试,直至逻辑关系正确。值得注意的是,南北方向、东西方向的指示灯要同时调试。   2、 特殊车辆通行时红外线检测电路的调试   在模拟小车中放一块红外发射模块,将示波器输入端接在交通控制灯的红外接收模块的输出引脚上,当小车通过路口时,检测红外线是否被接收。若该脚输出为低电平,则说明可以收到信号,电路正常。   本系统以AT89C51单片机为核心,开发程序调试阶段采用W78E516B进行在线编程及修改,可大大加快调试进度。设计的交通灯可用于十字路口的车辆及行人的交通管理,显示采用2位7段数码管,可以很直观的显示红绿灯的开放和关闭的时间;设计中应用了两种倒计时显示方式, 84S 倒计时适用于车流量较大的城市,60s倒计时可用于中小型城市;功能完整,不仅有普通交通灯的指示功能,还增加了特种车辆自动通行功能。其控制功能和效果与真实道口管理红绿灯完全一致。
用那个plc?三菱还是西门子 这个比较简单用比较指令都可以完成
用双移位指令也可以,不过那样步骤应该也不少