38

主题

0

好友

341

积分

业余侠客 当前离线

Rank: 4

UID
30960
帖子
240
精华
0
经验
341 点
金钱
267 ¥
注册时间
2007-11-23
发表于 2013-10-10 12:36 | 显示全部楼层
本帖最后由 jl48q-5 于 2013-10-10 12:39 编辑

做了一个3.6伏锂电DC-DC升压电路,3.6V~400V,试验用。




程序如下:
include<STC12C5A60S2.H>
#define uchar unsigned char
#define uint unsigned int

#define AD_dy 0

void init_PWM();             //pwm初始化
void dy();
void delay(uchar z);

void main()
{
        init_PWM();
        while(1)
        {
                 dy();
        }
}

void init_PWM()             //pwm初始化
{
    AUXR=0x80;
        AUXR1=0x00;          //默认
        TMOD=0x12;          //设定时器1为16位模式定时器0为8位自动重装模式
       
        CMOD=0x04;                          //设定时器0工作在1T模式
        TH0=0xff;                          //定时器0=256-(12*1000000/(256*1000HZ))就溢出
        TR0=1;                                   //启动定时器0
       
       
        CCAP1H=255-51;                  //设PWM1端口输出0%脉宽的方波
        //CCAP0L=0x80;
        CH=0;
        CL=0;
        CR=1;                                     //PCA定时器启动运行
    CCAPM1=0x42;                  //设CCAPM0寄存器为8位PWM模式
        //CCAPM0=0x00;//关?????

        //P1_3=0;//关IO       

        P1M0=0x18;
        P1M1=0x01;                          //设P1.4为PWM输出口
}

/*void init_ad()
{
        P1ASF=0x01;//将p1.0置为A/D口
        ADC_CONTR=
}*/


#define MID 11
uchar AD(uchar n)
{
        uchar i,j;
        uint temp16;
        uint arry[MID];
        for(i=0;i<MID;i++)
        {
                ADC_CONTR=0xe8+n;//设p1为电池电压采集口
                while((ADC_CONTR&0x10)!=0x10);//等待A/D转换结束
                arry= ADC_RES;
                delay(2);
        }

        for(j=0;j<MID-1;j++)
         for(i=0;i<MID-j-1;i++)
         {
                 if(arry<arry[i+1])
                {
                        temp16 = arry[i+1];
                        arry[i+1] = arry;
                        arry = temp16;
                }
         }

        temp16= (arry[MID/2-1]+arry[MID/2]+arry[MID/2+1])/3;

        return temp16;        //把A/D转换结果寄存器附给
}



void dy()
{
       

        if(AD(AD_dy)<194)
        {
                if(CCAP1H>128)
                        CCAP1H--;
        }
        else if(AD(AD_dy)>194)
        {
                if(CCAP1H<254)
                CCAP1H++;       
        }
        delay(10);

}

void delay(uchar z)
{
        uchar x,y;
        for(x=z;x>0;x--)
                for(y=120;y>0;y--);
}
升压.png
升压pcb.png

评分

参与人数 1经验 +20 收起 理由
ahao + 20 赞一个!

查看全部评分

17

主题

0

好友

64

积分
     

论坛游民 当前离线

Rank: 3Rank: 3

UID
529058
帖子
211
精华
0
经验
64 点
金钱
46 ¥
注册时间
2012-9-17
发表于 2013-10-10 14:24 | 显示全部楼层
羡慕。。。。。。。

424

主题

3

好友

1万

积分
     

超级版主 当前离线

Rank: 8Rank: 8

UID
13663
帖子
13726
精华
6
经验
10608 点
金钱
8449 ¥
注册时间
2006-10-21

论坛版主 优秀版主 乐于助人 DIY大赛获奖

发表于 2013-10-10 15:02 | 显示全部楼层
不错,单片机AD、pwm功能都巧妙的用上了。学习了。

28

主题

0

好友

179

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
76359
帖子
579
精华
0
经验
179 点
金钱
167 ¥
注册时间
2009-1-22
发表于 2013-10-10 16:43 | 显示全部楼层
很强大,羡慕会编程的

49

主题

0

好友

2134

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
17894
帖子
5668
精华
0
经验
2134 点
金钱
2017 ¥
注册时间
2007-1-23
发表于 2013-10-10 23:03 | 显示全部楼层
真不错啊 学习了!

32

主题

4

好友

1926

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
114497
帖子
1713
精华
0
经验
1926 点
金钱
1713 ¥
注册时间
2009-6-27
发表于 2013-10-11 00:36 | 显示全部楼层
楼主,这个 用在哪里阿,另外,原理图没有看清楚,那个SOP8的是什么电路?

38

主题

0

好友

341

积分

业余侠客 当前离线

Rank: 4

UID
30960
帖子
240
精华
0
经验
341 点
金钱
267 ¥
注册时间
2007-11-23
 楼主| 发表于 2013-10-11 00:46 | 显示全部楼层
本帖最后由 jl48q-5 于 2013-10-11 00:49 编辑
别时方觉依依 发表于 2013-10-11 00:36
楼主,这个 用在哪里阿,另外,原理图没有看清楚,那个SOP8的是什么电路?


用在X射线检测电路, sop8是低开启电压VMOS管

8

主题

0

好友

197

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
9958
帖子
163
精华
0
经验
197 点
金钱
143 ¥
注册时间
2006-6-7
发表于 2013-10-11 03:48 | 显示全部楼层
帮我做个2个AA电池升到5V 500mA的升压电路!!

1

主题

0

好友

34

积分

注册会员 当前离线

Rank: 2

UID
565891
帖子
35
精华
0
经验
34 点
金钱
32 ¥
注册时间
2013-2-16
发表于 2013-10-11 08:44 | 显示全部楼层
懂单片机就是好

38

主题

0

好友

341

积分

业余侠客 当前离线

Rank: 4

UID
30960
帖子
240
精华
0
经验
341 点
金钱
267 ¥
注册时间
2007-11-23
 楼主| 发表于 2013-10-11 09:40 | 显示全部楼层
zzqasim 发表于 2013-10-11 08:44
懂单片机就是好


懂单片机的好处是,以前想做而没法做的或难做的电路,现在做起来要轻松很多,因为可以用人的思想去控制模拟电路了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部