pms152+max6675读取温度

[复制链接]
566|0
手机看帖
扫描二维码
随时随地手机跟帖
34af9uc|  楼主 | 2021-3-24 21:38 | 显示全部楼层 |阅读模式
/****************pms152+max6675读取温度************/
/****************qq:774145445**********************/
/****************快手:共同学习stm8*****************/
/****************20210323**************************/
#include        "extern.h"
//                   pms152
//           __________@_________
//       so-|1 pb4         pb3 16|-
//       cs-|2 pb5         pb2 15|-
//      sck-|3 pb6         pb1 14|-
//          |4 pb7         pb0 13|-
//          |5 vdd         gnd 12|
//          |6 pa7         pa0 11|-
//          |7 pa6         pa4 10|
//          |8_pa5_________pa3__9|

//                  max6675
//           __________@_________
//          |1 gnd           nc 8|
//          |2 t-           so  7|-pb4
//          |3 t+           cs  6|-pb5
//          |4_vcc__________sck_5|-sck

bit                so                :pb.4;
bit                cs                :pb.5;
bit                sck                :pb.6;
word                        temp;
/**************************************************/
//void                yanshi();                //延时
void                wendu();                //温度
void        FPPA0 (void)
{
.ADJUST_IC        SYSCLK=IHRC/2                //        SYSCLK=IHRC/4
$                cs                out,high;
$                so                in;
$                sck                out,low;
while (1)
{
.delay        4000000;
wendu();

}
}

/*
void        Interrupt (void)
{
        pushaf;

        if (Intrq.T16)
        {        //        T16 Trig
                //        User can add code
                Intrq.T16        =        0;
                //...
        }

        popaf;
}
*/
/**************************************************/
void                wendu()                //温度
{
word                wendu_a1;
byte                wendu_b1;
$                cs                out,high;
$                so                in;
$                sck                out,low;
.delay                200;
cs                                =0;                        //片选
nop;
wendu_b1                =16;
while(wendu_b1--)
{
sck                        =1;
nop;
wendu_a1                <<=1;                //左移一次
if(so){wendu_a1        |=1;}
sck                        =0;
nop;

}

cs                                =1;                        //片选
nop;

wendu_a1                >>=5;
nop;
temp                        =wendu_a1;
}
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/

max6675.rar

795 Bytes

使用特权

评论回复

相关帖子

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

本版积分规则

273

主题

430

帖子

55

粉丝