基于STC单片机的无线温控系统设计.doc

上传人:文库蛋蛋多 文档编号:4143693 上传时间:2023-04-07 格式:DOC 页数:19 大小:155.50KB
返回 下载 相关 举报
基于STC单片机的无线温控系统设计.doc_第1页
第1页 / 共19页
基于STC单片机的无线温控系统设计.doc_第2页
第2页 / 共19页
基于STC单片机的无线温控系统设计.doc_第3页
第3页 / 共19页
基于STC单片机的无线温控系统设计.doc_第4页
第4页 / 共19页
基于STC单片机的无线温控系统设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《基于STC单片机的无线温控系统设计.doc》由会员分享,可在线阅读,更多相关《基于STC单片机的无线温控系统设计.doc(19页珍藏版)》请在三一办公上搜索。

1、接口实验报告题 目: 基于STC单片机的无线温控系统设计 院 (系): 电子工程与自动化学院 专 业: 仪器仪表工程 学生姓名: 学 号: 指导老师: 职 称: 教 授 2015年7月22日一 实验目的1 本实验通过利用STC89C52单片机和nRF24L01模块来控制DS18B20实现的无线温度控制系统。控制通过简单的无线通信协议,实现可靠性与功耗平衡。该系统能实现对温度的测量,同时还可以进行温度的设定,是可以实现远程控制的无线温度控制系统。2 掌握用Altium Designer软件绘制原理图和PCB电路,以及电路板的制作过程(包括腐蚀,焊接,下载与调试),熟练Keil软件环境以及单片机C

2、代码的编写、调试和hex文件的生成并下载到单片机芯片内,掌握软硬联调技巧与方法。二 系统分析1、系统的概述本实验研究基于51单片机的无线温度控制系统设计,以STC89C52单片机为控制核心,以DS18B20为测试器件,以LCD1602和LCD12864为显示器件,以nRF24L01模块为无线传输模块,以直流电机和继电器为控制温度的器件。系统利用单总线数字温度传感器DS18B20采集温度数据,由单片机进行内部分析处理,由LCD1602和LCD12864显示数据(如果温度大于设定值则驱动直流电机模拟降温环境,如果温度低于设定温度则启动继电器),从机采集到的温度数据和控制状态可以通过nRF24L01

3、模块发送到主机显示出来,主机可以通过按键来控制温度情况。2、STC89C52单片机介绍2.1 芯片简介STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory)的低电压高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。2.2 主要

4、特性如下:1. 增强型8051单片机,6时钟机/器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。2. 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)。3. 工作频率范围:040MHz相当于普通8051的080MHz实际工作频率可达48MHz。4. 用户应用程序空间为8K字节。5. 片上集成512字节RAM。6. 通用I/O口32个,复位后为P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时需加上拉电阻。7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真

5、器,可通过串口(RxD/P30,TxD/P31)直接下载用户程序,数秒即可完成一片。8. 具有EEPROM功能。9. 具有看门狗功能。10. 共3个16位定时器/计数器即定时器T0/T1/T2。11. 外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒。12. 通用异步串行口(UART)还可用定时器软件实现多个UART。13. 工作温度范围:-40+85(工业级)/075(商业级)。14. PDIP封装。2.3 STC89C52RC单片机的工作模式:1.掉电模式:典型功耗0;f-)ds=0;/ 给脉冲信号dat=1;/将dat各数据位右移一位ds

6、=1;if(ds)/如果读到的数据是1dat|=0x80;/dat最高位写一,其它七位不变tmpdelay(4);return(dat);void writeonechar(unsigned char dat)/写一个字节uchar f;for(f=8;f0;f-)ds=0;ds=dat&0x01;/最低位保持不变,其它位均为0/利用与运算取出要写的二进制tmpdelay(5);ds=1;dat=1;/将dat各二进制数据位右移一位unsigned int readtemp()/读取温度unsigned char a=0;unsigned char b=0; unsigned int t=0;

7、float tt=0;Init_DS18B20();writeonechar(0xCC);/ 跳过读序号列号的操作跳过度rom区 shipin 39writeonechar(0x44);/ 启动温度转换Init_DS18B20();writeonechar(0xCC);/跳过读序号列号的操作writeonechar(0xBE); /读取温度寄存器 读取rama=readonechar();/连续读两个字节数据 /读低8位b=readonechar(); /读高8位t=b; /t=8;t=t|a; /两字节合成一个整型变量,此时t为十进制数 tt=t*0.0625;/得到真实十进制温度值,因为DS18B20可以精确到0.0625度,所以读回数据的最低位代表的是0.0625度t=tt*10+0.5;/放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。return(t);

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号