一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 26845|回复: 67
收起左侧

T12疯狂控制器

  [复制链接]
发表于 2011-11-8 15:04 | 显示全部楼层 |阅读模式
本帖最后由 liwenjiefa 于 2011-11-8 15:12 编辑

T12疯狂控制器

图片 013.jpg

图片 009.jpg

图片 010.jpg

图片 008.jpg

图片 011.jpg


图片 018.jpg


/*;*******************************************************************************
;程序名称:main().
;功能    :主体涵数
;修改日期:2011.05.15
;*********************************************************************************/
void  main(void)
{
    uchar   p;
    BG_OFF;                 //关闭烙铁
    T12read();              //读以前设置的EEPROM的温度数据
    Init_1302();            //时钟芯片初始化
LCD_ST7565_INIT();      //LCD初始化,必须的。
    LCM_PutPicture(0x0000); //显示QQ图片
DELAY_MS(3000);   //显示停留
LCD_DisplayReserve_Driver=1;  //反白显示
LCM_PutPicture(0x1A00);       //显示白光控制器
DELAY_MS(3000);      //显示停留
LCD_DisplayReserve_Driver=0;  //不要反白
    display_fill(0x00,0);         //清屏全屏(送00)
    Timer_init();                 //定时器和中断的初始化
    AUXR=0XC0;                    //加速度两个定时器,1T工作模式
    /***********AUXR = 0x80;
              1000 0000
              |||| ||++-保留
              |||| |+---低电压中断允许:0=禁止,1=允许,5V..3.7V,3V..2.4V以下
              |||| +----SPI中断允许位:0=禁止,1=允许
              |||+------ADC中断允许位:0=禁止,1=允许
              ||+-------串口模式0时时钟设定:0=传统1/12, 1=1/2 2分频;
              |+--------定时器ct1时钟源设定:0=传统1/12,1=1:1不分频;
              +---------定时器ct0时钟源设定:0=传统1/12,1=1:1不分频;
    ***************************************************************************/
//   CMOD = 0x03;            /* 内部时钟,Fosc/2, PCA计数溢出中断使能*/
    /* 0000 0011 PCA 模式寄存器
       |||| |||+--ECF...PCA计数溢出中断使能:ECF=1时,使能寄存器CCON CF位的
       |||| |||         中断。ECF=0时,禁止该功能。
       |||| |++---CPS1,CPS0 选择PCA 时钟源输入(PCA计数脉冲选择)
       |||| |       0   0       0,内部时钟,Fosc/12
       |||| |       0   1       1,内部时钟,Fosc/2
       |||| |       1   0       2,定时器0溢出,由于定时器0可以工作在1T方式,
       |||| |                     所以可以达到计一个时钟就溢出, 频率反而
       |||| |                     是最高的,可达到Fosc
       |||| |       1   1       3,ECI/P3.4脚的外部时钟输入(最大速率=Fosc/2)
       |+++-+-----保留
       +----------CIDL...计数器阵列空闲控制:CIDL=0时,空闲模式下PCA计数器
                         继续工作。CIDL=1时,空闲模式下PCA计数器停止工作。        */
    while(1)
    {
        if(menu==0||menu==1)
        {
            Get_NtcTemper();   //读取NTC热敏的温度
            PlayingLCD_Time(); //时钟和调整显示
            if(Luotie)         //判断开关是否打开
            {
                chabiao();              //读T12的温度
                HootDianreshiworking(); //恒温控制
            }      
            else              //如果关闭
            {
                BG_OFF;        //关闭输出
            }
        }
//**********************************************************************************
        if(menu==20)
        {
            Get_NtcTemper();  //读取NTC热敏的温度
            PlayingLCD_T12(); //LCD显示
            chabiao();        //读T12的温度
            if(Luotie)
            {
                HootDianreshiworking();    //恒温控制
            }
            else
            {
                BG_OFF;    //关闭输出
            }
            if(adj==4)   //当是正常状态时就进入调时状态
            {
                Keyint(3);
            }
//-----------------------------------------------------------
            //设置温度减
            if(adj==2)
            {
                Keyint(1);
                SETtemp--;
                SETtemp-=10;  //以10度步减
                if(SETtemp<50)          //不低于50C
                {
                    SETtemp=600;    //600度
                }
            }
            //设置温度减
            if(adj==3)
            {
                Keyint(1);
                SETtemp++;
                SETtemp+=10; //以10度步进
                if(SETtemp>600)        //不超过500C
                {
                    SETtemp=50;    //50C
                }
            }
            if(adj==1)
            {
                Keyint(3);
                T12Writ();               //温度数据写入储存区
                T12read  () ;            //读取一边写入的数据
                for(p=0; p<180; p++)
                {
                    PlayingLCD_SAVE();
                }
                menu=20;              //进入T12
                display_fill(0x00,0);    //清屏全屏(送00)
            }
        }
//*********************************************************************
//*********************************************************************
        // 设置时间
        if(adj==1 && menu == 0)   //当是正常状态时就进入调时状态
        {
            Keyint(3);
            menu=1;              //进入调时
        }
        //直接进入T12的控制界面
        if(adj==4&&menu==0)       //当是正常状态时就进入调时状态
        {
            Keyint(3);
            menu=20;              //进入T12
        }
//***********************************************************************
//***********************************************************************
        //调整时间时4个按键的操作
        if(menu==1)
        {
            if(adj==1)   //当是调时状态 本键用于调整下一项
            {
                Keyint(2);
                e++;      //调整项目加1
                if (e >= 6 )
                {
                    e = 0;    //年,月,日,时,分,秒七个项目切换
                }
            }
            //------------------------------------------------------------------
            // 当在调时状态时就退出调时
            if(adj==4)
            {
                Keyint(3);
            }
            //------------------------------------------------------------------
            if(adj==2)
            {
                Keyint(0);      //按键音
                Set_time(e,0);  //调整时间加键
            }
            if(adj==3)
            {
                Keyint(0);       //按键音
                Set_time(e,0);   //调整时间减键
            }
        }
//******************************************************************************
        /*******************************************************************************/
//=======直接开烙铁====================
        if(adj==5)
        { display_fill(0x00,0);    //清屏全屏(送00)
  // Beep_key();              //按键音
            adj=0;                   //复位按键
            Luotie=~ Luotie;         //烙铁开关控制
   if(Luotie)
         LCM_PutPicture(0x1A00);
   else
   LCM_PutPicture(0x0000);
         DELAY_MS(3000);
   display_fill(0x00,0);    //清屏全屏(送00)
            for(p=0; p<180; p++)     //显示操作信息
            {
                PlayingLCD_OPC(); //显示开或关的状态
            }   
            display_fill(0x00,0);    //清屏全屏(送00)
        }
//=======================================
        Time_TO_Buff();         //时钟处理总成刷新数据
    }
}
图片 007.jpg
图片 012.jpg
图片 014.jpg
图片 016.jpg
图片 017.jpg
图片 020.jpg
图片 020.jpg

评分

参与人数 4一乐金币 +85 收起 理由
conjim + 5 优秀原创作品!
fujiachun + 20
yleee + 20
fat + 40 原创作品,感谢分享

查看全部评分

发表于 2011-11-8 15:29 | 显示全部楼层
期待楼主的详细资料
发表于 2011-11-8 15:34 | 显示全部楼层
期待详细资料
发表于 2011-11-8 15:39 | 显示全部楼层
PID调节吗?
发表于 2011-11-8 16:18 | 显示全部楼层
这个很要命!
发表于 2011-11-8 16:51 | 显示全部楼层
期待详细资料
发表于 2011-11-8 18:06 | 显示全部楼层
又将是一个精华帖!@
发表于 2011-11-8 18:49 | 显示全部楼层
等待资料, 准备仿制
发表于 2011-11-8 19:01 | 显示全部楼层
等待资料, 准备仿制
发表于 2011-11-8 20:14 | 显示全部楼层
等待资料, 准备仿制
mdy-5153 发表于 2011-11-8 19:01 https://www.yleee.com.cn/images/common/back.gif



    我也一样

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-25 18:10 , Processed in 0.069219 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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