1. 51单片机按键控制按下K1四个led灯循环亮,再按一下全灭,c程序怎么写
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。
#include<reg51.h>
#include<intrins.h>
仿真图效果。
2. 51单片机,通电8个led逐个点亮,然后右到左按一次健灭一个灯,然后8个灯全灭,过一会再逐个点亮
是这样大哥,通电片p0,p1,口流水从左到右自动循环点亮,当按下一次p27独立一个按键,高电平变低电平,led从右到左依次逐个熄灭,按下熄灭一个,然后全灭,停10秒自动从启动循环点亮。要求汇编程序,中断,计数,延时,循环,p26,p25按健能控制循环速度,感谢你了大哥哥。也感谢大家兄弟姐妹。
3. 51单片机用汇编语言实现八个LED的全亮全灭
;以89c51单片机为例,假定用P1控制LED:
IO_LED EQU P1;
led_0 BIT P1.0;
led_1 BIT P1.1;
led_2 BIT P1.2;
led_3 BIT P1.3;
led_4 BIT P1.4;
led_5 BIT P1.5;
led_6 BIT P1.6;
led_7 BIT P1.7;
;定义开关LED的数据,假定LED正极一端接电源,另一端通过限流电阻接I/O端口:
DATA_CloseLED EQU 11111111B;
DATA_OpenLED EQU 00000000B;
ORG 0000H
AJMP MAIN
ORG 0030H
;-----------------------
;延时0.5秒程序(注:此延时函数摘自STC-ISP)
DELAY500MS: ;@12.000MHz
PUSH 30H
PUSH 31H
PUSH 32H
MOV 30H,#4
MOV 31H,#205
MOV 32H,#180
NEXT:
DJNZ 32H,NEXT
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 32H
POP 31H
POP 30H
RET
;-----------------------
;下面是主程序
MAIN:
MOV IO_LED,#DATA_CloseLED;同时关闭8个LED
LCALL DELAY500MS;延时0.5秒
MOV IO_LED,#DATA_OpenLED;同时打开8个LED
LCALL DELAY500MS;延时0.5秒
LJMP MAIN;循环
END;
上面程序演示了8个LED间隔0.5秒同时亮和灭的变化。
4. 51单片机第一个开关控制八个流水灯全亮,第二个开关控制八个流水灯全灭
#include<reg51.h>
#define uchar unsigned char
uchar led[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar num;
sbit key1=P1^0;
sbit key2=P1^1;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
P0=led[num];
num++;
num%=8;
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
while(key1==0)
{
TR0=0;
P0=0x00;
}
while(key2==0)
{
TR0=0;
P0=0xff;
}
TR0=1;
}
}
5. 51单片机的按键控制小灯亮灭的问题(程序类型:c语言)怎么解决
#include
#define uint unsigned int
sbit LED = P1^0;
sbit KEY1 = P1^2;
void delay(uint);
void main(void)
{
LED = 1; //初始化LED熄灭
KEY1 = 1; //赋值KEY1高电平
while(1)
{
if(!KEY1) //检测到按键按下
{
LED = ~LED; /*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句不
进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入循
环,LED取反得到LED = 0,灯亮。*/
delay(500); /*此处延迟,保证连续两次按键动作处在程序的延时过程中,不进行其他程序从而不会影响小灯。*/
}
}
}
void delay(uint z) //延时函数
{
uint x, y;
for(x=85; x>0; x--)
for(y=z; y>0; y--);
}
可下载到单片机验证。
6. 单片机。小灯全亮1S全灭1S左移
单片机控制led是非常的,通过控制单片机的电平,即可控制led的亮暗。如果是51单片机的话,你的灯的负极接在单片机上,正经接个电阻,再接5V电源,硬件电路就搭建好了。软件方面,只需要简单的延迟和控制就OK了,比如你的灯在P2.0口,你就定义一个管脚,然后让他为0,就亮了,为1时,就暗了(1为高电平,0为低电平)。全亮和全暗都是这个道理。左移也是一样的。
7. 利用51单片机,做一个按键控制流水灯程序。 默认8个LED灯全灭。 按
你看到独立键盘就可以写了,有c基础的话用不了多久就会了
8. 51单片机设置p0到p3口的所有灯同时亮同时灭
设PIO输出低电平点亮灯,输出高电平熄灯;
while(1){
P0=0; P1=0; P2=0; P3=0; //所有灯同时亮
delay();
P0=0xff; P1=0xff; P2=0xff; P3=0xff; //所有灯同时灭
delay();
}