资源简介
模拟量电容式触摸
单片机型号STC12C2052AD 使用ADC功能 内部RC时钟
P1.1接口引线接一块金属片。
可实现对P1.6 P1.7的控制。
测试程序时可以在P1.6或P1.7在VCC之间连接LED,方可测试。
P1.6为锁存 P1.7为不锁存。实现效果见实验
可自行控制5V继电器实现自己要做的东西。
程序出自杜洋工作室。 希望各位网友多点支持
代码片段和文件信息
说明:
模拟量电容式触摸
STC12C2052AD 使用ADC功能 内部RC时钟
P1.1接口引线接一块金属片。
可实现对P1.6 P1.7的控制。
测试程序时可以在P1.6或P1.7在VCC之间连接LED,方可测试。
P1.6为锁存 P1.7为不锁存。实现效果见实验
/*********************************************************************************************/
#include //STC12Cx052或STC12Cx052AD系列单片机头文件
#include //51基本运算(包括_nop_空函数)
sbit LED1 = P1 ^ 7; //I/O设置为强推高电平 (无锁存功能)
sbit LED2 = P1 ^ 6; //I/O设置为强推高电平 (锁存功能)
/*********************************************************************************************
函数名:毫秒级CPU延时函数
调 用:DELAY_MS (?);
参 数:1~65535(参数不可为0)
返回值:无
结 果:占用CPU方式延时与参数数值相同的毫秒时间
备 注:应用于1T单片机时i<600,应用于12T单片机时i<125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){
unsigned int i;
while( --a != 0){
for(i = 0; i < 600; i++);
}
}
/*********************************************************************************************/
/*********************************************************************************************
函数名:8位A/D转换函数
调 用:? = Read (?);
参 数:输入的端口(0000 0XXX 其中XXX是设置输入端口号,可用十进制0~7表示,0表示P1.0,7表示P1.7)
返回值:8位的ADC数据
结 果:读出指定ADC接口的A/D转换值,并返回数值
备 注:适用于STC12C2052AD单片机
/**********************************************************************************************/
unsigned char Read (unsigned char CHA){
unsigned char AD_FIN=0; //存储A/D转换标志
CHA &= 0x07; //选择ADC的8个接口中的一个(0000 0111 清0高5位)
ADC_CONTR = 0x00; //ADC转换的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置)
_nop_();
ADC_CONTR |= CHA; //选择A/D当前通道
_nop_();
ADC_CONTR |= 0x80; //启动A/D电源
DELAY_MS(1); //使输入电压达到稳定(1ms即可)
ADC_CONTR |= 0x08; //启动A/D转换(0000 1000 令ADCS = 1)
while (AD_FIN ==0){ //等待A/D转换结束
AD_FIN = (ADC_CONTR & 0x10); //0001 0000测试A/D转换结束否
}
ADC_CONTR &= 0xE7; //1111 0111 清ADC_FLAG位 关闭A/D转换
return (ADC_DATA); //返回A/D转换结果(8位)
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:触摸按键处理函数
调 用:? = Read_R ();
参 数:无
返回值:bit 1表示有感应物,0表示没有感应物
结 果:
备 注:需要根据实现应用调协灵敏度和其他参数
/**********************************************************************************************/
bit Read_R (void){
unsigned char Riim=0ijk;
bit aa;
for(ii=0;ii<3;ii++){ //循环检查防干扰
j=0;k=0;
for(i=0;i<10;i++){ //一次采集数据的数量
DELAY_MS (3);
R = Read (0);
if(R < 0x2F){ //此参数可调整感应灵敏度值在0x01到0x2F
k++;
}
if(R == 0xFF){
j++;
}
}
if(k>1 && j>1){
m++;
}else{
m=0;
}
}
if(m>2){
aa =1;
}else{
aa=0;
}
LED1 = ~aa;
return(aa);
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:主函数
调 用:无
参 数:无
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4386 2010-06-20 19:04 ADC电容式\EASY_TOUCH_ADCC
文件 4077 2012-03-23 15:32 ADC电容式\EASY_TOUCH_ADCC.c
文件 627 2010-06-20 19:04 ADC电容式\EASY_TOUCH_ADCC.hex
文件 62 2010-06-20 19:04 ADC电容式\EASY_TOUCH_ADCC.lnp
文件 7076 2010-06-20 19:04 ADC电容式\EASY_TOUCH_ADCC.LST
文件 9502 2010-06-20 19:04 ADC电容式\EASY_TOUCH_ADCC.M51
文件 4903 2010-06-20 19:04 ADC电容式\EASY_TOUCH_ADCC.OBJ
文件 1049 2010-06-20 22:48 ADC电容式\EASY_TOUCH_ADCC.Opt
文件 2684 2010-06-20 22:48 ADC电容式\EASY_TOUCH_ADCC.plg
文件 2126 2010-06-20 18:42 ADC电容式\EASY_TOUCH_ADCC.Uv2
....... 1042 2010-06-20 18:58 ADC电容式\EASY_TOUCH_ADCC_Opt.Bak
....... 0 2010-06-20 18:37 ADC电容式\EASY_TOUCH_ADCC_Uv2.Bak
目录 0 2010-06-20 22:48 ADC电容式
----------- --------- ---------- ----- ----
37534 13
- 上一篇:基于百度地图的地图分区三级联动插件
- 下一篇:2.tcl
相关资源
- 单片机仿真软件proteus6.7免安装绿色版
- 基于SPCE061A单片机的图形液晶模块的驱
- 基于SPCE061A单片机汇编语实现的流水灯
- 基于SPCE061A单片机的图形液晶模块的驱
- 物联网家居系统中基于单片机的多路
- 基于IAP15F2K61S2单片机的多路温度巡检
- 如何用单片机控制舵机及程序详细
- 单片机控制舵机电路图
- 基于MSP430单片机的实时多任务操作系
- 基于STM32F103C8单片机的晶联讯电子JL
- 广联达6.0写锁包,2020年11月最新
- 基于51单片机的交通信号灯程序
- 14284969_《STM32单片机应用与全案例实践
- GSM监控系统51单片机设计
- 精选单片机设计与制作30例
- 源程序量统计小工具
- delphi rfid 读写卡读卡器/写卡器源程序
- 中颖单片机入门与实战
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
- 基于32位单片机MC68HC376的高可靠性系统
- MC68HC08单片机程序设计速成
- PIC单片机人机接口模块4×4行列式
- PIC单片机人机接口模块4×4行列式
- 基于51单片机的多通道数据采集范围控
- ADC0832ADC0809DAC0832三种芯片程序,c程序
- 数据采集系统——ADC0808的应用
- 基于51单片机的直流电机转速控制及显
- 单片机控制步进电机PMW的驱动与放大
- 单片机驱动4相步进电机proteus仿真
评论
共有 条评论