1:设置一个变量zhidaoi,它可以从0循环到3 2:检测一个已取消缓冲的键。按“+1”3:当I值为每个值时,执行相应的模式。水量灯参考程序 #include #include #定义uchar无符号字符 Ucharj,温度;无效延迟(无符号整型

while(1)//循环函数 { P1=0x00;//点亮P1口 delay(2000);//延时 P1=0xff;//熄灭P1口 delay(200);//延时 } } 纯手打,答对你有帮助的话请采纳 谢谢

功能 : 实现灯的闪烁 输入 : 无 输出 : 无 说明 :也可以使用例1的的方法来关闭数码管 / void Main(void){ uchar i;while(1){ P1 = 0xfe;for(i=0; i<7; i++){ P1 = _crol_(P0, 1); //用于循

试试2051: 改变晶振频率,可改变显示速度,12M时可能较快.

LOOP: MOV A, #0F8H ;赋初值.MOV R2, #8 ;设计数值.OUTPUT:MOV R3, #4 ;设计数值.OUT_5:MOV P1, A ;送P1口输出.ACALL DELAY MOV P1, #0FFH ACALL DELAY DJNZ R3, OUT_5

求程序:亮灯循环 功能说明:利用单片机的P1接口8只LED,每次点亮3只,闪烁3次,向左移动点亮,重复循环。

1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。

include#define uchar unsigned charvoid delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){while(1) { P0=0x00; delay(200); P0=0xff; delay(200); }}

0x3f,0xcf,0xf3,0xfc,0xff,0xfc,0xf3,0xcf,0x3f,//两位一起移动 0xff,0xaa};//闪 unsigned int a;main(){ unsigned char i;while(1){ for(i=0;i<29;i++){ P1=xianshi[i];for(a=0;a<30000;

以51位例,使用P1的八个IO口控制。先定义:sbit LED0=P1^0;sbit LED1=P1^1;以此类推,定义八个。然后在主循环中:LED0=0;延时一段时间;LED0=1;就可以看到闪烁了。

请设计一个8个led同时全部闪烁的程序 include main (){int i;while (1){for (i=0;i<=30000;i++);P1=~P1;} }

1:设定一个变量i,可以从0到3循环的变化 2:检测一个经过消抖处理的按键,按一下,i+1 3:当i值为各个值时,执行相应的花样。流水灯参考程序 include include define uchar unsigned char uchar j,temp;void delay(un

CALL PRG2 ; 灭且静音 SJMP 0 ;--- 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灯灭

求单片机设计8个led灯同时闪烁,并且led灯亮的时候控制蜂鸣器发生,led灯灭的时候关闭蜂鸣器的程序

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

void disp2() // 1到8依次点亮一次 { temp=0xfe;for(i=0;i<8;i++){ P1=temp;delay(500);temp=_crol_(temp,1);} P1=0xff;delay(500);} void disp3() //2,4,6,8灯依次点亮的这里要求循环3

for(i=0;i<8;i++) //8个流水灯反向逐个闪动 { P1=~temp;delay(100); //调用延时函数 temp>>=1;} temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮 { P1=temp;delay(100); //调用延时函数 te

把各个花样写在子函数,中断中对变量加1,在判断是否大于5,大于5就对变量清零。因为你要5种花样。主函数判断变量的值,1时执行从左到右依次点亮,2时执行从左到右逐个依次熄灭。依次下去 include "reg51.h" // 包

P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay

下面是c语言程序源码 include void delay100ms(); //如果函数是在主函数后面定义,那么一定要在主函数前面声明 void main(){ int i;i=0xfe;while(1){P1=i;i--;delay100ms();if(i==0)i=0xfe

实现单片机信号灯1-8依次循环点亮的程序怎么写

k<8;k++) { P0=_cror_(P0,1); delay(250); } } } }}

可以把8个发光二极管接在P1口 高电平亮 低电平灭 使用51系列单片机 R5寄存器控制要闪烁的发光二极管的位置 MOV R7,#10 LL0: MOV R5,#00000001B MOV A,R5 LL1: MOV P1, A LCALL YS

int i = 8; //循环次数为8 void main(){ P1 = 0xff; //初始化LED,8个LED全灭,(假设低电平点亮)init_t0() ;while(1); //循环等待定时中断 } void init_t0() //定时器0初始化程序 { TMOD = 0x0

