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

📄 kb.c

📁 EV440B实验源码
💻 C
字号:
#include <string.h>
#include "..\inc\def.h"
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\kb.h"


#define LOOP 1

void __irq keyboard(void);

void __irq keyboard(void)
{
    char x,y,xrecord,yrecord,temp;
    
     rI_ISPC=BIT_EINT0;	//clear pending_bit

       Delay(200);
    if((rPDATF&0x1E0)==0x1E0)
       {
       	return;
       	}
    else
    {
    	x=1;
    	y=1;
    	xrecord=(~((rPDATF&0x1E0)>>1));
    	xrecord=xrecord>>4;			//键盘输入
    	while(xrecord!=0x1)			//确定行
    	{
    	x=x+1;
    	xrecord=xrecord>>1;
    	if(xrecord==0)
    	{
    		rPDATG=0X0F;
    		return;
    		}
   	 }
    	rPDATG=0XEF; 
    	while((rPDATF&0x1E0)==0x1E0)
   	 {
    	rPDATG=rPDATG<<1;
    	temp=rPDATG;
    	if((temp&0xf0)==0XF0)
    	{
    		rPDATG=0X0F;
    		return;
    		}    	
    	}
   	 yrecord=~((rPDATG&0xF0)>>4)&0x0F;
   	 while(yrecord!=0x1)
    	{
    	y=y+1;
    	yrecord=yrecord>>1;
    	if(yrecord==0)
    	{
    		rPDATG=0X0F;
    		return;
    		}
    	}
    	Led_Display(x+(y-1)*4-1);
    	Delay(100);
    	rPDATG=0X0F;
    }
}

void Test_Kb(void)
{
    
    
    rEXTINT=0x22222222;
    rINTCON=0x5;
    pISR_EINT0=(unsigned)keyboard;
    
    Uart_Printf("keyboard test for S3C44B0X\n");
    Uart_Printf("press any key,it will display on 8-SEG\n");
    Uart_Printf("Typing any key to exit!!!\n");	 
    
    rINTMSK =~(BIT_GLOBAL|BIT_EINT0); 
    while(!Uart_GetKey());
    rINTMSK|=BIT_EINT0;
        
    
}


⌨️ 快捷键说明

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