导航:首页 > 操作系统 > 单片机矩形按键控制灯

单片机矩形按键控制灯

发布时间:2022-08-05 11:12:15

❶ 52单片机,矩阵按键怎么一个键控制一个灯(亮灭),主函数里要怎么加程序

可以啊,可以根据按键时间的长短,和高低电平来实现。比如,长按1s为高电平是一个功能,长按2s是另一个功能。 步骤为:先读取某个io口的值,若为高电平(if 按键高电平有效),则延时1s,最后再读取一次该io口的值,若继续为高电平,则调用你要的功能即可。

❷ 单片机通过按钮控制一个LED小灯的亮灭,请问这个程序怎么写

led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led
的意思就是取反的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后
就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); //
等待按键放开led1=~led1;}

❸ 单片机怎么用简单按键控制LED

#include "reg52.h"

#define uchar unsigned char
#define uint unsigned int

sbit led =P1^0;//假设灯在P1.0

sbit key1=P2^0;//假设按键在P2.0和P2.1
sbit key2=P2^1;//

void delay_1s(uint x)//延时
{
uint y;
uint z; //如果延时不够长可以把z的值加大
while(x--)
{
for(y=0;y<50000;y++)
{
z=200;;
while(z--);
}
}
}

void main(void)

{
led=1; //不亮

while(1)
{
if(key1==0 && key2==1)//按键1按下,按键2没按
{
led=0; //亮
}
else if(key1==1 ) //按键1释放或未按时,灯灭
{
led=1; //灭
}

if(key2==0 && key1==1) //按键2按下,按键1没按
{
led=0; //先亮
delay_1s(30); //等30秒
led =1 ; //30秒后灭
}

}
}

❹ C51单片机,如何用矩阵键盘控制,使LED灯实现4中不同闪烁方式

我这里用的是按键,,不知道你说的开关是不是按键,,要不是我再重新编
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led=P1^6 ; // 控制LED的口
sbit key=P1^0; // 按键状态检测口
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uint a=0;
key=1;
led=1;
if(key==0)
{
delay(5);
if(key==0)
a++;
while(!key);
delay(5);
while(!key);
}
if(a==1)
{
while(key!=0)
{ led=0;
delay(1000);
led=1;}
led=1;a=0;
}
else led=1;
}

❺ 单片机如何控制矩阵型LED灯的亮灭。

这个你要看原理图。流水灯的控制是通过单片机p口接上595芯片来驱动,软件实现移位实现流水灯现象
具体的步骤:
1:画出你的原理图,最小系统,外加led,595芯片
2:些软件程序,通过keil编译并下载到你的单片机
3:观测效果
具体的程序根据你的原理图
可以参考《吴鉴鹰单片机项目实战精讲》里面关于摇摇棒的设计

❻ 单片机,按键控制一盏灯的程序

设按钮状态(高/低)输入某个IO口;
找到读取这个IO口的数据地址;
程序不断读取这个地址,并比较相应位是否有变化;
(要有去抖处理,否则一次按键会产生多个变化)
设指示灯对应的IO口数据地址;
根据按键发生与否设置这个IO口相应位进行翻转。

❼ 矩阵单片机怎么从矩阵键盘中提取一个按键来实现“按一下键切换一个LED灯亮”

假设矩阵键盘如上图,LED接P1.0,按键用S4

ORG 00H

CLR P3.0

STATAR:

JB P3.7,$

CLR P1.0

JNB P3.7,$

SETB P1.0

SJMP STATAR

❽ 用单片机如何实现一个按钮对应一个灯控制

方法多种多样,我也推荐两种:
(一)
2个40引脚地单片机,每个有32个I/O口。
单片机A控制单片机B,各用P0端口直接连接进行数据传输(记得用1K排阻作为上拉),A剩下的24I/O口作为按钮,控制B剩下的24I/O口。(程序太简单我就不说了)
当然也可以用RXD、TXD端口进行数据传输,那样就可以30控30了。
(二)用内置AD转换的40引脚单片机,一个AD端口串联相应的电阻搭配31个按钮,控制31个灯。

❾ c51单片机 2*2矩阵按键控制四个灯,按1键亮一个灯,按2键亮两个灯,以此

sbit hang1=P1.0;//行线作为输出
sbit hang2=P1.1;
sbit lie1=P1.2;//列线作为输入
sbit lie2=P1.3;
sbit led1=P1.4;//定义LED管脚
sbit led2=P1.5;
sbit led3=P1.6;
sbit led4=P1.7;
void main(void)
{
lie1=1;lie2=1;
led1=0;led2=0;led3=0;led4=0;//全部不亮
while(1)
{
hang1=0;hang2=1;
if(lie1=0)
{ delay_ms(10);
led1=1;
led2=0;
led3=0;
led4=0;}
if(lie2=0)
{ delay_ms(10);
led1=1;
led2=1;
led3=0;
led4=0;}
hang1=1;hang2=0;
if(lie1=0)
{ delay_ms(10);
led1=1;
led2=1
led3=1;
led4=0;}
if(lie2=0)
{ delay_ms(10);
led1=1;
led2=1;
led3=1;
led4=1;}
}
}

❿ 单片机中用矩阵键盘的8个按键分别控制8个LED,当按下时亮,松手时灭,用switch语句

#include<reg51.>
#define uchar unsigned char
void delay(unsigned int a)
{
unsigned int i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
uchar kbscan(void)
{
unsigned char sccode,recode;
P1=0x0f; //发0扫描,列线输入
if ((P2 & 0x0f) != 0x0f) //有键按下
{
delay(20); //延时去抖动
if ((P1&0x0f)!= 0x0f)
{
sccode = 0xef; //逐行扫描初值
while((sccode&0x01)!=0)
{
P1=sccode;
if((P1&0x0f)!=0x0f)
{
recode=(P1&0x0f)|0xf0;
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
P0=0xff;
return 0; //无键按下,返回0
}

main()
{
unsigned char key;
while(1)
{
key=kbscan();
switch(key)
{
case 0x11:P0=0xfe;break;
case 0x12:P0=0xfd;break;
case 0x14:P0=0xfb;break;
case 0x18:P0=0xf7;break; //+
case 0x21:P0=0xef;break;
case 0x22:P0=0xdf;break;
case 0x24:P0=0xbf;break;
case 0x28:P0=0x7f;break; //-
default:break;
}
}
}

阅读全文

与单片机矩形按键控制灯相关的资料

热点内容
我的世界苹果版的2b2t服务器地址咋查 浏览:87
xlsx转换pdf 浏览:94
3dmax挤出命令英语 浏览:903
靶心率的定义和算法 浏览:513
3d模术师app哪里下载 浏览:474
php中文api文档 浏览:458
安卓设计怎么加入输入框 浏览:185
主根服务器什么时候开始 浏览:738
奇门遁甲完整版pdf 浏览:901
app软件怎么用的 浏览:802
电子书pdf购买 浏览:193
浪潮服务器如何做系统 浏览:111
冒险岛img格式加密 浏览:596
我的世界手游如何复制命令 浏览:659
天刀自动弹琴脚本源码 浏览:970
打开其它app微信怎么收不到 浏览:447
安卓游戏耳机怎么戴 浏览:18
不越狱怎么去除app广告 浏览:178
ipadminipdf阅读 浏览:507
文件夹无限制压缩会不会降低内存 浏览:413