main:mov a,#11111110b//此为共阳极,先让P0.0口先亮 mov r0,#8 loop:mov p0,a//向p0 口送码 lcall DELAY//调用延时子函数 rr a //右移 djnz r0,loop //如果就循环一次这样就行了;如果需要循环无数次就

while(1){ P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六

MAIN:MOVA,#0FFH;设置左移初值 CLRC;C=0 MOVR2,#08H;设置左移次数 LOOP:RLCA;左移1位 MOVP1,A;输出到P1 CALLDELAY;延时 DJNZR2,LOOP;左移7次 MOVR2,#07H;LOOP1:RRCA;右移1位 MOVP1,A;输出到P1 CALLDELAY;

各位单片机达人帮个忙 用汇编语言做一个 发光二极管循环点亮的程序 要求 使八只发光二极管做循环点亮一次

MAIN: MOV P1,#0FFH LCALL DELAY MOV R1,#0 MOV DPTR,#TAB MAIN1: MOV A,R1 MOVC A,@A+DPTR MOV P1,A LCALL DELAY INC R1 CJNE R1,#8,MAIN1 AJMP MAIN DELAY: MOV R4,#08H DL01: MOV R3,#74H DL

} } //主程序 void main(){ uint s;while(1){ P0=0xfe;DelayMS(150);for(s=8;s>1;s--){ P0=_crol_(P0,1); //P0 的值向左循环移动 DelayMS(150);} P0=0x00;DelayMS(150);p0=0xff;DelayMS(150);

用移位操作,首先把P1口赋值,然后向右移位,判断是否移到最后移位,如果不是,一直移位,如果是,则反向移位,判断是否移位到第一位,如果是则循环到右移,具体代码就自己写了。代码不难,我只是记不清楚具体定义了。

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;

int i = 8; //循环次数为8 void main(){ P1 = 0xff; //初始化LED,8个LED全灭,(假设低电平点亮)init_t0() ;while(1); //循环等待定时中断 } void init_t0() //定时器0初始化程序 { TMOD = 0x0

假设P1接8 个LED,高电平时LED点亮,主程序如下:void main(void){ uchar i;while(1){ for(i=0;i<7;i++){ P1=1<>i;delay_ms(500);} } }

P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay

用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)

MAIN: MOV P1, #11111110B ; P1 口 点亮一个发光二极管 ACALL DELAY ; 调用延时子程序 MOV P1, #11111101B ; 从左向右移动 一位 ACALL DELAY MOV P1, #11111011B ACALL DELAY MOV P1, #11110111B ACALL DELAY MOV P1, #11101111B ACALL DELAY MOV P1, #11011111B ACALL DELAY MOV P1, #10111111B ACALL DELAY MOV P1, #01111111B ACALL DELAY JMP MAIN ; 转移 至 MAIN 循环 DELAY: MOV R5,#250 ; 延时子程序 6.000 M 晶振 约 0.5 秒 D1: MOV R6,#250 D2: DJNZ R6,$ DJNZ R5,D1 RET
#include #define LED P1 //宏定义,使用LED代替P1口(相当于LED=P1) #define uchar unsigned char //用uchar代替unsigned char方便操作 #define uint unsigned int /*------------------time ms延时函数-----------------*/ void delay_ms(uint time) { uchar tres; for(;time>0;time--) { tres=150; while(tres--); } } void main() { uchar t; LED=0X01;//P1=00000001B while(1)//死循环,不停的点亮和熄灭LED { for(t=0;t<8;t++) { LED=~LED;//按位取反,点亮一个LED delay_ms(100);//延时0.1s LED=~LED;//按位取反 LED<<=1;//左移一位,点亮不同的LED } LED=0X80;//P1=10000000B for(t=0;t<8;t++) { LED=~LED;//按位取反,点亮一个LED delay_ms(100);//延时0.1s LED=~LED;//按位取反 LED>>=1;//右移一位,点亮不同的LED } LED=0X01;//P1=00000001B } }
试试2051: 改变晶振频率,可改变显示速度,12M时可能较快.
LED EQU 30H ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV LED,#0FEH MOV R2,#1 LOOP: MOV A,LED MOV P1,A LCALL DELAY PUSH 02H SHAN: MOV P1,#0FFH LCALL DELAY MOV P1,A LCALL DELAY DJNZ R2,SHAN POP 02H INC R2 CLR C RLC A MOV LED,A JNZ LOOP SJMP $ DELAY: MOV R3,#250 DLY: MOV R4,#250 DJNZ R4,$ DJNZ R3,DLY RET END