大家好,今天小编关注到一个比较有意思的话题,就是关于c语言控制一个灯的问题,于是小编就整理了3个介绍c语言控制一个灯的解答,让我们一起看看吧。
如果用c语言实现流水灯控制?
用C语言实现流水灯控制的方式有好几种。
方法1:IO口移位法,用C语言编写的单片机程序可以让八个LED轮流点亮,每个灯点亮和熄灭时间均为1秒。首先赋值P2=0x01;然后进入主循环
P2口是8个引脚,P2.0到P2.7;每8秒一个循环,
第1秒我们给P2引脚赋值00000001,写成16进制就是0x01;。
第2秒左移一位我们给P2引脚赋值00000010,写成16进制就是0x02;。
第3秒左移一位我们给P2引脚赋值00000100,写成16进制就是0x04;。
第4秒左移一位我们给P2引脚赋值00001000,写成16进制就是0x08;。
第5秒左移一位我们给P2引脚赋值00010000,写成16进制就是0x10;。
第6秒左移一位我们给P2引脚赋值00100000,写成16进制就是0x20;。
AT89C51单片机的P1口控制8盏LED流水灯?
# include "reg51.h" // 包含头文件
#define uchar unsigned char
void delay02s(void) // 延时0.2s子程序
{
unsigned char i,j,k;
for ( i=2;i>0;i-- )
for (j=200;j>0;j-- )
for (k=250;k>0;k-- );
51单片机c语言编程led灯1,3,5,7和2,4,6,8交替闪烁?
***设你的8个LED是通过低电平来点亮,即LED负极连接P口,正极连接电源:
1. 当1,3,5,7亮时,我们的P2口状态以二进制表示应该是1010 1010,也就是0xAA,程序应该写成P2=0xAA。
2. 当2,4,6,8亮时,我们的P2口状态以二进制表示应该是0101 0101,也就是0x55,程序应该写成P2=0x55。
主循环这样写:
while(1)
{
P2=0xAA;
delayms(500);//延时500毫秒
P2=0x55;
delayms(500);//延时500毫秒
到此,以上就是小编对于c语言控制一个灯的问题就介绍到这了,希望介绍关于c语言控制一个灯的3点解答对大家有用。