littlebot
Published on 2025-04-03 / 7 Visits
0

【源码】基于Microchip PIC18F16Q41的温度测量系统

项目简介

本项目是基于Microchip PIC18F16Q41微控制器开发的温度测量系统,借助ADCC对温度指示模块进行采样,从而实现对设备温度的测量,并通过UART输出温度数据。

项目的主要特性和功能

  1. 硬件模块初始化:对时钟系统、ADCC、UART1、I2C1、TMR2、FVR和PIN_MANAGER等硬件模块进行初始化操作。
  2. ADCC配置:将ADCC配置为周期性地从硬件触发源读取温度指示模块的数据。
  3. UART通信:通过UART将计算得到的温度数据发送出去,方便使用MPLAB Data Visualizer或其他终端工具查看。
  4. 温度计算:依据特定的增益和偏移量,将从ADCC读取的数据转换为实际的温度值。
  5. 低功耗运行:微控制器可进入休眠状态,由硬件触发唤醒后进行温度测量,实现低功耗运行。

安装使用步骤

安装开发工具

从Microchip官网下载并安装MPLAB X IDE(5.45.0或更新版本)、MPLAB XC8(2.31.0或更新版本)、MPLAB Code Configurator(MCC)以及MPLAB Data Visualizer Plugin或其他串行终端。

配置项目

  1. 在MPLAB X IDE中,点击工具栏的“New Project”,选择“Microchip Embedded; Standalone Project”,设备选择“PIC18F16Q41”,项目命名为“adcc - temp - sensor”(注意不能有空格)。
  2. 使用MCC进行配置:
    • 修改时钟控制,将“Clock Source”设为“High Frequency Internal Oscillator (HFINTOSC)”,“HF Internal Clock”设为“64_MHz”,“Clock Divider”设为“1”。
    • 设置配置位,禁用“External Oscillator Mode Selection”,将“Power - up Default Value for COSC”设为“HFINTOSC with HFFRQ = 64MHz and CDIV = 1:1”,确保“WDT Operating Mode”为“WDT Disabled; SWDTEN is ignored”。
  3. 添加ADCC、FVR、Memory、Timer、UART等外设,并进行相应修改:
    • TMR2:控制模式设为“Roll over pulse”,启动/重置选项设为“Software control”,时钟源设为“LFINTOSC”,预分频器设为“1:8”,后分频器设为“1:12”,时间周期设为“0.5”。
    • FVR:启用FVR,FVR_buffer 1 Gain (to ADC)设为“2x”,启用温度传感器,电压范围选择“Hi_Range”。
    • ADCC:操作模式设为“Burst Average”,结果对齐设为“right”,正参考设为“FVR”,自动转换触发设为“TMR2”,采集计数设为“8191”,时钟源设为“ADCRC”,启用误差计算和阈值中断,重复次数设为“8”,累加器右移设为“3”。
    • UART1:软件设置中启用“Redirect STDIO to UART”,硬件设置中勾选启用UART、发送和接收,波特率设为“19200”,其余保持默认。
    • Memory:自定义名称设为“FLASH”,启用“Add Data EE Routines”。
  4. 配置引脚,将“TX1”连接到引脚“RB7”,“RX1”连接到引脚“RB5”。

生成项目并修改代码

  1. 点击MCC中的生成按钮,创建相应的头文件和源文件。
  2. 打开生成的main.c文件,在空的while(1)循环中添加应用代码(可参考项目中的示例代码),并根据PIC18F16Q41 Datasheet理解温度计算方法。
  3. 编译并将代码烧录到PIC18F16Q41 Curiosity Nano硬件设备中。

查看温度数据

  1. 打开主机上的MPLAB Data Visualizer,选择与Curiosity Nano关联的COM端口。
  2. 确保选中“Terminal”选项卡,将数据可视化工具配置为以19200波特率、无校验位、1个停止位进行通信。
  3. 若一切配置正确,数据可视化工具将每隔半秒显示一次设备温度。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】