LED0=0;延时一段时间;LED0=1;就可以看到闪烁了。
delay(100);LED=(LED>>1)|0x80; /*最低位LED灯右移一位后进行或运算使得最高位不会为“0”*/ } LED=0xff;for(i=0;i<4;i++){ delay(300);LED=~LED; /*所有的LED灯取反全亮或者全灭*/ } } }
PRG1:MOV P0, #0 ; 8个led灯亮 MOV R2, #200 LP1:CPL P1.0 ; 蜂鸣器响 DJNZ R6,DJNZ R7, $ - 2 DJNZ R2, LP1 MOV P0, #255 ; 8个led灯灭 RET ;--- PRG2:MOV P0, #255 ; 8个led灯不亮 MOV R2, #200 LP2:SETB P1.0 ; 蜂鸣器不响 DJNZ R6
请设计一个8个led同时全部闪烁的程序 include
求单片机设计8个led灯同时闪烁的程序,
程序如下: 绝对没有错 LED灯的一端接P1口的各各引脚,另一端接地。同时在P1口的每个管脚上加1K的上拉电阻,电阻另一端连接至+5V即可 ORG 0000H AJMP START ORG 0030H START:MOV SP,#07H MOV P1,#00H MOV A,#0AAH LOOP:CPL A MOV P1,A ACALL DELAY AJMP LOOP DELAY:MOV R0,#50
看这个问题贴出来好久了也没人回答,还是俺来吧,无私奉献了 程序中所使用的端口未必完全一致,所以还需自行修改 本程序的功能是,八位LED以0.1秒的间隔做流水式移动,每完成一次则数码管的显示数值就加一 此程序仅供参考,若满意请记得采纳下!/***/ include
假设P1口接8个LED灯,通过灌电流驱动(即0亮1灭)。编译器keil C代码如下:include
看下,中间有没有加其它驱动了,主要是看LED两端是高电位还是低电位~
LCALL DELAY ;调用延时函数 MOV P0,#0A5H ;P0上LED灯另一半点亮 MOV R7,#100 ;延时时间加长 LCALL DELAY MOV P0,#00H ;LED等全部点亮 MOV R7,#150 ;延时再次加长 LCALL DELAY MOV P0,#0FFH ;灯灭 MOV R7,#200 ;延时时间再次加长 LCALL DELAY SJMP MAIN ;循环
d1=0; //设为低电平,LED灯亮 d3=0; //设为低电平,LED灯亮 d5=0; //设为低电平,LED灯亮 d7=0; //设为低电平,LED灯亮 } void main(){ PortState(); //主函数里面调用 while(1);//~~~其他函数~~~}
LED4 = 0;delay(50000);LED3 = 0;delay(50000);LED2 = 0;delay(50000);LED1 = 0;delay(50000);} } 上述代码实现了四个 LED 灯逐个亮起来然后再逐个灭掉的效果。其中,sbit 定义了四个位于 P2 口的 LED 灯,而 delay 函数则是一个延时函数,可以用来控制 LED 灯亮起和灭掉的时间。注
编写一段程序,要求用at89c51控制四个led灯,是他们逐个亮以后在逐个灭?
功能:开发板8个发光管一起闪动 实验内容:输出底电平可以点亮RD口的发光管 高电平可以关掉发光管 开发板连接方法:装上J2。/ include
1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。
请设计一个8个led同时全部闪烁的程序 include
MOV P0, #0 ; 8个led灯亮 MOV R2, #200 LP1:CPL P1.0 ; 蜂鸣器响 DJNZ R6,DJNZ R7, $ - 2 DJNZ R2, LP1 MOV P0, #255 ; 8个led灯灭 RET ;--- PRG2:MOV P0, #255 ; 8个led灯不亮 MOV R2, #200 LP2:SETB P1.0 ; 蜂鸣器不响 DJNZ R6,DJNZ
求单片机设计8个led灯同时闪烁,并且led灯亮的时候控制蜂鸣器发生,led灯灭的时候关闭蜂鸣器的程序
单片机流水灯代码:#include
单片机流水灯程序代码(汇编语言):ORG0000HAJMPMAINORG0030HMAIN:MOVP1,#11111110BACALLDELAY;跳转到子程序MOVP1,#11111101BACALLDELAYMOVP1,#11111011BACALLDELAYMOVP1,#11110111BACALLDELAYMOVP1,#11101111BACALLDELAYMOVP1,#11011111BACALLDELAYMOVP1,#10111111BACALLDELAYMOVP1,#01111111BACALLDELAYAJMPM
具体如下。#include,sbitLED1=P1^0;//定义0/1变量,是因为在电路中一般为高电压以及低电压两种,也就是代表者0或1。sbitLED2=P1^1;sbitLED3=P1^2;sbitLED4=P1^3;sbitLED5=P1^4;sbitLED6=P1^5;sbitLED7=P1^6。单片机(Microcontrollers)又称微控制器,由中央处理器、存储器、输入输出端
void delay(uint); //声明延时函数 void main(void){ uint i;uchar temp;while(1){ temp=0x01;for(i=0;i<8;i++) //8个流水灯逐个闪动 { P1=~temp;delay(100); //调用延时函数 temp<<=1;} temp=0x80;for(i=0;i<8;i++) //8个流水灯反向逐个闪动 { P1=~temp;delay(100);
单片机流水灯代码怎么写?
举个简单的例子,8个LED灯的正级分别接在P1.0到P.7上面,负极分别接在P2.0到P2.7上面,P1 = 0xff; (P1口全部高电平) P2 = 0x00; (P2口全部低电平),此时电流通过P1口经LED流向P2口,8个灯全部点亮,如果P1不变,P2 = 0XFF; 此时由于P1与P2的接口全部是高电平,没有电压差
4个单片机I/O口如何实现3个按键控制3个LED灯;按键跟灯一一对应,按键按下相应的LED亮,再按一次,LED灭。见下图:
1. 想要掌握单片机的操作,可以从IO输出开始,比如点亮一个LED灯。这里介绍一种基础的方法:2. 首先,准备一个单片机的开发环境,并编写一个简单的源代码程序。程序的目的是控制P1端口的一个LED灯的亮灭。3. 程序中使用了`#include `指令,这是为了包含特殊功能寄存器的定义,一般情况下不需要修改。4
指令交给1号缓冲器后,单片机就可以选择二号缓冲器并发送控制9-16号LED的指令了,然后选择三号缓冲器并发送17-24号LED的指令直到发送指令到第三百七拾五号缓冲器控制2992-3000号LED。有一个问题就是这样会需要375个缓冲器,并且需要24个IO口(8个IO口控制LED灯,16个IO口控制缓冲器)。这个电路的
使用另外一种方法,控制LED灯*|闪烁、*的频率 单片机智能控制,单片机源代码 /*--- 名称:IO口高低电平控制 内容:通过P1口,进行对LED灯不同频率的闪烁。点亮P1口的1个LED灯闪烁 手把手教你学会单片机,编程 ---*/ includereg52.h //头文件 //头文件包含特殊功能寄存器的定义 sbit LED0=P1^0
4.怎么玩转单片机-IO输出-点亮多个LED灯方法2 第二种方法 单片机智能控制,单片机源代码 /*--- 名称:IO口高低电平控制 论坛: 编写: 日期: 修改:无 内容:通过P1点亮多个LED灯 ---*/ 这个代码很少哦,好好悟吧 includereg52.h //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存
4.怎么玩转单片机-IO输出-点亮多个LED灯方法2
方法: 1:设定一个变量i,可以从0到3循环的变化 2:检测一个经过消抖处理的按键,按一下,i+1 3:当i值为各个值时,执行相应的花样。 流水灯参考程序 #include #include #define uchar unsigned char uchar j,temp; void delay(unsigned int ms) { uchar t; while(ms--) for(t=0;t<123;t++); } void main() { P1=0xff; delay(500); temp=0xfe; //有点怪,led接在P2.3~P2.6 for(j=0;j<4;j++) { P1=temp; delay(500); temp=_crol_(temp,1); } P1=0xff; while(1); }方法: 1:设定一个变量i,可以从0到3循环的变化 2:检测一个经过消抖处理的按键,按一下,i+1 3:当i值为各个值时,执行相应的花样。 流水灯参考程序 #include #include #define uchar unsigned char uchar j,temp; void delay(unsigned int ms) { uchar t; while(ms--) for(t=0;t<123;t++); } void main() { P1=0xff; delay(500); temp=0xfe; //有点怪,led接在P2.3~P2.6 for(j=0;j<4;j++) { P1=temp; delay(500); temp=_crol_(temp,1); } P1=0xff; while(1); }