📄 ly-jqc(3f)-4.c
字号:
/*程序用到键盘控制继电器通断,一个继电器两个按钮控制通断,4个继电器使用两排8个按键就够了,
例子使用板上的LY-BJ接口,程序的输出是P2口的低四位,每一位对应一个继电器,只要输出不同状态,
即控制了继电器的动作
继电器的控制也可以由其它IO口引出,这需要对电路原理有所了解,再进行修改*/
#include <reg52.h>
sbit jqc_1=P2^0; //继电器1
sbit jqc_2=P2^1; //继电器2
sbit jqc_3=P2^2; //继电器3
sbit jqc_4=P2^3; //继电器4
void ReadKey(void); //扫描键盘及做相应处理
void Delay(unsigned int DelayTime);//廷时函数
void main(void) //入口函数
{
while(1){
ReadKey(); //调用键盘扫描及状态控制
Delay(100); //加入廷时
}
}
void ReadKey(void) //读键盘值,做相应输出
{
P0=0x7F; //将第一排的公共线拉低,检测第一排是否有按键按下
switch(P0){ //读回P0口值做判断
case 0x7e: //读回的P0口值是0X7E,说明0键被按下
jqc_1=0; //第一个继电器动作
break;
case 0x7d: //读回的P0口值是0X7E,说明1键被按下
jqc_2=0; //第二个继电器动作
break;
case 0x7b: //读回的P0口值是0X7B,说明2键被按下
jqc_3=0; //第三个继电器动作
break;
case 0x77: //读回的P0口值是0X77,说明3键被按下
jqc_4=0; //第四个继电器动作
break;
}
P0=0xbF; //将第二排的公共线拉低,检测第二排是否有按键按下
switch(P0){
case 0xbe: //读回的P0口值是0XBE,说明4键被按下
jqc_1=1; //第一个继电器断开
break;
case 0xbd: //同上5键按下
jqc_2=1;
break;
case 0xbb: //6键按下
jqc_3=1;
break;
case 0xb7: //7键按下
jqc_4=1;
break;
}
}
void Delay(unsigned int DelayTime) //延时函数
{
unsigned int j=1;
while(DelayTime--){
j=10;
while(j--){}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -