最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于MCS51单片机的压力测量 系统的设计与实现

来源:动视网 责编:小OO 时间:2025-10-07 02:02:24
文档

基于MCS51单片机的压力测量 系统的设计与实现

基于MCS51单片机的压力测量系统的设计与实现班级;学号:姓名:指导老师:摘要以STC-51单片机为核心,应用变阻式应变片测量压力并通过ADC0809的转换,经过单片机处理后在数码管模块显示的智能压力测量系统。是变阻式应变片和51单片机相结合的一个很典型的应用,本系统包括信号采集及转换电路、单片机最小系统、显示模块三个最基本的核心模块。外围扩展了键盘模块、蜂鸣器报警模块,用以调节系统的测量和显示范围。经试验证明,系统能正常工作且误差在允许误差范围内,符合所有技术指标。1.方案设计通过应变片,将
推荐度:
导读基于MCS51单片机的压力测量系统的设计与实现班级;学号:姓名:指导老师:摘要以STC-51单片机为核心,应用变阻式应变片测量压力并通过ADC0809的转换,经过单片机处理后在数码管模块显示的智能压力测量系统。是变阻式应变片和51单片机相结合的一个很典型的应用,本系统包括信号采集及转换电路、单片机最小系统、显示模块三个最基本的核心模块。外围扩展了键盘模块、蜂鸣器报警模块,用以调节系统的测量和显示范围。经试验证明,系统能正常工作且误差在允许误差范围内,符合所有技术指标。1.方案设计通过应变片,将
基于MCS51单片机的压力测量               系统的设计与实现

班级;   

学号: 

姓名:    

指导老师: 

                    摘要

以STC-51单片机为核心,应用变阻式应变片测量压力并通过ADC0809的转换,经过单片机处理后在数码管模块显示的智能压力测量系统。是变阻式应变片和51单片机相结合的一个很典型的应用,本系统包括信号采集及转换电路、单片机最小系统、显示模块三个最基本的核心模块。外围扩展了键盘模块、蜂鸣器报警模块,用以调节系统的测量和显示范围。

经试验证明,系统能正常工作且误差在允许误差范围内,符合所有技术指标。

    

            

1.方案设计

通过应变片,将机械形变变为电压信号,再通过三级集成放大电路把信号放大,之后,ADC0809把模拟信号转化为数字信号,输入到单片机中,通过按键的控制,将电压的信号输出以数码管的形式显示出来,如果电压信号超出报警上线,蜂鸣器就发出报警信号。

2.硬件系统设计与分析

(1)应变片与信号放大器的电路分析

应变片运用的是电阻式应变片,原理是吸附在基体材料上的应变电阻随机械性形变而产生电阻变化的现象,即它可以将被测件上的应变变化转化成一种电信号。

桥式电路的输入信号是0~10v,经过电路后,输出的电压经过集成运放电路放大后,输入到A/D的In0口,完成信号的输入与传

(2)AD转换分析

A/D转换器是将模拟信号转化为数字信号,start与ale信号接到51到单片机的的p2.6接口,完成信号的输出,而clock接口接到74ls74d的2q接口, D0~D7接到单片机的p1.0~p1.7接口.

(3)单片机最小系统分析

单片机的RST是复位接口,刚开始时是低电平,闭合s1开关,接通电源,获得高电平,完成复位。Xtal1与xtal2是晶振电路,为单片机提供工作频率,为12m。P0.0~p0.7接到74hc573的段锁存器,完成数码管的段选择,p2.4~p2,7接到位锁存器,完成数码管的位选择。

(4)按键分析

