磁致伸缩位移传感器的软件设计是以PIC16f18313 单片机为系统核心,并且程序在Mplab X IDE开发环境下进行编写。根据磁致伸缩位移传感器需要实现的功能进行程序的模块化编写,避免各功能之间的干扰。主要可分为初始化模块、激励脉冲发生模块、PWM波形捕获模块以及波形比较输出模块。首先,对单片机的各个模块进行初始化以及设置振荡器,PIC16f18313 单片机具有内部振荡器也 可外设振荡器,本设计为了满足小巧便携的特性于是选用内部振荡器,内部振荡器包含高频和低频两 类,由于需产生相对较窄脉宽的脉冲,因此设置32 MHz的内部时钟源。PIC16f18313通过PWM 模块和定时器模块来产生激励脉冲,设置PR2 寄存器决定脉冲周期,TMR2寄存器的值决定脉冲脉宽,最终输出周期为1.6 µs和脉宽为12ns,从而可以计算出占空比。单片机输出该脉冲需配置 PPS 寄存 器将信号输送到指定引脚。当两路脉冲经过变形传输回 PIC16f18313时,芯片自带的模数转换器模块选取外部输入通道和内部输入通道将模拟电压转变成数字信号。最后运用 CCP 模块的比较模块将在模数转换器中得到的数字信号作为比较参考值,当定时器的值与参考值相等时输出对应波形,该输出波形为消除电路传播时间的PWM脉冲,此脉冲和扭转波在波导丝的传播时间成正比。软件流程图如下图所示。