蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > DOC文档下载
 

基于51单片机的红外遥控

  • 资源ID:51173282       资源大小:143.00KB        全文页数:8页
  • 资源格式: DOC        下载权限:游客/注册会员    下载费用:10积分 【人民币10元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要10积分 【人民币10元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

基于51单片机的红外遥控

基于51单片机的红外遥控 1 红外遥控是无线遥控的一种方式,本文讲述的红外遥控,采用STC89C52单片机,1838 红外接收头和38k红外遥控器。 1838红外接收头 红外遥控器 原理 红外接收的原理我不赘述,百度文库上不少,我推荐个网址,这篇文章写得比较清楚, 也比较全面9 httD//wenku・baidu・com/view/c353e8360b4c2e3f57276349.html 我主要讲下程序的具体意思,在了解原理的基础上,我们知道,当我们在遥控器上每 按下一个键,遥控器上的红外发射头都会发出一个32位的编码(32位编码分成4组8位二 进制编码,前16位为用户码和用户反码,后16位为数据码和数据反码,用户码表示遥控 器类型,数据码表示按键编码),不同的键对应不同的编码,红外接收头接收到这个编码后, 发送给单片机,再进行相关操作。 源程序1(这个程序的功能是将用户码和用户反码,数据码和数据反码显示在1602液晶上, 因为遥控器买回来是不会说明按键对应什么码值,所以先自己测试,确定每个 按键的码值) includereg52.h includestdioh includeintrins.h define uint unsigned int define uchar unsigned char define _Nop _nop_ define TURE 1 define FALSE 0 /*端口定义*/ sbit lcd_rs_port P3人5; /*定义 LCD 控制端口*/ sbit lcd_rw_port P3A6; sbit lcd_en_port P3A4; define lcd_data_port PO lllllllllllllllllllllllllllllllllll void delayl void//关闭数码管延时程序 { int k; for k0; k1000; k; } llllllllllllllllllllllllllllllllllll uchar code line0[16]{n user}; uchar code linel[16]n data**}; uchar code lcd_mun_to_char[16]*,0123456789ABCDEFM}; unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; unsigned char IRcord[4];//ffi来存放用户码、用户反码、数据码、数据反码 unsigned charirdata[33];〃用来存放 32 位码值 void ShowString unsigned char line,char *ptr; llllllllllllllllllllllllllllllllllllllllllllll void Delayunsigned char niS; void Ir_workvoid; void Ircordprovoid; void timO_isr void interrupt 1 using 1〃定时器 0 中断服务函数 irtime; } void exO_isr void interrupt 0 using 0〃外部中断 0 服务函数 { static unsigned char i; static bit startflag; ifstartflag ifirtime63irtime33//引导码 TC9012 的头码 i0; irdata[i]irtinie; irtime0; i; ifi33{ irokl; i0; else{ irtinieO; startflagl; } } void TIMOinitvoid//定时器 0 初始化 TMOD0 x02;〃定时器0工作方式2, TH0是重装值,TL0是初值 TH00 x00;//reload value TL00 x00;//initial value ETO1;〃开中断 TRO1; } void EXOinitvoid { ITO 1;// Configure interrupt 0 for falling edge on /INTO P3.2 EXO 1;// Enable EXO Interrupt EA 1; void Ircordprovoid//红外码值处理函数关键函数 unsigned char i, j, kl; unsigned char cord,value; fori0;iv4;i{〃处理 4 个字节 forjly8;j{ 〃处理 1 个字节 8 位 cordirdata[k]; valuevaluel; ifcord7 valuevaluel0 x80; 〃大于某值为 1 k; IRcord[i]value; value0; } irpro_okl;〃处理完毕标志位置1 } lllllllllllllllllllllllllllllllllllllllllll void lcd_delayuchar ms /*LCD1602 延时*/ { ucharj; whilems{ forj0;j250;j {;} llllllllllllllllllllllllllllllllllllllllllllll void lcd_busy_wait /*LCD1602 忙等待*/ lcd_rs_port 0; lcd_rw_port 1; lcd_en_port 1; lcd_data_port OxfT; _Nop; _Nop; _Nop; _Nop; while lcd_data_port0 x80; kd_en_port 0; } lllllllllllllllllllllllllllllllllllllllllllllll void lcd_command_writeuchar command /*LCD1602 命令字写入*/ { lcd_busy_wait; Icd_rs_port 0; lcd_rw_port 0; lcd_en_port 0; lcd_data_port command; _Nop; _Nop; _Nop; _Nop; _Nop; _Nop; lcd_en_port 1; _Nop; _Nop; _Nop; _Nop; _Nop; _Nop;

注意事项

本文(基于51单片机的红外遥控)为本站会员(aaakkpc)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开