51单片机8个灯每两个一起亮灯的c语言程序

作者&投稿:索物 (若有异议请与网页底部的电邮联系)
单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)~

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。

2、#include "reg51.h"首先写出单片机的头函数。

3、#include "intrins.h"输入位移函数。

4、unsigned int count=0,led;定义函数。

5、输入主函数,定义单片机的端口,写入延时函数。

6、中断跳转,使流水灯运行起来。

比如你的8个灯连在 P0口,如果是阴极的
你只要先定义
sbit P0^0=LED0;
.....一定定义下去
然后再定义一个按钮
比如P1.1
sbit P1^1=key;
代码里写
while(true){if(key==1){LED0=0;LED1=0;..//把你要亮的灯置0就行了。阳极的话置1}}

//假设晶振12MHZ,P1控制LED低电平亮
#include "reg51.h"
unsigned int YSJS=0;
unsigned int P1BUF=0X03;
void main(void)
{
TMOD |= 0X10; //定时器1工作于方式1,16位定时器
TH1 = 0XFF; //定时器1定时时间=500uS
TL1 = 0X06;
ET1 = 1; //使能定时器1中断
EA =1; //开总中断
P1 = P1BUF;

while(1)
{
}
}

void TIMER1(void) interrupt 3 //定时器1中断函数使用默认寄存器组
{
TH1 = 0XFF; //定时器1定时时间=500us
TL1 = 0X06;

YSJS++;
if(YSJS==2000) //500uS*2000=1000000us=1s
{
P1 = P1BUF;
YSJS = 0
P1BUF = P1BUF<<2;
IF(P1BUF==0)P1BUF=0X03;
}
}

P0=0x03;// 点亮2个灯00000011
while(1)
{
delay_ms(200);//延时
P0<<=2;;// 点亮另外2个灯
if(P0==0xc0)
{
delay_ms(200);//
P0=0x03;
}
}


用89S52单片机构件建一个彩灯控制系统,系统用P1口外接8个发光二极管...
用89S52单片机构件建一个彩灯控制系统,系统用P1口外接8个发光二极管,没有键按下时,8支彩灯每隔0.5s全亮全灭一次。按K1时,8支彩灯从左至右循环点亮。按K2时,8支彩灯从右至左循环点亮。按K3时,8支彩灯先右循环点亮后左循环点亮。同时按下K1和K2时,8支彩灯从中间向外循环点亮。同时按下...

跪求 单片机 按键控制流水灯,要求按一下按键第一个灯亮,按两下第二个...
如果你不会写程序,给你了也没用 给你个思路:预先定于一个寄存器KEYNUM,首先有按键检测程序,每检测到一次按键,KEYNUM+1。在显示程序里判断KEYNUM是几,如果是1则第一个灯亮,其他的灭,依次类推,如果KEYNUM=8,第八个灯亮,同时清除KWENUM....

单片机C51编程,要求实现8盏LED灯的闪烁,这样写可以实现吗?渣渣求助大 ...
主程序应该有两个延时,而且还要有主循环语句,否则只执行一遍。void main(){ while(1){ P1=0xff;delay(500);P1=0x00;delay(500);} } 这个效果是8个灯,同时亮,同时灭的。

单片机编程:8个流水灯每隔一秒亮一个,用中断的方式。求完整编程啊...
} \/ 函数名称 : Timer0_isr(void) interrupt 1 using 1 函数功能 : 定时器中断程序 \/ void Timer0_isr(void) interrupt 1 using 1 { TH0=0x00; \/\/重新赋值,方式1是16位计数器,不能硬件重装初始值 TL0=0x00;LED=~LED; \/\/指示灯反相,可以看到闪烁 } ...

单片机p1端口接8个LED灯,D0点亮后闪烁一次 ,D1点亮后闪烁两次,D2点亮后...
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:M...

怎么利用单片机控制八个led灯?
1:首先设定一个变量i,可以是从0到3循环的变化,2:再检测一个经过消抖处理的按键,按一下,即i+1 3:当i值为各个值时,执行相应的变换花样。流水灯参考程序 include include define uchar unsigned char uchar j,tmp;void deay(unsigned int ms){ uchar t;while(ms--)for(t=0;t<12;t++...

单片机的8位流水灯的问题,
P1口共有8个IO控制口,分别控制8个LED灯,你的目的是做流水灯,也就是让其依次循环点亮,第一次点亮第一个灯,即:P1.0=0,其余为1即P=0xfe;第二次点亮第二个灯,即:P1.1=0,其余为1即P=0xfd;依次类推。=_crol_(a,1)实现的功能就是循环左移,相当于汇编语言的RL A;这样就可以...

单片机程序:P1口接8盏LED灯,8盏LED灯循环点亮,间隔时间为50ms,用延时...
8盏LED灯循环点亮,间隔时间为50ms,你能分辨不?还是给你改为间隔时间为1s,用定时器延时子程序实现 org0000h jmpstart org0030h start:movA,#0FEH;movR2,#8;LOOP1:movp1,A;左边4个LED每隔1S亮1个。从P1.0到P1.7。calldelay1s;调用定时1s程序 RLA;djnzR2,LOOP1 jmp start delay1s...

用单片机控制八个LED灯实现二进制加法(程序没搞懂,请大神帮忙)
字形,另一个贺点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED数码管显示器有两种不一样的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。

单片机8个小灯一个一个亮起来
51单片机只有P0 P1 P2 P3 这4个端口,每个端口有8条口线(引脚),分别叫P0.0~P0.7 P1.0~P1.7 P2.0~P2.7 P3.0~P3.7 ,P4~P7口不存在,当然错了,如果你的led都接在P0口的话就把程序中P0~P7换成P0就可以了。

泽库县15577493470: 怎么用c语言让51单片机实线8个灯同时点亮后由高位到低位依次熄灭,用 - crol - 或 - cror - 命令 -
薄翰重组: uchar led=0xff; while(1) { P1=led; delay(); led=_cror_(led,1); }

泽库县15577493470: 51单片机8个灯同时闪烁数程序用定时器写怎么写?c语言版. -
薄翰重组: 你就先写个清零端清零,然后同时低电平控制八个灯,写个延时程序,然后同时给给高电平,定时器记时.

泽库县15577493470: 如何用51单片机写两LED灯两两一起闪烁的流水灯C程序 -
薄翰重组: 这个比较简单吧uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void delay();//自己写吧 延迟一秒 void led_blink();//~~~~~~~~~~~~ void single_stream();//单向流水函数声明 void double_stream();//~~~~~~~~void led_blink() //全...

泽库县15577493470: keil软件用单片机控制8个LED流水灯来回点亮(C语言程序) -
薄翰重组: #include "reg51.h"main(){unsigned int i,j;while(1){P1=0xfe; //点亮第一个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LEDfor(i=200;i>0;i--)for(j=500;j>...

泽库县15577493470: 51单片机双键控制八位流水灯C程序 -
薄翰重组: #include<reg51.h>#define uchar unsigned char uchar num,flag=0; sbit K1=P1^0; sbit K2=P1^1; void t0isr() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; num++; if(num>=20){num=0;flag=1;} } main() { uchar LED; TMOD=0x...

泽库县15577493470: 51单片机8个流水灯上下亮、下上亮、花样亮在一起的c程序函数 -
薄翰重组: 不知道你的管脚接法和晶振频率怎么写 大致方法就是 main() { int i; for( i=0;i<8;i++ )//因为有8盏等 { while( 延迟函数 ); 点亮第i盏灯; } }

泽库县15577493470: 用51单片机实现,两个开关分别控制八个LED灯从左往右循环点亮,以及从右往左循环点亮,求C语言代码! -
薄翰重组: #include#define uchar unsigned char uchar times,led; sbit key1=P1^0; sbit key2=P1^1; void t0isr() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; times++; } void rolled() { P0=led; led=(led>>1)|0x80; if(led==0xff)led=0x7f; } main() ...

泽库县15577493470: 单片机C语言,将8个灯依次点亮(被点亮的继续亮),然后再依次熄灭,(在没有熄灭完时熄灭的保持灭) -
薄翰重组: 假设是P2口 int i; int P2; while(1) { for(i=0;i<=8;i++) { P2=0XFF>>i; //延时 } for(i=0;i<8;i++) { P2=0XFF>>(7-i); //延时 } }

泽库县15577493470: 单片机8个LED灯,2个一组的循环点亮 -
薄翰重组: 用51的单片机吗?这个算是最最简单的了,亮灭时间也没说,定时器都不用,随便点亮延时一下就可以了,主要就是用一个循环移位程序就搞定了

泽库县15577493470: 在51单片机中用c语言写程序实现用一个按键控制8个灯的亮和灭(按下按键全部灯亮,按下按键全部灯灭) -
薄翰重组: 你首先要确定你的电路.选择什么单片机和数码管,8个按键最简单8个IO口控制.一般简单的是用三极管驱动数码管.如果你会C语言的话,很容易上手.自己先从控制1个数码管学,在控制2个数码管(2个数码管基本上可以完成上面试验,8个...

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