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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用stc12c2052ad做的一个检测电压开关源码
; G; x# O  V* t: w' t( Q& R/ a5 y5 F- I- _0 d9 Z

: k/ K7 U& x1 I/ a6 ?. H* T- H#include "STC12C2052AD.H"3 f5 R0 \9 B% D  q. _3 |: K, v3 c: O5 T
#include <intrins.h>
! I8 z2 f) f2 _( ]4 @#define uchar unsigned char & v& M7 T. v9 @9 P1 Z1 A
#define uint unsigned int ! R( c* a# b* J
#define  ADC_POWER    0x80  
( O- }3 T) v9 T* y% w#define  ADC_FLAG     0x10 6 z# k  j( S- z% L# `- a4 D
#define  ADC_START    0x08 9 m# v& S' }8 D* e
#define  ADC_SPEEDH   0x40 : \+ G6 T- s1 L% F4 L- {& {3 \
#define  BAUD                                 9600; b& V2 e( l' ^& Z/ c+ f

5 y  O0 I. t7 N& x/ I& o; X5 ?# gsbit RELAY1=P3^4;
  \' G, S2 @( N4 R9 u$ tsbit RELAY2=P3^5;
& Z0 @* O5 L: ~3 t6 {sbit LED=P1^4;
4 y. ^/ A$ w' _) Lvoid delay(uint i)1 N' ?2 i" K$ n  a
{
7 U/ ]" S: x( S        uint x;
: R" ?: f5 A# I        while(i--)
# y% t2 L/ j7 P0 v/ \: Z" x$ H        {x=5000;
7 ?# C( ]7 d. X5 L( B5 D& rwhile(x--);, Q/ }: n0 j8 F' _! _
}: P0 X1 H/ ^) o$ R! x
}
5 o6 c2 D6 f+ S4 e4 \! f9 y3 O) ~( s3 j, a( l. _4 R
void InitADC()
+ T: d8 G' i9 s{
" \/ V+ a: }- r  U- ]$ H        P1=P1M0=P1M1=0x01;
0 I4 Z6 |: N" W1 M  u) t: o+ h        ADC_DATA=0;   //清除AD缓存器数据
5 M, @( q3 w- R1 `$ _6 C        ADC_CONTR=ADC_POWER|ADC_SPEEDH; //启动A/D电源# L9 P: j# O2 R/ \5 d
        delay(2);
, @% h; @" e, c& g! R" n}( d: [* z7 j, ^) A3 x% E

, N' ~5 B8 \1 L! Vuchar GetADCResult(uchar ch) + b- h) O- v4 J. |+ c5 E
{
- @' {( \  i2 i4 B& c        ADC_CONTR=ADC_POWER|ADC_SPEEDH|ADC_START|ch; 8 W: {* S, ^* P- o6 A; ?' b
        _nop_();- A- ]0 `0 ~8 Y9 C" S* Q7 F' s
        _nop_();
2 ?, `2 d7 p+ j) I* I& R        _nop_();
( O' F. {8 U; }        _nop_();
: `, r3 d# R5 P. k# I  J        while(!(ADC_CONTR&ADC_FLAG));
0 G: w9 X/ F, V        ADC_CONTR=ADC_CONTR&(~ADC_FLAG);
0 s' V9 W; s2 b- [3 m, U" R1 f$ W4 a        return ADC_DATA;   T  f+ z6 _9 R6 H* V7 x; N$ m
}
; U) h* m, p" h. E! U0 q. V
, n/ o% I. m) q6 p# g$ tvoid process()
) @+ g; R& ?" m4 v. r4 U{ 7 n. w# ?  e4 C& r0 ?% r
  uchar  adcnumber=0;  
! ~+ u( F+ }& e# e        uchar  adcnumber_temp=0;    i  h2 i2 F  m7 E( z% P7 v
        uchar  n;
2 O- }7 _$ U6 J0 D5 c" d        uchar i=0;: c" n* R8 f0 b6 a
        TMOD=0x01;# o  c! c# r2 R
        TH0=0x3C;
6 ^$ B2 O) ?4 T' v+ f        TL0=0xb0;
1 U8 C# e( ~4 z: A, H3 R
* z9 I  C1 C' Q2 A  f" c        for (n=0;n<5;n++)    //adc convert  5 times   ' d( |' e3 m) n, I; _7 Y
        {        2 ^" }: s7 ~' H7 P
                adcnumber_temp=GetADCResult(0);    // get p10 adc number      
9 L; G" `3 a$ C; h                if(adcnumber_temp>adcnumber)        // get biggest ( r. |1 _4 C5 x
                {adcnumber=adcnumber_temp;  }5 y; X6 ~! `% L) F/ K0 V3 @1 G
                }      5 i8 v7 h! E; d1 z& e
                if(adcnumber>152&adcnumber<212)        2 A7 C; _  m% s; O2 f: U
                        {          TR0=1;
3 V7 Z4 h& Y6 \6 b$ v& E                                i++; / R7 d6 E8 Y! p
                                if (i==40)1 D8 ]4 `+ I7 u# g7 k, |
{                                i=0;
' f8 d: [# B: o& D0 t9 P4 M8 r                                RELAY1=0;      //powerdown   ; \' w6 `8 T4 O2 r
                                RELAY2=0;. u; k% E- `+ h+ c9 k- ^
                                LED=0;         //faguang) d5 Q1 E/ t' E% d
                        }
6 s6 d1 n& |' G4 r! `5 M" U}
* {7 I# z* L4 T: J                else9 K. k2 e6 M. ]3 ]+ t8 M
                {   TR0=0;
! g2 Z' O: U3 L: ?4 o( w  Z                                RELAY1=1;      //powerdown   
$ C7 f* q9 w+ o" {) Z. e1 S                                RELAY2=1;% O, }, \/ ]( b, s
                                LED=1;
! D' i8 J) C2 {}
7 x* J3 f" `6 @* x/ j0 a}9 s. G8 b4 R) E

4 P0 B' o, O7 {( D" y+ E% h+ H) V5 f5 O) p9 G+ I2 g/ {+ ]
void main()# t% u# R+ J0 F; x2 h& e4 s  D
{  # V. s$ g% Z3 I1 |( ~: w5 u9 b
        InitADC();
$ |# {8 t2 j2 P; h& o" @0 `
' c/ u) ]8 o" O9 ^9 k+ X. v4 V2 gwhile(1)
1 t( s  B7 T; z8 C( L! s{
4 x6 k$ H# F: r1 f4 d( ]process();& f4 j: p. e4 S
}, R$ `( k% j& q" w3 o
; Y! s% R; K* C& E% N( k" Z! V$ A1 U
$ t, e3 L; b  R) Z( x
}' I$ g. |9 o3 n* U

+ ^! V. a, e0 U  p

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-4 09:18 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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