从图中可以看出,P1_2引脚可以感知SW1的状态,SW1未按下P1_2=1高电平,按下后P1_2=0接地。
注意:P1_2引脚只是感知SW1,不影响SW1。
#include 'ioCC2530.h' //引用CC2530头文件
/**************************************************************
函数名称:main
功 能:程序主函数
入口参数:无
出口参数:无
返 回 值:无
**************************************************************/
void main(void)
{
P1SEL &= ~0x05; //0101,设置P1_0口和P1_2为通用I/O口
P1DIR |= 0x01; //0001,设置P1_0口为输出口,LED1连接着P1_0
P1DIR &= ~0x04; //0100,设置P1_2口为输入口
P1_0=0; //熄灭LED1
while(1)//程序主循环
{
if(P1_2 == 0) //如果按键被按下,按下0,松开1
{
P1_0 = ~P1_0; //反转LED1的亮灭状态,按键按下0变为1,按键松开,保持最新的值。
while(!P1_2); //等待按键松开,循环等待,其他语句不再执行。若无此代码,按键按下,灯一直亮(高频闪烁,错觉是亮),松开熄灭。
}
}
}
关键字:按键
引用地址:
5.1、按键SW1控制LED1亮灭
推荐阅读最新更新时间:2024-11-03 21:12
51单片机 独立按键k1控制数码管移位 k2控制数值加
按下独立按键k1数码管左移,按下独立按键k2数码管数值加1。 typedef unsigned char u8; u8 code smgwei ={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c}; u8 code smgduan ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; sbit key1=P3^1; sbit key2=P3^0; u8 wei,shu; void delay(u16 i) { while(i--); } void button() { if(key1==0) { delay(1000);
[单片机]
Proteus使用笔记之51单片机4x4矩阵按键
采用反转法判断按键坐标,即行号与列号获得按键码。 写完后发现Proteus一个问题:直接使用这样的if(P1&0xf0!=0xf0)语句时,调不出来,当用了一个中间变量过渡时,就调出来了,害我花了一个上午的时间,现在暂时不知道Proteus为什么要这样,实际中是不需要的。 程序如下: #include reg52.h #define uchar unsigned char #define uint unsigned int void delayMS(unsigned int z); uchar keyscan(void); void main(void) { uchar key; while(1) {
[单片机]
按键控制单片机改变流水灯速度
/* 程序效果:有三个按键,按下其中任意一个流水灯的速度改变 */ #include reg52.h //52系列单片机的头文件 #define uchar unsigned char//宏定义 #define uint unsigned int uchar count=40,flag=0; //定义刚开始的流水灯的速度,后一个为标志变量 void main() { uchar i=0;//定义局部变量 EA=1; //打开总中断 ET0=1; //打开定时器 TR0=1; //启动定时器 TH0=(65536-50000)/256; //装初值 TL0=(65536-50000)%256; P2=
[单片机]
电容式触摸感应按键设计方案
与传统的机械式按键相比,电容式触摸感应按键美观、耐用、寿命长。电容式触摸感应按键实际只是PCB上的一小块“覆铜焊盘”,与四周“地信号”构成一个感应电容,触摸该按键会影响该电容值。现在检测电容值的方法有很多种,如电流与电压相位差检测、由电容构成的振荡器频率检测、电容桥电荷转换检测。而这里则是利用感应电容与电阻构成的RC回路,检测充放电时间的变化量,不需要专用检测电路, 成本低廉。 1 检测原理 电容式 触摸按键 电路的原理构成如图1所示,按键即是一个焊盘,与地构成一个感应电容,在周围环境不变的情况下电容值固定为微小值,具有固定的充放电时间,而当有一个导体向电极靠近时,会形成耦合电容,这样就会改变固有的充放电时间,而手指
[电源管理]
PSoC的电容式非接触感应按键设计
摘 要:非接触式操作界面正逐渐取代普通按键,成为常用的人机交互工具。使用PSOC片上系统芯片CY8C2714,结合电容式感应原理,可设计一种基于PSoC微处理器芯片的电式感应按键,实现按键的非接触式可靠设计。PSoC片上系统芯片是具有高速内核、快闪内存和SRAM数据内存的高性能芯片,具有独立的程序存储器和数据存储器总线,设计者可自配置模拟模块和数字模块。
关键词:电容式 PSoC非接触式 感应按键
电容式感应技术正在迅速成为面板操作和多媒体交互的全新应用技术,其耐用性和降低BOM成本方面的优势,使这种技术在非接触式操作界面上得到广泛的应用。本文采用PSOC片上系统芯片,实现了非接触式、稳定可靠的电容式感应按键的设计。
[应用]
单片机c语言程序(按键和消抖)
#include reg52.h #define uint unsigned int #define uchar unsigned char sbit d1=P1^0; sbit dula=P2^6; sbit wela=P2^7; sbit Key1=P3^4; uchar code table ={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39, 0x5e,0x79,0x71 }; uchar num; void delay(uint
[单片机]
基于AVR微控制器的ADC按键设计技巧
1引言 在单片机应用领域中,人机交互的途径和方式灵活多样,但键盘输人仍然是最常见、最重要的方法。通常实现键盘接口的方式有:直接输入、矩阵结构、A/D方式、键盘和显示复用、并行扩展、串口扩充以及用键盘和显示专用控制器件。本设计使用A/D转换的方法,其硬件电路简单,按键电路与MCU的连线少,易修改,而且可以节省MCU有限的I/0资源。但在处理按键数目较多的情况时,往往会出现按键不可靠的问题,如按键没有任何反映,按键功能交叉。本文除了给出A/D按键的硬件电路外.着重介绍利用软件技巧来实现可靠的键盘接口。 2硬件设计 本设计选用的单片机是基于AVR增强型RISC结构的低功耗8位CMOS微控制器ATmegal68「1」该微控制
[单片机]
OK6410按键驱动程序(改)亲测可以运行
#include linux/kernel.h #include linux/module.h #include linux/init.h #include linux/fs.h #include linux/gpio.h #include linux/types.h #include linux/cdev.h #include linux/interrupt.h #include linux/sched.h #include linux/device.h #include linux/poll.h #include linux/semaphore.h #include linux/
[单片机]