单片机红外遥控实验:1、任意使用红外遥控中的一个按键,控制8个LED左循环点亮。2、任意使用红外遥控中的一个按键,控制8个LED右循环点亮。3、任意使用红外遥控中的一个按键,控制8个LED循环点亮时为8个LED依次点亮,即LED1亮,然后LED1和LED2亮,直到8个LED点亮后全部熄灭,进行下一个循环。4、任意使用红外遥控中的一个按键,控制8个LED循环点亮时为8个LED依次点亮,即LED1亮,然后LED2亮,直到第LED8点亮后全部熄灭,进行下一个循环。
时间: 2023-10-06 21:05:57 浏览: 38
这是一个非常有趣的单片机红外遥控实验,我们可以使用红外遥控器来控制LED的点亮和熄灭。下面我将介绍具体的实现方法:
1. 任意使用红外遥控中的一个按键,控制8个LED左循环点亮
首先,我们需要连接8个LED到单片机的GPIO引脚上,并编写程序来控制这些引脚。然后,我们需要使用红外遥控器来控制程序的执行。我们可以使用红外遥控器的某个按键来触发程序的执行,例如“1”键。
当程序开始执行时,我们可以让8个LED依次点亮,从左到右循环,每个LED点亮的时间间隔可以设置为500ms。具体的实现方法如下:
```c
#include <reg52.h>
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;
void delay(unsigned int t)
{
while(t--);
}
void main()
{
while(1)
{
// 等待红外遥控器发送信号触发程序执行
if(接收到红外遥控器信号)
{
// 循环点亮8个LED
LED1 = 1;
delay(500);
LED2 = 1;
delay(500);
LED3 = 1;
delay(500);
LED4 = 1;
delay(500);
LED5 = 1;
delay(500);
LED6 = 1;
delay(500);
LED7 = 1;
delay(500);
LED8 = 1;
delay(500);
// 熄灭8个LED
LED1 = 0;
LED2 = 0;
LED3 = 0;
LED4 = 0;
LED5 = 0;
LED6 = 0;
LED7 = 0;
LED8 = 0;
}
}
}
```
2. 任意使用红外遥控中的一个按键,控制8个LED右循环点亮
这个实验和第一个实验类似,只需要将LED的点亮顺序改为从右往左即可。具体的实现方法如下:
```c
#include <reg52.h>
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;
void delay(unsigned int t)
{
while(t--);
}
void main()
{
while(1)
{
// 等待红外遥控器发送信号触发程序执行
if(接收到红外遥控器信号)
{
// 循环点亮8个LED
LED8 = 1;
delay(500);
LED7 = 1;
delay(500);
LED6 = 1;
delay(500);
LED5 = 1;
delay(500);
LED4 = 1;
delay(500);
LED3 = 1;
delay(500);
LED2 = 1;
delay(500);
LED1 = 1;
delay(500);
// 熄灭8个LED
LED1 = 0;
LED2 = 0;
LED3 = 0;
LED4 = 0;
LED5 = 0;
LED6 = 0;
LED7 = 0;
LED8 = 0;
}
}
}
```
3. 任意使用红外遥控中的一个按键,控制8个LED循环点亮时为8个LED依次点亮
这个实验需要使用一个计数器来记录当前点亮的LED编号,每次循环时点亮下一个LED,直到全部点亮后再熄灭。具体的实现方法如下:
```c
#include <reg52.h>
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;
void delay(unsigned int t)
{
while(t--);
}
void main()
{
unsigned char count = 0; // 计数器,用于记录当前点亮的LED编号
while(1)
{
// 等待红外遥控器发送信号触发程序执行
if(接收到红外遥控器信号)
{
// 循环点亮8个LED
for(count=1; count<=8; count++)
{
switch(count)
{
case 1: LED1 = 1; break;
case 2: LED2 = 1; break;
case 3: LED3 = 1; break;
case 4: LED4 = 1; break;
case 5: LED5 = 1; break;
case 6: LED6 = 1; break;
case 7: LED7 = 1; break;
case 8: LED8 = 1; break;
}
delay(500);
}
// 熄灭8个LED
LED1 = 0;
LED2 = 0;
LED3 = 0;
LED4 = 0;
LED5 = 0;
LED6 = 0;
LED7 = 0;
LED8 = 0;
}
}
}
```
4. 任意使用红外遥控中的一个按键,控制8个LED循环点亮时为8个LED依次点亮,即LED1亮,然后LED2亮,直到第LED8点亮后全部熄灭,进行下一个循环
这个实验和第三个实验类似,只需要改变LED的点亮顺序即可。具体的实现方法如下:
```c
#include <reg52.h>
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;
void delay(unsigned int t)
{
while(t--);
}
void main()
{
unsigned char count = 0; // 计数器,用于记录当前点亮的LED编号
while(1)
{
// 等待红外遥控器发送信号触发程序执行
if(接收到红外遥控器信号)
{
// 循环点亮8个LED
for(count=1; count<=8; count++)
{
switch(count)
{
case 1: LED1 = 1; break;
case 2: LED2 = 1; break;
case 3: LED3 = 1; break;
case 4: LED4 = 1; break;
case 5: LED5 = 1; break;
case 6: LED6 = 1; break;
case 7: LED7 = 1; break;
case 8: LED8 = 1; break;
}
delay(500);
}
// 熄灭8个LED
LED8 = 0;
LED7 = 0;
LED6 = 0;
LED5 = 0;
LED4 = 0;
LED3 = 0;
LED2 = 0;
LED1 = 0;
}
}
}
```
以上就是四个单片机红外遥控实验的具体实现方法,希望对你有所帮助。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)