/*********台湾应广单片机编程第5季ADC测温***********/
/*****************QQ774145445**********************/
/*****************快手:共同学习stm8*********************************/
/****************pms132电压表*********************/
/******************20201009************************/
/**************************************************/
// _____ _____
//5v----|_20k_|--adc--|_10k_|----0v
//
#include "extern.h"
#define bit0 0x01
ad_1 bit pa.0;
void adc();
void dianya(); //ad反推电压
word ad_1_a1;
byte dianya_a1,dianya_a2;
void FPPA0 (void)
{
//.ADJUST_IC SYSCLK=IHRC/2 // SYSCLK=IHRC/2
.ADJUST_IC SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
/**************************************************/ //ad配置
$ ad_1 in;
$ padier =~bit0; //只写寄存器
$ adcc enable,pa0;
$ adcm 12bit,/8;
$ adcrgc 2v;
.delay 4*400; //400us
ad_start =1;
while(!ad_done) {};
ad_1_a1$1 =adcrh;
ad_1_a1$0 =adcrl;
ad_1_a1 >>=4;
/**************************************************/
while (1)
{
adc();
dianya();
}
}
/**************************************************/
void adc()
{
.delay 4*400; //400us
ad_start =1;
while(!ad_done) {};
ad_1_a1$1 =adcrh;
ad_1_a1$0 =adcrl;
ad_1_a1 >>=4;
//ad_1_a1 =~ad_1_a1; //取反变增长
}
/**************************************************/
void dianya() //ad反推电压
{
dianya_a1 =0;
dianya_a2 =0;
while(ad_1_a1>685) //687 //272)
{
ad_1_a1 -=685; //-=272;
dianya_a1 ++; //电压整数
}
while(ad_1_a1>68) //27
{
ad_1_a1 -=68; //电压小数
dianya_a2 ++;
}
}
/**************************************************/
/**************************************************/ |