找回密码
 注册
关于网站域名变更的通知
查看: 262|回复: 1
打印 上一主题 下一主题

酸碱度ph传感器 单片机源程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-3 07:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
酸碱度ph传感器 单片机源程序7 H( N7 V; m" d% t
" ]! p# a' o2 `
5 o% }1 V$ x" ]4 k# @9 j! `0 R
分享一个测试酸碱度ph传感器的单片机源程序
" b$ q7 z+ Q6 M# j9 N! T6 i  b
3 d" e9 U* H, G. l" [9 t" Y  c0 L6 P& j) a% F& _. E
单片机源程序:
/********************************************************************! g! q  S! y* ]6 y; @
                           龙戈电子
) I6 k) N% ?# v: P9 a*********************************************************************/
9 W, K" E# x9 ^  k+ C#include <reg52.h>             //头文件
( o0 A. J+ g9 D  Y$ S3 z#define uchar unsigned char           //宏定义无符号字符型
; W' K2 @; _/ M( o5 v! R5 p#define uint  unsigned  int           //宏定义无符号整型
( I" [8 M" V1 W3 N4 ^code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟
) P8 y* `$ P6 |6 Luchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端                                                                 //位控制码
8 M2 ^7 c" b! y2 V+ L7 @sbit ST=P3^0;   //A/D启动转换信号
& U; G" c7 ?' J2 y& [% r3 ~( s6 t  Asbit OE=P3^1;   //数据输出允许信号
: t9 X  ^2 l5 a% E$ Gsbit EOC=P3^2;  //A/D转换结束信号
9 w0 ~& k  [6 Y3 P: d& Ssbit CLK=P3^3;  //时钟脉冲  
& E/ K7 }& a$ Y* _+ zuint z,x,c,v,AD0809, date;        //定义数据类型- Z6 ?; w. [; l% }4 l3 a
/******************************************************************
) Z/ |4 I3 a8 a: i2 J延时函数
/ _: t+ e5 P) S******************************************************************/6 B* |0 @, S: K8 j+ z# C( q
void delay(uchar t)! I; G. Z: y! {) M9 W
{
$ Q2 m% @/ ?5 x$ D  uchar i,j;
9 o9 Q# l6 b; V; z2 U) p   for(i=0;i<t;i++)
4 v! y5 z8 G7 U7 p# t4 c   {$ F9 l# ^& a/ M3 k% m
            for(j=13;j>0;j--);: T5 {# H' ~, c& C# d
         { ;
3 c/ H5 u, C6 ?; f" l         }
3 K' z' O! m8 p% m5 \   }4 z" c7 M- S( B- K! z4 |5 g* z! ~; r
}! n# }* B! F3 t2 i8 n7 S
/**********************************************************************/ b$ J) i- y5 R
                数码管动态扫描
  h7 k. T5 _; u  f1 a) }$ ?0 E*********************************************************************/
2 q" H2 _' i$ Fvoid xianshi() //显示函数4 j6 n. U$ V: P" j5 J
{
+ X! z0 z0 z1 K0 p- [2 euint z,x,c,v;
  Z+ B7 I" x/ h! u& }+ g5 F  ]  z=date/1000;                         //求千位
- M# R- V0 \) @6 Q6 P7 C5 h- ]3 B  x=date%1000/100;                 //求百位* W6 _& C/ z' p* [' A
  c=date%100/10;                 //求十位3 Z) Y0 t- o- ^( V6 R
  v=date%10;                         //求个位- ]1 P1 U; X3 [

$ A4 s4 ^# `8 o      P2=0XFF;5 w! H- r' h: n8 p. N% u9 S
          P0=seg7code[z]&0x7f;9 ]4 @5 u+ r# _4 X. X* H% Y
          P2=wei[0];9 m7 b* P: u! C: E  h# [
          delay(80);
8 _# G6 E# }4 a- ~7 B+ {% |- E  {          P2=0XFF;  
7 J- y% ^  F! U: S, w2 F      P0=seg7code[x];
" R- f+ ]4 m. a* z          P2=wei[1];
& }, _% d! g+ \9 Q  O          delay(80);
% Y3 J& o7 V. b8 ?: ~          P2=0XFF;  
8 |9 O* W2 c7 o6 i2 X+ I- H             P0=seg7code[c];
0 K8 E  n0 I' c          P2=wei[2];
4 I2 S- D/ E: T+ v+ ?" w2 U3 x3 a8 H) z1 I          delay(80);% V2 K% f: T8 t7 O3 A
          P2=0XFF;  
