当前位置:
文档之家› 基于STC89C52红外遥控系统设计(LCD显示)
基于STC89C52红外遥控系统设计(LCD显示)
#include <at89x52.h>
sbit rs = P2^2;
sbit rw = P2^1;
sbit e = P2^0;
bit irpro_ok,irok;
uchar irtime;//红外用全局变量
uchar IRcord[4];
uchar IRcore[4];
//处理后的红外码,分别是客户码,客户码,数据码,数据码反码
本论文所设计的主程序工作流程如图3.5所示。先各子程序初始化,利用红外遥控器发送指令,判断有按键按下,有则解码,且要判断其值是否正确,若正确则进行相应的显示,若不正确则退出。
图3.5主程序流程图
其程序见附录所示
4.设计小结
三周的课程设计完成了,对我来说这一个星期比平时上课还要累,在这三周的学习中,我学到了很多,也找到了自己身上的不足,感触良多,获益匪浅。
[4] 刘同法. 陈忠平等. 《单片机外围接口电路及工程实践》. 北京航空航天大学出版社. 2009.
[5] 谢维成. 杨加国. 《单片机原理与应用及C51程序设计》. 清华大学出版社. 2006.
附录
#include<CONFIG.H>
#include <stdio.h>
#include <intrins.h>
福建电力职业技术学院
课
课程名称:《智能仪器》
题目:基于STC89C52红外遥控系统设计(LCD显示)
专业班次:
姓名:
学号:
指导教师:
学期:2011-2012学年第2学期
日期:2012.2
1.1 本设计意义
红外线遥控是目前使用很广泛的一种通信和遥控技术。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。
uchar irdata[33]; //33个高低电平的时间数据
uchar table1[]="F1";
uchar table2[]="F2";
void delay(uint z) //延时函数,z的取值为这个函数的延时(ms)数
{
uint x,y;
for(x=z;x>0;x--)
for(y=11;y>0;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);
1.2 本设计任务和主要内容
本设计的设计任务是基于STC89C52红外遥控系统设计(LCD显示)。
本设计的主要内容是:
A.查阅相关资料:了解红外遥控器原理、LCD1602显示原理,能够运用C语言进行设计、编程、调试。
B.硬件设计:根据设计任务选合适的单片机和适合的红外遥控器;设计电路。
C.软件设计:根据各电路工作原理,画出软件流程图,根据流程图编写相应的C语言程序进行调试。
红外遥控属于光控,它自身的特点是控制方向性好,控制距离完全可以满足室内的空间距离,由于红外线的波长大,所以它对其他的电子设备的干扰小,这些条件都非常理想,因此对红外遥控的设计工作是很有意义的。当今世界,智能家居已经是一种潮流,在国外已经获得了应用,在我国还未大量推广。随着人们的经济实力的增强,不难预测,智能家居的产品将有很广阔的发展前景,在这个背景下,红外遥控应该也会得到大家的青睐。
LCD1602有16个引脚,各引脚与单片机及外部其他接口的连接如下图2.5所示。
图2.4LCD1602各引脚接线
2.4.2 LCD与单片机的接口电路
表2.11602LCD显示器模块引脚名称和功能表
引脚序号
名 称
功 能
1
Vss
电源地
2
VDD
电路电源5V±10%
3
Vo
液晶驱动电压
4
RS
寄存器选择1:数据寄存器 0:指令寄存器
C-----光标开关控制位。C=1,光标On;C=0,光标Off。
B-----光标闪烁开关控制位。B=1,光标闪烁On;B=0,光标闪烁Off。
S\C----显示器或光标移位选择。S\C =1: 显示器平移一个字符位。S\C=0:光标
RL----移位方向选择
DL---传输数据的有效位长度选择。DL=1,有效位为8位;DL=0,有效位为4位。
图2.3红外接收器图及接收电路
1脉冲信号输出接单片机的IO 口;
2 GND接系统的地线(0V);
3 Vcc接系统的电源正极(+5V);
2.4 显示电路设计
显示电路设计采用1602液晶显示屏,该液晶显示屏的显示功能强大,内置192种字符,可显示符号、数字,清晰可见,而且功率消耗小寿命长抗干扰能力强。所以在此设计中采用1602液晶显示屏。
图2.2STC89C52最小系统电路图
2.3 红外接收电路设计
红外遥控接收可采用较早的红外接收二极管加专用的红外处理电路的方法,此种方法电路复杂,现一般不使用。较好的接收方法是用一体化红外接收头。因此本设计采用一体化红外接收头。
接收电路使用一种集红外线接收、放大和整形于一体的一体化红外线接收器,不需要接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。接收器对外只有3个引脚:OUT、GND、Vcc与单片机接口非常方便,如图2-3所示
TIM0init();//初始化定时器
while(1)//主循环
{
D.调试:根据所编程的程序烧入单片机内,并进行相应的调试。
E.结论:根据各步骤写好毕业论文。
2.硬件设计
2.1 系统框图
本设计由红外遥控器、STC89C52单片机、红外传感器、LCD1602、等组成,而单片机需外接12MHZ的晶振电路、复位电路、ISP下载接口、红外接收传感器等。 其基本结构图如下图2.1所示:
课程设计结束了,但我们一起奋斗的精神和这份宝贵的精力将会成为人生道路上一道亮丽的风景线。
参考文献
[1] 张洪润.《单片机原理及应用》.清华大学出版社. 2008.
[2] 朱大奇.《单片机原理应用与实验》. 科学出版社. 2009.
[3] 彭为. 《单片机典型系统设计》. 电子工业出版社. 2006.
F.开启外部中断准备下一次接收。
其流程图如下图3.1所示:
图3.1外部中断解码流程图
3.2 LCD1602软件设计
3.2.1 LCD1602初始化
LCD使用之前必须对它进行初始化。初始化可通过复位完成,也可在复位后完成,初始化过程为清屏、功能设置、开/关显示设置、输入方式设置。
1602LCD的一般初始化(复位)过程:
2.4.1 LCD1602简介
LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有也有间隔起到了字符间距和行间距的作用,正因为如此所以它不能显示图形 。
I\D
S
显示开关控制
0
0
0
0
0
0
1
D
C
B
光标或字符移位
0
0
0
0
0
1
S\C
R\L
x
x
功能设定
0
0
0
0
1
DL
N
F
x
x
设置CGRAM地址
0
0
0
1
6位CGRAM地址码
设置显示地址
0
0
1
7位DDRAM地址码
读忙标志和地址计数器
0
1
BF
7位当前显示地址码
向CGRAM\DDRAM写数据
1
0
8位数据
从CGRAM\DDRAM读数据
A.初始化外部中断0(或1)为下降沿中断。
B.进入外部中断服务程序,关闭外部中断。
C.对引导码进行判断。如果引导码正确,装备接收下面一帧遥控数据,以查询方式判断是遥控数据0还是1。如果引导码错误,则退出外部中断。
D.先后依次接收地址码、地址反码、数据码、数据反码。
E.当接收到32位数据时,说明一帧数据接收完毕,比较数据码和数据反码。若数据码取反后与数据反码不同,则表示为无效数据,应丢弃本接收数据。
e=0;
}
void init()// 1602LCD的初始化
{
delay(150);//延时15ms
write_com(0x38); //写指令38H
delay(150);//延时15ms
write_com(0x38); //写指令38H
delay(150);//延时15ms
write_com(0x38); //写指令38H
write_com(0x38); //显示模式设置
write_com(0x08); //显示关闭
write_com(0x01); //显示清平
write_com(0x06); //显示光标移动设置
write_com(0x0c);//显示开及光标设置
}
void main(void)