38

主题

0

好友

341

积分

业余侠客 当前离线

Rank: 4

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

做了一套恒温烙铁电路

#include<stc12c5620ad.h>
#define uchar unsigned char
#define uint unsigned int

sbit k_z=P2^5;   //定义控制端口

#define tw 1         //调温基准电压检测口P1.1         
#define ad 0  //温度电压检测口P1.0

void delay(uint z);        //声明延时
void init_PWM();        //pwm初始化
void init_Timer1();//定时器1初始化
void Jian_zhe();   //检测温度
uchar AD(uchar n);

uint time;
bit flg;

void main()
{       
        P1M0=0x03;           //0000 0011     设置P1.0  P1.1为A/D口
        P1M1=0x00;           //0000 0000

        init_PWM();           //pwm初始化
        init_Timer1(); //定时器1初始化
       
        k_z=0;

        while(1)
        {
           Jian_zhe();   //检测温度
        }
}

void Jian_zhe()   //检测温度
{
        flg=0;
        time=0;
        while(k_z==0) //当控制端为 0
        {
                flg=1;          //开始计数
                if(time==100)//到100毫秒
                {
                        flg=0;          //停止计数
                        time=0;          //时间清零
                        if(AD(ad)>AD(tw)) //采集电压值大于设定基准电压值
                        {
                                k_z=1;//控制端为 1       
                        }
                        else
                                k_z=0;
                }       
        }

        while(k_z)         //当控制端为 1
        {
                flg=1;         //开始计数
                if(time==2000) //计到2000毫秒(2秒)
                {
                        flg=0;           //停止计数
                        time=0;           //时间清零
                        k_z=0;           //控制端置 0
                }
        }
}

uchar AD(uchar n)
{
        ADC_CONTR=0xe8+n;      //设p1为电压采集口
        delay(20);
        while((ADC_CONTR&0x10)!=0x10);//等待A/D转换结束
        delay(20);
        return ADC_DATA;          //把A/D转换结果寄存器附给AD()
}

void init_Timer1()        //定时器1初始化
{
        TH1=(65536-1000)/256; //定时1毫秒
        TL1=(65536-1000)%256;
        TR1=1;
        ET1=1;
        EA=1;
}

void Timer1() interrupt 3 //定时器1中断模式3                 1mS
{
        TH1=(65536-1000)/256;
        TL1=(65536-1000)%256;
        TR1=1;           
        if(flg==1)
                time++;           //计数值加一
}

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
       
       
        CCAP0H=0x80;                  //设PWM1端口输出50%脉宽的方波
        CH=0;
        CL=0;
        CR=1;                                  //PCA定时器启动运行
    CCAPM0=0x42;                  //设CCAPM0寄存器为8位PWM模式
        P3M0=0;
        P3M1=0x80;                    //设P3.5,P3.7口位pwm输出
}

void delay(uint z)
{
        int x,y;
        for(x=z;x>0;x--)
                for(y=120;y>0;y--);
}




截图01.jpg
截图00.jpg

9

主题

0

好友

913

积分
     

职业侠客 当前离线

Rank: 5Rank: 5

UID
165795
帖子
1688
精华
0
经验
913 点
金钱
912 ¥
注册时间
2010-1-18
发表于 2013-9-3 21:43 | 显示全部楼层
楼主好心人啊!发自内心的支持哈!

11

主题

0

好友

230

积分

业余侠客 当前离线

Rank: 4

UID
563528
帖子
247
精华
0
经验
230 点
金钱
211 ¥
注册时间
2013-1-31
发表于 2013-9-3 21:55 | 显示全部楼层
楼主人太好了,很有用,有点类似威乐的,有空试试

83

主题

1

好友

136

积分
     

论坛游民 当前离线

Rank: 3Rank: 3

UID
467728
帖子
1174
精华
0
经验
136 点
金钱
51 ¥
注册时间
2012-1-27
发表于 2013-9-6 12:25 | 显示全部楼层
自己制作精神可嘉

10

主题

6

好友

207

积分

业余侠客 当前离线

Rank: 4

UID
614436
帖子
212
精华
0
经验
207 点
金钱
193 ¥
注册时间
2013-9-6
发表于 2013-9-8 19:31 | 显示全部楼层
强大,支持!

117

主题

0

好友

1194

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
270736
帖子
2604
精华
0
经验
1194 点
金钱
1174 ¥
注册时间
2010-12-11
发表于 2013-9-8 20:39 | 显示全部楼层
这个要鼎,做的不错,

4

主题

0

好友

204

积分

业余侠客 当前离线

Rank: 4

UID
6401
帖子
316
精华
0
经验
204 点
金钱
124 ¥
注册时间
2005-11-19
发表于 2013-9-9 22:22 | 显示全部楼层
啥时候弄个套件出来

2

主题

1

好友

62

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
256289
帖子
107
精华
0
经验
62 点
金钱
60 ¥
注册时间
2010-11-1
发表于 2013-9-9 22:46 | 显示全部楼层
对菜鸟有难度,套件可以考虑
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部