5 |' n% ?5 V# x) P; M" [/ N      P0=seg7code[v];
+ [8 a" |- }/ i+ y" ?' V" s2 s          P2=wei[3];. C, }) b4 E2 ]! l5 a
          delay(80);
. P0 }5 T4 ]9 h1 Z; K$ V/ v          P2=0XFF;! i8 s8 ^; A9 w; s
  }
7 X4 I" J4 O1 U+ L# k1 `' e: m /*************************************************************************
8 E% D+ r! n- D% k! r                                CLK振荡信号        ) m' L, ~0 }% s- ^3 V7 g/ L( S
**************************************************************************/
/ a* p1 E& R" g  o5 D. Z! U- vvoid timer0( ) interrupt 1 //定时器0工作方式1. y7 ~$ w: o3 M/ j/ }; ?
{; ^. f9 V: Q3 z1 H+ |$ R

* D8 C- @" t) `5 jTH0=(65536-2)/256;          //重装计数初值4 M% l* G3 @% m4 B) C" ?
TL0=(65536-2)%256;          //重装计数初值
4 ~9 ~: ^5 x" L7 v6 dCLK=!CLK;                          //取反9 }. y- C# F) s3 O9 l3 v2 v
}
4 a% p( w+ {% Z6 W' _
; c4 @# g6 h- H" ^) S- q* A' Y; @ /*************************************************************************4 I: d1 k7 ]4 o9 x! D
                                主函数        1 A2 `& T" X4 @+ ^; |
**************************************************************************/
* D! ?. R8 h9 E+ {# r7 @2 N void main()
1 u; U/ q$ l4 v0 S$ F. w& N{
  @4 S2 w# h2 E9 b' ^( W) O4 `% cTMOD=0X01;                          //定时器中断0
" \8 j1 s+ g, M& M2 y" X) |  C7 U' a+ O$ x8 J: H+ _9 y5 p
CLK=0;                                  //脉冲信号初始值为0' o0 [- B& C7 _
TH0=(65536-2)/256;          //定时时间高八位初值
' Q# U9 j0 k& A( c! \; {% {TL0=(65536-2)%256;          //定时时间低八位初值
$ h) y/ N7 V* q/ M1 l2 CEA=1;                                  //开CPU中断# X: s- k' R, c( Z/ d' L: q$ E
ET0=1;                                  //开T/C0中断1 a  \& t  I& b/ F
TR0=1;2 c# A4 n- K2 [% {% ]# g3 Y
while(1)                           //无限循环& p4 z* M  s0 p$ ^
        {" H6 e/ Y! P/ |* {! ]2 R+ }) D: m% v9 |# J
        ST=0;                                //使采集信号为低' A! P# _6 _7 C" W) z
        ST=1;                                //开始数据转换, C4 ^) F0 B+ d
        ST=0;                                //停止数据转换. l; r" E  ?4 I$ [5 k: Q: }2 o; D
        while(!EOC);                //等待数据转换完毕
- a$ X+ _3 ^6 ?        OE=1;                                //允许数据输出信号/ F' }4 Q/ t, Y. U- t4 P5 f: x
        AD0809=P1;                    //读取数据% a7 j4 t' V+ @& z7 {( O2 w" p
        OE=0;                                //关闭数据输出允许信号
) |" w; ~0 I9 G: H        if(AD0809>=251)                //电压显示不能超过5V
/ _1 {$ G% I" }( R( G" ]( z        AD0809=250;
  P2 Q. w% E& c& z5 z( U        date=AD0809*20;                //数码管显示的数据值,其中20为采集数据的毫安值. t( ]5 |1 s  |% G3 O- X0 j# n5 X
+ \6 @( {& j  j! v1 C
& w# m) X  T5 w9 P
…………限于本文篇幅 余下代码请从论坛下载附件…………: w# A% e6 y) p' }, V3 h
游客,如果您要查看本帖隐藏内容请回复

# E  _- Q# X3 t% ~& o$ u: F6 I% f3 K! k  }/ h1 `6 k5 [' Z! R: x

该用户从未签到

2#
发表于 2018-12-3 10:11 | 只看该作者
不错不错 谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-19 21:21 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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