基于STC89C52单片机的智能红外遥控系统毕业论文Word文档下载推荐.docx
- 文档编号:21870423
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:37
- 大小:1.11MB
基于STC89C52单片机的智能红外遥控系统毕业论文Word文档下载推荐.docx
《基于STC89C52单片机的智能红外遥控系统毕业论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机的智能红外遥控系统毕业论文Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
而DS18B20集成了模数转换功能,通过封装只留出一个数据接口,这样就可以直接输出数字量,从而单片机连接变得非常简单,提高了灵活度,降低了成本增加了应用价值。
另外HS0038红外一体接受头,更是能把红外信号直接转变为电压信号,省去了大量的外围电路,方便了程序编写。
第2章单片机介绍
2.1单片机简介及历史
单片机是一种超大规模集成电路芯片,把CPU,RAM存储器、ROM存储器、中断系统,多种I/O口、定时器/计时器等(还可以集成液晶控制器,SIP模块,IIC模块),集成到一块硅片电路板上构成的一个完善的微型计算机系统。
单片机最早出现于1971年,大致经历了SCM、MCU、SoC三个阶段,早期的单片机是8位或4位的。
其中影响最大的的是INTEL的8031,此后在此基础上上研制出了MCS51系列单片机系统。
由于其良好的性能和较高的性价比,该型号的单片机当今仍在广泛使用。
随着工程项目复杂度的提高和对控制精确度要求的提高,16位单片机随之出现,但是16位单片机和51系列相比性价比优势不大,所以应用不太广泛。
90年代以来随着消费电子产品需求增大,单片机技术乘势发展。
随着ARM系列的广泛使用,32位单片机快速替代了16位单片机引领高端产品。
2.2单片机应用发展趋势
当今世界的单片机领域可以说是百花齐放,世界各大芯片商先后都退出了自己的8位,16位,32位单片机。
有的于主流兼容有的则独树一帜,他们各具特色相互补充。
总体看来,单片机发展的趋势大致有以下方面:
1.高低搭配,分工明确。
高端单片机低端单片机并行于世,各自发挥各自的功能,特别是在工业控制方面,各有各自的侧重点,如有的侧重运算速度有的则强调丰富的外设接口。
2.低功耗。
最初基于MCS-51的8013功耗达到630mW,而现在流行的单片机都在100mW上下。
随着CMOS和CHMOS工艺的应用,单片机会变得速度更高功耗更低。
3.体积更小。
现代的电子产品大都要求体积小更便携。
这就要求在最求高速低功耗的同时还要注重减小体积,很多单片机厂商在封装上下起了功夫,其中表面封装(SMD)得到了普遍认可。
使得单片机迈向微型化。
第3章硬件设计
3.1STC89C52单片机介绍
3.1.1STC89C52引脚简介
STC89C52管脚如图1所示。
图1STC89C52管脚图
图2STC89C52实物图
1.电源引脚(2根)
GND(20脚):
接地线;
VCC(40脚):
接+5V电源
2.外接晶振引脚(2根)
XTAL0(18脚):
荡电路的输入端;
XTAL1(19脚):
振荡电路的输出端
3.控制引脚(4根)
ALE/PROG(30脚):
地址锁存允许信号;
EA/VPP(31脚):
片内外程序存储器选择,低电平读取外部存储器指令,高电平读片内程序指令;
RST/VPP(9脚):
复位引脚2个机器周期以上的高电平单片机复位;
PSEN(29脚):
外部存储器读选通信号
4.I/O口(32根)
该单片机有4组(P0、P1、P2、P3)I/O口,每组8位,共32根引脚。
P0口(39脚~32脚)是一个具有8位漏极开路的双向I/O口。
当输出口使用时,每位能驱动8路TTL电平。
P1口(1脚~8脚)是一个8位双向I/O口且具有上拉电阻。
可以用来驱动TLL逻辑电平。
P2口(21脚~28脚)是一个8位双向I/O口且具有内部上拉电阻,P2口可以用来驱动TTL逻辑电平。
P3口(10脚~17脚)是8位准双向I/O口,同时P3口具有复用功能,P3.0串行输入(RXD)、P3.1串行输出(TXD)、P3.2外部中断0(INT0)、P3.3外中断1(INT1)、P3.4定时/计数器0、P3.5定时/计数器1、P3.6外部数据存储器写选通、P3.7外部数据存储器读选通
3.1.2STC89C52RC主要功能特点
STC89C52是宏晶科技生产的一种高性价比低功耗的8位单片机,片内集成8KFlash程序存储器,STC89C52使用经典的MCS-51内核,程序上完全兼容。
但该单片机还是做了不少改进,缩短了指令执行周期,增加了定时器2,增加了看门狗功能。
在单芯片上,8位的CPU配合8K的程序存储器,使得STC89C52能满足基本的控制需要不需要再外扩存储器。
以下是STC89C52的基本特点:
1.相对于一个机器周期占12个机器周期的8051增加6时钟/机器周期功能。
2.工作电压宽度在5.5V-3.4V。
3.工作频率0–40MHz最高可达到48MHz
4.片内集成8K字节的程序存储器和512B的RAM
5.通用I/O口(32个),复位后为P1~P4是准双向口并带有弱上拉电阻,P0口是开漏输出,作为地址线使用时不用接上拉电阻而作为普通I/O口使用时必须使用上拉电阻。
6.具有3个16位定时器/计数器,定时器0可以拆分成两个8位使用
7.具有四个外部中断,可以设置成下降沿或低电平模式触发,掉电模式下外部中断的低电平模式可以唤醒系统。
8.具有一个通用同步串口,如有需要可以通过普通I/O口模拟串口进行扩展。
9.正常工作温度范围0-75℃,本项目为PDIP-40封装。
3.2DS18B20温度传感器介绍
3.2.1DS18B20引脚及特点
DS18B20的引脚及封装如图3所示:
图3DS18B20引脚及封装
DS18B20的引脚:
1.DQ输入/输出端口;
2.GND为电源地;
3.VDD+5V(寄生电源模式下该位接地即可)
DS18B20的主要特性:
DS18B20适应的温度范围为3.0~5.5v,可以直接与3v或5v单片机相连,如果使用寄生电源模式两个电源引脚可以直接接地,DS18B20与单片机连接只需要一根数据线,通过一定的时序操作可以实现读和写的双向通信,另外DS18B20还有一大特色,一条数据线可以连接多个传感器,在不增加I/O口的情况下实现网多点测温的需求,DS18B20设计精巧实用方便,整个功能电路集成在只有三个引脚的芯片内,形如三家管,其温度测量范围-55℃~+125℃,温度测量分辨率为9~12位出厂设置为12位精度,这样在默认设置下只要把测得并转化后的温度值乘以0.0625即可得实际温度值。
DS18B20与单片机的连接有两种方法,外部电源供电和寄生电源供电方式,在实际使用时只需要在数据线上接上4.7kΩ的上拉电阻即可。
本项目采用外部电源供电方式如图4所示:
图4DS18B20外部供电电路图
3.2.2DS18B20内部结构及寄存器介绍
DS18B20的内部结构如图5所示:
图5DS18B20内部结构图
DS18B20的四大数据组成部分:
1.光刻ROM中的64位序列号,用于实现一根总线上挂接多个DS18B20的目的。
2.温度灵敏原件,用于接收最初的温度模拟量
3.非易失性温度报警触发器(EEPROM)TH和TL。
可通过软件写入用户报警上下限值。
4.配置寄存器,通过R0,R1位设置,温度分辨率,出厂时R0=1,R1=1(即12位分辨率)具体设置方法如图6所示:
图6分辨率设置寄存器
DS18B20高速暂存存储器介绍:
高速RAM由9个字节组成如表1所示:
温度低位
温度高位
TH
TL
配置位
保留
CRC校验
表1DS18B20存储器映像
温度转换命令(44H)发出后在最长750ms的时间内,二进制温度值被存放于温度高位和温度低位(即高速RAM的第0和1字节)。
这时单片机按照低位在前,高位在后的方式读取两字节数据,就可以通过一定的转换规则得到十进制温度。
在转换时应注意,当S=0(正温度)时,根据分辨率位数直接转换为十进制;
当S=1(负温度)时,应先将补码取反加一,再进行十进制转换。
数据格式如图7所示:
图7温度值格式图
3.3DS1302时钟芯片介绍
3.3.1DS1302引脚及内部寄存器简介
DS1302是美国达拉斯公司推出的一款功耗低功能全的实时时钟芯片,RTC寄存器可提供年、月、日、时、分、秒、及周的时间值,另有31字节静态RAM,采用串行三线接口与单片机进行通信,突发方式下,可以一次性传送多个字节的数据或时钟信号。
工作电压宽度2.5~5V,用来保持片内数据时功率控制在1毫瓦内。
具有备用电源引脚,也可以通过寄存器设置备用电源充电方式。
DS1302的引脚如图8所示:
图8DS1302引脚图
其中X1、X2外接32.768KHz晶振;
GND接地;
CE信号使能端,数据传输时必须保持高电平,;
I/O数据输入/输出引脚;
SCLK串行时钟,Vcc1,Vcc2电源供电管脚。
DS1302关于时间和日期的寄存器如图9所示,共有12个,编程时注意读和写的地址有所不同。
图9DS1302RTC寄存器
DS1302控制字,如表2-2所示:
1
RAM/
A4
A3
A2
A1
A0
RD/WR
表2-2DS1302控制字
控制字从低位开始输出,在下一个时钟上升沿,写入数据,而在指令后的下一个时钟下降沿,读出数据。
3.3.2DS1302读写时序
DS1302读写时序如图10所示:
图10DS1302读写时序
CE高电平开启数据传送功能,数据传输时,数据在时钟上升沿输入,时钟下降沿输出。
3.4HS0038红外一体接收器介绍
3.4.1HS0038特点介绍
红外通信有红外发射装置和接收装置组成,本项目红外发射装置为载波38KHz的普通红外遥控器。
HS0038能够接受红外信号,并能对信号放大,检波,整形输出单片机可以识别的TTL电平。
单片机经过一定的算法把接收到的数据进行解码。
便可以得到遥控器键值。
应当注意HS0038输出的数据正好和发射端的电平反向。
3.4.2HS0038电路及应用
HS0038引脚及封装如图11所示:
图11HS0038实物图
从左到右,引脚依次是:
I/O数据端口、GND接地、VCC接+5V电源。
HS0038在单片机系统中常用的电路如图12所示
图12HS0038应用电路图
3.5LCD12864液晶介绍
3.5.1LCD12864性能概述及引脚功能
本项目采用带汉字字库的液晶模块,内置8192个汉字128个字符还具有64*256的GDRAM可以用来绘制图形。
液晶正常工作的点压宽度为3.3~5V,显示分辨率为128×
64。
应用中可以通过写入命令字来实现多种功能,如:
开关光标,反白显示,屏幕移位,睡眠模式等。
LCD12864具有20个引脚功能如表2所示:
表2LCD12864引脚功能图
该液晶20个引脚与单片机的连接如图13所示。
图13LCD12864与单片机连接图
由于本项目采用8位并行数据传输方式,故其第15引脚PSB直接接高电平即可。
3.5.2LCD12864读写时序及用户指令集
对LCD12864液晶的操作不外乎通过单片机不断进行读写,单片机写数据到液晶模块的时序图如图14所示
图14单片机写数据到液晶模块
单片机读取液晶模块数据的时序图如图15所示。
图15单片机读取液晶模块数据
由图2-15可知写数据或命令的操作大致如下,RS为高时写数据RS为低时写指令;
RW引脚为低电平进行写操作;
E引脚设置为高允许数据传送,接着便把所传数据放于数据引脚,E引脚再次拉低变完成了写操作。
LCD12864有两种指令集,基本指令集(RE=0)和扩充指令集(RE=1),写指令时RS=0,RW=0。
通过正确的时序写指令可以设置LCD12864的很多功能,如写入0x01指令即可清屏并把DDRAM地址计数器调整为“00H”,再如写入指令“0xc”即可打开显示关闭游标。
3.6其他硬件电路
3.6.1STC89C52RC最小系统的设计
本项目的单片机最小系统主要包括,STC89C52单片机,12M外接晶振,上电复位电路三个部分。
最小系统晶振电路如图16所示。
图16晶振电路
晶振两个引脚分别接与单片机的XTAL0和XTAL1引脚,电容值的选择范围为5~30PF,电容对晶振频率具有微调作用。
最小系统复位电路如图17所示。
图17上电复位电路
单片机复位电路的设计必须能满足上电震荡稳定后,保持至少两个周期的高电平。
本最小系统采用10uf的电容,经验证完全满足要求。
由于本电路上电即可以使单片机复位,又具有电源开关,故省去了按键复位开关。
另外,由于本项目采用单片机内部存储器存储程序,故单片机的第31引脚(EA)接高电平,用来访问片内程序。
3.6.2系统电源电路的设计
由于所选用单片机为5V单片机,为得到较稳定的5V电压,本项目采用了L7805cv三端集成稳压管。
输出电压4.75-5.25V,最大输入电压35v,压差3-5v时工作在理想状态。
输出电流可达1.5A(需做好散热),同时L7805cv内部含有限流保护电路和过热保护电路,防止负载过大温度过高烧坏器件。
本项目中L7805cv的应用电路如图18所示。
图18L7805cv稳压电路图
第4章软件开发平台及软件
4.1开发环境介绍及程序总体结构
4.1.1开发环境介绍
本项目采用KEILC51集成开发环境,它具有有好的界面,使用极为方便。
支持汇编语言,C语言及其混合编程,能够兼容绝大多数51系列单片机的程序设计和仿真。
4.1.2程序总体结构
由于整个系统涉及到的外设模块较多,故采用了多文件模块化编程,这样大大提高了程序的可读性,也为以后可能遇到的程序移植和升级提供了方便。
整个项目的程序结构如图19所示。
图19程序结构图
其中,main.c是项目主函数包含了各种外设的初始化及其功能函数的调用,DS18B20.c、IR.c、DS1302.c、LCD12864.c分别为温度传感器、红外接收器、时钟芯片和液晶的驱动程序,SET.c是用来定时、定温的功能模块。
4.2DS18B20温度程序模块
4.2.1DS18B20操作流程
DS18B20操作流程如图20所示。
初始化
复位、发跳过ROM命令
发温度转换命令、等待
发读取温度命令
调用显示函数
存储并转化数据
图20DS18B20操作流程
4.2.2DS18B20部分程序代码
/**********************************************************?
*DS18B20初始化
**********************************************************/
voidDS18B20_Init()
{
DS1820_RSET();
DS1820_WData(0xCC);
//跳过ROM
DS1820_WData(0x4E);
//写暂存器
}
/**********************************************************
*DS1820复位
bitDS1820_RSET()
uchari;
bitflag;
DS1820_bit=0;
for(i=230;
i>
0;
i--);
//延时480微秒,产生复位脉冲
DS1820_bit=1;
//释放总线
for(i=40;
//延时80微秒
flag=DS1820_bit;
//得到引脚电平
for(i=200;
//延时400微秒等待总线恢复
return(flag);
//如有需要测试flag==0,则器件正常
*写数据到DS1820
voidDS1820_WData(ucharwData)
uchari,j;
for(i=8;
i--)
{
DS1820_bit=0;
//低电平,产生写信号
for(j=2;
j>
j--);
//延时
DS1820_bit=wData&
0x01;
//发送1位
for(j=30;
//延时
DS1820_bit=1;
wData>
>
=1;
//右移一位写下一位
}
*从DS1820中读出数据
ucharDS1820_RData()
uchari,j,Tmep;
Tmep>
//低电平,产生读信号
for(j=2;
//延时4us
//释放总线,准备读数据
for(j=4;
if(DS1820_bit==1)
{Tmep|=0x80;
for(j=30;
//拉高数据线,准备读下一位
return(Tmep);
//返回数据
/*得到温度值
voidget_Wendu_data()
{
uchartemp_data_2;
uintTempDec;
//用来存放小数位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC89C52 单片机 智能 红外 遥控 系统 毕业论文