#include <regX52.h>
#define c(x) (x*110592/120000)
sbit Ir_Pin=P3^2;
sbit beep=P3^6;
#define INBUF_LEN 4 //数据长度
unsigned char inbuf1[INBUF_LEN]={'0','0','0','0'};//发送缓冲区
unsigned char inbuf2[50];//接收缓冲区
unsigned char count3;
void init_serialcomm( void )
{
SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
T2CON=0x30;
TH2=0x00;
TL2=0x00;
RCAP2H=0xFF;
RCAP2L=0xDC;
TR2=1;
}
//向串口发送一个字符
void send_char_com( unsigned char ch)
{
SBUF=ch;
while (TI== 0 );
TI= 0 ;
}
//向串口发送一个字符串,strlen 为该字符串长度
void send_string_com( unsigned char *str, unsigned int strlen)
{
unsigned int k= 0 ;
do
{
send_char_com(*(str + k));
k++;
} while (k < strlen);
}
//串口接收中断函数
void serial () interrupt 4 using 3
{
if (RI) //RI==开始接收
{
unsigned char ch;
RI = 0 ; //软件RI=0
ch=SBUF;
if (ch> 1 )
{
count3= 0 ;
inbuf2[count3]=ch;
}
else
{
count3++;
inbuf2[count3]=ch;
}
}
}
unsigned char code Led_Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共阳极数码显示码0-F.
unsigned char code Led_Sel[]={0xef,0xdf,0xbf,0x7f};
unsigned char dis_8[17]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','-'};
unsigned char Led_Buf[4]; //显示缓冲区
char Led_Index; //位选
unsigned char Ir_Buf[4]; //用于保存解码结果
void delay_50ms(unsigned int t)
{
unsigned int j;
for(;t>0;t--)
for(j=6245;j>0;j--)
{;}
}
//==============================================================
//数码管扫描
timer0() interrupt 1 using 1
{
TL0=65536-1000;
TH0=(65536-1000)/256; //定时器0设定约1000us中断一次,用于数码管扫描
//P0=0xff;
P2=Led_Sel[Led_Index]; //位选
P0=Led_Tab[Led_Buf[Led_Index]]; //段选
if(++Led_Index>3) Led_Index=0; //四个扫描完了,到第一个数码管
}
//==============================================================
unsigned int Ir_Get_Low()
{
TL1=0;
TH1=0;
TR1=1;
while(!Ir_Pin && (TH1&0x80)==0);
TR1=0;
return TH1*256+TL1;
}
//=============================================================
unsigned int Ir_Get_High()
{
TL1=0;
TH1=0;
TR1=1;
while(Ir_Pin && (TH1&0x80)==0);
TR1=0;
return TH1*256+TL1;
}
//==============================================================
main()
{
unsigned int temp;
char i,j;
Led_Index=1;
init_serialcomm(); //初始化串口
TMOD=0x11;
TL0=65536-1000;
TH0=(65536-1000)/256; //定时器0设定约1000us中断一次,用于数码管扫描
EA=1;
ET0=1;
TR0=1;
Led_Buf[0]=0;
Led_Buf[1]=0;
Led_Buf[2]=0;
Led_Buf[3]=0; //显示区设成0
do{
restart:
while(Ir_Pin);
temp=Ir_Get_Low();
if(temp<c(8500) || temp>c(9500)) continue;//引导脉冲低电平9000
temp=Ir_Get_High();
if(temp<c(4000) || temp>c(5000)) continue;//引导脉冲高电平4500
for(i=0;i<4;i++) //4个字节
for(j=0;j<8;j++) //每个字节8位
{
temp=Ir_Get_Low();
if(temp<c(200) || temp>c(800)) goto restart;
temp=Ir_Get_High();
if(temp<c(200) || temp>c(2000)) goto restart;
Ir_Buf[i]>>=1;
if(temp>c(1120)) Ir_Buf[i]|=0x80;
}
Led_Buf[0]=(Ir_Buf[2]/16)&0xf;
Led_Buf[1]=Ir_Buf[2]&0xf;
Led_Buf[2]=(Ir_Buf[3]/16)&0xf; //显示结果
Led_Buf[3]=Ir_Buf[3]&0xf;
inbuf1[0]=dis_8[Led_Buf[0]];
inbuf1[1]=dis_8[Led_Buf[1]];
inbuf1[2]=0x0d;
inbuf1[3]=0x0a;
send_string_com(inbuf1,INBUF_LEN);
beep=0;
delay_50ms(2);
beep=1;
}
while(1);
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于C语言实现本站原创 VB遥控播放器红外遥控解码(含源代码+使用说明).zip
共32个文件
dll:12个
exe:2个
frx:2个
0 下载量 154 浏览量
2024-04-29
02:30:09
上传
评论
收藏 9.42MB ZIP 举报
温馨提示
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于C语言实现本站原创 VB遥控播放器红外遥控解码(含源代码+使用说明).zip (32个子文件)
393-本站原创 VB遥控播放器红外遥控解码
s51yaokong.lnp 47B
s51yk.LST 7KB
s51yaokong 10KB
VB遥控音乐播放器上位机程序
MSCOMM32.OCX 101KB
RICHMCU IR PLAYER.exe 76KB
MSCOMCHS.DLL 13KB
MSSCCPRJ.SCC 198B
hifans.ini 183B
OLEAUT32.DLL 584KB
VB6CHS.DLL 100KB
HIFANSBROWSER.uzy 68KB
Form1.frm 21KB
ASYCFILT.DLL 144KB
COMCAT.DLL 22KB
VB6STKIT.DLL 100KB
scrrnchs.dll 20KB
OLEPRO32.DLL 160KB
HIFANSBROWSER.vbp 1KB
stdole2.tlb 18KB
Form1.frx 2KB
rmoc3260.oca 48KB
rmoc3260.dll 172KB
Form2.frx 932B
MSVCRT.DLL 272KB
MSVBVM60.DLL 1.32MB
Form2.frm 14KB
scrrun.dll 148KB
HIFANSBROWSER.vbw 102B
安装程序
VB遥控播放器安装程序.exe 7.91MB
s51yaokong.M51 12KB
s51yk.c 4KB
s51yaokong.hex 3KB
共 32 条
- 1
资源评论
大黄鸭duck.
- 粉丝: 2616
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功