led=led<<1;//点亮下一个灯 } } //点亮八位共阴 / unsigned char led=0x01,led1=0x01;//8个bit位的数 unsigned int counter=0;void time_init(){ TMOD=0x01;//定时器0,工作模式1,16位定时器 TH0=0xb4;
//从右到左依次点亮 led8=1;delay(50000);//大约延时450ms led7=1;delay(50000);//大约延时450ms led6=1;delay(50000);//大约延时450ms led5=1;delay(50000);//大约延时450ms led4=1;delay(50000);//大约
这个程序是逐个点亮的(思路:由256逐减1,值由LED灯显示)include
delay(200); led=_crol_(led,1); } led=0x7f; for(i=0;i<8;i++) { P1=led; delay(200); led=_cror_(led,1); } led=0xfe; for(i=0;i<8;i++) { P1=
timer0_init(); TR0=1; //打开定时器 while(1) { for(i=0;i<8;i++) { P2= ~(1<
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=
uchar i,j;j=0x01;//假如高电平灯亮 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); //
定时器八盏led灯依次点亮
1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。
这个程序的关键点是要在显示子程序执行的过程中,多对按键进行检测。检测到有按键按下时,即退出子程序,返回到主函数的按键检测,对num 加一。include
temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮 { P1=temp;delay(100); //调用延时函数 temp<<=1;} temp=0x7F;for(i=0;i<8;i++) //8个流水灯依次反向全部点亮 { P1=temp;delay(100); //
//P1外接8 LED 低电平发光.// 列程序 PROTEUS 仿真 功 include
单片机的跑马灯C程序如何编写八个LED灯依次点亮而且速度渐变的代码
//延时 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
亮一个的初值为1,两个的为3三个的为7~~以此类推,然后循环左移或循环右移就可以了,
首先,流水灯和数码管都需要一个稳定的时钟源来控制它们的亮灭和显示。如果时钟源不稳定或者不正确,可能会导致两个元件的显示出现问题或者无法正常工作。因此,你需要确保选择正确的时钟源,并且将其正确连接到流水灯和数码管
void main(){ uchar a,temp;temp=0xfe;for (a=8;a>0;a--)//循环8次,即流水灯8个循环8次即可点亮8个 { P1=temp;temp=_crol_(temp,1);//移动 delay(100);} temp=0x7f;//注意这一句,如果没有这一句,
P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay
01 首先,打开proteus,可以看到界面上方有"库",点开,在库里选择做实验需要的元件。02 如图所示,我们做流水灯实验所需要的元件,就是红色方框里面的元件,一定都要添加进来,要不然实验就做不成功。03
八个灯中有两个灯同时从两端相向点亮,交替循环。操作如下:for(i=1;i { led=0xff;//变量清空,即默认全灭led&=~(1 led&=~(1 PORTA=led;//送出显示 }。
proteus8个流水灯从左到右每两个同时显示
控制8个LED灯,使用上拉方式控制,引脚高电平灯灭,引脚低电平灯亮。这8个LED使用同一P口上的所有引脚,假设为P1口中的P1.0-P1.7共8个脚。软件中,只需要将这些灯使用一个for循环即可。代码 include
// 单片机控制八个led灯, 仿真实例 可以改为 各种花样。include
1:首先设定一个变量i,可以是从0到3循环的变化,2:再检测一个经过消抖处理的按键,按一下,即i+1 3:当i值为各个值时,执行相应的变换花样。流水灯参考程序 include include define uchar unsigned char uchar j,tmp
P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();}
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灯灭 RET ;--- PRG2:MOV
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 的值向
8个led灯编程
#include#define uchar unsigned charuchar led[5]={0x7e,0x3c,0x18,0x00,0xff};uchar num;sbit key=P1^0;main(){P0=0xff;num=0;while(1) { if(key==0) { while(key==0); P0=led[num]; num++; num%=5; } }}首先,你的电路图没有给出来,管脚是什么? 其次,我建议还是自己尝试写一写,这个不难,我给你个思路 首先定义变量类似于P1_2 = P1^2这种,先把这八个管脚全部定义好,之后给个for循环,让P1(假设的你LED灯连接的是P1口)口的P1^0~P1^7相关标志位依次等于0或者1(0还是1需要看你在LED等上给的是高电位亮还是低电位亮),之后再给个for循环,五次的循环,全部P1口置为1(假设高电平LED亮),之后设置P1口全为1,再让P1口的相关标志位置为0,再置为0的时候可以加个延时