单片机IO口标准双向,推挽,高阻,开漏模式 ,LED感应亮灭实验
十一长假在家快烂了,没事儿做,DIY技术搞起来!
【关于12C增强型单片机I/O口的工作类型实验研究】
文中动画视频效果下载: STC单片机头文件【51CTO-->单片机-->LED感应亮灭实验】
下载链接 链接:http://pan.baidu.com/s/1pJKK4w7 密码:a0re
1、用强推模式,点亮一个LED
/*
工程创建MCU选取,Atmel 89C55
单片机:STC12C4052AD
晶振:无要求
功能:用强推模式,点亮一个LED
连接说明:LED正极串接1K 电阻接P1 ^ 7,负极接到 MCU的P1 ^ 6
对应的P1口 7654 3210
P1M0 = 0x00; -->0000 0000
P1M1 = 0xC0; -->1100 0000
P1^7,P1^6都设置为强推模式,可提供20ma的上拉电流
*/
#include <STC12C2052AD.H>
sbit LED1 = P1 ^ 7;
sbit LED2 = P1 ^ 6;
void main (void) {
P1M0 = 0x00;P1M1 = 0xC0;
LED1=1;
LED2=0;
}2、高阻模式,不输出电流
/*
工程创建MCU选取,Atmel 89C55
单片机:STC12C4052AD
晶振:无要求
功能:高阻模式,不输出电流
连接说明:LED正极串接1K 电阻接P1 ^ 7,负极接到 MCU的P1 ^ 6
对应的P1口 7654 3210
P1M0 = 0xC0; -->1100 0000
P1M1 = 0x00; -->0000 0000
*/
#include <STC12C2052AD.H>
sbit LED1 = P1 ^ 7;
sbit LED2 = P1 ^ 6;
void main (void) {
P1M0 = 0xC0;P1M1 = 0x00;
LED1=1;
LED2=0;
}3、高阻模式,LED感应亮灭
/*
工程创建MCU选取,Atmel 89C55
单片机:STC12C4052AD
晶振:无要求
功能:高阻模式,手指距离P3^7 2毫米远,LED感应亮灭,不需要手去碰到P3^7脚
连接说明:LED正极串接1K 电阻接VCC,负极接到 MCU的P1 ^ 7
供电说明:电脑的USB干扰要比移动电源的干扰要大,使用电脑USB与移动电源供电,效果对比明显!
*/
#include <STC12C2052AD.H>
sbit LED = P1^7;
sbit KEY = P3^7;
void main (void) {
P3M0 = 0x80;P3M1 = 0x00; //高阻
LED=1; // LED = P1^7; 无需设定KEY的状态,因为不会被输出!
while (1)
{
LED=~KEY;
}
}4、高阻模式,调整LED灯的感应距离
先放测试图!
// 电脑USB供电,测试报告:
// 分别调为 DELAY_MS 6 4 不用碰,周围干扰的就触发LED亮
看下图!
// 分别调为 DELAY_MS 7 3 隔离2厘米 LED亮
看下图!
// 分别调为 DELAY_MS 8 2 隔离2毫米 LED亮
看下图!
// 分别调为 DELAY_MS 9 1 需要触摸引脚才亮
上图感应灯,调整LED灯的感应距离 源代码!
/*
工程创建MCU选取,Atmel 89C55
单片机:STC12C4052AD
晶振:无要求
功能:高阻模式,手指距离P3^7 2毫米远,LED感应亮灭,不需要手去碰到P3^7脚
连接说明:LED正极串接1K 电阻接VCC,负极接到 MCU的P1 ^ 7
供电说明:电脑的USB干扰要比移动电源的干扰要大,使用电脑USB与移动电源供电,效果对比明显!
*/
#include <STC12C2052AD.H>
sbit LED = P1^7;
sbit KEY = P3^7;
void DELAY_MS (unsigned int a) {
unsigned int i;
while ( --a != 0 ) {
for (i=0;i<=600;i++);
}
}
void main (void) {
P1M0 = 0x00;P1M1 = 0x00; //普通
P3M0 = 0x80;P3M1 = 0x00; //高阻
LED=1;// LED = P1^7; 无需设定KEY的状态,因为不会被输出!
KEY=0;// 始终拉低
//调整感应灵敏度,从距离两厘米到必须触碰到引脚,LED感应灯亮
while (1) {
P3M0 = 0x00;
DELAY_MS(6);
P3M0 = 0x80;
DELAY_MS(4);
LED=~KEY;
}
}
// 电脑USB供电,测试报告:
// 分别调为 DELAY_MS 6 4 不用碰,周围干扰的就触发LED亮
// 分别调为 DELAY_MS 7 3 隔离2厘米 LED亮
// 分别调为 DELAY_MS 8 2 隔离2毫米 LED亮
// 分别调为 DELAY_MS 9 1 需要触摸引脚才亮【禁止转载!】
本文出自 “生命不息,折腾不止。” 博客,谢绝转载!
单片机IO口标准双向,推挽,高阻,开漏模式 ,LED感应亮灭实验【原创!】
原文:http://990487026.blog.51cto.com/10133282/1699765