//==========================================================================
//工 程 名:       
//硬件连接:          
//          
//程序描述: 
//目    的:                           
//说    明:                                         
//----------------苏州大学飞思卡尔嵌入式中心2012年--------------------------

//总头文件
#include "Includes.h"

//在此添加全局变量定义
uint8  LEDbuf[4];      //存放需要LED1显示数据
uint8  LEDcs_value;    //0-3表
uint8  LEDcode;        //
uint32 LEDchange;
uint8  LEDShowData1[4]={0,1,2,3};   //显示数据


uint8 g_Dispaly[32];
uint8 LCD_data[32];    //存放需要LCD显示数据,48char

uint16 i = 0,j = 0; //用于计数
              

void main(void)
{          
    //定义初始显示缓存并赋初值
    uint8 g_DispalyInit[] = "Wait Receiving..Soochow 2011.11.";
    uint32 Runcount=0;       //运行计数器
    //
   // LEDShowData1[]={0,1,2,3};
      
    
    //receive_data中存放从串口接收来的要被显示的32个数据
   // uint8 receive_data[32];
    
    for (i=0;i<=3;i++)
        LEDbuf[i]=LEDShowData1[i];
    
      
    //1 关总中断
    DisableInterrupt();     //禁止总中断
    //2 芯片初始化
    MCUInit();
    //3 模块初始化
    //3.1 SCI初始化
    SCIInit(1,SYSTEM_CLOCK,9600);//用SCI1,系统时钟为时钟源,波特率为9600
    //3.2 键盘初始化
    KBInit();     
    //4 LED初始化
    LEDInit();
    //5 LCD初始化
    LCDinit();
    //SCISendN(1,32,g_DispalyInit);
    LCDshow(g_DispalyInit);  //显示初始字符
    //5.1 开键盘中断
    EnableKBint();  
    EnableSCIReInt();
    Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //指示灯初始化为暗 
    //5.2 开总中断
    EnableInterrupt();
    
    
    for (;;) //主循环                     
   {
    
      //
      Runcount++;
      if (Runcount>=200)  
      {
         Runcount=0;
         Light_Change(Light_Run_PORT,Light_Run);   //指示灯的亮、暗状态切换
         SCISend1(1,86);               //发送“V”
      }

      for( i = 0; i < 5000; i++ );   //空延时
      //显示1位数据
      LEDcs_value++;
      if (LEDcs_value>3) LEDcs_value=0;
      LEDcode=LEDchangeCode(LEDbuf[LEDcs_value]);
      LEDshow1(LEDcs_value,LEDcode);
      //
      LEDchange++;
      if (LEDchange>901) LEDchange=0;
      switch (LEDchange)
      {
        case 0:
             for (i=0;i<=3;i++)
               LEDbuf[i]=LEDShowData1[i];
             break;
        case 300:
             for (i=0;i<=3;i++)
               LEDbuf[i]=22;
             break;
        case 600:
             for (i=0;i<=3;i++)
               LEDbuf[i]=23;
             break;         
        default:
             break;        
      }
   
    
  } 
}
