辉芒FT62F211实现触摸控制LED亮度

您所在的位置:网站首页 辉芒微烧录器使用方法 辉芒FT62F211实现触摸控制LED亮度

辉芒FT62F211实现触摸控制LED亮度

2024-06-19 06:12| 来源: 网络整理| 查看: 265

简单介绍一下使用的FT62F211-RB SOP8:

辉芒FT62F211是一款高性能、低功耗的8位微控制器(MCU),由辉芒科技(Holtek)公司推出。它采用了先进的CMOS工艺,具有丰富的外设和强大的功能,适用于各种嵌入式应用。

以下是辉芒FT62F211的一些主要特点和功能:

CPU核心:辉芒FT62F211采用了高性能的8位CPU核心,运行频率可达到20MHz,具有快速的指令执行能力。

存储器:该微控制器内置了4KB的闪存程序存储器,用于存储用户程序和数据。此外,还包括256字节的RAM用于数据存储。

外设:辉芒FT62F211提供了丰富的外设,包括多个定时器/计数器、PWM模块、UART串口通信接口、SPI和I2C总线接口、GPIO引脚等。这些外设可以满足各种应用的需求。

低功耗特性:辉芒FT62F211在设计上注重低功耗,具有多种省电模式和时钟管理功能,以最大程度地降低功耗并延长电池寿命。

宽电压工作范围:该微控制器支持宽电压工作范围,通常为2.4V至5.5V,适用于不同的供电条件。

外部晶振:辉芒FT62F211可以使用外部晶振或者内部RC振荡器作为时钟源,以满足不同应用的需求。

开发工具和支持:辉芒FT62F211提供了丰富的开发工具和软件支持,包括编译器、调试器、仿真器等,方便开发人员进行软硬件开发和调试。

引脚图如下:

下面是功能实现过程:

首先,打开辉芒的按键触摸工具软件 FMDTouchTool,配置按键并下载;

 

 下载完成后点击左上角进入调试界面;

先调试不触摸,再调试触摸灵敏度;

 

 最后可以进行效果验证,触摸按键查看波形。最后生成应用代码。

 

 在生成代码的基础上添加如下代码:(开发环境:FMDIDE)

