应广单片机跃龙PFC161基于MINI-C的应广单片机编程测试代码,7触摸键8位MTP类型单片机PA5的2MS脉冲波

整理编辑:逐高电子技术开发部 / 日期:2024-4-9

微控制器 PADAUK PFC161 控制LED灯发光一个项目演示

应广单片机跃龙PFC161基于MINI-C的应广单片机编程测试代码,7触摸键8位MTP类型单片机PA5的2MS脉冲波

包含一个1MS定时器与1个PA6输入按键反转PA4输出,以及PA5的2MS脉冲波,PA3的1秒反转信号

高抗干扰(High EFT)SOT23-6 SOP8A SOP8B系列
特别适用于 AC 电源供电的、阻容降压电路的、需要较强抗干扰能力的,
或有高 EFT 安规测试要求(±4KV)的产品
工作温度范围:-40°C ~ 85°C ESD > 8 KV

 

 

系统特性
1. 2KW MTP 程序储存器 (可编程1,000次以上)
2. 128 Bytes 数据储存器
3. 最大7 IO引脚可选择为触摸按键
4. 一个16位定时器
5. 两个8位定时器可产生6/7/8-bit PWM波形
6. 提供一个比较器
7. 最大8 IO引脚带可选择的上拉/下拉电阻
8. 每个IO 引脚都可设定唤醒功能
9. Bandgap电路提供1.20V参考电压
10. 时钟源:IHRC、ILRC和EOSC (XTAL)
11. 8 级可选择的LVR(Low Voltage Reset)复位电压从1.8V到4.5V
12. 16 级可选择的LVD (Low Voltage Detect)检测电压从1.8V到4.5V
13. 三个可选择的外部中断引脚
   
CPU 特性
1. 8位高性能精简指令集CPU
2. 提供86 个有效指令
3. 大部分指令都是单周期(1T)指令
4. 可程序设定的堆栈指针和堆栈深度
5. 数据存取支持直接和间接寻址模式
6. 用数据存储器即可当作间接寻址模式的数据指针(index pointer)
7. 寄存器地址空间、数据存储空间、MTP程序空间三者互相独立

引脚分配及功能说明

PFC161-EY10 (ESSOP10-150mil

 

系统寄存器

  +0 +1 +2 +3 +4 +5 +6 +7
0x00 FLAG = SP CLKMD INTEN INTRQ T16M
0x08 MISC = EOSCR   INTEGS PADIER PBDIER
0x10 PA PAC PAPH PAPL PB PBC PRPH PBPL
0×18 GPCC GPCS   TM2C TM2CT TM2S TM2B
0x20 TS TCC TKE²   TKE1      
0x28 TPS2   TKCH TKCL LVDC    
0x30     TM3C TM3CT TM3S TM3B    

 

FLAG:标志寄存器
SP:堆栈指针寄存器
CLKMD:时钟控制寄存器
EOSCR:外部晶体振荡器控制寄存器
INTEN:中断允许寄存器
INTRQ:中断请求寄存器
INTEGS:中断缘选择寄存器
MISC:杂项寄存器
PA:端口 A 数据寄存器
PAC:端口 A 控制寄存器
PAPH:端口 A 上拉控制寄存器
PAPL:端口 A 下拉控制寄存器
PADIER:端口 A 数字输入启用寄存器
PB:端口 B 数据寄存器
PBC:端口 B 控制寄存器
PBPH:端口 B 上拉控制寄存器
PBPL:端口 B 下拉控制寄存器
PBDIER:端口 B 数字输入启用寄存器
GPCC:比较器控制寄存器
GPCS:比较器选择寄存器
T16M:Timer16 控制寄存器
TM2C / TM3C:Timer2 / Timer3 控制寄存器
TM2CT / TM3CT:Timer2 / Timer3 计数寄存器
TM2S / TM3S:Timer2 / Timer3 分频寄存器
TM2B / TM3B:Timer2 / Timer3 上限寄存器
TS:触摸选项寄存器
TCC:触摸充电控制寄存器
TKE1 / TKE2:触摸按键使能寄存器
TKCH / TKCL:触摸按键充电计数高/低位寄存器
LVDC:低电压检测寄存器
TPS2:触摸参数设置寄存器

 

应广单片机跃龙PFC161基于MINI-C的应广单片机编程测试代码,包含一个1MS定时器与1个PA6输入按键反转PA4输出,以及PA5的2MS脉冲波,PA3的1秒反转信号

 

#include "extern.h"
//================================================================================
.ramadr 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;
//------------------------------------------------------------
//LED equ PA.3 // 设置PA3为LED输出
//PON equ PA.4 // 设置PA4为电源控制
//PWM equ PA.5 // 设置PA5为PWM输出
//KEY equ PA.6 // 设置PA6为按钮控制
D_KEYPORT equ 0b_0100_0000 // PA6 按键
D_KEY1 equ 0b_0100_0000 // PA6 按键
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;
//pa4 电平翻转
a = pa;a ^= 0x10;pa = a;
}
}
//================================================================================
void FPPA0(void)
{
.ADJUST_IC SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
clkmd.En_WatchDog = 1; // WatchDog Enable
// Insert Initial Code
//注:无PA.1,PA.2脚位
//未使用端口需有防漏电设置,如加内部上拉
PAPH = 0b0100_0000; //上拉控制寄存器,控制上拉高相应的引脚(1:启用,0:停用
PAPL = 0b0000_0000; //下拉控制寄存器,控制下拉高相应的引脚(1:启用,0:停用)
PAC = 0b1011_1001; //数据控制寄存器(1:输出模式,0:输入模式)
PA = 0b0000_0000; //数据寄存器
.delay 4000;
//------------------------------------------------------------
//清除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;
//------------------------------------------------------------
while (1)
{
// ...
if(b_1S_F)
{
b_1S_F = 0;
//PA3 反转
a = pa; a ^= 0x08;pa = a;
}
Test_DirectScanKey();
Test_KeyProcess();
.wdreset;
}
}
//================================================================================
void Interrupt (void)
{
pushaf;
if (Intrq.T16)
{ // T16 Trig
// User can add code
Intrq.T16 = 0;
//...
stt16 gw_T16Cnt;

//pa5 电平翻转
a = pa;a ^= 0x20;pa = a;

b_T16_1ms = 1;
gw_Cnt++;
if(gw_Cnt > 999)
{//1S计数
gw_Cnt = 0;
b_1S_F = 1;
}
}
popaf;
}

 

