⑴ 51单片机按键控制点灯
按键 PIN1接电阻 电阻上拉到VCC ,PIN2接地,PIN1接到51的IO口1
灯接在51的IO 口2,假设能够驱动
1:设置IO口1为输入
2:设置IO口2为输出
3:循环检测IO口1是否为低电平0
4:如果是0,则写IO口2为1,设置为高电平点灯
5:while循环空指令,根据指令周期,计算500ms要多少个指令
6:5的while循环结束后,写IO口2为0,灭灯
7:重复到步骤3
⑵ 51单片机按键控制
#include<reg52.h>
sbit key=你接按钮的端口;
sbit led=你接LED的端口;
void delay(unsigned int ms)
{
unsigned int x,y;
for(x=ms;x>0:x--)
for(y=100;y>0;y--);
}
void main()
{
while(1)
{
if(key==0)//判断键是否按下
{
delay(10);//10ms延迟
if(key==0)//消抖
{
led=1;//如果共阳极led=0;
delay(500);
led=0;
}
}
}
}
⑶ 51单片机键控信号发生器
发现我去年做了一个这样的,不过我只弄了3种波形,频率方波的2K这样,正弦波就比较小了,250HZ以内。按键控制波形切换、频率增减,幅度增减
⑷ 单片机怎么用简单按键控制LED
给你个C语言的
#include<stc.h> //头文件
sbit jian=P1^0;
sbit LED=P1^1;
void ys(unsigned int ); //声明延时函数
void main()
{
while(1)
{
LED=1; //让LED点亮,其实这条语句可以不写,因为单片机的IO口默认就是高电平
if(jian==0) //判断按键是否按下
{
ys(1000); //延时消抖
if(jian==0) //再次判断按键是否按下,这条语句很有必要。
{
LED==0; //LED 熄灭
}
}
}
}
/*延时函数*/
void ys(unsigned int i)
{
unsigned x;
for(x=0;x<5000;x++)
for(x=0;x<a;x++);
}
程序是在这里编写的,不是用编译器,可能存在语法错误
⑸ 单片机中怎样定义一个按键控制转换三个模式
参考如下: 假设按键按下为低电平; if(key1==0) { while(key1==0);//弹起后执行 { 按键1需要执行的功能; } } if(key2==0) { while(key2==0);//弹起后执行 { 按键2需要执行的功能; } }
⑹ 单片机一个按键控制一个程序
你把几种方式写成几个子程序,然后主程序调用按键检测,根据检测到的键值调用对应的子函数即可
⑺ 求单片机按键控制数码管程序
实现方法有挺多种的,下面介绍一种:
1、按键子程序:
实现按第一个键使键值keyvalue=1,第二个键使键值keyvalue=2,第三个键使键值keyvalue=3
2、显示子程序
定义3个字节的显示缓存,如dispbuf1,dispbuf2,dispbuf3
使dispbuf1的数字显示在第一个数码管上,dispbuf2的数字显示在第2个数码管上,dispbuf3的数字显示在第3个数码管上
3、主程序:
初始化按键次数keycount为0
检测按键,任意一个键(比如说是第2个键)被按后,keycount 加1,并将keyvalue值(2)送给dispbuf1(则第一个数码管将会显示2),再有任意一个按键按下后,keycount 加1,并将keyvalue值送给dispbuf2,再有任意一个按键按下后,keycount 加1,并将keyvalue值送给dispbuf3
⑻ 单片机按键控制LED汇编程序
30s 之内,又有按键按下,LED 应该怎么变化?
参考一下:
http://hi..com/do_sermon/item/21321b80887395d25e0ec1f8
⑼ 单片机怎么用简单按键控制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秒后灭
}
}
}
⑽ 51单片机 怎么用按键控制循环语句
while(1)语句只能用在主程序,而且只要用一次。如果子程序也用,必须有条件判断语句,跟一个return语句返回。
再说你的三个子程序,既然用for控制了循环次数了,为什么要用while(1)呢?而且明明知道是死循环还用?三个子程序都把那个while(1)删掉就行了!