项目简介
本项目是基于Microchip PIC18F16Q41微控制器开发的温度测量系统,借助ADCC对温度指示模块进行采样,从而实现对设备温度的测量,并通过UART输出温度数据。
项目的主要特性和功能
- 硬件模块初始化:对时钟系统、ADCC、UART1、I2C1、TMR2、FVR和PIN_MANAGER等硬件模块进行初始化操作。
- ADCC配置:将ADCC配置为周期性地从硬件触发源读取温度指示模块的数据。
- UART通信:通过UART将计算得到的温度数据发送出去,方便使用MPLAB Data Visualizer或其他终端工具查看。
- 温度计算:依据特定的增益和偏移量,将从ADCC读取的数据转换为实际的温度值。
- 低功耗运行:微控制器可进入休眠状态,由硬件触发唤醒后进行温度测量,实现低功耗运行。
安装使用步骤
安装开发工具
从Microchip官网下载并安装MPLAB X IDE(5.45.0或更新版本)、MPLAB XC8(2.31.0或更新版本)、MPLAB Code Configurator(MCC)以及MPLAB Data Visualizer Plugin或其他串行终端。
配置项目
- 在MPLAB X IDE中,点击工具栏的“New Project”,选择“Microchip Embedded; Standalone Project”,设备选择“PIC18F16Q41”,项目命名为“adcc - temp - sensor”(注意不能有空格)。
- 使用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”。
- 添加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”。
- 配置引脚,将“TX1”连接到引脚“RB7”,“RX1”连接到引脚“RB5”。
生成项目并修改代码
- 点击MCC中的生成按钮,创建相应的头文件和源文件。
- 打开生成的
main.c
文件,在空的while(1)
循环中添加应用代码(可参考项目中的示例代码),并根据PIC18F16Q41 Datasheet理解温度计算方法。 - 编译并将代码烧录到PIC18F16Q41 Curiosity Nano硬件设备中。
查看温度数据
- 打开主机上的MPLAB Data Visualizer,选择与Curiosity Nano关联的COM端口。
- 确保选中“Terminal”选项卡,将数据可视化工具配置为以19200波特率、无校验位、1个停止位进行通信。
- 若一切配置正确,数据可视化工具将每隔半秒显示一次设备温度。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】