rcreg amp 0x01 c语言,单片机课程设计-基于PIC单片机室内温度检测.doc

单片机课程设计-基于PIC单片机室内温度检测

引言

在工业控制中,PIC单片机应用广泛,它最大的特点是不搞单纯的功能堆积,而是从实际出发,重视产品的性能与价格比,靠发展多种型号来满足不同层次的应用要求。就实际而言,不同的应用对单片机功能和资源的需求也是不同的。比如,一个摩托车的点火器需要一个I/O较少、RAM及程序存储空间不大、可靠性较高的小型单片机,若采用40脚且功能强大的单片机,投资大不说,使用起来也不方便。PIC单片机型号16F628A,通过温度传感器18b20来检测温度,并通过MAX485芯片进行传输,在读取温度方面可以用过一个RS485和RS232电平转换器,传输到PC机上来查看。

1.问题分析及解决方案

1.1 题目要求

本课程设计为一个实际应用系统的温度检测控制部分,在温度检测系统中,对功能的要求如下:

1.需要通过温度传感器18b20把实时的温度采集出来。

2.当PIC单片机程序跑飞,或受到干扰是有软件自动复位的功能。

3.给PIC单片机一个地址,通过上位机来寻找此地址来查询温度,且可以修改地址。

4.当PIC单片机断电和复位后,修改后的地址保持不变。

5.需要通过458总线进行传输。

1.2 解决方案

针对题目所提供的要求,逐步提出以下解决方案:

1.温度传感器18b20的温度采集主要的采集原理中的问题就是时序的问题,它之中的读,写,复位时序弄清楚,再对相应的寄存器进行设置。18b20就可以开始采集温度。

2.对第二个要求,在PIC16F628A单片机刚好存在有看门狗功能,即当看门狗使能时,一段时间没有喂狗,单片机就会自动复位,刚好解决了第二个问题。

3.在第三个和第四个要求中,可以利用PIC16F628A中的EEPROM来解决,EEPROM的主要功能就是的那个单片机断电后里面存在的数据不会丢失,在改变此检测系统的地址时,只需要把地址写到单片机的EEPROM中即可。

4.要通过485传输,我们选择了集成芯片MAX485,它满足了485传输协议,利用差分传输,抗干扰能力强,通过对MAX485芯片的控制就达到了485传输的功能。

2. 单片机选型及硬件配置

2.1 单片机及扩展模块选择

在此室内温度检测上,我们在单片机的选择上进行了综合的考虑,最终选择了工业级单片机PIC16F628A。它的主要特点:性价比高,体积小。它内部的结构完全可以满足室内温度检测所需要的要求,例如它内部有看门狗功能,有128字节的EEPROM,还有内部晶振,低功耗功能,16个IO口,欠压复位功能。基于此,我们选择它作为此系统的核心控制单元。

在扩展模块中,我们需要温度传感和485传输。现在市场上用于温度检测主要就是18b20,它的优点也是性价比高,单线传输数据,可以节约单片机的IO口,所以我们也选择了18b20.MAX485是基于485协议的485传输接口芯片,采用半双工传输方式。性价比高,优质,采用它的主要原因。

2.2 I/O

在此系统中我们用到的IO口不多,引脚主要有指示灯一个,温度传感器一个,控制MAX485一个和外接晶振两个引脚,串行发送和接受两个引脚。具体引脚图如图1所示,IO地址分配如表1所示:

图1 PIC16F628A引脚图

表1 IO地址分配表

IO地址功能RA3指示灯RB418B20温度传输线RB1数据接收RB2数据发送RB5MAX485控制线2.3 系统硬件原理图

利用PROTEL绘制的系统控制电路原理图如图2所示。

图2 电路原理图

3.软件实现

3.1 控制流程图

为了清楚地表明动作的顺序和条件,绘制室PIC单片机检测温度主程序流程图如图3所示。

图3 主程序流程图

温度传感器18B20的工作流程图如图4所示。

图4 温度传感器18b20工作流程图

中断服务工作和EEPROM读写流程图如图5所示。

图5 中断服务程序及EEPROM写流程图

3.2 软件代码

利用C语言在MPLAB编译器里编写的程序如下所示:

//PIC单片机配置位0xde45

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define DQ RB4

#define DQ_HIGH() TRISB4=1;DQ=1 //为输入

#define DQ_LOW() TRISB4=0;DQ=0

uint temper;

uchar a1,a2,a3,a4,addr,flag=0,flag1=0;

void delay(uint x);

void delayus(uint x);

void init();

void reset();

void write_byte(uchar date);

ucha

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值