《智能仪器》课程设计-基于STC89C52红外遥控系统设计(LCD显示).doc

上传人:爱问知识人 文档编号:3259627 上传时间:2019-08-06 格式:DOC 页数:14 大小:346.53KB
返回 下载 相关 举报
《智能仪器》课程设计-基于STC89C52红外遥控系统设计(LCD显示).doc_第1页
第1页 / 共14页
《智能仪器》课程设计-基于STC89C52红外遥控系统设计(LCD显示).doc_第2页
第2页 / 共14页
《智能仪器》课程设计-基于STC89C52红外遥控系统设计(LCD显示).doc_第3页
第3页 / 共14页
《智能仪器》课程设计-基于STC89C52红外遥控系统设计(LCD显示).doc_第4页
第4页 / 共14页
《智能仪器》课程设计-基于STC89C52红外遥控系统设计(LCD显示).doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《《智能仪器》课程设计-基于STC89C52红外遥控系统设计(LCD显示).doc》由会员分享,可在线阅读,更多相关《《智能仪器》课程设计-基于STC89C52红外遥控系统设计(LCD显示).doc(14页珍藏版)》请在三一文库上搜索。

1、福建电力职业技术学院课 程 设 计课程名称: 智能仪器 题目: 基于STC89C52红外遥控系统设计(LCD显示)专业班次: 姓 名: 学 号: 指导教师: 学 期: 2011-2012学年第2学期 日 期: 2012.2 III目录 福建电力职业技术学院 课程设计-智能仪器 目录 目录11.引言21.1 本设计意义21.2 本设计任务和主要内容22硬件设计22.1 系统框图22.2 最小系统32.3 红外接收电路设计32.4 显示电路设计43. 软件设计53.1 红外遥控软件设计53.2 LCD1602软件设计63.3 主程序设计84.设计小结9参考文献9附录:课程设计程序清单91.引言1.

2、1 本设计意义红外线遥控是目前使用很广泛的一种通信和遥控技术。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 红外遥控属于光控,它自身的特点是控制方向性好,控制距离完全可以满足室内的空间距离,由于红外线的波长大,所以它对其他的电子设备的干扰小,这些条件都非常理想,因此对红外遥控的设计工作是很有意义的。当今世界,智能家居已经是一种潮流,在国外已经获得了应用,在我国还未大量推广。随着

3、人们的经济实力的增强,不难预测,智能家居的产品将有很广阔的发展前景,在这个背景下,红外遥控应该也会得到大家的青睐。1.2 本设计任务和主要内容本设计的设计任务是基于STC89C52红外遥控系统设计(LCD显示)。本设计的主要内容是:A.查阅相关资料:了解红外遥控器原理、LCD1602显示原理,能够运用C语言进行设计、编程、调试。B.硬件设计:根据设计任务选合适的单片机和适合的红外遥控器;设计电路。C.软件设计:根据各电路工作原理,画出软件流程图,根据流程图编写相应的C语言程序进行调试。D.调试:根据所编程的程序烧入单片机内,并进行相应的调试。E.结论:根据各步骤写好毕业论文。2硬件设计2.1

4、系统框图 本设计由红外遥控器、STC89C52单片机、红外传感器、LCD1602、等组成,而单片机需外接12MHZ的晶振电路、复位电路、ISP下载接口、红外接收传感器等。 其基本结构图如下图2.1所示: 该设计是由红外遥控器发送信号,通过一体化接收头接收,经过单片机处理并在LCD1602显示器显示出来。 图2.1 系统框图2.2 最小系统单片机最小系统是指能进行正常工作的最简单电路。如图2-2所示。单片机的最小系统包括电源,晶振电路,复位电路。晶振电路:单片机必须提供脉冲信号才能正常工作。复位电路:当这个高电平持续两个机器周期以上就将复位。 图2.2 STC89C52最小系统电路图 2.3 红

