#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 地址空間是用戶的程序空間。
程序存儲器結構