基于51单片机的红外遥控.pdf
《基于51单片机的红外遥控.pdf》由会员分享,可在线阅读,更多相关《基于51单片机的红外遥控.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1/7 基于 51 单片机的红外遥控 红外遥控是无线遥控的一种方式,本文讲述的红外遥控,采用 STC89C52 单片机,1838红外接收头和 38k 红外遥控器。1838 红外接收头:红外遥控器:原理:红外接收的原理我不赘述,百度文库上不少,我推荐个网址,这篇文章写得比较清楚,也比较全面,我主要讲下程序的具体意思,在了解原理的基础上,我们知道,当我们在遥控器上每按下一个键,遥控器上的红外发射头都会发出一个 32 位的编码(32 位编码分成 4 组 8 位二进制编码,前 16 位为用户码和用户反码,后 16 位为数据码和数据反码,用户码表示遥控器类型,数据码表示按键编码),不同的键对应不同的编码
2、,红外接收头接收到这个编码后,发送给单片机,再进行相关操作。源程序 1:(这个程序的功能是将用户码和用户反码,数据码和数据反码显示在 1602 液晶上,因为遥控器买回来是不会说明按键对应什么码值,所以先自己测试,确定每个按键的码值)#include#include#include#define uint unsigned int#define uchar unsigned char#define _Nop()_nop_()#define TURE 1#define FALSE 0 2/7 /*端口定义*/sbit lcd_rs_port=P35;/*定义 LCD 控制端口*/sbit lcd_
3、rw_port=P36;sbit lcd_en_port=P34;#define lcd_data_port P0/void delay1(void)/关闭数码管延时程序 int k;for(k=0;k1000;k+);/uchar code line016=user:;uchar code line116=data:;uchar code lcd_mun_to_char16=0123456789ABCDEF;unsigned char irtime;/红外用全局变量 bit irpro_ok,irok;unsigned char IRcord4;/用来存放用户码、用户反码、数据码、数据反码
4、unsigned char irdata33;/用来存放 32 位码值 void ShowString(unsigned char line,char*ptr);/void Delay(unsigned char mS);void Ir_work(void);void Ircordpro(void);void tim0_isr(void)interrupt 1 using 1/定时器 0 中断服务函数 irtime+;void ex0_isr(void)interrupt 0 using 0/外部中断 0 服务函数 static unsigned char i;static bit start
5、flag;if(startflag)if(irtime=33)/引导码 TC9012 的头码 i=0;irdatai=irtime;irtime=0;i+;if(i=33)irok=1;i=0;3/7 else irtime=0;startflag=1;void TIM0init(void)/定时器 0 初始化 TMOD=0 x02;/定时器 0 工作方式 2,TH0 是重装值,TL0 是初值 TH0=0 x00;/reload value TL0=0 x00;/initial value ET0=1;/开中断 TR0=1;void EX0init(void)IT0=1;/Configure
6、interrupt 0 for falling edge on/INT0(P3.2)EX0=1;/Enable EX0 Interrupt EA=1;void Ircordpro(void)/红外码值处理函数(关键函数)unsigned char i,j,k=1;unsigned char cord,value;for(i=0;i4;i+)/处理 4 个字节 for(j=1;j1;if(cord7)value=value|0 x80;/大于某值为 1 k+;IRcordi=value;value=0;irpro_ok=1;/处理完毕标志位置 1 /void lcd_delay(uchar ms
7、)/*LCD1602 延时*/uchar j;while(ms-)for(j=0;j250;j+);4/7 /void lcd_busy_wait()/*LCD1602 忙等待*/lcd_rs_port=0;lcd_rw_port=1;lcd_en_port=1;lcd_data_port=0 xff;_Nop();_Nop();_Nop();_Nop();while(lcd_data_port&0 x80);lcd_en_port=0;/void lcd_command_write(uchar command)/*LCD1602 命令字写入*/lcd_busy_wait();lcd_rs_p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 红外 遥控
限制150内