/****************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;
}
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
|