#include “extern.h”
BIT LED_OUT : PA.6;
BIT ADC_IN : PA.0;
Word AdcCnt;
void IO_Init (void);
void Gat_Adc (void);
/*****************************************************/
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
IO_Init ();
while (1)
{
Gat_Adc ();
if(AdcCnt >= 127)//检测2.5V 2.5/5*255
{
LED_OUT = 1;
}
else
LED_OUT = 0;
.delay 4000;
}
}
void IO_Init (void)
{
$ ADC_IN in;
$ LED_OUT Out,High;
adcrgc = 0b0_000000; //ADC调节控制寄存器 使用VDD
}
/*********************************************/
void Gat_Adc (void)
{
BYTE i;
$ ADCC Enable, ADC_IN;
i = 8;
AdcCnt = 0;
while ( i-- )
{
AD_Start = 1;
.wait1 AD_Done;
AdcCnt += ADCR;
}
AdcCnt = AdcCnt >> 3; //除以8
}
系统特性
1. 1.5KW OTP 程序储存器
2. 96 Bytes 数据储存器
3. 时钟源:内部高频RC震荡器,内部低频RC震荡器和外部晶体震荡
4. Band-gap 电路提供1.2V 参考电压
5. 一个16位定时器
6. 两个8位定时器(可做为PWM产生器)
7. 提供一个比较器
8. 高达11通道8位ADC
9. 提供ADC 参考电压:外部输入,内部VDD
10. 八段LVR 复位电压设定: 4.0V, 3.5V, 3.0V, 2.75V, 2.5V, 2.2V, 2.0V, 1.8V
11. 14 个IO 引脚带有上拉电阻选项,其中两个有下拉选项
12. PB0提供NMOS开漏及PB7提供PMOS特大电流输出(典型值135mA @Vdd=5.0V)
13. 两组可选择的外部中断引脚
14. 每个IO 引脚都可设定唤醒功能
15. 对所有带有唤醒功能的IO,都支持2种可选择地唤醒速度:正常唤醒与快速唤醒
CPU 特性
1. 单一处理单元工作模式
2. 提供82 个有效指令
3. 大部分指令都是单周期(1T)指令
4. 可程序设定的堆栈指针和堆栈深度
5. 数据存取支持直接和间接寻址模式,用数据存储器即可当作间接寻址模式的数据指针(index pointer)
6. IO 地址以及储存地址空间互相独立
封装信息
PMS171B-S16: SOP16 (150mil)
PMS171B-1J16A: QFN3*3-16pin (0.5pitch)
PMS171B-S14: SOP14 (150mil)
PMS171B-M10: MSOP10 (118mil)
PMS171B-S08: SOP8 (150mil)
PMS171B-U06: SOT23-6 (60mil)
PMS171B8 位 OTP 型单片机带 8 位 ADC
timer2 硬件框图
OTP 程序存储器
OTP(一次性可编程)程序存储器用来存放要执行的程序指令。OTP 程序存储器可以储存数据,包含:数据,
表格和中断入口。复位之后,FPP0 的初始地址为 0x000 保留给系统使用,程序从 0x001 地址开始,执行 goto FPPA0
语句。中断入口是 0x010。OTP 程序存储器最后 24 个地址空间是被保留给系统使用,如:校验码,序列号等。
PMS171B 的 OTP 程序存储器容量为 1.5K x 14 位,如表 1 所示。OTP 存储器从地址 0x5E8 到 0x5FF 供系统使
用,从 0x002 到 0x00F 和从 0x011 到 0x5E7 地址空间是用户的程序空间。
程序存储器结构