外观
四、独立按键实验
开发板开源工程链接:https://oshwhub.com/xiezhaoyan/51-dan-pian-ji-diy-kai-fa-ban-97-zhi-cha-jian
1 开发板硬件部分
独立按键模块由四个按键组成,包括KEY1、KEY2、KEY3和KEY4。四个按键连接单片机的P3口低四位,即P3.0、P3.1、P3.2和P3.3。按键未按下时,端口电平为高电平;按键按下时,端口电平变为低电平。
注意:由于P3.2端口同时被红外接收器IR1复用,因此按键KEY3容易收到外部红外信号干扰。因此建议器件IR1焊接位置采用排母焊接,使用红外接收功能时再在端口处插入器件。
2 Proteus仿真电路
独立按键的Proteus仿真电路如图3所示,具体绘制过程,可以参考我的B站视频:https://www.bilibili.com/video/BV1G14y1v7BP/?spm_id_from=333.788
Proteus仿真电路的工程文件见百度网盘链接。
3 Keil程序
独立按键控制K1~K4控制四个LED灯D1~D4亮灭。
C
/************************************************************
*实验3-独立按键实验
************************************************************/
# include "reg51.h"
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit K1=P3^0; //定义P3.0口是K1
sbit K2=P3^1; //定义P3.1口是K2
sbit K3=P3^2; //定义P3.2口是K3
sbit K4=P3^3; //定义P3.3口是K4
sbit Led1=P1^0; //定义P1.0口是Led1
sbit Led2=P1^1; //定义P1.1口是Led2
sbit Led3=P1^2; //定义P1.2口是Led3
sbit Led4=P1^3; //定义P1.3口是Led4
/************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数, i=1时,大约延时10us
************************************************************/
void delay(u16 i)
{
while(i--);
}
/************************************************************
* 函 数 名 : keypros
* 函数功能 : 按键处理函数
************************************************************/
u8 keypros()
{
u8 key=0;
P3=0x0f;
if((P3&0x0F)!=0x0F) //检测到有按键按下
{
delay(1000); //延时约10ms再去检测,软件去抖
if(K1==0) //按键K1被按下
key=1;
if(K2==0) //按键K2被按下
key=1;
if(K3==0) //按键K3被按下
key=1;
if(K4==0) //按键K4被按下
key=1;
}
while((P3&0x0F)!=0x0F);//等待按键抬起
return key;
}
/************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
************************************************************/
void main()
{
u8 keyval=0;
while(1)
{
keyval=keypros(); //按键处理函数
switch(keyval)
{
case 1:
{
Led1=~Led1;
}break;
case 2:
{
Led2=~Led2;
}break;
case 3:
{
Led3=~Led3;
}break;
case 4:
{
Led4=~Led4;
}break;
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
4 演示视频
具体演示视频,可以参考我的B站视频:https://www.bilibili.com/video/BV1G14y1v7BP/?spm_id_from=333.788。
相关资源:
链接:https://pan.baidu.com/s/1pPk2_G4JiEHxcY7OJ9_lBg?pwd=unuj
提取码:unuj
喜欢的话请关注点赞,谢谢!!!