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

用stc12c2052ad做的一个检测电压开关源码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-16 10:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
用stc12c2052ad做的一个检测电压开关源码
" D- l; t2 t4 ]) C
2 S8 w; H" G5 ]! ]5 _
* e: ~% z. i  I. }#include "STC12C2052AD.H"
1 M) U: m0 }8 v. I  _
#include <intrins.h>
, o6 |3 U* c" v#define uchar unsigned char
1 f2 a5 C" J- D#define uint unsigned int 8 Y) J9 A5 Q. w5 C- G& P
#define  ADC_POWER    0x80  : A) ~4 m& E  l2 F0 {- Z/ `0 \1 a  K
#define  ADC_FLAG     0x10 * o5 R7 c/ y' _. Q" B
#define  ADC_START    0x08 0 q5 S: c. i3 @+ A# L
#define  ADC_SPEEDH   0x40 3 r& Z2 V) W$ h
#define  BAUD                                 9600
, f$ k' ]6 ^9 ~) \3 J( D& N7 j( u- a# x& O- i4 C7 J# b' b  F( H' L
sbit RELAY1=P3^4;
. t0 C. H$ U: o4 @sbit RELAY2=P3^5;/ A  T5 \8 u$ d( ]0 m$ v
sbit LED=P1^4;' e" ^) s- r- p5 ]
void delay(uint i)
# I) T+ z; _! [: a" s  [' I. M6 b$ V{
# y5 p2 Z% b8 i2 {  I        uint x;% P3 i' E/ ^( E* S
        while(i--)" e# _: B, [0 \! u$ r9 u% f" z
        {x=5000;
9 n9 \' \# i/ t  }0 awhile(x--);; u0 }6 O0 R" \& a, d# w
}
. o3 l9 W/ z. S; x; W+ k4 I}8 x4 {6 I% d% c
" g) w# U& o/ R
void InitADC()
7 S2 w* m5 R# y3 a3 k* M% H{
* u  Y% x3 H+ U( N" [/ ^+ J        P1=P1M0=P1M1=0x01;
3 r- L1 y* ~  z6 E; z) s1 I        ADC_DATA=0;   //清除AD缓存器数据
  K3 ~  u- ]% [& O7 x0 U: t$ w        ADC_CONTR=ADC_POWER|ADC_SPEEDH; //启动A/D电源
, t5 n% ]' t) q( t7 K        delay(2);1 m: E" L9 l0 |& {
}
1 k3 g4 N' ?/ |* C6 z; }$ c4 @' i6 h! Y3 x6 m! m
uchar GetADCResult(uchar ch) 4 q* r2 l( v* @9 M
{
2 ]. l2 Z: F# O( W        ADC_CONTR=ADC_POWER|ADC_SPEEDH|ADC_START|ch;
/ ?" ~3 F* g1 B* b        _nop_();* f1 Q. D) V, i
        _nop_();
0 h" M1 B- Q  q; T+ @9 _0 m6 A        _nop_();4 L' I: z; O: U7 j* N
        _nop_();
/ e: D( T0 a! @+ V; B& R        while(!(ADC_CONTR&ADC_FLAG));$ G! W+ a/ b( e
        ADC_CONTR=ADC_CONTR&(~ADC_FLAG);
$ k4 c8 L7 ]" E* i9 N$ R5 e        return ADC_DATA; 1 ^$ a7 E5 `( {* O2 u0 n
}, i' c9 }0 H2 p+ b( ^
, N8 ^: _# P1 W$ ]
void process()  M0 V5 F! _5 O! H: Z% J
{ ( F" W3 ]' B$ V- U
  uchar  adcnumber=0;  - @* ^8 R9 t  V% ]
        uchar  adcnumber_temp=0;  ; _7 E1 [# F" i+ E  W
        uchar  n; . P; G2 X5 q/ d4 N) @3 m
        uchar i=0;
2 h6 s! _& i6 j5 m0 F        TMOD=0x01;
  ?8 P: b3 [/ M1 S! h  r  B        TH0=0x3C;
; b. `" [# _, g        TL0=0xb0;
* C, x, z; m( ^  [, u. o( W: u6 ?& S9 x/ _. w
        for (n=0;n<5;n++)    //adc convert  5 times   
' F5 p, j$ D( ~5 U        {        ' f. G% N  \' g$ g$ Y, z8 q, Y
                adcnumber_temp=GetADCResult(0);    // get p10 adc number      
& R, d9 S) ~9 ]! ^# l+ _0 B. I( \% e                if(adcnumber_temp>adcnumber)        // get biggest + ^1 |' o! J5 A
                {adcnumber=adcnumber_temp;  }, o0 U) H3 k+ K* {
                }      
* B8 Q- x) m+ h4 O4 X                if(adcnumber>152&adcnumber<212)        ) p2 D6 v+ k+ h' O4 _6 G2 m# f$ d; n
                        {          TR0=1;
& r) {! o* p9 t                                i++;
, F% S4 S8 V% @2 U2 T                                if (i==40)% R) r) S. r! Y" s  j8 H0 g
{                                i=0;: S& _) J& a- A0 P, u2 N
                                RELAY1=0;      //powerdown   
: _. z" o7 n) N1 K% b0 }# u$ D  R                                RELAY2=0;5 Q; U9 ]& c2 {5 R
                                LED=0;         //faguang
: d' _& B3 {& J! u                        }5 r1 _% W* f# d% ^3 M/ _
}; v1 y1 Y6 @6 D5 g) ]0 \/ Y
                else
& n" O0 P7 u; B9 p5 V  z                {   TR0=0;/ p  U& {4 J0 _2 B
                                RELAY1=1;      //powerdown   
( n! h% L7 g3 D: g' o, s                                RELAY2=1;5 I$ K" u# L6 d: g& D
                                LED=1;# F) e( ^" q* T6 Y; _* g$ p  V2 ^
}& @6 U( b" k9 c' I3 @
}
. m( C7 B. s- a. f
7 P) e, X) q/ G
& E( y5 Q- Z* N- O" u1 Y: Cvoid main()3 p) D/ S% V# I: `
{  
9 }9 a8 |( |4 O0 l7 R        InitADC();
4 r  q9 }) F( Q# m
$ F% v) V  v( q2 _while(1)" M/ }  z# ~: r% _* D7 ]7 T
{
) T7 i3 N0 U- `& vprocess();0 u7 o6 d" @3 N# E. h' \
}; x3 b, [! k& W% c$ E
& \; g' @7 _: I2 C$ D7 U2 `
2 b' s2 w6 a8 a2 l( U- ~' E1 N% N; O
}5 r8 o4 o1 e6 T! h. z2 o
! N5 t7 X/ G, L6 o) t) @

该用户从未签到

2#
发表于 2019-1-16 21:54 | 只看该作者
源码检测,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 00:05 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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