单片机实验报告SJ

上传人:M****1 文档编号:560343759 上传时间:2023-03-16 格式:DOC 页数:31 大小:236.50KB
返回 下载 相关 举报
单片机实验报告SJ_第1页
第1页 / 共31页
单片机实验报告SJ_第2页
第2页 / 共31页
单片机实验报告SJ_第3页
第3页 / 共31页
单片机实验报告SJ_第4页
第4页 / 共31页
单片机实验报告SJ_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机实验报告SJ》由会员分享,可在线阅读,更多相关《单片机实验报告SJ(31页珍藏版)》请在金锄头文库上搜索。

1、 2012211117班23号沈静单片机设计实验报告2014年小学期单片机设计实验报告题目:基于PIC16f877单片机的温度监测控制系统班 级: 2012211117班 班内序号: 23号 实验组号: 20组 学生姓名: XX 指导教师: 丘老师 张老师 期中检查教师评语指导教师签字: 年 月 日题目:基于PIC16F877A单片机的温度监测控制系统2012211117班 沈静实验摘要 在本次试验中,为满足温度控制的需要,我们以PIC16F877A单片机为核心,运用DS18B20采集环境温度的信息,并通过键盘人工输入预警温度值。若环境温度高于预警温度,则风扇驱动,开始降温,以此来达到对温度的

2、监测与控制。AbstractIn this experiment,PIC16F877A microcontroller is the center.We use DS18B20 temperature sensor to catch the information of the environmental temperature,at the same time,we input the threshold temperature by ourselves through the 4*4 matrix keyboard. If the environmental temperature is

3、higher than the threshold temperature,then the electric fan will be driven to reduce the temperature.In this way,we can successfully realize our purpose of monitoring and controlling the temperature.关键字单片机microcontroller 温度传感器temperature sensor 阙温threshold temperature 4*4矩阵键盘4*4 matrix keyboard 一.实验

4、论证与比较1.温度信息采集模块本实验运用温度传感器DS18B20来进行环境温度的采集。采集电路如下:Output4.7K 3 2 1 +5V 18B20 GND 104 2.4*4矩阵键盘模块本实验通过在矩阵键盘上输入设定的高温预警温度值,并将此预警值与DS18B20测得的环境温度进行比较,进而达到温度检测与控制目的。而键盘的模块图如下所示: VCC 行线 3行 RD7 1 2 3 4 2行 RD6 5 6 7 8 1行 RD5 9 0 A B 0行 RD4 C D E F 列线 RB3 RB2 RB1 RB0 3列 2列 1列 0列 4*4矩阵键盘: 1 2 3 4 5 6 7 8 9 0

5、A B C D E F RB3 RB2 RB1 RB0 RD7RD6 RD5 RD4二.系统总体设计进入下一时刻系统模块总体框图如下: 预警温度与环境温度比较显示屏上显示当前时刻环境温度数码管显示输入的预警温度值通过键盘输入二位数请输入设置温度环境温度更高风扇驱动,开始降温风扇未接通预警温度更高进入下一时刻温度控制模块框图该模块要不断通过温度传感器检测某时刻环境温度信息,并与输入的预警温度做出相应的比较和处理,因此,需要一个无限循环,在单片机上电后,持续执行,不断监测环境温度,若达到预警温度值,则继电器驱动风扇转动,以控制温度。框图如下:开始主程序初始化各个端口显示屏显示提示信息外部输入预警温

6、度数码管显示预警温度测量当前室温下一时刻显示屏上显示出当前室温下一时刻当前室温是否高于预警温度否风扇转动,开始降温是 3.温度传感器读写模块框图 开始 初始化DS18B20 发送ROM指令 发送RAM指令 进行数据读写工作周期1 结束工作周期2 复位skip ROM指令等待7501MS延时工作周期1 温度转换存储器操作指令读写RAM存储器操作指令skip ROM指令 复位工作周期2 三.硬件连接1.温度传感器与单片机连接(小四 宋体)温度传感器有三个端口,端口3连接5V电源,端口1接地,端口2是输入输出端口,连接到PIC16F877单片机。温度传感器采集外界温度,并且可以无限循环,持续执行,不

