当前位置:首 页 --> 技术分享
基于MC20P24B实现电容式触摸按键的方法
发布时间:2012/9/28 11:31:00 来源:
在线咨询:
给我发消息
张代明 3003290139
给我发消息
姚红霞 3003214837
给我发消息
李湘宁 2850985550
13713728695

一、MC20P24B芯片简介

 

MC20P24B是由上海晟矽微电子有限公司基于HC05设计的MCU,具有成本低、抗干扰能力强、指令丰富等特点。主要有以下特点:

 

●8位CISC型内核(HC05)

 

●4K byte OTP ROM、208 byte RAM

 

●3组IO口(最多可支持17个通用IO口和1个输入口)

 

●1个PWM输出、1个8位基本定时器、1个8位带比较输出的定时器

 

●1个10位ADC(9路输入)

 

●1个CLO输出(CLO频率为系统振荡频率的1/8)

 

●2个外中断、1个定时器中断、1个 PWM中断

 

●看门狗复位功能

 

●2.1V/3.6V低压复位

 

●可选晶振/RC振荡

 

晶振 400K-8MHz;RC振荡有 2MHz、4MHz、8MHz 3种可选(精度<2.5%)

 

●工作电压

 

2.2-5.5V(工作频率 400K-4MHz);2.7-5.5V(工作频率 4M-8MHz)

 

●工作温度-40-85℃

 

●封装形式:SOP20/DIP20/SOP16/DIP16/SOP8/DIP8

 

二、原理图

 

 


 

该系统主要由显示部分(TM1628和4位数码管)、按键部分及MCU(MC20P24B)组成MCU设置为内部RC振荡方式,频率为4MHz;P26设置为CLO输出功能(频率为 4MHz/8 = 500KHz)。

 

三、程序设计

 

1)软件流程图(见下图)

 

 


 

2)AD转换

 

AD转换程序主要完成对 4个按键值的采样,本例程采用采样 8次取平均值的方式;每 8次完成后分别与 4个按键 AD的前一个值(ADValue[ ])比较,如果大于则替代上一个值,小于则把两者的差值存放到对应的差值存储器(addifference[ ])【注 1】;

 

对差值进行排序,如果其中的最大值超过设定值【注 2】且第二大值小于设定值则认为此按键被按下,并把对应的按键值存放到按键值存储单元(KeyBuf)。

 

如果第二大值大于设定则认为按键无效【注 3】。

 

注 1:由于PCB布线的原因,差值会有一定的误差,所以要根据实际的情况进行修正

注 2:设定值要根据按键该板的厚度和材质实际测定。

注 3:出设置是为了避免按键板有水的情况,出现按键误判断。

 

3)按键程序

 

按键程序可以按照常规的做法设计,直接判断KeyBuf是否有值即可。

 

4)显示程序

 

本例程在无按键按下时,数码管循环显示每个按键的值及对应的按键AD值显示的差值,当有按键按下时最高位显示被按下的按键值,次高位和最低两位循环显示不同的按键值对应的按键AD值的差值。

 
    您可能对以下产品感兴趣  
产品型号 功能介绍 兼容型号 封装形式 工作电压 备注
 
深圳市永阜康科技有限公司 粤ICP备17113496号 服务热线:0755-82863877 手机:13242913995