5、外接收电路设计红外遥控接收可采用较早的红外接收二极管加专用的红外处理电路的方法,此种方法电路复杂,现一般不使用。较好的接收方法是用一体化红外接收头。因此本设计采用一体化红外接收头。接收电路使用一种集红外线接收、放大和整形于一体的一体化红外线接收器,不需要接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。接收器对外只有3个引脚:OUT、GND、Vcc与单片机接口非常方便,如图2-3所示图2.3 红外接收器图及接收电路1脉冲信号输出接单片机的IO 口;2 GND接系统的地线(0V);3 Vcc接系统的电源正极

6、(+5V);2.4 显示电路设计显示电路设计采用1602液晶显示屏,该液晶显示屏的显示功能强大,内置192种字符,可显示符号、数字,清晰可见,而且功率消耗小寿命长抗干扰能力强。所以在此设计中采用1602液晶显示屏。2.4.1 LCD1602简介LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有也有间隔起到了字符间距和行间距的作用,正因为如此所以它不能显示图形 。LCD1602有16个引脚,各引脚与单片机及外部其他接口的连接如下图2.5

7、所示。图2.4 LCD1602各引脚接线 2.4.2 LCD与单片机的接口电路表2.1 1602LCD显示器模块引脚名称和功能表引脚序号名 称功 能1Vss电源地2VDD电路电源 5V10%3Vo液晶驱动电压4RS寄存器选择1:数据寄存器 0:指令寄存器5R/W读/写信号 1:读 0:写6EN/E显示器模块使能信号输入端,高电平有效714DB0-DB78位双向数据总线15,16BL1和BL2背光板工作电压的输入端3. 软件设计 3.1 红外遥控软件设计红外解码程序主要工作为等待红外线信号出现,并跳过引导信号,开始收集连续32位的表面数据,存入内存的连续空间。位信号解码的原则是:如果从0.56m

8、s低电平过后,开始延时0.56ms以后,若读到的电平为低,说明改为为“0”,反之则为“1”。为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否如果则该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠。解码的方式有两种:一是采用外部中断方式,二是采用查询方式。采用外部中断方式节省了CPU时间,但进入外部中断以后还是采用查询方式解码。因此这里采用外部中断方式。其解码过程如下:A.初始化外部中断0(或1)为下降沿中断。B.进入外部中断服务程序,关闭外部中断。C.对引导码进行判断。如果引导码正确,装备接收下面一帧遥控数据,以查询方

9、式判断是遥控数据0还是1。如果引导码错误,则退出外部中断。D.先后依次接收地址码、地址反码、数据码、数据反码。E.当接收到32位数据时,说明一帧数据接收完毕,比较数据码和数据反码。若数据码取反后与数据反码不同,则表示为无效数据,应丢弃本接收数据。F.开启外部中断准备下一次接收。其流程图如下图3.1所示: 图3.1 外部中断解码流程图3.2 LCD1602软件设计3.2.1 LCD1602初始化LCD使用之前必须对它进行初始化。初始化可通过复位完成,也可在复位后完成,初始化过程为清屏、功能设置、开/关显示设置、输入方式设置。1602LCD的一般初始化(复位)过程:延时15mS;写指令38H(不检

10、测忙信号);延时5mS;写指令38H(不检测忙信号);延时5mS;写指令38H(不检测忙信号);以后每次写指令、读/写数据操作均需要检测忙信号;写指令38H:显示模式设置;写指令08H:显示关闭;写指令01H:显示清屏;写指令06H:显示光标移动设置;写指令0CH:显示开及光标设置;具体程序如附录中的(void init())。3.2.2 LCD读写操作时序图及指令说明如下个图及表所示图3.2读操作时序图3.3写操作时序表3.1 1602LCD指令说明指令功能RSRWD7D6D5D4D3D2D1D0清屏0000000001归位000000001x输入方式设置00000001IDS显示开关控制0

