本文以MPX4250做为压力传感器,经过丈量输出端电压来核算实践的压力,运用ATMEGA128单片机作为体系的CPU,来读取电压,并进行转化。我们做什物不只需消耗金钱,还要消耗很多的时刻用来做板子,焊接元器件。本体系采用了Proteus仿真,只需要画画电路图就能够做出相似什物的作用。经过测验,只需选取适宜的参数,基本上能正确的读出压力值,至于参数选取不适宜,夺冠不会太大,关于广阔初学单片机,或是对压力传感器比较含糊的初学者来说具有很大的学习价值。
仿真图:
程序源代码:
#include
#include
#define F_CUP 7372800UL
#define uchar unsigned char
#define uint unsigned int
const uint segcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
uint dis_seg[]={0xF3,0,0,0};
//数码管显现函数
void display(void)
{
uint i=0;
for(i=0;i<4;i++)
{
PORTE=~_BV(i);
PORTB=dis_seg[i];
_delay_us(50);
}
}
int main(void)
{
int AD_Result,Pressure_Value;
DDRB=0xff;PORTB=0xff;
DDRE=0xff;PORTE=0xff;
DDRF=0x00;PORTF=0xff;
//AD相关设置
ADCSRA=0xE6;
_delay_ms(2);
ADMUX=0x07;//通道挑选
while(1)
{
AD_Result=ADCL+(ADCH<<8);
Pressure_Value=((AD_Result*5.0/1023.0-0.11)/5.0+0.04)/0.004;
dis_seg[1]=segcode[Pressure_Value/100];
dis_seg[2]=segcode[Pressure_Value0/10];
dis_seg[3]=segcode[Pressure_Value];
if(dis_seg[1]==0x3F)
{
dis_seg[1]=0x00;
if(dis_seg[2]==0x3F)
dis_seg[2]=0x00;
}
display();
}
return 0; }
阐明:软件用的是GCC,压力芯片材料能够在网上找到。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/263600.html