应广单片机产品应用领域

玩具类:
RF/IR遥控直升飞机,遥控车,PS游戏机,儿童智能玩具,动物语音玩具,游戏方向盘,儿童学习机等

家电类:
电磁炉、电炒锅、电饭煲、热水壶,健康秤、冰箱控制系统、遥控器、电风扇、洗衣机控制模块、消毒柜、智能家居系统,遥控灯具等

电子消费类:
电子万年历、温度湿度计、跑步计速器、按摩器、数码复读录音、笔电子礼品、电子密码锁,镍氢,锂电池充电器,超声波测距,防盗报警器,灯饰控制,舵机

其它:
智能温湿度记录仪、智能温控器、计时器、计数器、电机调速控制器、鼠标、键盘、移动存贮盘

应广单片机技术资料

  • 台湾应广单片机官网
  • 应广单片机例程
  • 应广单片机编程指南
  • 应广单片机定时器
  • 技术开发工具
  • 应广单片机IDE&仿真器
  • 应广单片机烧录器
  • 代码生成器
应广单片机开发中的PMC-APN007 LVR设置全解析:如何避免低电压误触发与系统崩溃,单片机电源管理必看!PMC/PMS系列LVR电压阈值配置技巧

应广单片机开发中的PMC-APN007 LVR设置全解析:如何避免低电压误触发与系统崩溃,单片机电源管理必看!PMC/PMS系列LVR电压阈值配置技巧


应广单片机Padauk PFS154微控制器汇编程序使用指南,极简嵌入式编程教程,低成本单片机开发方案,Paduak汇编工具链配置,这是一款专为Padauk PFS154微控制器设计的轻量级汇编开发工具,SRAM变量声明语法

应广单片机Padauk PFS154微控制器汇编程序使用指南,极简嵌入式编程教程,低成本单片机开发方案,Paduak汇编工具链配置,这是一款专为Padauk PFS154微控制器设计的轻量级汇编开发工具,SRAM变量声明语法


如何解决芯片烧录良率下降,应广科技单片机PMC-APN022芯片烧录接线指南–在 PA5 引脚串联电阻,针对部分芯片在半自动机台烧录时可能受杂讯干扰导致烧录良率下降或引脚击穿的问题,PMS150G-100R烧录转接板

如何解决芯片烧录良率下降,应广科技单片机PMC-APN022芯片烧录接线指南–在 PA5 引脚串联电阻,针对部分芯片在半自动机台烧录时可能受杂讯干扰导致烧录良率下降或引脚击穿的问题,PMS150G-100R烧录转接板


应广科技官网公布PMS152E 和 PMS152/PGS152 主要差异表PMS152E,8 位 OTP IO 类型单片机的V2.0版PDF开发文档,在使用 IC 前,请务必认真阅读 PMS152E 相关的 APN,不建议使用于 AC 阻容降压供电或有高 EFT 要求的应用

应广科技官网公布PMS152E 和 PMS152/PGS152 主要差异表PMS152E,8 位 OTP IO 类型单片机的V2.0版PDF开发文档,在使用 IC 前,请务必认真阅读 PMS152E 相关的 APN,不建议使用于 AC 阻容降压供电或有高 EFT 要求的应用


应广科技(padauk)PMC-APN022芯片烧录接线指南–在 PA5 引脚串联电阻,适用硬件烧录器型号PDK5S-P-003 / PDK5S-P-003B / PDK5S-P-003B2 / PDK5S-P-003C

