//-------------------------------------------------------------------------*
//工 程 名:KeyBoardInt.mcp                                                 *
//硬件连接:                                                                *
//         MCU与键盘连接见"KeyBoard.c"文件中的说明                         *
//程序描述:主函数一直在查询是否有键被按下以及什么键被按下，串口            *
//         发送对应的键值和定义值（十六进制显示）                          *
//目    的:键盘扫描,键值识别,键值转换                                      *
//注    意:如果键盘插在实验板的上排插孔,无须连线,若插在下排                *
//         插孔,需手工接线                                                 *
//------------------清华2009版《嵌入式技术基础与实践》实例-----------------*
#include "Includes.h"

//在此添加全局变量定义


void main(void)
{
    //1 关总中断
    DisableInterrupts();     //禁止总中断  
    
    //2 芯片初始化
    MCUInit();
    
    //3 硬件初始化
    //3.1 串口初始化
    //使用SCI1模块,使用系统时钟作为SCI的时钟,波特率为9600
    SCIInit(1,SYSTEM_CLOCK,9600);
    //3.2 键盘初始化
    KBInit(); 
       
    //4 开中断
    //4.1 开放键盘中断
    EnableKBint();     
    //4.2 开放总中断
    EnableInterrupts();    
    
    //5 主循环                                                                                                              
    while (1)                      
    {
      uint8 KB_valueN,KB_DefValue;
      KB_valueN = KBScanN(10);           //扫描键值,存于KB_valueN中
      Delay(20);                         //延迟去抖动
      if(KB_valueN != 0xFF)
      {
      	KB_DefValue = KBDef(KB_valueN);  //键值转化为定义值
        SCISend1 (1,KB_valueN);          //发送键值
        SCISend1 (1,KB_DefValue);        //发送定义值
        KB_valueN = 0xFF;
      }
  
    }
}
