找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 19783|回复: 19
收起左侧

MPX4115压力自动检测系统设计 含单片机程序与仿真原理图

  [复制链接]
ID:196167 发表于 2017-7-15 14:14 | 显示全部楼层 |阅读模式
MPX4115压力传感器
AT89c51单片机
LED共阳极显示
0.png 0.png 0.png

单片机最小系统
1.001.jpg
显示模块
1.002.jpg
AD0832与单片机的连接
1.003.jpg
传感器与AD的连接
1.004.jpg
报告内容应包括:设计、应用背景,功能描述,电路设计(分模块讲述),软件部分(描述清楚流程图,不需要程序代码),参考文献;
0.png

单片机源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. //ADC0832 引脚
  4. sbit ADCS=P2^0;
  5. sbit ADDI=P3^7;
  6. sbit ADDO=P3^7;
  7. sbit ADCLK=P3^6;

  8. unsigned char dispbitcode[8]={0xF7,0xFB,0xFD,0xFE,0xEF,0xDF,0xBF,0x7F}; //位扫描
  9. unsigned char dispcode[11]={0xC0,0xF9,0xA4,0xbB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};
  10. //段选码 共阳极
  11. unsigned char dispbuf[4];
  12. unsigned int temp;
  13. unsigned char getdata;

  14. void delay_1ms(void)
  15. {
  16. unsigned char x,y;
  17. x=3;
  18. while(x--)
  19. {y=40;
  20. while(y--);
  21. }
  22. }
  23. void display(void)
  24. {char k;
  25. for(k=0;k<4;k++)
  26. {
  27.         P1=~dispbitcode[k];
  28. P0=~dispcode[dispbuf[k]];
  29. if(k==1)
  30. P0=P0+0x80;
  31. delay_1ms();
  32. }
  33. }

  34. unsigned int ADC0832(unsigned char channel)  //AD转换,返回结果
  35. {unsigned char i=0;
  36. unsigned char j;
  37. unsigned int dat=0;
  38. unsigned char ndat=0;

  39. if(channel==0) channel=2;
  40. if(channel==1) channel=3;
  41. ADDI=1;
  42. _nop_();
  43. _nop_();
  44. ADCS=0;
  45. _nop_();
  46. _nop_();
  47. ADCLK=1;
  48. _nop_();
  49. _nop_();
  50. ADCLK=0;
  51. _nop_();
  52. _nop_();
  53. ADCLK=1;
  54. ADDI=channel&0x1;
  55. _nop_();
  56. _nop_();
  57. ADCLK=0;
  58. _nop_();
  59. _nop_();
  60. ADCLK=1;
  61. ADDI=(channel>>1)&0x1;
  62. _nop_();
  63. _nop_();
  64. ADCLK=0;
  65. ADDI=1;
  66. _nop_();
  67. _nop_();
  68. dat=0;
  69. for(i=0;i<8;i++)
  70. {
  71. dat|=ADDO;
  72. ADCLK=1;
  73. _nop_();
  74. _nop_();
  75. ADCLK=0;
  76. _nop_();
  77. _nop_();
  78. dat<<=1;
  79. if(i==7) dat|=ADDO;
  80. }
  81. for(i=0;i<8;i++)
  82. {j=0;
  83.         j=j|ADDO;
  84. ADCLK=1;
  85. _nop_();
  86. _nop_();
  87. ADCLK=0;
  88. _nop_();
  89. _nop_();
  90. j=j<<7;
  91. ndat=ndat|j;
  92. if(i<7) ndat>>=1;
  93. }
  94. ADCS=1;
  95. ADCLK=0;
  96. ADDO=1;
  97. dat<<=8;
  98. dat|=ndat;
  99. return(dat);
  100. }
  101. void main(void)
  102. {
  103. while(1)
  104. {
  105.         unsigned int temp;
  106. ……………………

  107. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
自动检测.rar (248.43 KB, 下载次数: 510)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-7-15 16:12 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:92231 发表于 2017-7-18 10:52 来自手机 | 显示全部楼层
终于找到此类的程序,想搞一个空压机的压力自动控制器
回复

使用道具 举报

ID:270428 发表于 2018-1-3 14:34 | 显示全部楼层
为什么我照着图画的  然后加入hex文件仿真不行  ,数码管不显示,而且对应的电压值也不一样0.0
回复

使用道具 举报

ID:400210 发表于 2018-9-19 20:03 | 显示全部楼层
好文件
回复

使用道具 举报

ID:456429 发表于 2018-12-27 14:34 | 显示全部楼层
挺不错的
回复

使用道具 举报

ID:456560 发表于 2018-12-27 17:26 | 显示全部楼层
学习了
回复

使用道具 举报

ID:458594 发表于 2018-12-30 15:32 | 显示全部楼层
压力传感系统
回复

使用道具 举报

ID:110431 发表于 2019-1-1 21:01 | 显示全部楼层
好文件
回复

使用道具 举报

ID:459737 发表于 2019-1-2 09:39 | 显示全部楼层
为什么我的始终存在一个误差,而且不是线性变化的怎么去消除这个误差
回复

使用道具 举报

ID:546021 发表于 2019-5-25 09:37 | 显示全部楼层
很好的 多谢
回复

使用道具 举报

ID:570477 发表于 2019-6-24 09:58 | 显示全部楼层
如果压力传感器那一部分要替换成滑动变阻器要怎么做啊?
回复

使用道具 举报

ID:757154 发表于 2020-5-23 21:05 来自手机 | 显示全部楼层
为什么mpx4115旁边还要接一个直流电压源呢,有大佬知道吗
回复

使用道具 举报

ID:756626 发表于 2020-5-24 08:56 | 显示全部楼层
你好你联系方式是什么呀
回复

使用道具 举报

ID:821773 发表于 2020-10-11 17:19 | 显示全部楼层
想问一下stm32控制水泵检测压力相似吗
回复

使用道具 举报

ID:874650 发表于 2021-2-25 16:48 | 显示全部楼层
学习一下压力传感器的使用,具体运算
回复

使用道具 举报

ID:924106 发表于 2021-5-19 21:13 | 显示全部楼层
学习一下压力传感器的使用,具体运算
回复

使用道具 举报

ID:947896 发表于 2021-7-1 22:43 | 显示全部楼层
很实用,简便,感谢楼主分享
回复

使用道具 举报

ID:1054197 发表于 2022-11-27 18:28 | 显示全部楼层
很实用,简便,感谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表