//-------------------------------------------------------------------------*
// 工 程 名: LCD                                                           *
// 硬件连接: (1)PTD口0脚接指示灯                                           *
//           (2)PTA口的PTA0-PTA7与LCD数据线的D0-D7连接                     *
//           (3)PTC4、PTC6、PTF6分别与LCD的RS、RW、E相连                   *
//           (4)若LCD接扩展板上排孔则不必连接                              *
// 程序描述: (1)初始显示:                                                  *
//            "Wait Receiving.."                                           *
//            "Soochow 2010.09."                                           *
//           (2)MCU等待接收PC发来的32个字符,并送LCD显示                    *
// 目    的: 熟悉LCD编程                                                   *
// 说    明: 波特率为9600,使用SCI1口                                       *
//----------------苏州大学飞思卡尔嵌入式系统研发中心2011年-----------------*

#include "Includes.h"

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

void main(void)
{
    //1 主程序使用的变量定义
    //定义初始显示缓存并赋初值
    uint8 g_DispalyInit[] = "Wait Receiving..Soochow 2010.09."; 
    uint32 mRuncount=0;                 //运行计数器
   
    //2 关总中断
    DisableInterrupt();                 //禁止总中断
    //3 芯片初始化
    MCUInit();
    //4 模块初始化
    Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //指示灯初始化
    LCDinit();                           //LCD初始化
    SCIInit(SCI_NUM_1,SYSTEM_CLOCK,9600);//SCI1串行口初始化
    //5 开放中断
    EnableSCIReInt();                    //开放SCI接收中断
    EnableInterrupt();                   //开放总中断
    //6 主程序向PC机发送字符串，并在LCD上显示初始字符
    SCISendN(SCI_NUM_1,32,g_DispalyInit);//主程序向PC机发送字符串
    LCDshow(g_DispalyInit);              //显示初始字符
    //7 主循环                                                                                                              
    while (1)                      
    {
        //1 主循环计数到一定的值，使小灯的亮、暗状态切换
        mRuncount++;
        if (mRuncount>=50000) 
        {
          mRuncount=0;
          Light_Change(Light_Run_PORT,Light_Run);//指示灯的亮、暗状态切换
        }
        //2 主循环执行的任务
        //接收PC发送的32个数据,并存放到receive_data数组中
        if (1 == g_SCIFlag)             //接收成功
        {   
            SCISendN(SCI_NUM_1,32,g_SCIreceive_data);
            //LCD显示MCU从串口接收到的32个数据并返回给PC
            LCDshow(g_SCIreceive_data);
            g_SCIFlag=0;                //清串口接收标志 
        }      
    }                    
}