11、000001DCB光标或字符移位000001SCRLxx功能设定00001DLNFxx设置CGRAM地址00016位CGRAM地址码设置显示地址0017位DDRAM地址码读忙标志和地址计数器01BF7位当前显示地址码向CGRAMDDRAM写数据108位数据从CGRAMDDRAM读数据118位数据注:x-任意二进制数据。ID-显示地址计数器模式选择。ID=1,选择加1模式;ID=0 选择减1模式;S-S=1;数据读、写操作后,AC自动增一;S=1;数据读、写操作后,AC自动增一。D-显示器开关控制位。D=1,显示器On;D=0;显示器Off。C-光标开关控制位。C=1,光标On;C=0,光标Of

12、f。B-光标闪烁开关控制位。B=1,光标闪烁On;B=0,光标闪烁Off。SC-显示器或光标移位选择。SC =1: 显示器平移一个字符位。SC=0:光标RL-移位方向选择DL-传输数据的有效位长度选择。DL=1,有效位为8位;DL=0,有效位为4位。N-显示器行数选择位。N=1,两行显示;N=0,一行显示。F-字符显示块的点阵选择。F=1,5*10点阵字符;F=0,5*7点阵字符。BF-忙标志位。BF=1,忙;BF=0,空闲状态。CGRAM-字符发生器RAM。DDRAM-显示数据RAM。 3.2.3 LCD流程图 3.4 LCD显示流程图3.3 主程序设计本论文所设计的主程序工作流程如图3.5

13、所示。先各子程序初始化,利用红外遥控器发送指令,判断有按键按下,有则解码,且要判断其值是否正确,若正确则进行相应的显示,若不正确则退出。 图3.5主程序流程图其程序见附录所示4.设计小结 三周的课程设计完成了,对我来说这一个星期比平时上课还要累,在这三周的学习中,我学到了很多,也找到了自己身上的不足,感触良多,获益匪浅。这次课程设计对我们来说都是一个挑战,理论知识又不是很牢固,一开始都不知道从何下手,但是在大家的共同努力下,我们还是顺利的完成了任务。在这次活动中将理论与实践相结合,使得我们对于单片机的实际应用有了更加深刻的认识和了解。通过实践,增强了下阶段的学习信心,为毕业设计奠定了坚实基础。

14、在本次毕业设计中,虽然学到了很多课外知识而且能巩固专业知识,但是在很多方面还需要进一步的改进和提高。在这样的一个过程中我们学到了很多,学会换位思考,学会怎样去和别人沟通,理解别人所做的事,别人也会宽容的对待我们,从而在无形之中加强可自己的人际交往能力,也让我们彼此更加团结。课程设计结束了,但我们一起奋斗的精神和这份宝贵的精力将会成为人生道路上一道亮丽的风景线。 参考文献1 张洪润.单片机原理及应用.清华大学出版社. 2008.2 朱大奇.单片机原理应用与实验. 科学出版社. 2009. 3 彭为. 单片机典型系统设计. 电子工业出版社. 2006.4 刘同法. 陈忠平等. 单片机外围接口电路及

15、工程实践. 北京航空航天大学出版社. 2009.5 谢维成. 杨加国. 单片机原理与应用及C51程序设计. 清华大学出版社. 2006. 附录:课程设计程序清单 #include#include #include #include sbit rs = P22;sbit rw = P21;sbit e = P20;bit irpro_ok,irok;uchar irtime;/红外用全局变量uchar IRcord4;uchar IRcore4; /处理后的红外码,分别是 客户码,客户码,数据码,数据码反码uchar irdata33; /33个高低电平的时间数据uchar table1=F1;

16、uchar table2=F2;void delay(uint z) /延时函数,z的取值为这个函数的延时(ms)数 uint x,y;for(x=z;x0;x-)for(y=11;y0;y-);void write_com(uchar com) /写指令e=0;rs=0;rw=0;P0=com;delay(5);e=1;delay(10);e=0;void write_data(uchar dat)/写数据e=0;rs=1;rw=0;P0=dat;delay(5);e=1;delay(10);e=0;void init() / 1602LCD的初始化delay(150); / 延时15msw