7、断采集当前某个时刻的环境温度。温度传感器可以通过输入输出端口与单片机进行协议以及数据通信,从而为之后的温度控制创造条件。 + +5V单片机 3 2 14.7KOutput DS18B20 104 GND2.LCD显示模块和单片机连接本实验中应用LCD12864模块实现输入预警温度的提示信息以及当前温度值的显示。 连接模块如下: 单 片 机RE0 RE1 RE2 LCD12 RS 8 RW6 EN43.继电器驱动风扇模块和单片机连接+5V风扇 +5VVCC K1GND G1L-IN B1 H-INGNDGND RA0 单 片 机4.数码管模块和单片机连接单片机RA2RA3 四.调试过程在本次试验

8、中我主要负责跑马灯和温度传感器模块。1. 跑马灯 首先,刚开始进入实验室的前两天,我基本上都在熟悉MPLAB软件以及汇编语言。老师一开始给我们一个初级任务:完成跑马灯功能的在线仿真与烧写。我认真研读老师推荐的各种相关资料,明白了MPLAB 如何使用,汇编语言的使用以及如何用汇编语言编写出能实现自己设想功能的代码。感觉自己学习的差不多了之后,我就开始进行跑马灯的设计,很快就成功完成了跑马灯的在线仿真与烧写。2.温度传感器准备编写温度传感器部分代码之前,我先阅读了温度传感器DS18B20的结构与连接要求。大致了解了之后,我又上网查了相关的资料,明白了DS18B20有三个接口,第一个接口接地,第二个

9、接口是输出,第三个接口连接电源。而当单片机开始调用DS18B20时,首先会初始化DS18B20,接着发送ROM指令,然后发送RAM指令,之后开始进行数据读写,而温度传感器进行数据读写时总会在一开始进行复位,之后可以跳过ROM指令,直接进行温度转换或是读写RAM指令。总的来说,温度传感器可以即时感知环境温度值,然后将这个值发给单片机供单片机进行后续操作。3.DS18B20的温度转换程序DS18B20测得的环境温度值是以二进制的形式存储的,因此我们需要一个温度转换程序来将其转换成十进制的摄氏温度值,其中整数部分为三位,小数部分为四位。温度传感器中的温度值以二进制的形式存储两个字节共八位。先将高位的

10、那个字节保留低三位即:二的六次方,二的五次方,二的四次方。接着将低位的那个字节进行高低半字节交换,之后组合得到七位整数部分。将这个七位整数部分先减一百,计算百位上是0还是1,再将减去100后的结果覆盖原数据。将这个结果再减10,若减去10后结果大于0,则用这个结果覆盖原数据。并将十位上的数值从0开始加1,此后不断循环此过程:结果持续减去10,十位上不断加1。直到最后一次再减10的时候结果小于0,则此时十位上加1的次数即为十位数值。因为最后一次减去10后结果为负,所以将此结果再加个10,所得的值即为个位上的数值。同理可转换得小数部分的数值4.硬件焊接与调试软件部分编写完成后我们进行了在线仿真与烧

11、写,也都成功了,所以我们小组就开始进行下一步:硬件焊接。然而在焊接过程中,我们遇到了不少“拦路虎”。我们首先焊接的是电源电路、单片机以及LCD液晶模块。在第一次焊接好后,液晶屏怎么也不显示。经过检查,我们发现忘了焊上晶振。在焊好晶振后液晶屏还是不显示,排除各种原因后,我们猜测是焊接技艺的问题,于是我们重新焊接了4遍,最终液晶屏上有了显示,我们从中深刻体会到虚焊的危害。在焊接数码管和键盘模块时,键盘上输入的数字不能在数码管上显示,经过检查,发现是因为矩阵键盘没加上拉电阻。加上上拉电阻后,数码管可以显示数字,可是若键盘输入,数码管不会将输入的数字显示出来。这时老师提醒我们,有些组的上拉电阻加了8个,而我们只加了4个,于是我们又加了4个上拉电阻,通电后发现数码管和键盘的功能都可以实现了。在这整个焊接过程中,我们又因为虚焊问题拆了板子,重新焊接了好几次相应的部分。总的来说,硬件焊过程中最重要的还是细心和耐心,我们要保证焊接所用的导线金属部分长度适当,并且焊接时锡不能焊多了,防止短路。总之,我们不能急躁,一步步慢慢得焊,争取每一部分都焊的完美,不要留有虚焊的可能,最后才能更快的成功。俗话说“心急吃不了热豆腐”,我们通过这次硬件焊接真的深刻领悟到这句话的深意,明白了一步一步脚踏实地的重要性。五.参考文献PIC单片机实用教程基础篇 (五号 宋体)李学海

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号