单片机c语言LED灯奇数亮灯。

单片机c语言LED灯奇数亮灯。,第1张

//LED低电平点亮

//LED1-LED8分别接P20-P27

#include <REGX51H>

#define uchar unsigned char

#define uint unsigned int

void delay(unsigned char a) //延时

{

unsigned char i;

while(a--)

for(i=100;i>0;i--);

}

void main(void)

{

uchar i;

P2=0XFF;

while(1)

{

for(i=0;i<8;i=i+2)

{

P2=~(1<<i);

}

}

}

位申明LED,再用for语句写个延时函数,主函数如下

while(1)

{

led1=1;

delay(10);

led1=0;

delay(10)

led2=1;

delay(10);

led2=0;

delay(10);

led3=1;

delay(10);

led3=0;

delay(10);

}

led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led  的意思就是取反的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后 就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); // 等待按键放开led1=~led1;}

使用四个独立按键控制四个LED灯亮灭的汇编程序怎么弄?

单片机的P10-P13接四个发光二极管L1-L4的阴极,P14-P17接四个开关K1-K4

程序:

ORG 00H

START: MOV A,P1

ANL A,#0F0H

RR A

RR A

ORl A,#0F0H

MOV P1,A

SJMP START

可以检测单个按键,也可以同时检测多个按键

过程:开始--读P1口数据到A--A中的数据右移4次--A中的内容和F0H相或--A中的数据送到P1口--回到开始

#include<reg51h>

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;//点亮第八个发光管

}

}

     LED1 BIT P37    ; 程序没有改动,为了配合仿真图只改了端口。

     KEY1 BIT P32

     LJMP MAIN

     ORG 0030H

     MOV R1,#1 ; 亮灯个数

MAIN:  MOV P1,#0FFH

CHECK: JB KEY1,CHECK

     MOV P1,#11111111B

     MOV R2,#8

LOOP:  INC R1 ; 每次亮灯个数r1+1

     MOV A,P1

     CLR C

     RRC A

     MOV P1,A ; 亮灯

     LCALL DL ; 跳到延迟程序 每次亮间延迟一会

     DJNZ R2,LOOP ; 到r2(8次)循环结束

     LJMP CHECK

     ORG 0100H

DL:    MOV R7,#100 ; 延迟程序

L1:    MOV R6,#100

L2:    MOV R5,#60

L3:    NOP

     NOP

     DJNZ R5,L3

     DJNZ R6,L2

     DJNZ R7,L1

     RET

     END

以上就是关于单片机c语言LED灯奇数亮灯。全部的内容,包括:单片机c语言LED灯奇数亮灯。、单片机3个led灯循环点亮程序、单片机按键控制LED灯亮灭程序怎么做到的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9318629.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存