51单片机怎么让一个流水灯闪三次啊?

作者&投稿:桓欧 (若有异议请与网页底部的电邮联系)
如何让51单片机在3秒内让灯闪3次然后停止,程序步最少的~



LED1 BIT P1.7
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV R7,#3 ;设置控制小灯 闪亮的循环次数为3
LL1: CLR LED1 ;LED小灯 亮
LCALL YS500MS ;延时500毫秒
SETB LED1 ;LED小灯 灭
LCALL YS500MS ;延时500毫秒
DJNZ R7, LL1 ;闪亮的循环次数减1,不为0,转LL1继续循环
LLEDN: SJMP LLEDN

YS500MS: MOV R6,#15 ;延时0.5秒子程序
YSLL1: MOV R5,#200
YSLL2: DJNZ R5, YSLL2
DJNZ R6, YSLL1
RET
如果满意 请替俺选择:满意回答

朋友,建议你用arduino平台 来开发,这个比51单片机简单! 如果是arduino程序我可以给你写一个

你是想闪了3次以后就停止了吗?

把while(1)改成while(1);//加一个分号,并移到for循环下面的大括号的下面。

这样的




单片机的io口电流大概10ma左右,如何让一个io口控制四个并联一起的led...
一般不推荐4个LED并联,如果并联的话应该每个LED接一个限流电阻然后再并联。高亮度LED有1mA电流就可以驱动了,不需要其它的放大电路,如果每个LED电流比较大,可以分别串接到4个P型三极管的发射极,三极管的基极通过限流偏置电阻接到单片机的I\/O引脚,三极管的集电极接地,三极管可选用8550.也可以采用专用的...

51单片机怎么用串口和两个从机通信?单片机发出的指令两个从机都收到了...
如果你要控制的从机不可编程,则需要对串口进行扩展,方法有很多,比较简单的话可以用串口扩展串口,就是使用外接串口扩展芯片来实现,比如GM8123,可以将一个串口扩展为三个子串口,每次通信的时候选中一个子串口工作,当然也可以多通道同时工作,你自己去网上查一下相关资料很多。这种方法也可以适用第一...

