基本信息
文件名称:Microchip 系列:PIC16 系列_18.项目案例分析.docx
文件大小:28.95 KB
总页数:31 页
更新时间:2025-06-23
总字数:约1.56万字
文档摘要

PAGE1

PAGE1

18.项目案例分析

在这一节中,我们将通过几个具体的项目案例,深入分析如何使用PIC16系列单片机进行实际开发。每个项目案例将涵盖项目背景、硬件设计、软件开发和调试等多个方面,帮助读者全面理解PIC16单片机在不同应用场景中的使用方法。

18.1项目一:温度监测系统

18.1.1项目背景

温度监测系统在工业、医疗、农业等多个领域都有广泛的应用。通过监测环境温度,可以实现对设备的保护、对生产过程的控制以及对环境的优化。本项目使用PIC16系列单片机,结合温度传感器和LCD显示屏,实现一个简单的温度监测系统。

18.1.2硬件设计

18.1.2.1温度传感器

我们将使用DS18B20作为温度传感器。DS18B20是一款数字温度传感器,具有高精度和低功耗的特点。它通过单总线与PIC16单片机通信,可以提供-55°C到+125°C范围内的温度测量。

18.1.2.2LCD显示屏

我们将使用16x2字符型LCD显示屏来显示温度数据。16x2LCD显示屏通过并行接口与PIC16单片机通信,可以显示两行各16个字符。

18.1.2.3单片机选择

我们将使用PIC16F877A单片机,因为它具有丰富的I/O端口和内置的ADC功能,适合本项目的需求。

18.1.3软件开发

18.1.3.1DS18B20驱动程序

首先,我们需要编写DS18B20的驱动程序,实现温度数据的读取。以下是一个简单的DS18B20驱动程序示例:

#includexc.h

#includehtc.h

#includestdio.h

#includedelay.h

#define_XTAL_4000000//假设使用4MHz晶振

#defineDS18B20_PINPORTBbits.RB0

#defineDS18B20_DIRTRISBbits.TRISB0

voidDS18B20_Init(void){

DS18B20_DIR=1;//设为输入

DS18B20_PIN=1;//上拉电阻

}

voidDS18B20_Reset(void){

DS18B20_DIR=0;//设为输出

DS18B20_PIN=0;//拉低

delay_us(480);//延时480us

DS18B20_PIN=1;//拉高

delay_us(70);//延时70us

DS18B20_DIR=1;//设为输入

delay_us(410);//延时410us

}

unsignedcharDS18B20_ReadBit(void){

unsignedcharbit=0;

DS18B20_DIR=0;//设为输出

DS18B20_PIN=0;//拉低

delay_us(15);//延时15us

DS18B20_PIN=1;//拉高

delay_us(5);//延时5us

DS18B20_DIR=1;//设为输入

delay_us(60);//延时60us

bit=DS18B20_PIN;//读取数据

delay_us(390);//延时390us

returnbit;

}

unsignedcharDS18B20_ReadByte(void){

unsignedchari,j,data=0;

for(i=0;i8;i++){

data=1;

if(DS18B20_ReadBit()){

data|=0x80;

}

}

returndata;

}

voidDS18B20_WriteByte(unsignedchardat){

unsignedchari;

for(i=0;i8;i++){

DS18B20_DIR=0;//设为输出

DS18B20_PIN=0;//拉低

delay_us(15);//延时15us

DS18B20_PIN