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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用stc12c2052ad做的一个检测电压开关源码
: R6 v2 Q, F& ^$ l6 J5 K- [
4 ?) i1 ]6 j" J" X% ~
0 M; @" {9 w5 C# p4 W' r#include "STC12C2052AD.H"5 @4 ]" m7 I6 }& t7 X8 w
#include <intrins.h>
& ^% P* @6 f! `. Z6 p' I#define uchar unsigned char
8 i* p* @2 }: Y! @/ X: R3 k#define uint unsigned int : n+ N, o. ?, w& @# h8 r
#define  ADC_POWER    0x80  ) M) O+ k0 w( D( ?0 z5 o
#define  ADC_FLAG     0x10 / o/ \* v' p2 E. k1 ^2 Y8 Y
#define  ADC_START    0x08 # W7 ?5 |) `7 P  v
#define  ADC_SPEEDH   0x40
: @- O3 R: S) _" r9 D  m#define  BAUD                                 9600$ b$ f: z% X( R8 ~, p+ \
, A. L9 h5 @$ T
sbit RELAY1=P3^4;
$ B! v: {$ }, `5 Nsbit RELAY2=P3^5;
, @. f8 z9 u& n7 S5 _sbit LED=P1^4;
9 X8 u- m; N4 v+ _. u& \) |void delay(uint i)
: K% s" M9 Y$ [) \{
/ M" w) y; z, }        uint x;" @! D6 m) k  N6 y
        while(i--)
  k6 B2 Y6 R: l        {x=5000;) L4 [3 S. o$ k; x5 F, m3 S
while(x--);
( a6 N! x& H' k}
4 d- h+ g) y- s$ K' ~}
& P% a7 h$ C/ b3 c8 M8 @
$ l# o$ M+ j+ A% q; Q! fvoid InitADC()! H- }6 O, {- C. s9 J, R7 {/ V" |
{. e* z" C# \& h+ x( O) K! p
        P1=P1M0=P1M1=0x01; : ^2 f" P3 }0 k
        ADC_DATA=0;   //清除AD缓存器数据, ?6 {$ ^; F% v! N, T/ u
        ADC_CONTR=ADC_POWER|ADC_SPEEDH; //启动A/D电源
6 G  j3 \4 x3 X        delay(2);9 }/ ~. T; H  F$ u' Q& u8 m1 ?: k/ k
}) E$ o, {6 C3 ?' p4 Z# I7 z

! y2 ^3 A9 T. y: Auchar GetADCResult(uchar ch)
7 v& w0 P2 p, T( ]6 C% n9 h9 d6 M{
/ O) T) ?/ W! q/ n4 o4 \        ADC_CONTR=ADC_POWER|ADC_SPEEDH|ADC_START|ch; # [  \% P- o8 p& P. F# X
        _nop_();. q6 [" V  d! s; a) M1 I# f
        _nop_();2 n* p' H& F; i" H" O2 ^
        _nop_();9 o  A$ ~$ Z& N. U9 U
        _nop_();
! ]8 Q2 D7 |8 A. p  E0 h        while(!(ADC_CONTR&ADC_FLAG));
! ~8 z6 N3 \  \        ADC_CONTR=ADC_CONTR&(~ADC_FLAG); 7 o5 {% F$ C: R6 k
        return ADC_DATA;
1 c3 |" }. V" v6 d}# J5 Q$ u* \$ c9 d; z' G
; B: [( }4 y8 a4 y4 c' |
void process()
6 ^' ]: {" [( j  }+ x{ ; |& ~$ @8 y; j
  uchar  adcnumber=0;  4 ], F9 b) A# u
        uchar  adcnumber_temp=0;  # h% R/ d' r& y
        uchar  n; , O% V1 W% p4 _# O/ D# F# j, X
        uchar i=0;
' t* k2 p4 Y* ]; c% u% r4 a        TMOD=0x01;
- }5 O: Z- A& G% z0 V& v6 j! z        TH0=0x3C;  f6 v; w% y8 ^5 r
        TL0=0xb0;
, ?0 M* `/ P! S6 g+ z
7 x# }) O+ z  C. \; H2 f        for (n=0;n<5;n++)    //adc convert  5 times   
9 l6 `7 x) I; x( t0 x% m: h. {: {        {        * i* J, f# w( c( Y+ j7 I
                adcnumber_temp=GetADCResult(0);    // get p10 adc number      
# L$ u7 h! }8 g" E8 t+ w. N# S                if(adcnumber_temp>adcnumber)        // get biggest " r; l/ t9 R$ B7 E. o
                {adcnumber=adcnumber_temp;  }! s5 _8 m6 g* @: o: b
                }      . X$ t1 c, w3 K2 T! S9 [
                if(adcnumber>152&adcnumber<212)        
6 |/ h) e1 F0 s- m0 g9 ~6 h1 w, z                        {          TR0=1;) w2 o6 L$ F9 x
                                i++;
' A* g4 g* m7 T) \. {; Q* t& i4 E                                if (i==40)
% x& y, L# q# D& T. n& [{                                i=0;
3 s! [+ x# Z; U) M: u* x1 _                                RELAY1=0;      //powerdown   & G. s$ [3 h' C8 o
                                RELAY2=0;2 t; }! E. Z5 }; U2 v2 D
                                LED=0;         //faguang
) `: Y+ A5 S# b* S/ F) n& [                        }
8 j& a, K) C, |: A* K' {' k9 W}6 A5 H3 ]8 C9 x1 G$ @; Y! @/ _
                else6 o7 @. a4 W+ L& m
                {   TR0=0;
1 O" N! e; y! J& ^! n! }( p) q                                RELAY1=1;      //powerdown   
. t3 {' s. n( |/ j2 ^                                RELAY2=1;7 }1 N1 q% z* R( v
                                LED=1;; J. I) U; F( C
}
& b) Z6 A1 I4 a5 S4 m}
6 Z' j, l4 K8 T
3 g+ d0 Y. K5 C! V" `  U
. t7 S. d+ {! v/ f& H- ovoid main()3 g& D) ]; g8 w) Q! r5 Y2 s; a3 I
{  3 F6 V9 G( }2 i9 N* i
        InitADC();' Q4 o. Z  x# F( |- ^
' R% X( ^% K9 U+ U9 T
while(1)/ y& T) M4 `  d+ F
{6 w9 J: E  q" O3 O& _( a
process();
( o3 ~% \' `( y) X; J  x' s}' ?( j5 g, P8 G) C  f! M" t1 s7 p* H
9 R& b2 W" k# {+ ~6 N4 e! v
# s- j' `" p$ C) y( g5 U6 V
}
7 ]0 J; H9 T$ I6 s! V. J3 ]7 |1 E& e: p. q; {( o' A# K# E! j

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 23:52 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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