51单片机用中断法让一个发光二极管以10hz闪烁
给你个例程,基stc单片机的,修改始终频率和定时值就可以了!自己先理解,修改后看变化,不明白再追问。\/* define constants *\/ define FOSC 18432000L define MODE1T \/\/Timer clock mode, comment this line is 12T mode, uncomment is 1T mode ifdef MODE1T define T1MS (65536-FOSC\/1000) ...

51单片机:流水灯每循环一次,都让一个灯常亮
while(1){P1=0xfe;\/\/第一位for(k=0;k<8;k++){delay(2000);\/\/延时P1=_crol_(P1,1);\/\/左移1位}}改为 unsigned char m; while(1){ m=0xff; for(j=0;j<8;j++){ m<<=1; P1=m;\/\/第一位for(k=j;k<8;k++){delay(2000);\/\/延时P1=_crol_(P1,1);\/\/左...

c语言单片机编程中,怎样将一个串口的到得字符串赋值给一个数组
1、串口字节为:SBUF暂存数组:A[]依次将接收到的字节存入A[0],A[1],A[2],...A[n],接收完毕,存入字符串结束标识:A[N+1]=0A就代表一个字符串。如果是一串数字,要转为整数。2、例程:include<reg51.h>#define uchar unsigned charuchar A[16],num;void uart() interrupt 4{if(RI) ...

单片机一个按键控制一个程序
这个简单了。给你一个程序框架 sbit key1=P0^0;sbit key2=P0^1;sbit key3=P0^2;\/\/还可以多写几个键 void main(){ unsigned char zt=0;\/\/程序运行状态变量,用它来标定程序运行在哪个段 while(1){ \/\/按键扫描没加滤波这个如果有需要你自己加吧 if(~key1){zt=0;}\/\/当按键1按下时...

51单片机怎么实现一个按键控制LED灯打开,另外一个按键控制关断?能不...
include<reg51.h> include<intrins.h> define GPIO_LED P2 sbit K1=P3^1;void Delay10ms( );void main(){K1=1;while(1){if(K1==0){GPIO_LED=~GPIO_LED;Delay10ms();} } } void Delay10ms( ){ \/\/...延时函数 }

汇编语言 单片机 一个开关控制一盏LED的亮灭
ORG 0000H;复位启动 AJMP START;;主控程序=== START: SETB P1.7 ;P17 = 1 LOOP: JB P3.2,LOOP ;没有按键 LCALL DELAY ;延时消抖 JB P3.2,LOOP ;确认按键 CPL P1.7 ;取反 JB P3.2,LOOP ;检测按键 LCALL DELAY ;延时 LJMP LOOP ;死循环 ;DELAY:...

单片机红外发射信号的问题(怎么让单片机发射一个频率的红外波呢?能不...
【0】看问题的意思,好像是两个单片机电路构成的系统。其中一个,按键发出指定频率的红外光,另一个接收红外后根据频率显示键值。【1】通常一体化红外接收头,都是固定频率的,如常用的38KHz调制,这样可以提高抗干扰能力,以滤掉环境的红外光。【2】因此红外发射管,应按照接收头频率,调制发射38KHz。...

单片机数码管 我写了一个程序 想要让数码管加1,蜂鸣器响一声的程序...
EA=1;ET0=1;ET1=1;TR0=1;TR1=1;} void main(void){ t0intinit();while(1){disp();if(a==10)a=0;} } void disp( ){ P0=tab[a];P2=0;delay_ms(1);P2=1;} void t0int(void) interrupt 1 { \/\/uchar time;TH0=0x3c;TL0=0xb0;time++;if(time==40){ flag=1;a++;...

宝塔区19690472755: 51单片机怎么让一个流水灯闪三次啊? -
征忠生脉: 你是想闪了3次以后就停止了吗? 把while(1)改成while(1);//加一个分号,并移到for循环下面的大括号的下面. 这样的

宝塔区19690472755: 求大神解决 帮写一个程序 51单片机流水灯程序P1.0到1.7再加上P0.0到0.5依次点亮再整体闪三下 -
征忠生脉: ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,#0FEHMOV B,#0FFHMOV P1,AMOV P0,BMOV R2,#14 LOOP:LCALL DELAYRLC AXCH A,BRLC AMOV C,ACC.6XCH A,BMOV ACC.0,CMOV P1,AMOV P0,BDJNZ R2,...

宝塔区19690472755: 单片机控制LED流水灯从中间向两边 -
征忠生脉: 去百度文库,查看完整内容>内容来自用户:cckk313 单片机控制LED流水灯从中间向两边,从两边向中间这个就是把先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;不过这...

宝塔区19690472755: 51单片机中怎样用一个按键控制三种模式的流水灯,如控制流水灯流水速率(每按一下加速,到三后返回和第一次 -
征忠生脉: #include <reg51.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit anjian = P1^0; //按键位 void delay(uint16 h) //延时程序 { while(h--); } main() { uint8 k = 0 , i = 0;P0 = 0xff; anjian = 1; while(1) {P0 = ~(1<<k++);if(anjian == 0) { delay...

宝塔区19690472755: 上位机向单片机发送命令,当命令1时单片机4个LED灯流水显示3次,蜂鸣器响一声 -
征忠生脉: void main(void) { unsigned char sbf; TMOD&=0X0F; TMOD|=0X20; SCON= 0X50;TH1 = TL1 =0xfd; //--------------------- ES=1; TR1=1; REN=1;//--------------------- while(1) { if(RI==1) { RI=0; sbf=SBUF; if(sbf==1) { //流水灯闪3次 //蜂鸣器响一声 sbf=0; } } } }

宝塔区19690472755: 我是新手,想问一下C51单片机中怎样才能让P2端口连接的LED灯闪烁3次,然后灭掉.求C语言程序! -
征忠生脉: led共阳接线 p2端口连接led负极 程序控制p2输出高低电平就可以闪烁了

宝塔区19690472755: 单片机中流水灯如何控制 -
征忠生脉: 单片机中流水灯控制:硬件连接很简单,只要将8个LED指示灯接在P1口上 另一端通过220欧姆的电阻接+5V电源上,就可以了.主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制LED指示灯逐渐一个一个地点亮或一个一个地熄灭.复杂点: 可以进行花式流水控制.例如: 可以由两边逐渐向内点亮 然后再由内逐渐向外一个一个熄灭. 还可以由由内逐渐向两边内点亮 然后再由两边渐向内逐一个一个熄灭.在程序的实现上 可以把各种花式流水的P1口亮灭状态字 事先定义成数组 然后每隔一定的时间 取出送P1口显示. 呵呵 俺只提供给你一个号的算法 程序就自己动手自立更生.

宝塔区19690472755: 51单片机32个流水灯编程如何实现指定其中某一个灯亮,如何实现多种花样亮灯 -
征忠生脉: 要51单片机控制32个流水灯,关键是要解决电路设计,只要能设计出电路来,编程实现控制指定其中某一个灯亮,并实现多种花样亮灯,就容易了.如果只做32个流水灯,就用单片机的四个并行口,共32个IO引脚全部用上,正好控制32个流水灯.如果引脚还有其他应用,可用四片锁存器,也可以控制32个流水灯了.

宝塔区19690472755: 大佬们,单片机汇编语言编写流水灯,全部八次闪烁,怎么编啊 -
征忠生脉: 51单片机用汇编语言编写流水灯程序,就是控制多个LED ,使其在特定时间间隔内,只有一个LED 发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果.以下是程序: ;假设晶振12MHZ,P1控制8个LED低电平亮 ;...

宝塔区19690472755: 用单片机的内容编写流水灯从p2.0到p2.7闪烁三次程序 -
征忠生脉: #include <REG52.H>#include <intrins.h> void delay1s(void) //误差 0us { unsigned char a,b,c; for(c=167;c>0;c--) for(b=171;b>0;b--) for(a=16;a>0;a--); _nop_(); //if Keil,require use intrins.h } void main(void) { P2=0x00; delay1s(); P2=0xff; delay1s(); P2...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网