17、rite_com(0x38); / 写指令38Hdelay(150);/ 延时15mswrite_com(0x38); / 写指令38Hdelay(150);/ 延时15mswrite_com(0x38); / 写指令38Hwrite_com(0x38); / 显示模式设置write_com(0x08); / 显示关闭 write_com(0x01); / 显示清平 write_com(0x06); / 显示光标移动设置write_com(0x0c);/ 显示开及光标设置 void main(void) EX0init(); /初始化外部中断 TIM0init();/初始化定时器 while(

18、1)/主循环 if(irok) /如果接收好了进行红外处理 Ircordpro(); irok=0; if(irpro_ok) /如果处理好后进行工作处理,如按对应的按键后显示对应的数字等 Ir_work();irpro_ok=0; /*/* 定时器0中断服务函数 */*/void tim0_isr (void) interrupt 1 using 1/定时器0中断服务函数 irtime+; /用于计数2个下降沿之间的时间/*/* 外部中断0函数 */*/void ex0_isr (void) interrupt 2 using 2/外部中断1服务函数 static uchar i; /接收红

19、外信号处理 static bit startflag; /是否开始处理标志位 if(startflag) if(irtime=33)/引导码 TC9012的头码,9ms+4.5ms i=0; irdatai=irtime;/存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i+; if(i=33) irok=1; i=0; elseirtime=0;startflag=1;/*/* 定时器0初始化 */*/void TIM0init(void)/定时器0初始化 TMOD=0x02;/定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; /重载值 TL0=0x0

20、0; /初始化值 ET0=1; /开中断 TR0=1; /*/* 外部中断初始化 */*/void EX0init(void) IT1 = 1; /指定外部中断0下降沿触发,INT0 (P3.2) EX1 = 1; /使能外部中断 EA = 1; /开总中断/*/* 红外键值处理 */*/ void Ir_work(void) /红外键值散转程序 uchar jin; init(); switch(IRcord3) case 0x2b:write_com(0xce);for(jin=0;jin2;jin+)write_data(table1jin);break; /显示结果1case 0x07

21、:write_com(0xce);for(jin=0;jin2;jin+)write_data(table2jin);break; /显示结果2case 0x47:write_com(0xcf);write_data(1);break; /显示结果3 case 0x4b:write_com(0xcf);write_data(2);break; /显示结果4 case 0x4f:write_com(0xcf);write_data(3);break; /显示结果5 case 0x53:write_com(0xcf);write_data(4);break; /显示结果6 case 0x57:wr

22、ite_com(0xcf);write_data(5);break; /显示结果7case 0x5b:write_com(0xcf);write_data(6);break; /显示结果8 case 0x5f:write_com(0xcf);write_data(7);break; /显示结果9case 0x63:write_com(0xcf);write_data(8);break; /显示结果10case 0x67:write_com(0xcf);write_data(9);break; /显示结果11 case 0x43:write_com(0xcf);write_data(0);bre

23、ak; /显示结果12 case 0x6b:write_com(0xcf);write_data(A);break; /显示结果13 case 0x6f:write_com(0xcf);write_data(B);break; /显示结果14 case 0x3b:write_com(0xcf);write_data(C);break; /显示结果15case 0x0b:write_com(0xcf);write_data(D);break; /显示结果16case 0x0f:write_com(0xcf);write_data(E);break; /显示结果17case 0x73:write_

24、com(0xcf);write_data(F);break; /显示结果18 default: break; /*/* 红外解码函数处理 */*/void Ircordpro(void)/红外码值处理函数 unsigned char i, j, k; unsigned char cord,value; k=1; for(i=0;i4;i+) /处理4个字节 for(j=1;j7)/大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差 value=value|0x80; else value=value; if(j1; k+; IRcordi=value; value=0; irpro_ok=1;/处理完毕标志位置1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1