应广科技(padauk)PMC-APN022芯片烧录接线指南–在 PA5 引脚串联电阻,适用硬件烧录器型号PDK5S-P-003 / PDK5S-P-003B / PDK5S-P-003B2 / PDK5S-P-003C


应广单片机(PADAUK)开发应用案例中常见问题的解答,涵盖开发环境、硬件设计、编程调试等方面的问题,适用于消费电子、家电控制、工业控制等场景

应广单片机(PADAUK)开发应用案例中常见问题的解答,涵盖开发环境、硬件设计、编程调试等方面的问题,适用于消费电子、家电控制、工业控制等场景


应广单片机电池电量显示选型,推荐PMS132B,PFS122,ADC采样/电压分段/动态校准/低功耗设计,适配电压范围:2.75V - 4.2V,多通道ADC轮询采集,实现深度休眠场景下μA级的超低功耗表现

应广单片机电池电量显示选型,推荐PMS132B,PFS122,ADC采样/电压分段/动态校准/低功耗设计,适配电压范围:2.75V - 4.2V,多通道ADC轮询采集,实现深度休眠场景下μA级的超低功耗表现


应广单片机开发简易音乐播放器电路程序代码案例,定义8255控制引脚,要实现音乐播放、按键控制以及显示功能控制多个音频播放通道

应广单片机开发简易音乐播放器电路程序代码案例,定义8255控制引脚,要实现音乐播放、按键控制以及显示功能控制多个音频播放通道


应广单片机中断优化策略与实战技巧,如外部中断、定时器中断、串口中断等首先,软件判断中断源的速度要快,可能用位操作或者查表法。其次,减少中断服务函数的执行时间

应广单片机中断优化策略与实战技巧,如外部中断、定时器中断、串口中断等首先,软件判断中断源的速度要快,可能用位操作或者查表法。其次,减少中断服务函数的执行时间


应广单片机(PADAUK) MINI-C 编程指南初级(系列1),台湾科技的 MINI-C 编译器基本上是构建于 ANSI C,MINI-C的语法结构、程序控制语句、函数处理

应广单片机(PADAUK) MINI-C 编程指南初级(系列1),台湾科技的 MINI-C 编译器基本上是构建于 ANSI C,MINI-C的语法结构、程序控制语句、函数处理


应广单片机(mcu)性能特点与在AI应用中的潜力与挑战,低功耗场景的竞争力在智能家居、可穿戴设备等对功耗敏感的场景中

应广单片机(mcu)性能特点与在AI应用中的潜力与挑战,低功耗场景的竞争力在智能家居、可穿戴设备等对功耗敏感的场景中


应广单片机芯片(MCU)的PMS150C-U06 进行编程闪光器, 应广科技(Padauk)的真实且仅有3分钱的开发的控制器,PMS150C 与 PFS154 高度兼容,但只能编程一次(OTP,一次性可编程)

应广单片机芯片(MCU)的PMS150C-U06 进行编程闪光器, 应广科技(Padauk)的真实且仅有3分钱的开发的控制器,PMS150C 与 PFS154 高度兼容,但只能编程一次(OTP,一次性可编程)


网友博客热帖:如果你喜欢使用廉价物美的微控制器,应广单片机(Padauk MCU)系列无疑将是您的最佳选择,它们拥有最强大的架构、包括闪存选项在内的广泛设备、良好的文档以及唯一具有开源工具链的产品线

网友博客热帖:如果你喜欢使用廉价物美的微控制器,应广单片机(Padauk MCU)系列无疑将是您的最佳选择,它们拥有最强大的架构、包括闪存选项在内的广泛设备、良好的文档以及唯一具有开源工具链的产品线


应广单片机MCU的LED蜡烛发光案例, PFS154和PMS150C中的一个PWM来控制 LED 的亮度,使用一种算法生成偏向最大亮度的随机数分布

应广单片机MCU的LED蜡烛发光案例, PFS154和PMS150C中的一个PWM来控制 LED 的亮度,使用一种算法生成偏向最大亮度的随机数分布


应广单片机PMC-APN021充电 MCU 设计使用需知,适用芯片:PMB180/PMB182/PMB183/YMB1801/YMB1805,为避免 Vbat 电压逆流至 Vcc 引脚进而产生漏电现象

应广单片机PMC-APN021充电 MCU 设计使用需知,适用芯片:PMB180/PMB182/PMB183/YMB1801/YMB1805,为避免 Vbat 电压逆流至 Vcc 引脚进而产生漏电现象


开发实力

专业资深的软硬件开发工程师团队,熟悉行业客户产品硬件技术平台解决方案

全球渠道

为客户提供高性价比的产品和服务,满足客户及时快速的电子生产制造需求

品质保证

专业的测试保证团队,保证每批方案的稳定性,兼容性,和抗干扰性

售后服务

专业的技术服务团队,24小时为客户提供各种软硬件的技术支持和售后服务

服务热线

0755-88364040
18902464556

义隆代理

烧录开发

技术支持

申请样品

扫描微信二维码