资源简介
模拟量电容式触摸
单片机型号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
相关资源
- scratch3.0 源程序(说相声)
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 改进的BP神经网络算法
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 光立方制作(原理图 源程序 LED搭接方
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- FM1702调试源程序
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
评论
共有 条评论