#define Brightness0_H 0 //亮度等级0 全灭 #define Brightness0_L 0 #define Brightness1_H 0 //亮度等级1 半亮 #define Brightness1_L 125 #define Brightness2_H 1 //亮度等级2 全亮 #define Brightness2_L 0 unsigned char ucKeySingle = 0; //按键标志位 unsigned char key_time=0; //按键按下次数 bit key_less_flag; /*------------------------------------------------- * 函数名: PWM_INITIAL * 功能: PWM初始化函数 pa1产生38KHZ方波 * 输入: 无 * 输出: 无 --------------------------------------------------*/ void PWM_INITIAL(void) { T2CON0=0B00110001; //T2预分频1:4,后分频1:1 //BIT7: 0:无意义; 1:把PR2/P1xDTy缓冲值分别更新到PR2寄存器和P1xDTy_ACT //BIT6~BIT3: 定时器2输出后分频比选择 0000:1:1;0001:1:2;……1:16 //BIT2:0:关闭定时器2;1:打开定时器2 //BIT1~0:定时器2预分频选择 00:1;01:4;1x:16 T2CON1=0B00000001; //T2时钟来自系统时钟,PWM连续模式 //BIT4: PWM模式选择 0:连续模式;1:单脉冲模式 //BIT3: 0:PWM模式;1:蜂鸣器模式 //Timer2时钟源选择:000:指令时钟;001:系统时钟;010:HIRC的2倍频;100:HIRC;101:LIRC TMR2H=1; //定时器2计数寄存器 TMR2L=200; PR2H=0; //周期=(PR2+1)*Tt2ck*TMR2预分频 PR2L=254; //100 P1BDTH = Brightness0_H; //脉宽=P1xDT*Tt2ck*TMR2预分频 P1BDTL = Brightness0_L; //初始化亮度0; P1CDTH = Brightness0_H; //脉宽=P1xDT*Tt2ck*TMR2预分频 P1CDTL = Brightness0_L; //初始化亮度0; P1OE=0B11000000; //P1B0输出使能,P1C0输出使能 //BIT7: 0:禁止P1C输出到管脚;1:允许P1C输出到管脚 //BIT6: 0:禁止P1B输出到管脚;1:允许P1B输出到管脚 //BIT5: 0:禁止P1D输出到管脚;1:允许P1D输出到管脚 //BIT3~BIT2: 故障下,[P1C]管脚的状态,只有当P1CALT为1时才有效 00=高阻 01=输出0 1x=输出1 //BIT1: 0:禁止P1A0N输出到管脚;1:允许P1A0N输出到管脚 //BIT0: 0:禁止P1A0输出到管脚;1:允许P1A0输出到管脚 P1POL=0B00000000; //P1A0高电平有效 //BIT7: 0:P1C高电平有效;1:P1C低电平有效 //BIT6: 0:P1B高电平有效;1:P1B低电平有效 //BIT5: 0:P1D高电平有效;1:P1D低电平有效 //BIT1: 0:P1A0N高电平有效;1:P1A0N低电平有效 //BIT0: 0:P1A0高电平有效;1:P1A0低电平有效 P1CON=0B00000000; //BIT7:PWM1 重启使能位 //1 = 故障刹车时,P1BEVT位在退出关闭事件时自动清零,PWM1自动重启 //0 = 故障刹车时,必须用软件将P1BEVT清零以重启PWM1 //BIT6~0:PWM1死区时间设置 //P1DCn = 预定MPWM信号应转变为有效与PWM信号实际转为有效之间的T2CK周期数 TMR2IF=0; //清TIMER2中断标志 //TMR2IE=1; //使能TIMER2的中断 TMR2ON=1; //打开定时器2 PEIE=1; //使能外设中断 GIE=1; //使能全局中断 } /*------------------------------------------------------------------------------------------ * 函数名: main * 功能: 主函数 * 输入: 无 * 输出: 无 ----------------------------------------------------------------------------------------------*/ void main(void) { SYS_INITIAL(); //系统初始? key_time = 0; DelayUs(250); DelayUs(250); WDT_INITIAL(); //WDT初始化 TOUCH_INITIAL(); //按键初始化 PWM_INITIAL(); //LED(); // Demo led 初始化 while(1) { CLRWDT(); TSC_Start(); //扫键 if(TSC_DataProcessing()==1) { ucKeySingle = TSC_GetSingle(); //生成有效按键 //LED_Scan(); // Demo led 有效按键提示 if(ucKeySingle==0) { //无按键按下 key_less_flag=0; //无按键按下 } else { //有按键按下 if(key_less_flag==0) { key_time++; key_less_flag=1; if(key_time>4) { key_time=0; } if(key_time==0) { P1BDTH = Brightness0_H; P1BDTL = Brightness0_L; //赋值PWM值 PA4全灭 P1CDTH = Brightness0_H; P1CDTL = Brightness0_L; //赋值PWM值 PA2全灭 } else if(key_time==1) { P1BDTH = Brightness2_H; P1BDTL = Brightness2_L; //赋值PWM值 PA4全亮 P1CDTH = Brightness0_H; P1CDTL = Brightness0_L; } else if(key_time==2) { P1BDTH = Brightness1_H; P1BDTL = Brightness1_L; //赋值PWM值 PA4半亮 P1CDTH = Brightness0_H; P1CDTL = Brightness0_L; } else if(key_time==3) { P1BDTH = Brightness0_H; P1BDTL = Brightness0_L; P1CDTH = Brightness2_H; P1CDTL = Brightness2_L; //赋值PWM值 PA2全亮 } else if(key_time==4) { P1BDTH = Brightness0_H; P1BDTL = Brightness0_L; P1CDTH = Brightness1_H; P1CDTL = Brightness1_L; //赋值PWM值 PA2半亮 } } //有按键按下 } } } }

其他使用自动生成的代码即可。

生成编译后的校验和:

打开软件 FMDProgrammer,选择器件;浏览找到编译完成后的  .hex 文件。

 然后就可以看到检验和了:即0x E0E2,程序也已经下载到烧录器的了,后续芯片烧录只需要按烧录器离线烧录程序就可。

 

绿灯为烧录成功。 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3