使用STC8G1K08单片机的P3.0口对15V电池电压进行采样,在使用P3.0口进行采样时,需要加一个我之前发的分压滤波电路,实现功能为当采样到的电压小于10V时,LED灯进行闪烁,当采样到的电压小于8V时,LED灯闪烁频率变高。
#include “reg51.h”
#include “intrins.h”
//sfr ADC_CONTR = 0xb8;
//sfr ADC_RES = 0xbd;
//sfr ADC_RESL = 0xbe;
//sfr ADCCFG = 0xFE;
sfr ADC_CONTR = 0xbc;
sfr ADC_RES = 0xbd;
sfr ADC_RESL = 0xbe;
sfr ADCCFG = 0xde;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P1M1=0x91;
sfr P1M0=0x92;
#define A P1
int X;
sbit beep=P1^1;
sbit led = P1^3;
typedef unsigned int u16;
void delay(u16 i)
{
while(i–);
}
void main()
{
P1M1 = 0x00;
P1M0 = 0x00;
A=0;
P3M0 = 0x00; // 设置 P3.0 为 ADC 口
P3M1 = 0x01;// 设置 P3.0 为 ADC 口
ADCCFG = 0x0F; // 设置 ADC 时钟为系统时钟 /2/16 ,结果左对齐
ADC_CONTR = 0x8