应广单片机授权代理商深圳市艾拓微电子科技有限公司
//PMC150C 引脚定义
//================================================================================
// VDD |1 8| GND
// PA7 |2 7| PA0
// PA6 |3 6| PA4/PWM
// PA5/PRST# |4 5| PA3/PWM
//================================================================================
#include "extern.h"
#pragma disable check_lvd
.ramadr 0 //地址定义为0
word gw_Point;
.ramadr system //以后变量地址由系统自行决定
word gw_T16Cnt;
word gw_Cnt;
byte gb_Flag;
bit b_T16_1ms : gb_Flag.0 //1MS
bit b_1S_F : gb_Flag.1 //1S
byte gb_KeyDebounce;
byte gb_KeyNew;
byte gb_KeyOld;
byte gb_KeyValue;
D_KEYPORT equ 0b_0000_0001
D_KEY1 equ 0b_0000_0001
D_KeyBounce equ 30*1000/1024 //30ms
//================================================================================
//
//--------------------------------------------------------------------------------
void Test_DirectScanKey(void)
{
if(b_T16_1ms)
{
b_T16_1ms = 0;
a = pa & D_KEYPORT;
a ^= D_KEYPORT;
if(gb_KeyNew == a)
{//读到值相同值,Debouce
if(--gb_KeyDebounce == 0)
{//Debounce结束
if(gb_KeyOld != gb_KeyNew)
{
gb_KeyValue = gb_KeyNew;
gb_KeyOld = gb_KeyNew;
}
}
}
else
{
gb_KeyNew = a;
gb_KeyDebounce = D_KeyBounce;
}
}
}
void Test_KeyProcess(void)
{
//处理Key1
if(gb_KeyValue == D_KEY1)
{
gb_KeyValue = 0;
//pa3 电平翻转
a = pa;
a ^= 0x08;
pa = a;
}
}
//================================================================================
//TABLE
//--------------------------------------------------------------------------------
void Pr0_Skip(void)
{
pcadd a; //a = 1~n,a值等于0时不能跳出pcadd循环
{
ret 0xaa;
ret 0xbb;
ret 0xcc;
ret 0xdd;
ret 0xee;
}
}
//================================================================================
void FPPA0(void)
{
.ADJUST_IC SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
pac = 0b_1111_1110; //pa0 pull high
pa = 0b_0000_0000;
paph = 0b_0000_0001;
$ padier 0b_1111_1001;
//------------------------------------------------------------
//清除RAM
gw_Point = _SYS(RAM_SIZE)-1;
a = 0;
do
{
gw_Point = a;
}while(--gw_Point$0);
//------------------------------------------------------------
//定时1MS
gw_Point = 1024 - 1000;
stt16 gw_T16Cnt;
$ t16m SYSCLK,/4,bit10;
intrq = 0;
inten.2 = 1;
engint;
//------------------------------------------------------------
//从ROM中取数据
a = 0x02;
Pr0_Skip();
//------------------------------------------------------------
while (1)
{
.wdreset;
Test_DirectScanKey();
Test_KeyProcess();
}
}
//================================================================================
void Interrupt(void)
{
pushaf;
if(intrq.t16) //1MS
{
intrq.t16 = 0;
stt16 gw_T16Cnt;
//test IO
a = pa;
a ^= 0x80;
pa = a;
b_T16_1ms = 1;
gw_Cnt++;
if(gw_Cnt > 999)
{//1S计数
gw_Cnt = 0;
b_1S_F = 1;
}
}
popaf;
}
//================================================================================

应广单片机 MCU芯片PMS150C SOP8/SOT23-6 应广代理商 单片机开发价格,应广单片机 MCU.深圳市艾拓微电子科技有限公司价格低

PMS150C 价格0.1X,价格实在,深圳市艾拓微电子科技有限公司
◆◆ PMS150C ◆◆
◆ 通用 OTP 系列
◆ 不建議使用於AC 阻容降壓供電或有高要求之應用
◆ 工作溫度範圍: -20°C ~ 70°C
Feature
Documents
Software &Tools
Application Note
系統特性
1. 1KW OTP 程序儲存器
2. 60 Bytes 數據儲存器
3. 一個16位計時器
4. 快速喚醒功能
5. 內建高頻 RC 振盪器(IHRC)
6. 內建Band-gap 硬體模組輸出 1.20V 參考電壓
7. 6 個IO 引腳具有10mA 電流驅動能力
8. 操作頻率範圍: 0 ~ 8MHz@VDD≧3.3V; 0 ~ 4MHz@VDD≧2.5V; 0 ~ 2MHz@VDD≧2.2V
9. 操作電壓範圍: 2.2V ~ 5.5V
10. 時鐘源:內部高頻震盪器,內部低頻震盪器
11. 每個IO 引腳都可設定喚醒功能
12. 8 段LVR 復位設定: 4.1V, 3.6V, 3.1V, 2.8V, 2.5V, 2.2V, 2.0V, 1.8V
13. 1 個外部中斷引腳
CPU 特性
1. 單一處理單元工作模式
2. 提供79 個有效指令
3. 1T(單周期)指令
4. 可程序設定的堆疊指針和堆疊深度
5. 數據存取支援直接和間接尋址模式,用數據存儲器即可當作間接尋址模式的數據指針(index pointer)
6. IO 地址以及儲存地址空間互相獨立

应广发布 PMS150C 8脚纯IO 低价IC_Raker_Padauk应广代理
http://atw2014.cn.b2b168.com