stc15f2k60s2 红外遥控在数码管输出数字0到9 代码
时间: 2024-03-06 14:52:22 浏览: 145
数码管显示0-9代码
5星 · 资源好评率100%
好的,以下是一个简单的 stc15f2k60s2 红外遥控控制数码管输出数字0到9 的代码示例:
```c
#include <reg52.h>
sbit IRIN=P3^2; // 红外接收模块连接的引脚
sbit LSA=P2^2; // 数码管第一位连接的引脚
sbit LSB=P2^3; // 数码管第二位连接的引脚
sbit LSC=P2^4; // 数码管第三位连接的引脚
unsigned char IR_value = 0; // 用于存储红外遥控器接收到的值
// 显示数字 0 到 9 的函数
void display(unsigned char num)
{
switch(num)
{
case 0: P0 = 0x3f; break;
case 1: P0 = 0x06; break;
case 2: P0 = 0x5b; break;
case 3: P0 = 0x4f; break;
case 4: P0 = 0x66; break;
case 5: P0 = 0x6d; break;
case 6: P0 = 0x7d; break;
case 7: P0 = 0x07; break;
case 8: P0 = 0x7f; break;
case 9: P0 = 0x6f; break;
default: break;
}
}
// 主函数
void main()
{
while(1)
{
if(IRIN == 0) // 如果红外接收到信号
{
IR_value = 0; // 先清零
delay(800); // 延时一段时间等待信号接收完毕
if(IRIN == 0) // 如果还是接收到信号,就开始解码
{
delay(800); // 再次延时等待信号接收完毕
for(unsigned char i=0; i<8; i++) // 解码红外信号
{
delay(400);
IR_value <<= 1;
if(IRIN == 1)
{
IR_value |= 0x01;
}
else
{
IR_value &= 0xfe;
}
}
}
switch(IR_value) // 根据接收到的信号值进行相应的操作
{
case 0x00: display(0); break;
case 0x01: display(1); break;
case 0x02: display(2); break;
case 0x03: display(3); break;
case 0x04: display(4); break;
case 0x05: display(5); break;
case 0x06: display(6); break;
case 0x07: display(7); break;
case 0x08: display(8); break;
case 0x09: display(9); break;
default: break;
}
}
}
}
```
以上代码只是一个简单示例,可能需要根据具体情况进行修改才能正常运行。
阅读全文