按键选择共阴极,而且接到单片机的p3.4`p3.7,完成按键的控制。

(5)数码管分析

74hc573的段锁存器的a~g引脚连接到数码管的a~g引脚,完成数码管的段选择,来确定哪个数字亮;而位锁存器连接到w1~w4,完成位选择,选择哪个数码管亮,最终完成数码管的显示。

3.软件系统设计

#include

unsigned char code table[]={

0x3f,0x06,0x5b,0x4f,     //不带小数点的编码

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0xbf,0x86,      //带小数点的编码

0xdb,0xcf,0xe6,0xed,

0xfd,0x87,0xff,0xef}; 

sbit DL=P2^4;

sbit WL=P2^5;

sbit Beep=P2^7;

sbit d1=P2^0;

sbit d2=P2^1;

sbit d3=P2^2;

sbit d4=P2^3;

sbit START=P2^6;

sbit MOVE=P3^7;

sbit UP=P3^6;

sbit DOWN=P3^5;

sbit OK=P3^4;

 unsigned char pos=0;

 unsigned int shan=0;

void delay(unsigned int t)

{

while(t--);

}

void display(unsigned int t)

{

char c=shan/15;

shan++;

     

    P0=table[t/1000];

    if((pos==1)&&(c%2))

     P0=0x00;

    DL=1;

    DL=0;

    d1=0;

    WL=1;

    WL=0;

    d1=1;

    delay(500);

    P0=table[t%1000/100+10];

    if((pos==2)&&(c%2))

     P0=0x00;

    DL=1;

    DL=0;

    d2=0;

    WL=1;

    WL=0;

    d2=1;

    delay(500);

    P0=table[t%1000%100/10];

    if((pos==3)&&(c%2))

     P0=0x00;

    DL=1;

    DL=0;

    d3=0;

    WL=1;

    WL=0;

    d3=1;

    delay(500);

    P0=table[t%1000%100%10];

    if((pos==4)&&(c%2))

     P0=0x00;

    DL=1;

    DL=0;

    d4=0;

    WL=1;

    WL=0;

    d4=1;

    delay(500);

}

 int set_value=50;

void main(void)

{

    unsigned int adc_value=0;

    IT0=1;

    EX0=1;

    EA=1;

    while(1)

  { 

     START=1;

     START=0;

   

    

    if(pos==0)

    {

    adc_value=P1;

    adc_value=adc_value*1.9;

    display(adc_value);    

if(adc_value>set_value)

        Beep=0;

    else

        Beep=1;

    }

    else

        display(set_value);    

// if(t>100)

//     Beep=0;

    // else

//     Beep=1;

        //     t=t*1.9;

 

   }

}  

 void  init()interrupt 0

 {

    if(!MOVE)

    {

    

    pos++;

    if(pos==5)

    pos=1;

    }

    if(!UP)

    

    {

     if(pos==1)

         set_value+=1000;

     if(pos==2)

         set_value+=100;

     if(pos==3)

         set_value+=10;

     if(pos==4)

         set_value+=1;

        

    if(!DOWN)

    {

    if(pos==1)

        set_value-=1000;

     if(pos==2)

     set_value-=100;

    

    if(pos==3)

         set_value-=10;

    

    if(pos==4)

         set_value-=1;

        

    }    

        

    if(!OK)

    {

     pos=0;

    }

    

if(set_value>9999)

    set_value=set_value%10000;    

        

if(set_value<0)

    set_value=0;       

   }

4.系统调试

按照实验原理图连线,连接好线路后,打开电源,一个砝码一个砝码放,观察万能表示数与数码示数是否一致,并观察电压示数变化是否为定值。通过实验发现两者示数基本一致,误差为0.01,在误差允许范围内,非常准确。

                     (实验模板)

                   (所焊板子及电压显示)

                 (所焊板子背面)

5.分析总结

通过此次三周左右的实验,弄懂了反向放大电路及单片机最小系统等等各方面的知识,并在同学和老师的帮助下,深刻理解了压力测量系统的工作原理,克服种种困难,最终焊出电路板,完成实验。虽然完成了实验,但也发现了自己许多的不足,让自己在以后的学习中必须更加刻苦,认真,实践是理论最好的老师,养成自己多动手能力。最后,感谢同学们的帮助及老师的耐心指导。

文档

基于MCS51单片机的压力测量 系统的设计与实现

基于MCS51单片机的压力测量系统的设计与实现班级;学号:姓名:指导老师:摘要以STC-51单片机为核心,应用变阻式应变片测量压力并通过ADC0809的转换,经过单片机处理后在数码管模块显示的智能压力测量系统。是变阻式应变片和51单片机相结合的一个很典型的应用,本系统包括信号采集及转换电路、单片机最小系统、显示模块三个最基本的核心模块。外围扩展了键盘模块、蜂鸣器报警模块,用以调节系统的测量和显示范围。经试验证明,系统能正常工作且误差在允许误差范围内,符合所有技术指标。1.方案设计通过应变片,将
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top