- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机的红外遥控的实现
单片机的红外遥控的实现
经过几天的努力,终于将程序编好了。该系统以51单片机为核芯,通过遥控器(芯片DT9122)对系统进行控制,可以对四路继电器进行控制其开关,并可以设置定时时间,用数码管进行显示。
本系统可以对各家电进行控制,例如经过改装可以将电风扇改装成智能遥控加定时风扇。。。。
//功能描述:当按下相应的键时控制相应的继电器开断,可以启动24小时定时功能,并以
数码管动态显示,倒计时的方式显示,同时可以关闭定时功能,
//接法P1.0--P1.3接继电器
//P3。7接蜂鸣器
//P0口为显示的段码输入口
//P2口为位选端
//K1---1开 0---1关,K2--2开,1---2关,K3--3开,2--3关,K4--4开,3---4关
//K5---调用显示定时间 UP---分调整 +----时调整
//K6----启动定时 R---关定时
//经过调节器试,终于将遥控调节器出来,原来自己犯了一个错误,
//那就是经过红外扫描后,送过来的字码一直存在缓冲区中,所以当按下一个键后
//就一直执行那个增加程序。
//解决方法,用一个标志位,当执行完后,标志位清0,就可以实现,按一次执行一次
//接法P1.0--P1.3接继电器
//P3。7接蜂鸣器
//P0口为显示的段码输入口
//P2口为位选端
//K1---1开 0---1关,K2--2开,1---2关,K3--3开,2--3关,K4--4开,3---4关
//K5---调用显示定时间 UP---分调整 +----时调整
//K6----启动定时 R---关定时
/*
;================================
;DT9122D 遥控器
;****** 红外遥控器键值表 ******
; 10 03 01 06
; 09 1D 1F 0D
; 19 1B 11 15
; 17 12 16 4C
; 40 48 04 00
; 02 05 54 4D
; 0A 1E 0E 1A
; 1C 14 0F 0C
;================================
*/
//蒋龙健,2006.11.24修改
//功能描述:当按下相应的键时控制相应的继电器开断,可以启动24小时定时功能,并以
//数码管动态显示,倒计时的方式显示,同时可以关闭定时功能,
//功能的扩展:可以控制每一路的定时间并显示相应的定时时间,在显示上不能实现
//让其一直显示。在程序上还没有完全能够实现随意的调用。
//假如几个定时中断同时使用就有点混乱。
#include reg51.h
#include intrins.h
#define uchar unsigned char
#define uint unsigned int
void delay(uchar x); //x*0.14MS
void beep();
sbit IRIN = P3^2; //红外接收器数据线
sbit BEEP = P3^7; //蜂鸣器驱动线
uchar IRCOM[7];
bit REDIN;
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
sbit P25=P2^5;
sbit P26=P2^6;
sbit P27=P2^7;
#define Hidden 0xff; //消隐字符在字形码表中的位置
uchar code BitTab[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,};//0111 1111
uchar code DispTab[14]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
0x99,0x92,0x82,0xf8,//4.5.6.7
0x80,0x90, 0xbf,0xc8,0x8e,0xff};// 8, 9, - ,n,f
uchar DispBuf[8]; //8字节的显示缓冲区
bit Sec; //1s到的标记
bit min;
bit hour; //1分的标记
bit minkey;
bit hourkey;
char SecValue=59; //秒计数值
char
文档评论(0)