for(i=0;i<8;i++) //8个流水灯反向逐个闪动 { P2=~temp;delay(500); //调用延时函数 temp>>=1;} temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮 { P2=temp;delay(500); //调用延时
AJMPMAIN ORG0030H MAIN:MOV P1,#01111111B ;P1口低电平 对应灯亮 点亮P1.7对应的LED LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况 MOV P1,#10111111B LCALL DLY_500MS ;延时500ms 可以清晰
1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。例程:include
LEDIndex = (LEDIndex+1)%8; /*LEDIndex+1对8取余,保证LEDIndex在0~7之间*/ Delay1ms(500); /*延时500ms,即LED的点亮间隔为0.5s*/ } }
while(1){ P1=0xfe; //点亮第一个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LED for
1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定
delay(100); //调用延时函数 temp>>=1;} temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮 { P1=temp;delay(100); //调用延时函数 temp<<=1;} temp=0x7F;for(i=0;i<8;i++) //8个流水灯依
单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
include
1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定
P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay
define uint unsigned int //定义无符号整数 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);
uchar temp,num,num1;void delay(uint);void main(){ temp=0xfe;while(1){ for(num1=0;num1<3;num1++) //八个发光二极管从上到下依次被点亮3三次 { for(num=0;num<8;num++) //八个发光二极管依次
求高手教 编程8盏流水灯的程序C语言的
{Key_NO=0;} if(P1==0xfd) //P1.1按键返回键值1 {Key_NO=1;} if(P1==0xfb) //P1.2按键返回键值2 {Key_NO=2;} while(P1!=0xff); //等待按键释放,源程序有点错误需要加分号;return Key_NO;}
LJMP MAIN ;转到主程序.ORG 0030H ;主程序存放开始地址.MAIN: MOV P1, #0FFH ;灯全部灭了 11111111 MOV R2, #0FEH ;初始状态:设定点亮边上的一个灯 1111 1110 MOV R3, #7FH ;
//点亮小灯 beep=0; //开启蜂鸣器 delay(50); //延时50毫秒 beep=1; //关闭蜂鸣器 delay(50); //再延时50毫秒 a=_crol_(a,1); //将a变量循环左移一位 } a=0x7f; for(
P1 = 0x7e; delay(50); //最外侧亮 P1 = 0xbd; delay(50); //向中间移 P1 = 0xdb; delay(50); //再移 P1 = 0xe7; delay(50); //最中间亮 } }
ORG 0000HLJMP MAINORG 0030HMAIN: MOV 30H,#7EH MOV 31H,#0BDH MOV 32H,#0DBH MOV 33H,#0E7H MOV R0,#30H MOV R2,#4LOOP: MOV A,@R0 MOV P1,A LCALL DELAY INC R0
51单片机从中间到两边逐个点亮再从两边到中间逐个点亮程序?
for(i=0;i<8;i++) //8个流水灯反向逐个闪动 { P2=~temp;delay(500); //调用延时函数 temp>>=1;} temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮 { P2=temp;delay(500); //调用延时
AJMPMAIN ORG0030H MAIN:MOV P1,#01111111B ;P1口低电平 对应灯亮 点亮P1.7对应的LED LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况 MOV P1,#10111111B LCALL DLY_500MS ;延时500ms 可以清晰
1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。例程:include
LEDIndex = (LEDIndex+1)%8; /*LEDIndex+1对8取余,保证LEDIndex在0~7之间*/ Delay1ms(500); /*延时500ms,即LED的点亮间隔为0.5s*/ } }
while(1){ P1=0xfe; //点亮第一个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LED for
1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定
delay(100); //调用延时函数 temp>>=1;} temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮 { P1=temp;delay(100); //调用延时函数 temp<<=1;} temp=0x7F;for(i=0;i<8;i++) //8个流水灯依
单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
while(1){recy=0xfe;for(k=1;k<=8;k++){ P1=recy;Delay(50000);recy=recy<<1;} }
1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。
} } //主程序 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);
1:设置一个变量zhidaoi,它可以从0循环到3 2:检测一个已取消缓冲的键。按“+1”3:当I值为每个值时,执行相应的模式。水量灯参考程序 #include #include #定义uchar无符号字符 Ucharj,温度;无效延迟(无符号整型
while(1){ P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六
while(1){ j=0x01;//假如高电平灯亮 for(i=0;i<8;i++){ P0=j;delay(1000);//逐个循环点亮 j<<=1;} j=0xfe;for(i=0;i<8;i++){ P0=j;delay(1000); // 逐个循环熄灭 j<<=1;} } }
led7=0;delay(50000);//大约延时450ms led8=0;delay(100000);//大约延时900ms //从右到左依次点亮 led8=1;delay(50000);//大约延时450ms led7=1;delay(50000);//大约延时450ms led6=1;delay(50000);//大约
设计一个具有8个LED灯,要求从右向左依次点亮一秒后熄灭,循环往复的单片机程序。跪求
#include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 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); 扩展资料: 常用单片机汇编指令: 1 .MOV A,Rn 寄存器内容送入累加器 2 .MOV A,direct 直接地址单元中的数据送入累加器 3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器 4 .MOV A,#data 立即数送入累加器 5 .MOV Rn,A 累加器内容送入寄存器 6 .MOV Rn,direct 直接地址单元中的数据送入寄存器 7 .MOV Rn,#data 立即数送入寄存器 8 .MOV direct,A 累加器内容送入直接地址单元 9 .MOV direct,Rn 寄存器内容送入直接地址单元 10. MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 11 .MOV direct,@Ri (i=0,1)间接RAM 中的数据送入直接地址单元 12 MOV direct,#data 立即数送入直接地址单元 13 .MOV @Ri,A (i=0,1)累加器内容送间接RAM 单元 14 .MOV @Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元 15 .MOV @Ri,#data (i=0,1)立即数送入间接RAM 单元 16 .MOV DPTR,#data16 16 位立即数送入地址寄存器 17 .MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 18 .MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器 19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器 20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器 21 .MOVX @Ri,A (i=0,1)累计器送外部RAM(8 位地址) 22 .MOVX @DPTR,A 累计器送外部RAM(16 位地址) 23 .PUSH direct 直接地址单元中的数据压入堆栈 24 .POP direct 弹栈送直接地址单元 25 .XCH A,Rn 寄存器与累加器交换 26 .XCH A,direct 直接地址单元与累加器交换 27 .XCH A,@Ri (i=0,1)间接RAM 与累加器交换 28 .XCHD A,@Ri (i=0,1)间接RAM 的低半字节与累加器交换 参考资料来源:百度百科-单片机汇编指令#include#define uchar unsigned charvoid delay(uchar a){uchar i;while(a--)for(i=0;i>1)|0x80; delay(200); } } P0=0xff; while(1);}
qq1320249827 步行者===电子单片机团
红圈的地方少了分号
要看你的时钟周期,如果是12Mhz的话,每个时钟周期MC=6*2/12 M =1us,所以延迟是让机器计数1000000下,上面那个公式你自己套用24Mhz的就是2000000下。c语言的循环次数你自己算,每条指令一个周期,所以楼上的程序在12Mhz下是1s延迟。
#include voiddelay(void) { unsignedinti,j; for(i=0;i<200;i++) for(j=0;j<1000;j++) ; } voidmain(void) { while(1) { P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay(); P3=0xfb;//第三个灯亮 delay(); P3=0xf7;//第四个灯亮 delay(); P3=0xef;//第五个灯亮 delay(); P3=0xdf;//第六个灯亮 delay(); P3=0xbf;//第七个灯亮 delay(); P3=0x7f;//第八个灯亮 delay(); } } 扩展资料 单片机C语言16种方式流水灯 voidmain() { while(1) { P1=0xfe;//点亮第一个发光管 Delay(5000); P1=0xfd;//点亮第二个发光管 Delay(5000); P1=0xfb; Delay(5000); P1=0xf7; Delay(5000); P1=0xef; Delay(5000); P1=0xdf; Delay(5000); P1=0xbf; Delay(5000); P1=0x7f;//点亮第八个发光管 } }