画出一个仿真图,让p2口接8个LED发光二极管,并书写一道程序,让LED灯做亮灭闪烁每一秒闪烁一次

画出一个仿真图,让p2口接8个LED发光二极管,并书写一道程序,让LED灯做亮灭闪烁每一秒闪烁一次,第1张

首先搞清LED管是高电平导通还是低电平导通。

如果是低电平导通,P2赋0x00时,发光管全亮,0xff时,全灭。

具体程序

#define uint unsigned int

#define uchar unsigned char

void delay(uint time_out)

{

uint i,j;

for(i=0;i<time_out;i++)

{

for(j=0;j<110;j++)

{;}

}

}

void main(){

while(1)

{

P2=0xfe; //第1个管亮

delay(500);

P2=0xfd; //第2个管亮

delay(500);

P2=0xfb; //依次类推

delay(500);

P2=0xf7;

delay(500);

P2=0xef;

delay(500);

P2=0xdf;

delay(500);

P2=0xbf;

delay(500);

P2=0x7f;

delay(500);

}

}

程序大致如此,delay函数负责延迟500ms有问题自己再调试调试

今天做回好人,闲着给你写一个做参考。

按键按一次LED灯灭,在按一次按键LED灯亮。

程序如下:

/

#include "REG52H"

sbit LED1_01 = P1^1; //LED灯

sbit KEY0_01 = P1^2; //按键

void Delay_1ms(unsigned int Time)

{

unsigned int x, y;

for(x = Time; x > 0; x--)

for(y = 120; y > 0; y--);

}

int main(void)

{

LED1_01 = 1; //打开LED灯点亮

while(1)

{

if(KEY0_01 == 0) //检测按键是否按下

{

Delay_1ms(10); //延时去抖动

if(KEY0_01 == 0) //确定按键按下

{

LED1_01 = ~ LED1_01; //取反LED灯 [ 亮 灭 ]

}

while(KEY0_01 == 0); //检测松手

}

}

}

/

这是只是百点亮P1口的程序

#include<reg51h>

void

main()

{

while(1)

{

p1=0x00;

}

}

这是闪烁度P1口回程序

#include<reg51h>

void

delay(unsigned

int

i)

//延时函数

{

unsigned

int

k;

for(k=0;k<i;k++);

}

void

main()

//主函数

{

while(1)

//循环函数

{

P1=0x00;

//点亮P1口

delay(2000);

//延时

P1=0xff;

//熄灭P1口

delay(200);

//延时

}

}

纯手打,答对你有帮助的话请采纳

谢谢

以上就是关于画出一个仿真图,让p2口接8个LED发光二极管,并书写一道程序,让LED灯做亮灭闪烁每一秒闪烁一次全部的内容,包括:画出一个仿真图,让p2口接8个LED发光二极管,并书写一道程序,让LED灯做亮灭闪烁每一秒闪烁一次、单片机编程:LED发光二极管的初始状态为亮。按一下按键,LED灯灭。再按一下,LED亮,用C语言编程该怎么写、利用89C51单片机的P1口控制8个发光二极管LED编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10161036.html

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

发表评论

登录后才能评论

评论列表(0条)

保存