课程设计论文-单片机的红外遥控系统内容摘要:
键盘扫描 从 AT24C04 中取出对应数据 发射 结束 14 图 19 此时说明该红外遥控分析器的接受功能已经正常实现。 发射时,通过键盘矩阵输入一个键值,则在另外的一块电路板的显示器上显示相应的键值。 例如,输入键值“ 4”,则有如下结果: 图 20 由此,说明该遥控器的学习功能已经正常实现。 、软件测试 接收程序测试 软件测试通过仿真软件 Proteus 进行仿真 .测试接收程序时,利用信号源产生类似红外线脉冲,由单片机接收口输入,通过液晶显示相应的波形数值。 仿真模型如图 21,波形设置如图 22 15 图 21 图 22 发射程序测试 用示波器接在发射电路的发射端,仿真时,通过程序发射红外波形, 在示波器上观察波形图。 如图 23 图 23 总结与展望 本次课程设计要求 基于 51 单片机 ,设计制作一个红外遥控器,可分析解读并显示红外信号 ,扩展电路要求制作具有学习功能的红外遥控器。 从接到任务要求开始,我们便开始进行相关资料的查阅,同时初步考虑制作方案。 随后,认真研究了红外一体接收头的内部原理,如何用单片机分析出接收到的信号,以及16 LCD 液晶屏的显示,从而最终拟定了接收方案的电路,并开始写作程序。 接收电路完成后,便开始对发射电路进行研究。 通过查阅资料,明白了发射原理,并且设计出了发射电路图,用程序实现。 当顺利分别实现发射和接收功能后,再将两个程序综合的过程中,遇到了难题:发射功能不能实现了。 经过请教同学,最终完成了整个要求的电路功能。 这次实验不仅让我们进一步了解了红外遥控技术,增强自己动手能力,最重要的是让我们学会了团队协作,为了共同的目标努力,大家一起查阅资料,探讨设计,遇到难题总是一起寻求解决的方法,当有想放弃的不良情绪产生时,相互鼓 励打气。 尤其是答辩前最后几天,为进行最后的攻坚,大家同吃同睡,一起熬夜,相互解惑,加深了彼此之间的感情。 随着科学技术的飞速发展,红外遥控技术必将有进一步的飞跃,其运用领域也将大大扩展。 无论是在军事还是民用,起作用都将日益增大。 其发展前景会相当美好。 参考文献 [1] 胡汉才 . 单片机原理及接口技术 [M] 北京 : 清华大学 大学出版社 ,2020 [2] 严后选 ,孙建国,张天宏,无线红外智能遥控器的设计 [J] 测控技术, 2020,22( 3) [3]裴彦纯,陈志超,基于单片机系统的红外遥控器应用 [J] 现代电子技术,2020,4 [4]冯成德,刘栋,基于 keil C51的红外遥控器解码设计 [J] 自动化与仪器仪表,2020,6 17 附 件 附件一: 仿真 电路图 18 附件二:实物图 19 附件 二 :程序 include include include define uint unsigned int define uchar unsigned char define yhm 0x40 //用户码 sbit irin=P3^3。 //红外接收口( int1) sbit irout=P1^4。 //红外发射口 sbit rs = P1^0。 //指令数据选择 sbit rw = P1^1。 //读写选择 sbit e = P1^2。 //lcd 使能 sbit led=P1^3。 //指示灯 sbit scl=P3^6。 //at24c02 时钟 sbit sda=P3^7。 //at24c02 数据 sbit learn=P1^5。 //学习键 sbit fashe=P1^6。 //发射键 char code Tab[16]=0123456789ABCDEF。 char data TimeNum[]=。 char data Test1[]=。 uchar irtime。 //红外用全局变量 bit irpro_ok,irok。 uchar IRcord[4]。 //处理后的红外码,分别是 客户码,客户码,数据码,数据码反码 uchar irdata[33]。 //33 个高低电平的时间数据 /************初值 *********************/ define m9 (655369000) define m4_5 (655364500) define m1_6 (655361630) define m_65 (65536580) define m_56 (65536560) define m40 (6553640000) define m56 (6553656000) define m2_25 (655362250) /******************************************************************/ /* 函数声明 */ /******************************************************************/ void Ir_work(void)。 void Ircordpro(void)。 20 void ShowString (uchar line,char *ptr)。 void irfa(uchar temp)。 void date(uchar temp)。 void maichong(bit op,uint temp)。 /******************************************************************/ /* 定时器 0 中断服务函数 */ /******************************************************************/ void tim0_isr() interrupt 1 //定时器 0 中断服务函数 { irtime++。 //用于计数 2 个下降沿之间的时间 } /******************************************************************/ /* 外部中断 0 函数 */ /******************************************************************/ void ex0_isr (void) interrupt 2 using 0//外部中断 0 服务函数 { uchar i。 //接收红外信号处理 static bit startflag。 //是否开始处理标志位 static if(startflag) { if(irtime63amp。 amp。 irtime=33)//引导码 9ms+ i=0。 irdata[i]=irtime。 //存储每个电平 的持续时间,用于以后判断是 0 还是 1 irtime=0。 i++。 if(i==33) { irok=1。 i=0。 } } else { irtime=0。 startflag=1。 } } /******************************************************************/ 21 /* 定时器 0 初始化 */ /******************************************************************/ void TIM0init(void)//定时器 0 初始化 { TMOD=0x02。 //定时器 0 工作方式 2, TH0 是重装值, TL0 是初值 TH0=0x00。 //重载值 TL0=0x00。 //初始化值 ET0=1。 //开中 断 TR0=1。 } void TIM1init(void) { TMOD=0x01。 } /******************************************************************/ /* 外部中断初始化 */ /******************************************************************/ void EX1init(void) { IT1 = 1。 //指定外部中断 1 下降沿触发, INT1 () EX1=1。 //使能外部中断 EA = 1。 //开总中断 } /******************************************************************/ /* 红外键值处理 */ /******************************************************************/ void Ir_work(void) //红外键值散转程序 { TimeNum[5] = Tab[IRcord[0]/16]。 //处理客户码并显示 TimeNum[6] = Tab[IRcord[0]%16]。 TimeNum[8] = Tab[IRcord[1]/16]。 //处理客户码并显示 TimeNum[9] = Tab[IRcord[1]%16]。 TimeNum[11] = Tab[IRcord[2]/16]。 //处理数据码并显示 TimeNum[12] = Tab[IRcord[2]%16]。 TimeNum[14] = Tab[IRcord[3]/16]。 //处理数据反码并显示 TimeNum[15] = Tab[IRcord[3]%16]。 ShowString(1,TimeNum)。 //显示处理过后的码值 irpro_ok=0。 //处理完成后复位标志位 } 22 /******************************************************************/ /* 红外解码函数处理 */ /******************************************************************/ void Ircordpro(void)//红外码值处理函数 { uchar i, j, k。 uchar cord,value。 k=1。 for(i=0。 i4。 i++) //处理 4 个字节 { for(j=1。 j=8。 j++) //处理 1 个字节 8 位 { cord=irdata[k]。 value=value1。 if(cord7)//跟晶振有关 { value=value|0x80。 } k++。 } IRcord[i]=value。 value=0。 } irpro_ok=1。 //处理完毕标志位置 1 } /******************************************************************/ /* 微秒延时函数 */ /******************************************************************/ void Delay。课程设计论文-单片机的红外遥控系统
相关推荐
摄氏 25176。 C twentyfive degrees ( centigrade)或( celsius) Degrees 度 华氏 93176。 niythree degrees fahrenheit 电话号码。 28347509 读基数。 数词的惯用表现 Hundreds/ thousands/ millions 前面如果没有数字时加 s + of (数以百计 ) a kind of
的贝氏体,包括粒状贝氏体、上贝氏体、下贝氏体;另 6 一类是切应力失去主导作用后,铁原子自扩散作为主导因素的铁素体以块体转变生成的块状贝氏体。 至于柱状贝氏体和反 常贝氏体,从一些资料看,在高压下,即在大应力作用下生成的柱状贝氏体其贝氏体铁素体为细密的分枝条束;过共析钢中的反常贝氏体,除粗大的先共析碳化物外,贝氏体铁素体呈条束状。 它们均应属于以切应力为主导因素的成核成长转变机制生成的贝氏体
下牙炔捂裙这晰 乔忆聋团惰疫散朋沧顽成兄虾商吻寄业海辗遁股胆铭喷锋嘎帧野燃园交孺镣腥脱疹廓棉诲仇挑孩耕鲤惊擂件键衅伞淡搬信振拇殷抚潦 第一条 本建设工程项目的质量目标为 ,投资人对本项目工程的施工质量在设计使用年限内依法终身负责。 施工质量责任人。 (宝典指南) BT工程建设合同及回购协议 2 25 BT工程建设合同及回购协议第一部分 协议书格式 (回购人名称,以下简称 “回购人 ”)为实施
中小企业的合作,形成以‚诚信 +岗位能力‛为核心,‚校企共育、以岗定课、技能递进‛的人才培养模式。 该人才培养模式是针对企业会计核算与财务分析过程中典型工作任务进行系统化分析,将不同岗位对人才的需求进行融合,把企业实际的经营业务整合为教学载体。 实施会计单项任务技能训练、会计单项岗位技能训练、会计综合岗位技能训练,融入职业意识、职业道德和职业能力的递进式人才培养模式,完成学生向职业人转变。
序开发人员是透明的。 Oracle Database 10g 企业版主持的 API, Oracle Database 10g 个人版和标准版也支持。 Oracle Database 10g 产品全部是用同一个健壮和可靠地数据库引擎体系结构构建的。 在许多不同的平台上, Oracle Database 10g 标准版和 Oracle Database 10g 个人版都和 Oracle
名 , 这 一 中 文 译 名 也 形 象 地 表 示 了 该 灭 火 系 统 的 所 能 达 到 的 功 效。 而 英 文 注 册商 标 名 称 IN ER G EN 则 是 由 惰 性 ( IN E RT) 和 氮 气 ( N IT R OG EN)两 个 英 文 名 称 缩 写而成的。 如 果 仅 仅 从 烟 烙 尽 气 体 的 成 分 配 比 来 看 ,烟 烙 尽 气 体 灭 火 系 统