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

📄 keyscan.c

📁 单片机工业控制板,具备I/O,KEYBOARD,步进电机伺服电机等功能
💻 C
字号:


#include <p30f4011.h>

#include "adr_port_define.h"

#include "extern_define.h"
unchar key_buffer0[8] _NEAR;//RF0
unchar key_buffer1[8] _NEAR;//RF1
unchar key_buffer2[8] _NEAR;//RF4
unchar key_buffer3[8] _NEAR;//RF5

unchar buffer,key_counter _NEAR;

unchar keyscan()
{

	TRISB=0X00;
	TRISF=0XFF;
	buffer=0x01;
	key_counter=0;
	PORTB=buffer;
	while(key_counter<7)
	{
		key_buffer0[key_counter]=_RF0;
		key_buffer1[key_counter]=_RF1;
		key_buffer2[key_counter]=_RF4;
		key_buffer3[key_counter]=_RF5;


	
		asm("mov _buffer,w0");
		asm("RLNC.B w0,w1");
		buffer=WREG1;
		PORTB=buffer;

		key_counter++;

	}
	key_server();
	return(SW);


}



unchar key_server()
{
	SW=0;
	for(key_counter=0;key_counter<7;key_counter++)
	{
		if(key_buffer0[key_counter]==0) SW=1+key_counter;
		else if(key_buffer1[key_counter]==0) SW=8+key_counter;
		else if(key_buffer2[key_counter]==0) SW=15+key_counter;
		else if(key_buffer3[key_counter]==0) SW=22+key_counter;
	
	}
	return(SW);


}
















































































































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -