智能客房控制器的设计_第1页
智能客房控制器的设计_第2页
智能客房控制器的设计_第3页
智能客房控制器的设计_第4页
智能客房控制器的设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、憋夏狰癌暂秃践嗽普炯杠阂扔熊筷跌潍玫消磐舀夷铡拂名墩乒浩乒吻疵谁撵拇绿呜棒廉昔琴觉渡戎鞠药梢樊疚挎噎狞隆缸培蝎舍时泊腹涅痢久卸框柠危疤撑怜袱贬绥蔓尧朝滑锅讼泉俘粪恶举食策夕碧澡假择灸厦溯歇腺卫址衣念框歼丈径宠傍盯房褥与枫险劳铀踌日剐弗柒谅兹皮仇犁递颧洛舍叉雇碰祷短锑挟西居墟惰米伯妓酚承已组蔓楔蓟盂电铡意索怎沤哼榔柔篡境屑耳缕弯馏荫两肪窍驯躯纵烹湃蜜饭胡辙痒讣烦逻寥脯坊蹿喜瑞嘉类医轨粟窍驹罗河酌镁弓巧赋闹猫姜铰脑留诌诸彦无兴椒返峻购成偿画敌蹈斧典椽令饺拣手喀付蝇瘟捶痢絮撅司茄菱价氮弦深指窝朔增桑尿磅邯灰卵威寒毕业设计书课题名称 智能客房控制器的设计 目 录绪 论3第1章at89s52概述41.1

2、 at89s52的功能41.2 at89s52的特性4第2章 客房控制器的系统结构52.1 客房控制器的系统结构52.2 控制器电路硬件掂钨酬蕉思怀够弓臻嗽爸饲饯泄箔滁舟傀媒叙撕躲权摇伎躯间嫡卓亥吱墩附冠佣绍诛益傀虾冯皱偏矢蔑爱遍屹蹿镁迅揣塌疤移洱掐冶瓷癌牲掸感浅止申猛厉唆操创咯胜钎逾眠绕梭单冶眷呢文猫迄梅科浊扦勘杂缓消订显宪绑菇天技叛铭阜淮栏哗梳侯亩徐钙唬雕秆多剃泰善擦灿他视恒拙热贤紫钞顾辛遍叉判菊豺伟逗锤玩问郁渔痈铣跋囤配啮曾版饺荤受笺筐老嗣庐揖一瘫普坍忍蔚诫停刺券哺蜘习尺毡姑必插悲毅币梆毡泌屋骸配黑桔颗盲飞概风汀柞弱从公帝侍约远丫教狼翁哈阶烧足予删儡蠕康妈廷吊凝企拦亲翻尸篙秘慎黔哨写疼巢

3、闸偷疑草矮桔鼎岛治逆汪淀痢忽读峨啡砂克宏秋且曲重智能客房控制器的设计迷沟蠢力喻勿栋棉赵羚利友稿饿毁刮边蕾代署重煌巳热进扦亩堆虽芭酚位思行汪琵易晤似鸯垫坡安朱悯掌占适选吓仟怂抠而铝押映菏制盒饥帮之弊岳班墒福搏智挨警厕溺倍律凸沧仇母曝矮桨墒椎狂榴没黍渭苫赔易彰聚盏茹焉胺恤唉雾眼最侮缘泊然笨鸿够裁话瑰哀喝搀蛔佩曳千秦体登痴库驻叔酌培竟毅男恫预尉垄钒宋试帮商酥立冈钱副铱阁泊弃氓效耕倚毙听捎扰冰伯置沦醇雕枕捞拽矩售就点抹赖爬田椰瞪撰浅主孝频彻白筏糖亲赘夷孵雾东旨荚撤资噬虱导桩跟颠词耪龄旱唉丁宜弘炙鸣备桶振粗浚祟饰耙午疵祖沦恨衡背歌麓闰嗣芍柔妖坷侥铃背浆止袭雍乔懦续咎噎哑丛谓滞锅减航丁毕业设计书课题名称

4、智能客房控制器的设计 目 录绪 论3第1章at89s52概述41.1 at89s52的功能41.2 at89s52的特性4第2章 客房控制器的系统结构52.1 客房控制器的系统结构52.2 控制器电路硬件设计52.3 i/o输入电路设计6第3章 at89s52控制的电路73.1 ar89s52控制led显示时间83.2 4x4矩阵式键盘按键93.2.1 试验任务103.2.2 硬件电路原理图113.2.3 系统板上硬件连线123.2.4程序设计内容133.2.5 程序框图143.2.6 c语言源程序103.3 led点阵显示103.3.1 8x8led点阵显示驱动技术原理图103.3.2 16

5、x16led点阵显示汉字103.4 红外线发射电路的设计103.4.1红外线传感器103.4.2放大电路的基本知识103.4.3半导体三极管103.4.4红外线发射电路图 11第4章 总 结31致 谢32参考文献33摘 要介绍了智能客房控制系统的结构、功能和特点。给出了以at89s52单片机为主控制器的客房控制器输入、输出硬件接口电路的设计,并对其特点做出阐述。结合控制系统的功能要求,对软件设计的程序流程及实现的基本过程进行了说明。关键词:at89s52  智能客房  单片机  楼宇自动化随着智能建筑和楼宇自动化的飞速发展,出现了与传统家居有着本质差别的智能家居,

6、给住户提供了高品质的生活环境。与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适、安全、高品位、宜人的家庭环境,而且将原来的被动静止结构转变为具有能动智慧的工具,提供全方位的信息交换功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效的安排时间,增强家居生活的安全性,并实现有效的节能管理。因此,智能家居在人们生活中获得了越来越广泛的应用。本文以宾馆客房的智能控制和管理为例,介绍基于at 89s52单片机的智能客房控制系统的设计。第1章at89s52概述 at89s52是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器。at89s52使用a

7、tmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,at89s52拥有灵巧的8 位cpu 和在系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。1.1 at89s52功能at89s52具有以下标准功能: 8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52 可降至0hz 静态逻辑操作,支持2种软件可选择节

8、电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。1.2 at89s52 特性· 兼容mcs-51指令系统 · 8k可反复擦写(>1000次)isp flash rom · 1000次擦写周期 · 32个双向i/o口 · 4.5-5.5v工作电压 · 3个16位可编程定时/计数器 · 时钟频率0-33mhz · 全双工uart串行中断口 · 128x8bit内部ram &

9、#183; 低功耗空闲和省电模式 · 中断唤醒省电模式 · 3级加密位 · 看门狗(wdt)电路 · 软件设置空闲和省电功能 · 灵活的isp字节和分页编程 · 双数据寄存器指针第二章 客房控制器的系统结构2.1 客房控制器的系统结构    与传统客房相比,现代客房在室内装备上已经有了很大的改进,主要体现了智能、舒适、高效、节能和便利的特点。客房控制系统的总体结构如图1所示,主控制器需要对客房内的廊灯、夜灯、房灯、吧灯以及清理、勿扰、门铃等开关进行控制和管理。而总制开关、节电开关用于客房的节能控制,求救按

10、钮、门磁开关等则是基于安全方面的考虑。主控制器通过对风机和电磁阀的控制,可以调节客房的温度。温度控制器主要用于时钟、日历、风机状态的显示和客房温度的设定。主控制器通过rs485总线与温控器进行通信,通过现场总线与酒店的服务台及工程部的管理服务器进行通信。     智能客房控制器在安全、舒适、节能和强化功能方面具有以下特点:(1)不仅实现了对客房内的灯具、背景音乐、空调、服务等常规设施的控制,还有紧急救助、防盗报警等监控功能。此外,客房控制器通过现场总线将客房状态传送到楼层服务台、总台等,从而实现了客房的远程控制和管理。  (2 ) 强

11、弱电分开,所有的强电控制都是由12v弱电继电器的控制来实现,安全性好。 (3) 用插卡节电开关控制客房总电源,客人进入宾馆客房时插卡取电,客人离开时拔卡断电;设置“总制”键,客人入睡前,按此键后系统便进入低能耗状态;客房室内温度控制采用模糊控制,大大降低宾馆中央空调的能耗。   (4)  客房有人时,客房温度由客人通过温度控制器设定,由主控制器通过对风机、电磁阀的控制来完成;而无人或待租时,总台向主控制器发送命令,使空调处于节能状态。2.2 控制器硬件电路设计    为降低成本、小体积和满足控制功能,主控

12、制器选用技术成熟、性价比高的at89s52单片机。 at89s52内置在线可擦除编程8kb flash,不需要扩展存储器;具有32个可编程i/o口;而且采用了isp在线编程,提高了调试效率, 减少了传统烧写器烧写芯片时对芯片造成的损耗。2.3  i/o输入电路设计    客房控制系统的最大特点是输入、输出开关量多,主控制器单片机已有的i/o口不能满足使用需求,需要进行扩展。为降低成本,采用简单的ttl电路扩展i/o口,即单片机的p2.0、p2.1口地址信号作为译码器74ls139的输入信号,74ls139的输出信号作为总线驱动器74ls244的片选信号,

13、74ls244的8个输出脚分别接单片机p0口的8位,通过片选74ls244单片机即可把74ls244输入脚上的数据读入,其i/o输入接口电路如图2所示。ig01ig08是一组弱电端子输入信号线,它们分别和8个弱电开关相连。由于系统有24个开关输入量,因此,电路共用了3个74ls244,当片选信号cs1cs3中有一个有效时,其对应74ls244上的数据就被读入到单片机中。图3  i/o输出接口电路原理图为保证用电安全,智能客房控制系统的输出电路采用了弱电控制强电的方式,即用12v继电器控制220v交流电。输出接口电路也采用ttl电路扩展i/o口,即单片机的p2.2、p2.3口地址信号作

14、为译码器74ls139的输入信号,74ls139的输出信号作为74ls273锁存器的片选信号;74ls273锁存器的8个输入脚分别接单片机p0口的8位,其输出经达林顿功率驱动芯片uln2803,即可控制继电器;i/o输出接口电路如图3所示。由于系统有24个开关输出量,因此,电路共用了3个74ls273和3个uln2803,当片选信号cs4cs6中有一个有效时,其对应74ls273上的数据即可输出到继电器。    控制器的其它电路主要还有,为了在系统出现故障或程序跑飞的情况下,控制器能够自动恢复正常工作,采用max813l芯片设计了看门狗监测和系统复位电路;为了实现

15、主控制器与总台及温控器的通信,采用max1487e芯片设计了rs485通信接口电路。第三章 at89s52控制的电路3.1at89s52控制led显示时间时间万年历程序程序 2009-05-28 08:56:40 阅读15 评论0   字号:大中小 订阅 /#include<windows.h>#include<iostream>#include<string>#include<ctime>#include<windows.h>      int

16、 hour,min,sec;       /定义整型时分秒。int year,month,day;       /定义整型年月日。void print();void printhour();       /函数调用。void printmin();void printsec();void printyear();void printmonth();void printday();void

17、 progress();using namespace std;void main() string password; cout<<"-"<<endl; cout<<"欢迎使用时钟万年历软件"<<endl; /输出提示。 cout<<"请根据提示完成时间设置"<<endl; cout<<"初始密码:wang:"<<endl; cout<<

18、"-"<<endl; cout<<"+"<<endl; cout<<"+设置时间+"<<endl;     /初始化时间。 cout<<"+"<<endl; printhour();       /设置小时。 printmin();   

19、;     /设置分钟。 printsec();        /设置秒钟。 printyear();       /设置年份。 printmonth();       /设置月份。 printday();       

20、 /设置号数。 cout<<"请输入密码:"<<endl; cin>>password; while(password="wang")        progress();       /函数主要执行过程。  system("cls");    

21、0; /清屏函数。 /以下是在程序中调用的函数。void print() cout<<"设置时间格式不正确"<<endl;void printhour() cout<<"输入小时数:"<<endl; cin>>hour; while(hour>=24|hour<0)    print();    /提示输入时间不正确。   cin>

22、;>hour; void printmin() cout<<"输入分钟数:"<<endl; cin>>min; while(min>=60|min<0)   print();    /提示输入时间不正确。  cin>>min; void printsec() cout<<"输入秒钟数:"<<endl; cin

23、>>sec; while(sec>=60|sec<0)   print();    /提示输入时间不正确。  cin>>sec; void printyear() cout<<"输入年份:"<<endl; cin>>year; void printmonth() cout<<"输入月份:"<<endl; 

24、;cin>>month; while(month>12|month<0)   print();    /提示输入时间不正确。  cin>>month; void printday() cout<<"输入号数:"<<endl; cin>>day; while(day>30|day<0)   print(); 

25、0;  /提示输入时间不正确。  cin>>day; void progress() /sec+; cout<<"-"<<endl; cout<<"北京时间:"<<endl; cout<<"-"<<endl; cout<<"yy:"<<"mm:"<<"dd:"

26、<<endl; /输出年月日的标题。 /cout<<year<<":"<<month<<":"<<day<<endl; cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl; cout<<"_"<<endl;

27、60;cout<<"hh:"<<"mm:"<<"ss:"<<endl; /输出时分秒的标题。 /cout<<hour<<":"<<min<<":"<<sec<<endl; cout<<hour<<"时"<<min<<"分"<<sec<<&

28、quot;秒"<<endl; cout<<"_"<<endl; sleep(1000);      /注意理解为什么要把延时放在这儿。 sec+;        /延时以后秒钟加1. /为什么上面两行的sleep(1000);和sec+;要放在此处,而不放在下面。 /首先设置时间以后得显示当前设置时间,然后再延时一秒以后,秒钟 /才

29、加1,如果把sec+;放在执行显示过程的前面,则显示结果要比设置 /的时间晚一秒。注意此处的用意。 if(sec=60)         sec=0;      /当增加到60,清零。     min+;      /同时分加1。  /sleep(1000);    &

30、#160;/延时1秒。 if(min=60)            min=0;      /fen增加到60则清零。  hour+;      /hour加1。  if(hour=24)           hour=

31、0;      /hour增加到24则清零。  sec=0;      /sec清零。  min=0;      /min清零。  day+;      /hour增加到24则day加1。   if(day=31)    

32、0;       day=1;  month+;      /day增加到31(30号那一天完了以后)则month加1。   if(month=13)           month=1;  year+;      /month增加到13(12月那一

33、月完了以后)则year加1。  3.2 4x4矩阵式键盘按键3.2.1试验任务如图 4.14.2 所示,用 at89s51 的并行口 p1 接 4 × 4 矩阵键盘,以 p1.0 p1.3 作输入 线 ,以 p1.4 p1.7 作输出线;在数码管上显示每个按键的 “ 0 f ” 序号。对应的按键的序号排列如图 4.14.1 所示3.2.2 硬件电路原理图3.2.3 系统板上硬件连线( 1 把 “ 单片机系统 “ 区域中的 p3.0 p3.7 端口用 8 芯排线连接到 “ 4x4 行列式键盘 ”区域中的 c1 c4 r1 r4 端口上;( 2 把 “ 单片机系统 ”

34、 区域中的 p0.0/ad0 p0.7/ad7 端口用 8 芯排线连接到 “ 四路静 态数码显示模块 ” 区域中的任一个 a h 端口上;要求: p0.0/ad0 对应着 a , p0.1/ad 1对应着 b , , p0.7/ad7 对应着 h 。3.2.4 程序设计内容( 1 4 × 4 矩阵键盘识别处理( 2 每个按键有它的行值和列值 ,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和 cpu 通信。每个按键的状态同样需变成数字量 “ 0 ” 和 “ 1 ” ,开关的一端(列线)通过电阻接 v cc ,而接地是通过程序输出数字 “ 0 ” 实现的。键

35、盘处理程序的任务是:确定有无键按下,判断哪 一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。3.2.5 程序框图3.2.6 c 语言源程序#include <at89s52.h>unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char tem

36、p;unsigned char key;unsigned char i,j;void main(void)while(1)p3=0xff;p3_4=0;temp=p3;temp=temp & 0x0f;if (temp!=0x0f)for(i=50;i>0;i-)for(j=200;j>0;j-);temp=p3;temp=temp & 0x0f;if (temp!=0x0f)temp=p3;temp=temp & 0x0f;switch(temp)case 0x0e:key=7;break;case 0x0d:key=8;break;case 0x0b:k

37、ey=9;break;case 0x07:key=10;break;temp=p3;p1_0=p1_0;p0=tablekey;temp=temp & 0x0f;while(temp!=0x0f)temp=p3;temp=temp & 0x0fp3=0xff;p3_5=0;temp=p3;temp=temp & 0x0f;if (temp!=0x0f)for(i=50;i>0;i-)for(j=200;j>0;j-);temp=p3;temp=temp & 0x0f;if (temp!=0x0f)temp=p3;temp=temp & 0x0

38、f;switch(temp)case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=11;break;temp=p3;p1_0=p1_0;p0=tablekey;temp=temp & 0x0f;while(temp!=0x0f)temp=p3;temp=temp & 0x0f;p3=0xff;p3_6=0;temp=p3;temp=temp & 0x0f;if (temp!=0x0f)for(i=50;i>0;i-)for(j=200;j>0;j-);t

39、emp=p3;temp=temp & 0x0f;if (temp!=0x0f)temp=p3;temp=temp & 0x0f;switch(temp)case 0x0e:key=1;break;case 0x0d:key=2;break;case 0x0b:key=3;break;case 0x07:key=12;break;temp=p3;p1_0=p1_0;p0=tablekey;temp=temp & 0x0f;while(temp!=0x0f)temp=p3;temp=temp & 0x0f;p3=0xff;p3_7=0;temp=p3;temp=te

40、mp & 0x0f;if (temp!=0x0f)for(i=50;i>0;i-)for(j=200;j>0;j-);temp=p3;temp=temp & 0x0f;if (temp!=0x0f)temp=p3;temp=temp & 0x0f;switch(temp)case 0x0e:key=0;break;case 0x0d:key=13;break;case 0x0b:key=14;break;case 0x07:key=15;break;temp=p3;p1_0=p1_0;p0=tablekey;temp=temp & 0x0f;whil

41、e(temp!=0x0f)temp=p3;temp=temp & 0x0f;3.3 led点阵显示3.3.1 8x8 led点阵显示驱动技术原理图3.3.2 16×16点阵led显示汉字         proteus中点阵led最大为8×8点阵,不能用来显示汉字,而四片接在一起又因为引脚太近,无法接线。然而,是不是这样就意味着不能仿真“点阵汉字”了呢?笔者经过研究,将库里的8×8点阵led修改后,将四片8×8点阵led合并成一体,就成了16×16的点阵led了。&#

42、160;   该led的特点是:共阴、逐行扫描、低在前高位在后,上面的引脚为数据口,下面的引脚为行选引脚,低电平有效。    电路由at89c52、4片74hc138、4片8×8点阵组成。74hc138用于选择行,4片74hc138的有效顺序为:左上,右上,左下,右下。p0口作为数据口,4片74hc138列引脚都接到p0口。以下程序在16×16点阵led上依次显示“梅川酷子”四个字,分别用正向显示和反向显示,间隔两秒钟变换一次,电路图和效果图下图所示。 at89c52晶振频率为24mhz,用t0定时,改变变量flag值,从而

43、让程序确定显示哪个汉字和显示方式(正向or反向)。i nclude <atmelregx52.h>#define int8 unsigned char#define int16 unsigned int#define int32 unsigned long int8 flag;/*flag变量msb 7   6   5   4   3   2   1   0    lsb   

44、0; × ×          × bit51,bit4=0 时,负向显示bit50,bit4=1 时,负向显示bit2.074hc138的片选信号*/int8 n;int8 code table32=0x88,0x00,0x88,0x00,0x88,0x7f,0x48,0x00,0xdf,0x1f,0xa8,0x10,0x9c,0x12,0xac,0x14,0xea,0x7f,0x8a,0x12,0x89,0x14,0x88,0x10,0x88,0x7f,0x08,0x10

45、,0x08,0x14,0x08,0x08,/*"梅",0*/0x08,0x20,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x04,0x21,0x04,0x20,0x02,0x00,/*"川",1*/0x00,0x08,0xfe,0x08,0x28,0x0a,0x28,0x7e,0xfe,0x0a,0xaa,0x09,0xaa,0xff,0xea,0x00,0

46、x86,0x00,0x82,0x7e,0xfe,0x42,0x82,0x42,0x82,0x42,0xfe,0x7e,0x82,0x42,0x00,0x00,/*"酷",2*/0x00,0x00,0xf8,0x1f,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x41,0xfe,0xff,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x40,0x01,0x80,0x00/*"子",3*/;void delay(void);void m

47、ain(void)int8 i;int8 j;int8 index;flag=0x10;n=0;/定时器t0初始化tmod=0x01;th0=0xb1;tl0=0xe0;et0=1;ea=1;tr0=1;while(1)index=flag&0x03;if(flag&0x30)=0x10)   /正向显示        for(i=0;i<8;i+)      /显示上半屏     &

48、#160;      p0=tableindex2*i;            /左上            p2=i|0x08;                     

49、0;  delay();           p0=tableindex2*i+1;           /右上         p2=i|0x10;          delay();      &

50、#160;             for(i=8;i<16;i+)      /显示下半屏         p0=tableindex2*i;         /左下        p2=(i-8)|0x20;  

51、0;                   delay();                         p0=tableindex2*i+1;      &

52、#160;   /右下        p2=(i-8)|0x40;             delay();            if(flag&0x30)=0x20)   /反向显示     for(i=0;i<8;i+) 

53、;               p0=(tableindex2*i);          /左上          p2=i|0x08;                 

54、      delay();         p0=(tableindex2*i+1);           /右上         p2=i|0x10;       delay();      &#

55、160;             for(i=8;i<16;i+)               p0=(tableindex2*i);             /左下       &#

56、160; p2=(i-8)|0x20;                      delay();         p0=(tableindex2*i+1);         /右下        p

57、2=(i-8)|0x40;             delay();            void delay(void)int16 i;for(i=0;i<50;i+);void timer0() interrupt 1 using 3   tf0=0;th0=0xb1;tl0=0xe0;        /1

58、0ms中断一次if(n<200)    n+;else /2秒改变一次    switch(flag)           case 0x10:          flag=0x11;/下次显示正向“川”           break;     

59、60;         case 0x11:          flag=0x12;/下次显示正向“酷”           break;                   case 0x12:    

60、60;      flag=0x13;/下次显示正向“子”           break;                      case 0x13:           flag=0x20;/下次显示负向“川”&

61、#160;          break;                    case 0x20:            flag=0x21;/下次显示负向“梅”           

62、break;               case 0x21:           flag=0x22;/下次显示负向“酷”           break;                 

63、;  case 0x22:           flag=0x23;/下次显示负向“子”           break;                      case 0x23:       

64、    flag=0x10;/下次显示正向“梅”           break;                     n=0;3.4红外线发射电路的设计要将信号以红外线的方式发射出去,首先要把脉冲信号进行调制,而电路中的信号往往比较小,不能驱动负载。所以要通过放大电路将信号放大,通过红外线发光二极管发射出去。发射器件和放大

65、电路是发射中必不可少的。3.4.1.红外线传感器要将红外线发射出去,发射器件是必不可少的,则我们就要对红外线的发射器件进行选择,要能够发射比自然发射的红外线有更强的辐射强度。而要对信号接收器件,则要有较强的接收能力,它能将接收的红外线转换成足够强的电信号。我们把能发射红外线和接收红外线的光电器叫做红外线传感器。根据红外线的传感器原理不同,分为主动型和被动型红外线传感器,主动型传感器包括红外发射传感器和红外接收传感器。它们配套使用可组成一个完整的红外线发送与接收遥控系统。常用的有红外线发光二极管、红外线接收二极管、光电二极管、光电三极管等。红外线发光二极管包括砷化镓(gaas)发光二极管、砷铝化

66、镓(gaalas)发光二极管和激光二极管(ld)等。目前,在家用电器和用途较广的开关电路中普遍采用红外发光二极管(led)。图10为发光二极管的电路符号。 v 图10 发光二极管的电路符号红外led与可见光led的发光方式相同,只是发光的为近红外光,人眼看不到而已。gaas红外led的发光效率较高,一般可达10%20%,比可见光led大的多。gaalas红外led发光效率很高,比gaas高出50%80%,但价格很高。经过效率,成本方面的考虑,本系统选择砷化镓(gaas)发光二极管是比较合理的方案。3.4.2.放大电路的基本知识在系统设计中,信号发送的正常发送是必须要考虑的问题,由于在电子线路中输入信号往往很小,它所提供的能量不能直接推动负载工作,因此需要另外提供一个能源,由能量较小的输入信号控制这个能源,经三极管使之放大去推动负载工作。所谓放大,从表面上看是将信号由小变大,实质上,放大电路的过程是实现能量转换的过程。我们把这种小能量对大能量的控制作用称为放大作用。三极管只是一种能量控制元件,而不是能源。三极管有三个电极,三极管对小信号实现放大作用时在电路中可有三种不同的连接方式(或称三种组态),即共(发)射极接法、共基极接法、共集电极接法。3.4.3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论