




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理与应用大作业 题 目 基于单片机的电视遥控器 院 系 信息科学与技术学院 专 业 计算机应用 姓 名 班级学号 指导教师 二一一年十二月信息科学与技术学院单片机大作业任务书作业名称基于AT89C52单片机的万年历姓 名院(系)班级专业学号电话QQ号信息学院计算机应用201、设计任务:基于单片机的遥控器设计2、设计要求:红外遥控是目前使用较多的一种遥控手段。功能强,成本低的等特点。系统设计要求利用红外传输控制指令 及智能控制系统,借助微处理器 强大灵活地控制功能发出脉冲编码,组成一个遥控系统。本设计的主要技术指标如下:(1) 显示可控制通道(2) 灵敏性可靠,抗干扰性强(4)遥控范围:46米红外线的特点不影响周边环境的,不干扰其他电器设备。由于其无法穿透墙壁,股不同房间的家用电器可使用的遥控器而不会产生相互干扰;多路遥控。完成时间2010-2011学年第二学期 摘 要本作业是基于单片机的遥控器设计。本设计采用的是AT89S51.和AT89C55单片机,接收端的输出端状态大致可分为脉冲,电平,自锁,互锁,数据五种形式。“脉冲”输出是档案发射端按键时接收端应对应输出端输出一个“有效脉冲” 通过此次作业能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。 总体设计1.1.1利用红外遥控开关电路 用单片机制作一个红外电器遥控器,可以控制电视机。 红外发射单片机按键控制 当按下遥控按钮时,单片机产生相应的控制脉冲,由红外发光二极管发射出去。受控电器电源开关1.1.2红外接收部分结构如下:显示单片机液晶显示屏红外接收当红外接收器接收到控制脉冲后,经单片机处理由显示设备显示出当前调的数字。第2章 系统硬件电路设计2.1红外遥控电路设计由于本设计为一红外遥控装置,根据所选择方案将其分为发射和接收两大模块进行设计。2.1.1 发射电路部分2.1.1.1器件选择单片机的选择: 本设计所用的单片机可以用C31, AT89C51,羚羊单片机等多种单片机来实现。但是C31没有内部存储器,本设计需要编写程序,那么就要用外部扩展,比较麻烦。本设计所编写的程序比较简单,功能也比较少,如用羚羊单片机过于麻烦,大材小用,本设计所用到的输入输出端口也不是很多,所以我们决定用AT89C51单片机来完成本设计,既方便也很实用。下面对AT89C-51做一下简单的介绍:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C-51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主要特性:与MCS-51 兼容4K字节可编程闪烁存储器全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道 低功耗的闲置和掉电模式片内振荡器和时钟电路 按键控制选择由于本设计所控制的电视机,所以用外接扩充键盘较好。电路设计本遥控发射器采用码分制遥控方式,码分制红外遥控就是指令信号产生电路以不同的脉冲编码(不同的脉冲数目及组合)代表不同的控制指令。在确定选择AT89C-51作为本设计发射电路核心芯片和点触式开关作为控制键后,加上一个简单红外发射电路和12M晶体震荡器便可实现红外发射。下图为本红外遥控设计核心部分之一的发射电路原理图: 其中芯片端口P1.0至P1.7接键盘式开关。接收电路部分2.1.2器件选择单片机的选择与发射部分一样,本设计所用到的输入输出端口不多,用AT89C51单片机完全可以完成本设计,其方便实用的性能相对其他同类芯片更适合于本设计。显示设备选择在单片机应用系统中,使用的显示器主要有LED(发光二极管),LCD(夜晶显示器)。LCD显示的字比较丰富,也比较清楚,给人的感觉很好,因为我们设计的是电视机遥控器用LCD 更合适。电路设计2.1.3显示电路的设计以51芯片的P1端口直接与数码管相连,但为保证51芯片的正常工作,须在P1端口连电源时加上470的限流电阻。设计电路图如下:2.1.4遥控接收器电路原理图下图为本红外遥控设计的另一核心部分接收电路原理图,其中芯片端口P1.0至P1.7接数码管的a至h这8个引脚。端口P0.0至P0.5接LCD的电源控制输出。端口P2.7为可控硅调光灯的调光脉冲输出,端口P3.0为50Hz交流市电相位基准输入,端口P3.2为中断输入口,端口P3.1用于接收红外遥控码输入信号。2.2.1遥控发射部分:下图是遥控发射的主程序,首先初始化程序,然后调用键扫描处理子程序.开始 初始化 调用键扫描处理子程序 扫键过程:首先判断控制键是否按下,若有控制键按下则进行逐行扫描,按照P口值查找键号.最后按照键号转至相应的发射程序如下所示.扫键开始键按下? 返回 N Y逐行扫描,按P口值查键号按键号转至相应的发射程序红外信号发射过程:首先装入发射脉冲个数(发射时为3ms脉冲,停发时为1ms脉冲),此时若发射脉冲个数为1则返回主程序,若不为1则发1ms脉冲,然后停发1ms脉冲,这样便结束整个发射过程.采用红外线遥控方式时,由于受遥控距离,角度等影响,使用效果不是很好,如采用调频或调幅发射接收码,可提高遥控距离,并且没有角度影响。发射开始装入发射脉冲个数(R1)发3ms脉冲停发1ms(R1)-1=0 Y返回 N发1ms脉冲停发1ms2.2.2遥控接收部分:遥控接收部分的主程序及初始化及延时过程如下:首先初始化,然后按照显示亮度数据设定调光脉冲延时值,看P3.0口的脉冲是否为0,若不为0则调入延时程序,此时P2.7口输出调光脉冲然后返回;若为0则直接返回。初始化 开始按显示亮度数据设定调光脉冲延时值 P3.0=0? N 调延时程序YP2.7口输出调光脉冲 中断过程:首先判断低电平脉宽度是否大于2ms,若脉宽不到2ms,则中断返回;若低电平大于2ms,则接收并地低电平脉冲计数,接下来看判断高电平脉宽度冲是否大于3ms,若脉宽不到3ms,则返回上一接收计数过程;若高电平脉宽大于3ms,则按照脉冲个数至对应功能程序.此时中断返回.中断开始低电平脉宽2ms N Y接收并对低电平脉冲计数高电平脉宽3ms? N 按脉冲个数至对应的功能程序 Y中断返回 附录代码红外遥控器代码:#include static bit OP; /红外发射管的亮灭static unsigned int count; /延时计数器static unsigned int endcount; /终止延时计数static unsigned char Flag; /红外发送标志char iraddr1; /十六位地址的第一个字节char iraddr2; /十六位地址的第二个字节void SendIRdata(char p_irdata);void delay();char getkey() P1=0xfe;P3_6=P3_7=1;P3_3=1; if(!P1_4)return 1; /ON if(!P1_5)return 2; /7 if(!P1_6)return 3; /8 if(!P1_7)return 4; /9 if(!P3_6)return 5; /X if(!P3_7)return 6; / P1=0xfd; if(!P1_4)return 11; /+- if(!P1_5)return 12; /4 if(!P1_6)return 13; /5 if(!P1_7)return 14; /6 if(!P3_6)return 15; /- if(!P3_7)return 16; /MRC P1=0xfb; if(!P1_4)return 21; /% if(!P1_5)return 22; /1 if(!P1_6)return 23; /2 if(!P1_7)return 24; /3 if(!P3_6)return 25; /+ if(!P3_7)return 26; /M- P1=0xf7; if(!P1_4)return 31; / if(!P1_5)return 32; /0 if(!P1_6)return 33; /. if(!P1_7)return 34; /= if(!P3_6)return 35; /+ if(!P3_7)return 36; /M+ P1=0xfF;P3_3=0; if(!P1_4)return 41; / if(!P1_5)return 42; / if(!P1_6)return 43; / if(!P1_7)return 44; / if(!P3_6)return 45; / if(!P3_7)return 46; / return 0;void main(void) char key; count = 0; Flag = 0; OP = 0; P3_4 = 1; EA = 1; /允许CPU中断 TMOD = 0x11; /设定时器0和1为16位模式1 ET0 = 1; /定时器0中断允许 P1=0xff; TH0 = 0xFF; TL0 = 0xE6; /设定时值0为38K 也就是每隔26us中断一次 TR0 = 1;/开始计数 iraddr1=0xff; iraddr2=0xff; do key=getkey(); if(key=1)SendIRdata(0x12);/set if(key=11)SendIRdata(0x0b);/exit if(key=25|key=35)SendIRdata(0x1a);/+ if(key=15)SendIRdata(0x1e);/- if(key=6)SendIRdata(0x0e);/ if(key=16)SendIRdata(0x1d);/ MRC if(key=26)SendIRdata(0x1f);/ M- if(key=36)SendIRdata(0x1b);/ M+ if(key=32)SendIRdata(0x00);/0 if(key=22)SendIRdata(0x01);/1 if(key=23)SendIRdata(0x02);/2 if(key=24)SendIRdata(0x03);/3 if(key=12)SendIRdata(0x04);/4 if(key=13)SendIRdata(0x05);/5 if(key=14)SendIRdata(0x06);/6 if(key=2)SendIRdata(0x07);/7 if(key=3)SendIRdata(0x08);/8 if(key=4)SendIRdata(0x09);/9 if(key=21)SendIRdata(0x2A);/% if(key=5)SendIRdata(0x2B);/X if(key=33)SendIRdata(0x2C);/. if(key=34)SendIRdata(0x2D);/= if(key=31)SendIRdata(0x2E);/ if(key=41)SendIRdata(0x2F);/ if(key=42)SendIRdata(0x30);/ if(key=43)SendIRdata(0x31);/ if(key=44)SendIRdata(0x32);/ if(key=45)SendIRdata(0x33);/ if(key=46)SendIRdata(0x34);/ while(1); /定时器0中断处理 void timeint(void) interrupt 1 TH0=0xFF; TL0=0xE6; /设定时值为38K 也就是每隔26us中断一次 count+; void SendIRdata(char p_irdata) int i; char irdata=p_irdata; /发送9ms的起始码 endcount=223; Flag=1; count=0; P3_4=0; dowhile(countendcount); /发送4.5ms的结果码 endcount=117; Flag=0; count=0; P3_4=1; dowhile(countendcount); /发送十六位地址的前八位 irdata=iraddr1; for(i=0;i8;i+) /先发送0.56ms的38KHZ红外波(即编码中0.56ms的低电平) endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); /停止发送红外信号(即编码中的高电平) if(irdata-(irdata/2)*2) /判断二进制数个位为1还是0 endcount=15; /1为宽的高电平 else endcount=41; /0为窄的高电平 Flag=0; count=0;P3_4=1; dowhile(count1; /发送十六位地址的后八位 irdata=iraddr2; for(i=0;i8;i+) endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=15; else endcount=41; Flag=0; count=0; P3_4=1; dowhile(count1; /发送八位数据 irdata=p_irdata; for(i=0;i8;i+) endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=15; else endcount=41; Flag=0; count=0; P3_4=1; dowhile(count1; /发送八位数据的反码 irdata=p_irdata; for(i=0;i8;i+) endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=15; else endcount=41; Flag=0; count=0; P3_4=1; dowhile(count1; endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); P3_4=1; Flag=0;void delay() int i,j; for(i=0;i400;i+) for(j=0;j8 /time0,100us,红外遥控#define TIME0TL (65536-100*JINGZHEN/12)&0xff)#define TIME1TH (65536-5000*JINGZHEN/12)&0xff00)8 #define TIME1TL (65536-5000*JINGZHEN/12)&0xff)#define uchar unsigned char#define uint unsigned intcode uchar BitMsk=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,;uint IrCount=0,Show=0,Cont=0;uchar IRDATBUF32,s20;uchar IrDat5=0,0,0,0,0;uchar IrStart=0,IrDatCount=0;extern void initLCM( void); /LCD初始化子程序extern void DisplayListChar(uchar X,uchar Y, unsigned char *DData); /显示指定坐标的一串字符子函数void timer1int (void) interrupt 3 using 3 /定时器1EA=0;TH1 = TIME1TH; TL1 = TIME1TL;Cont+;if(Cont10)Show=1;EA=1;void timer0int (void) interrupt 1 using 1 /定时器0uchar i,a,b,c,d;EA=0;TH0 = TIME0TH; TL0 = TIME0TL;if(IrCount500)IrCount=0;if(IrCount300&IrStart0)IrStart=0;IrDatCount=0;IrDat0=IrDat1=IrDat2=IrDat3=0;IrCount=0;if(IrStart=2)IrStart=3;for(i=0;iIrDatCount;i+)if(i5&b16&b0&IrDatCount31) IrStart=2;TH0 = TIME0TH;TL0 = TIME0TL;EA=1;return; if(IrCount114&IrCount0)IrDatCount+;IrCount=0;TH0 = TIME0TH;TL0 = TIME0TL;EA=1;main()uchar *a,n;TMOD |= 0x011;TH0 = TIME0TH;TL0 = TIME0TL;ET0=1;TR0=1;ET1=1;TR1=1;IT0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东梅州职业技术学院《历史学科教学论》2023-2024学年第二学期期末试卷
- 西安城市建设职业学院《牧草生产学》2023-2024学年第二学期期末试卷
- 太原工业学院《中国语言学史》2023-2024学年第二学期期末试卷
- 潍坊环境工程职业学院《鸟类学》2023-2024学年第二学期期末试卷
- 宁波城市职业技术学院《木版画》2023-2024学年第二学期期末试卷
- 工业制造中的数据驱动决策实践
- 工业品品牌建设与市场推广
- 工业互联网的技术与应用
- 工业互联网在智能生产线中的应用
- 工业互联网平台的建设与发展趋势分析报告
- 第五单元《面积》(教学设计)-【大单元教学】三年级数学下册同步备课系列(人教版)
- 掼蛋考试试题及答案
- GA/T 2159-2024法庭科学资金数据清洗规程
- 企业风险管理-战略与绩效整合(中文版-雷泽佳译)
- 业务学习踝关节骨折
- 实景演出制作合同协议
- 《医疗机构重大事故隐患判定清单(试行)》知识培训
- 浙江省杭州市2024年中考英语真题(含答案)
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- 下肢静脉曲张诊断及治疗进展PPT学习教案
- 装修管理规则-城市综合体---成都租户指引
评论
0/150
提交评论