打印

李想测温比较器版

[复制链接]
306|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2021-2-1 09:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/********************李想测温比较器版**************/
/******************qq:774145445********************/
/*****************快手:共同学习stm8****************/
/******************20210123************************/
//                pms150g
//            _______@______
//           |1 vdd    gnd 8|-----------------------|地
//         @2|2 pa7    pa0 7|@5--dianzu100k--|      |
//         @1|3 pa6    pa4 6|@4--jiance20r---|--||--|
//           |4_pa5____pa3_5|@3--ntc100k-----|  103
/**************************************************/
/******************************************************************************/
//                          显示屏2353/188
//                            _2a_      ____
//                        | 2e   2b    |    |
//                        |  |    |    |    |
//                            -2f-      ----
//                        | 2e   2c    |    |
//                        |  |_2d_|    |____|
//                          @1 @2 @3 @4 @5
//                     ____________________________
//                    |   |led1|led2|led3|led4|led5|
//                    |_1_|_高_|_3A_|_3C_|_3E_|____|
//                    |_2_|_3B_|_高_|_2A_|_1B_|____|
//                    |_3_|_3D_|_2B_|_高_|_1A_|____|
//                    |_4_|_3F_|_2D_|_2C_|_高_|____|
//                    |_5_|_3G_|_2E_|_2F_|_2G_|_高_|
//共阳:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90//0x88,0x83,0xc6,0xa1,0x86,0x8e
//共阴:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f//0x77,0x7c,0x39,0x5e,0x79,0x71
/******************************************************************************/
#include        "extern.h"
led1                bit                pa.6;
led2                bit                pa.7;
led3                bit                pa.3;
led4                bit                pa.4;
led5                bit                pa.0;
jiance                bit                pa.4;                //检测脚
dianzu                bit                pa.0;                //标准电阻100k
ntc                        bit                pa.3;                //ntc电阻100k

bit                        led_hong;
bit                        led_lv;
byte                temp;                                        //温度

void                cewen();                                //测温
void                cewen_fangdian();                //测温放电
void                jisuan();                                //计算
void                yanshi();                                //延时
void                biao1();                                //表1(低于25度每度之间差值)

word                cewen_a1,cewen_a2,cewen_a3;
void        FPPA0 (void)
{
.ADJUST_IC        SYSCLK=IHRC/4                //        SYSCLK=IHRC/4
//$                gpcc                enable,bandgap,p_pa4;        //比较器pa.4,1.2v       
while(1)
{
cewen();
jisuan();

}

}

/**************************************************/
void                cewen()                                //测温
{
cewen_a1                =0;
cewen_a2                =0;
/**************************************************/                //1计算标准电阻充电时间25℃
cewen_fangdian();
$                led1                in;
$                led2                in;                //为了不影响测温全部设成输入
$                dianzu                in;
$                jiance                in;
$                ntc                        in;
$                gpcc                enable,bandgap,p_pa4;        //开比较器1.2v,pa.4
nop;nop;
$                dianzu                out,high;
while(!gpcc.6)
{
cewen_a1++;
//if(cewen_a1>254){return;}
}
$                gpcc                disable;                                //关比较器
/**************************************************/                //2计算ntc电阻充电时间
cewen_fangdian();
$                dianzu                in;
$                jiance                in;
$                ntc                        in;
$                gpcc                enable,bandgap,p_pa4;        //开比较器1.2v,pa.4
nop;nop;
$                ntc                out,high;
while(!gpcc.6)
{
cewen_a2++;
//if(cewen_a2>54){return;}
}
$                gpcc                disable;                                //关比较器
}
/**************************************************/
void                cewen_fangdian()                //测温放电
{
$                dianzu                out,low;
$                jiance                out,low;
$                ntc                        out,low;
yanshi();
}
/**************************************************/
void                jisuan()                                //计算
{
byte                jisuan_a1;
word        jisuan_a2;
byte                jisuan_a3;
cewen_a3                =0;
if(cewen_a1 < cewen_a2)                                                //低于25度
{
cewen_a3                =cewen_a2-cewen_a1;
led_hong                =0;
led_lv                        =1;
jisuan_a1                =0;                //查表
jisuan_a2                =0;                //临时ad值
jisuan_a3                =25;        //临时温度值
while(1)
{
jisuan_a1                ++;                //jisuan_a1不能为0
a                                =jisuan_a1;
biao1();
jisuan_a2                +=a;
jisuan_a3                --;
if(cewen_a3<jisuan_a2)
        {
        temp        =jisuan_a3;
        return;
        }
}
}

else
{
cewen_a3                =cewen_a1-cewen_a2;
led_hong                =1;
led_lv                        =0;

}
}
/**************************************************/
void                biao1()                                //表1(低于25度每度之间差值)
{
pcadd        a;                //汇编指令(a>0)代替查表
ret                14;
ret                15;
ret                15;
ret                15;
ret                17;
ret                19;
ret                19;
ret                20;
ret                21;
ret                23;
ret                23;
ret                25;
ret                27;
ret                27;
ret                29;
ret                31;
ret                33;
ret                34;
ret                36;
ret                38;
ret                41;
ret                43;
ret                45;
ret                48;
ret                50;
ret                54;
}
/**************************************************/
/**************************************************/
void                yanshi()                                //延时
{
.delay                300;
}
/**************************************************/

100kNTC.rar

14.94 KB

read_rom.rar

473 Bytes

xg02 (2).rar

2.63 KB

比较器01 (2).rar

1.43 KB

使用特权

评论回复

相关帖子

发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

301

主题

458

帖子

62

粉丝