吕梁推广型网站建设,江门排名优化公司,tp5做企业类网站,广州统一企业官网建设51单片机利用I/O口高阻状态实现触摸控制LED灯
1.概述
这篇文章介绍使用I/O口的高阻状态实现一个触摸控制LED灯亮灭的实验。该实验通过手触摸P3.7引脚#xff0c;改变电平信号控制灯的亮灭。
2.实验过程
2.1.实验材料
名称型号数量单片机STC12C20521LED彩灯无1晶振12MHZ1电…51单片机利用I/O口高阻状态实现触摸控制LED灯
1.概述
这篇文章介绍使用I/O口的高阻状态实现一个触摸控制LED灯亮灭的实验。该实验通过手触摸P3.7引脚改变电平信号控制灯的亮灭。
2.实验过程
2.1.实验材料
名称型号数量单片机STC12C20521LED彩灯无1晶振12MHZ1电容30pf2电阻100欧姆1面包板无1连接线无5
2.2.电路原理
将P3.7接口的灯连接到P1.7接口上其他的按照电路图链接即可。 2.3.实验程序
/*************************************************************
* 程序名 IO口高阻模式实现触控控制LED灯
* 编写人 bruce
* 硬件支持STC12C2052
* 日 期 2023-11-23
* 修改日志
/*************************************************************/#includeSTC12C2052AD.H// 定义P1.3 和 P1.2接口
sbit LED1 P1^7;
sbit KEY P3^7;void main(void){//设置P1接口为准双口模式P1M0 0X00;P1M1 0X00;//设置P3.7接口为高阻模式P3M0 0X80;P3M1 0X00;// 定义接口高电平LED1 1;while(1){LED1 ~KEY;}}将手指放在P3.7接口上灯就会点亮离开后就会熄灭。但是在实际使用中手指还没接触到P3.7接口灯就亮了这就是受到干扰造成的。下面对此做了优化。
首先将P3.7设置为准双口延迟避免未接触到P3.7就变为低电平控制灯亮。在手开始接触P3.7时该接口处于准双口有输出功能可以将干扰电流拉到GND消除了一部分干扰当设置P3.7为高阻状态时增加一个延迟再次消除一部分干扰。经过优化后比之前要稳定很多手指触摸到P3.7和P1.0引脚才会点亮LED灯。
/*************************************************************
* 程序名 IO口高阻模式实现触控控制LED灯
* 编写人 bruce
* 硬件支持STC12C2052
* 日 期 2023-11-23
* 修改日志
/*************************************************************/#includeSTC12C2052AD.H// 定义P1.3 和 P1.2接口
sbit LED1 P1^7;
sbit KEY P3^7;/*********************************************************************************************
函数名毫秒级CPU延时函数
调 用DELAY_MS (?);
参 数1~65535参数不可为0
返回值无
结 果占用CPU方式延时与参数数值相同的毫秒时间
备 注应用于1T单片机时i600应用于12T单片机时i125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){unsigned int i;while( --a ! 0){for(i 0; i 600; i);}
}void main(void){//设置P1接口为准双口模式P1M0 0X00;P1M1 0X00;//设置P3.7接口为高阻模式P3M0 0X80;P3M1 0X00;//初始化高低电平LED1 1;KEY 0;while(1){//当手靠近还未触摸到P3.7引脚感应到微电流后就会改变状态使控制灯的开关不稳定。//设置为准双口 延迟 过滤微电流影响触摸不稳定现象。P3M0 0X00;DELAY_MS(2);P3M0 0X80;DELAY_MS(2);LED1 ~KEY;}}触控灯效果