⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ly-jqc(3f)-4.c

📁 自己单片机板c程序
💻 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 + -