欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    课程设计基于单片机的红外遥控电风扇设计.doc

    • 资源ID:4143521       资源大小:226KB        全文页数:30页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计基于单片机的红外遥控电风扇设计.doc

    丽水学院 课程设计题 目 基于单片机的红外遥控电风扇设计 指导教师 院 系 机电建工学院电子系 班 级 自动化071 学 号 姓 名 2011年 1 月 5 日目 录引言-2一、红外发射电路-2 1.1 红外通信原理-21.2 硬件电路-31.3 软件编码解码-51.4 流程图-6二、红外接收电路-7 2.1接收电路工作原理及组成部分-72.2 液晶显示-92.3调速电路 -102.4流程图 -11三、软件设计-12四、仿真调试以及出现的问题-13五、总结评价-14谢词-15参考文献-16附录-17附录一:元器件清单-17附录二:发射原理图-17附录三:接收原理图 -19附录四:发射程序-19附录五:接收程序-22引 言电风扇曾一度被认为是空调产品冲击下的淘汰品,其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。其主要原因:一是风扇和空调的降温效果不同空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用;二是电风扇有价格优势,价格低廉而且相对省电,安装和使用都非常简单。尽管电风扇有其市场优势,但传统电风扇还是有许多地方应当进行改良的,最突出的缺点是它不能根据温度的变化适时调节风力大小,对于夜间温差大的地区,人们在夏夜使用电风扇时可能遇到这样的问题:当凌晨降温的时候电风扇依然在工作,可是人们因为熟睡而无法察觉,既浪费电资源又容易引起感冒,传统的机械定时器虽然能够控制电风扇在工作一定后关闭,但定时范围有限,且无法对温度变化灵活处理。鉴于以上方面的考虑,我们需要设计一种智能电风扇控制系统来解决这些问题。一、红外发射部分1.1红外通信原理红外遥控有发送和接收两个组成部分。发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。发射部分包括键盘矩阵、编码调制、红外发送器。使用89C52芯片 将按键信号调制在 38KHz 的载波信号上通过三极管放大后发射出去。红外编码为: 全码 =引导码+系统码+系统反码+数据码+数据反码。89C52的P1口构成矩阵式键盘,用T1产生定时中断,驱动P3.3产生一个38K的方波,作为红外线的调制基波。将发送的数据和P3.0进行逻辑与后,经过调制电路整形,用三极管驱动红外发射管发射。(图1)遥控原理图1.2硬件电路1.2.1红外遥控器由发射和接收两部分组成,发射部分和加收部分分别有两块89C52单片机构成。工作原理及组成部分 (1)CPU 采用AT89C52单片机,MCS-8051产品兼容、2KB可重编程闪速存储器、耐久性:1000写/擦除周期、2.7V6V的操作范围、全静态操作:0Hz24MHz、两级加密程序存储器、128×8位内部RAM、15根可编程I/O引线、6个中断源、可编程串行UART通道、直接LED驱动输出、片内模拟比较器、低耗空载和掉电方式。1.2.2电源采用4节7号电池来提供电源,并用一个二极管(IN4148)进行降压。1.2.3调制部分:采用CD40106进行缓冲放大并整形.发送的数字信号与38K的载波进行相与,将其调制在一起,整形并缓冲放大,经过8050进行放大驱动红外发射管,使其发射红外光。1.2.3红外线发射管:在LED封装行业中有三个主要且常用的波段,如下850NM、875NM、940NM。根据波长的特性运用的产品也有很大的差异,850NM波长的主要用于红外线监控设备、875NM主要用于医疗设备、940NM波段的主要用于红外线控制设备。本设计采用940NM的红外管。(图2)红外发射管1.2.4按键功能介绍K1:微风档;键值为 01H K2:低风档:键值为 02HK3:中风挡;键值为03HK4:高风档;键值为04HK5:定时30s;键值为05HK6:定时60s;键值为06HK7:定时300s;键值为07HK8:开关键;键值为08H1.3软件编码、解码遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本 NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:1.3.1采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管发射。1.3.2遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制0FFH;后16位为8位操作码(功能码)及其反码。1.3.3遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在4563ms之间。1.3.4其相关的波形图如下:(图3)遥控编码1.4程序流程图(图 4)遥控器软件流程图二、红外接收部分2.1接收电路工作原理及组成部分2.1.1红外接收部分包括光电转换放大器、解调、解码电路。CPU板将单片机、控制、键盘组合在一起完成了人机对话。 用 AT89C51单片机来作主芯片控制,采用红外T1838接收头,用双向可控硅MC97A6控制电机档位,具有红外遥控功能。2.1.2电源部分:由四节干电池题供6V电压给控制板。2.1.3电风扇控制板框图(图 5 )电风扇控制板框图2.2液晶显示2.2.1液晶显示器各种图形的显示原理线段的显示:点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。2.2.2字符型液晶介绍字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表1 引脚接口说明表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.2.3液晶控制指令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。(说明1为高电平,0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。指令4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。指令7:字符发生器RAM地址设置。2.3调速电路2.3.1可控硅调速可控硅调速可分为移向调速和可控硅过零调速两种方式,这两种方法同变频调速而言,具有容易实现、系统简单、成本低廉等优点。运用单片机实现可控硅过零调速,不仅可以实现软件控制可控硅的导通角、简化 触发电路结构、便于控制、提高精度、调节转速等功能,还可避免移向调速、脉宽调速、正弦调速等在运行过程中产生的大量噪音和高次谐波,降低了系统对电路器件的耐压值要求。本设计采用MOC3603带过零触发的双向晶闸管驱动器。(图6)可控硅调速2.3.2软件设计采用双向可控硅过零触发方式,由单片机控制双向可控硅的通断,通过改变每个控制周期内的可控硅导通和关断交流完整全波(或半波)信号的数量来调节负载功率,进而达到调速目的。由于INT0信号反映工频电压过零时刻,因此只要对在外中断零二端服务程序中完成控制门的开启与关闭,并利用中断服务次数对控制量N(N为每个周期内可控硅导通的正弦波个数)进行计数。若N不等于0,保持控制电平为“1”,则继续打开控制门;若N=0,则使控制电平复位为“0”,关闭控制门。可使可控硅过零触发脉冲不在通过,这样就可按照控制处理得到的控制量的要求,实现可控硅的过零控制 ,从而达到按控制量控制的效果,实现速度可调。三、仿真与调试按照上面设计的电路在proteus软件内画图,打开单片机软件开发系统keil,选择89c51单片机,在其中编写程序,运行生成一个后缀名为hex的文件,然后将该文件下载到proteus中的AT89c51单片机中进行仿真,观察实验现象。仿真能实现播放音乐,按键选择曲目,暂停,播放功能。仿真成功后,安装好实验板,然后将音乐程序下载到电路板内,观察结果。能实现播放音乐,按键换曲等功能。程序调试中出现的问题及解决办法:(1)有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写的不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。(2)程序中的跳转指令的运用很重要,为保险起见,都用LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。(3)编程时要注意,在程序开始时,要写入各定时器中断的入口地址。(4)编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。(5)编程前要加流程图,这样会使思路清晰四、心得体会本学期学习了单片机这门课,但是对于单片机的硬件设计,软件设计掌握的深度不够,通过此次课程设计,我对于硬件电路的工作原理有了进一步的学习,同时有了一个提升;在软件方面,在程序的设计,程序的调试方面有了很大的进步。在具体的制作过程中我们发现在书本上的知识与实际的应用存在着不小的差距,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。通过这次实践使我更深刻的体会到了理论联系实际的重要性。在课程设计中,我主要负责的是PROTEL原理图绘制,PCB制作,以及电路板制作等,在PCB制作过程导入网络是出现了很多错误,找了很久还问了好几个同学还是能找出,后来自己在错误的元器件上尝试性的修改,把一个元器件的分装换了下,居然没错误了,让我觉得很兴奋,现在回想以后做设计是一定要从细节入手,这样才能做的更加顺利。很感谢学校和老师给我们安排了这次课程设计,这次实习也让我真正感受到的是合作的重要,许多时候都是在组员的讨论,老师的指导中的一句半句启发了我,就出现的让人欣喜的结果;理论知识同样很重要,有些问题都是由于基础知识掌握不好才出现的。通过这次课程设计,我体会到了成功的喜悦,挺着自己设计的程序下载单片机中播放出音乐,心理非常自豪。这次的课程设计在一定程度上改变了我对于学习单片这么课程的态度,从最初的认为学他没有什么意义,到如今觉得很有意义,并希望能将理论运用到实践,设计出更好更完整的系统。参考文献1 潘晓宁,朱耀东 单片机程序设计实践教程M.北京:清华大学出版社,2009.082 戴仙金 51单片机及其C语言开发实例M.北京:清华大学出版社,2008.023 汪志红,51单片机技术与应用系统开发案例精选 M.北京:清华大学出版社,2008.094李朝青,单片机原理及接口技术M.北京:北京航空航天大学出版社,2005.10附件一、程序清单元件名称型号数量单片机89C522液晶RT16021双向晶闸管驱动器MOC30631双向晶闸管BT1341晶振12MHZ2电解电容33PF4有极电容10UF5蜂鸣器1电阻1K5电阻5504电阻10K9电阻4.7K2电阻4703电阻3304排阻10K1三极管NPN3滑动变阻器10K1Led红色1按键小16接插件5二、发射原理图三、接收原理图四、发射程序;=电风扇红外发射(遥控器)程序=;K1:微风档,键值为 01;K2:低风档,键值为 02;K3:中风档,键值为 03;K4:高风档,键值为 04;K5:定时30s,键值为05;K6:定时60s,键值为06;K7:定时300s,键值为07;K8:开关机,键值为08;采用 4×1.5V 供电,用89C51作CPU芯片,当没有按键按下时,进入待机状态;= ORG 0000H JMP MAIN ORG 0003H ;INT0的中断入口ko JMP KEY_INT0 ORG 000BH ;T0的中断入口ko JMP FM_T0 ORG 0100H;=KEYON BIT 20HDATAOUT BIT P3.0FMOUT BIT P3.3SENDBUF DATA 30H;=进入主程序=MAIN: MOV R0,#7FH ;预使用单元清0 CLR AMAIN0: MOV R0,A DJNZ R0,MAIN0 ;清缓冲的地址单元值;= MOV SP,#60H CLR IT0 ;设置电平触发 SETB PT0 SETB EX0 SETB EA MOV TMOD,#02H ;T0的工作方式2 MOV TH0,#0FAH ;送初值 MOV TL0,#0FAHLOOP: CLR DATAOUT MOV P0,#0FH ;将P1置输入 CLR KEYON JMP LOOP;=中断程序:完成其按键按下的标志位KEY_INT0: PUSH ACC PUSH PSW CLR EX0 MOV A,P0 CPL A ANL A,#0FH MOV R2,A ;将行号存入R2中;= MOV P0,#0F0H MOV A,P0 CPL A ANL A,#0F0H ;取列号并存入A中;= MOV R1,#05H ;置列初号 CLR CPINT01: RLC A ;取列号 DEC R1 JNC PINT01PINT02: MOV A,R2 ;取行号 MOV R3,#0FFH ;置循环次数PINT03: RRC A INC R3 JNC PINT03PINT04: MOV A,R3 CLR C RLC A RLC A ADD A,R1 MOV SENDBUF+2,A ;键号存于32H单元中 CPL A MOV SENDBUF+3,A ;存键号的反码 MOV SENDBUF,#0FFH ;系统码在30H单元中 MOV SENDBUF+1,#00H ;系统反码在31H单元中 LCALL SEND SETB ET0 ;发送引导码 SETB TR0 ;启动T0 LCALL PP ;发送一帧数据.包括系统码和数据码 CLR TR0 ;当发送完后关断定时器 CLR ET0 ;关T0的中断 SETB EX0 ;执行完后打开外INT0 POP PSW POP ACC RETI;=FM_T0: CPL FMOUT RETI;=引导脉冲子程序 SEND: SETB DATAOUT LCALL DY9000us CLR DATAOUT LCALL DY4500us RET ;=发送四个缓冲单元中的内容程序:PP: MOV R3,#4 ;发送的字节数 MOV R1,SENDBUF PP0: MOV R2,#08H ;让其循环8次 MOV A,R1 ;将数据首址 CLR C ;清CPP1: RRC A ;右环移带进位 JC ONE ;若C=1ZER0: SETB DATAOUT ;若C=0 CALL DY560us CLR DATAOUT CALL DY560usONE: SETB DATAOUT CALL DY560us CLR DATAOUT CALL DY1687us DJNZ R2,PP1 INC R1 DJNZ R3,PP0 ;等四个字节的发送完 RET;=延时1687us子程序 DY1687us: MOV R6,#5L2: MOV R4,#2L3: MOV R5,#55 DJNZ R5,$ DJNZ R4,L3 DJNZ R6,L2 RET;=延时560us子程序 DY560us: MOV R6,#2L22: MOV R4,#2L33: MOV R5,#45 DJNZ R5,$ DJNZ R4,L33 DJNZ R6,L22 RET ;=延时9000us子程序 DY9000us: MOV R6,#90L2A: MOV R4,#2 L3A: MOV R5,#16 DJNZ R5,$ DJNZ R4,L3A DJNZ R6,L2A RET ;=延时4500us子程序 DY4500us: MOV R6,#45L2B: MOV R4,#2L3B: MOV R5,#15 DJNZ R5,$ DJNZ R4,L3B DJNZ R6,L2B RET END五、接收程序;K1:微风档,键值为 01;K2:低风档,键值为 02;K3:中风档,键值为 03;K4:高风档,键值为 04;K5:定时30s,键值为05;K6:定时60s,键值为06;K7:定时300s,键值为07;K8:开关机,键值为08;= ORG 0000H JMP START ORG 0003H JMP YAOKONG_INT0 ;红外遥控中断设置 ORG 000BH JMP IT0P ;定时中断 ORG 0013H JMP KEY_INT1 ;按键中断 ORG 0100H;= STALL BIT P2.0 ;微风控制位 E BIT P2.5 ;E端为使能端 RS BIT P2.6 ;RS为寄存器选择 RW BIT P2.7 ;RW为读写信号线 SJ00 BIT 20H.0 ;半小时控制标志 SJ01 BIT 20H.1 ;1小时控制标志 SJ02 BIT 20H.2 ;2小时控制标志 LKEYON BIT 20H.3 ;按键中断标志 LREC BIT 20H.4 ;接收中断标志 MRD DATA 30H ;数据码寄存器 SEN DATA 40H ;秒寄存器 MIN DATA 41H ;分钟寄存器 CUZHI DATA 42H ;50MS的初值寄存器;=START: MOV R0,#7FH ;预使用单元清0 CLR AMAIN0: MOV R0,A DJNZ R0,MAIN0;= MOV SP,#60H MOV TMOD,#01H MOV TH0,#3CH ;定时50MS MOV TL0,#0B0H SETBET0 CLRSTALL CLRLKEYON CLRLREC MOV P0,#0FFH ;关所有的指示灯 SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB EA ;CPU开中;=MAIN: MOV SP,#60H MOV R4,#02H ;设置闪烁次数 MOV CUZHI,#20 JB LKEYON,KEYHANDLE;检按键标志位 JB LREC,KEYHANDLE ;检接收中断标志位 ACALL LCD_INIT JMP MAIN ;转主程序;=KEYHANDLE: MOV A,MRD CJNE A,#01H,KEY2 ;=KEY1: SETBP2.0 CALLDY5MS CLRP2.0 CALLDY35MS MOV A,MRD CJNE A,#05H,KEY11 SETBSJ00 SETBTR0 JMPKEY1KEY11: CJNE A,#06H,KEY12 SETBSJ01 SETBTR0 JMPKEY1KEY12: CJNE A,#07H,KEY13 SETBSJ02 SETBTR0 JMPKEY1KEY13: CJNE A,#01H,KEY14 JMPKEY1KEY14: JMP MAIN;=KEY2: CJNE A,#02H,KEY3 SETBP2.0 CALLDY20MS CLRP2.0 CALLDY30MS MOV A,MRD CJNE A,#05H,KEY21 SETBSJ00 SETBTR0 JMPKEY2KEY21: CJNE A,#06H,KEY22 SETBSJ01 SETBTR0 JMPKEY2KEY22: CJNE A,#07H,KEY23 SETBSJ02 SETBTR0 JMPKEY2KEY23: JMPKEY2;=KEY3: CJNE A,#03H,KEY4 SETBP2.0 CALLDY10MS CLRP2.0 CALLDY30MS MOV A,MRD CJNE A,#05H,KEY31 SETBSJ00 SETBTR0 JMPKEY3KEY31: CJNE A,#06H,KEY32 SETBSJ01 SETBTR0 JMPKEY3KEY32: CJNE A,#07H,KEY33 SETBSJ02 SETBTR0 JMPKEY3KEY33: JMPKEY3;=KEY4: CJNE A,#04H,KEY5 SETBP2.0 CALLDY35MS MOV A,MRD CJNE A,#05H,KEY41 S

    注意事项

    本文(课程设计基于单片机的红外遥控电风扇设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开