摘要
本文介绍了一款基于51单片机的位移测量仪设计,旨在采集和处理测量电路的信号,显示测量位移,实现0-50mm范围内0.1mm的高精度测量。采用米朗科技KPM12型直线位移传感器,结合单片机的串口通信和A/D转换技术,通过标准接口与计算机进行通信,并将测量数据传输到计算机,实现了便捷、高效的位移测量系统。
内容
1. 引言
位移测量在工业和科学研究中具有广泛的应用,而单片机技术的发展使得设计高精度位移测量仪变得更为可行。本设计以51单片机为核心,通过A/D转换技术和串口通信,结合米朗科技KPM12直线位移传感器,实现了精准的位移测量。
2. 位移传感器模块
2.1 米朗科技KPM12型直线位移传感器介绍
米朗科技KPM12型直线位移传感器采用非线绕电位器式传感器技术,同时具备线性电位器的特性。其工作原理类似于滑动变阻器,通过检测滑动触点位置,实现对位移的测量。该传感器具有高灵敏度、稳定性和精确度,适用于高要求的位移测量场景。
3. 单片机与位移传感器的集成
3.1 51单片机的串口通信与A/D转换
本设计采用了51单片机,通过将计算机的波特率与单片机串口通信的波特率设置为相同的9600,实现了串口通信的稳定性。同时,通过A/D转换技术,将位移传感器模块采集到的模拟信号转换为数字信号,为后续数据处理提供了可靠的基础。
4. 通信模块与计算机连接
4.1 标准接口设计
设计了与计算机通信的标准接口,确保了设备的兼容性。通过该接口,单片机能够与计算机进行稳定、高效的数据传输。
4.2 数据传输与计算
在通信初始化完成后,通过指令控制单片机通过通信模块将测量数据传输到计算机。计算机串口调试助手可直观显示测量结果,实现了便捷的数据监测和分析。
结论
本文介绍了一种基于51单片机的位移测量仪设计,利用米朗科技KPM12型直线位移传感器实现了高精度的位移测量。通过串口通信和A/D转换技术,将测量数据传输到计算机,为工业控制和科学研究提供了一种可靠的位移测量解决方案。
关键词
位移传感器;51单片机;A/D转换;串口通信。
/*=============================================================*/
#include<reg52.h> //器件配置文件
#include <intrins.h>
#include "lcd.h"#define u8 unsigned char
#define u16 unsigned int
#define uchar unsigned char
#define uint unsigned intunsigned char voltage[] = {'0','0','0','.','0',0};unsigned int circuit,aa,bb,cc,dd,ac,setv1,setv2;float u,k;unsigned int j,ppm,cp; uint dat=0,shidu;void ConfigUART(unsigned int baud); //串行口配置函数
void ConfigTimer0(); //定时器0配置函数
void SendData(unsigned char ch); //字符发送函数
void SendString(char *s); //字符串发送函数
void AlarmJudge(void); //警报
void delayms(unsigned int ms);
void UartSend(); //串口数据发送函数//AD管脚sbit ADCS =P3^5;
sbit ADCLK =P3^2;
sbit ADDI =P3^3;
sbit ADDO =P3^4; sbit Buzzer_P = P2^1; // 蜂鸣器的管脚sbit KEY = P1^3; // “设置”按键的管脚
sbit KeyDown_P = P1^4; // 按键的管脚uint set_value = 30;
uint set_value_count = 0; //警报设置菜单
uint key_count=1;/***********************************
函数名: Adc0832
功能: 启动AD转换将值储存于 dat***********************************/
unsigned int Adc0832(unsigned char channel)
{uchar i=0;uchar j;uchar ndat=0;// uchar Vot=0;if(channel==0)channel=2; // 10if(channel==1)channel=3; // 11ADDI=1;_nop_();_nop_();ADCS=0; //拉低CS端 开始_nop_();_nop_();ADCLK=1; //拉高CLK端_nop_();_nop_();ADCLK=0; //拉低CLK端,形成下降沿1 第一个脉冲的下降沿,此前DIO必须是高电平_nop_();_nop_();ADCLK=1; //拉高CLK端ADDI=channel&0x1; //_nop_();_nop_();ADCLK=0; //拉低CLK端,形成下降沿2_nop_();_nop_();ADCLK=1;//拉高CLK端ADDI=(channel>>1)&0x1;_nop_();_nop_();ADCLK=0;//拉低CLK端,形成下降沿3ADDI=1;//控制命令结束 输入端DI失去作用,应置1_nop_();_nop_();dat=0;for(i=0;i<8;i++){dat|=ADDO;//收数据 (或)ADCLK=1;_nop_();_nop_();ADCLK=0;//形成一次时钟脉冲_nop_();_nop_();dat<<=1; //左移一位if(i==7)dat|=ADDO; //将输出数据DO通过或运算储存在dat最低位 }
.....
资料下载地址:1924 基于电位器式传感器位移测量仪的仿真设计 【毕设课设】
腾讯文档腾讯文档-在线文档https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8