//-------------------------------------------------------------------------*
//文件名: Includes.h                                                       *
//说  明: 总头文件,本文件包含:                                             *
//        主函数(main)文件中用到的头文件、外部函数声明及有关常量命名       *
//-------------------------------------------------------------------------*
#ifndef _INCLUDES_H
#define _INCLUDES_H

  //1 头文件
  //1.1 包含通用头文件
  #include "MC9S08AW60.h"                 //映像寄存器地址头文件
  #include "Type.h"                       //类型别名定义
  #include "GeneralFun.h"                 //通用函数头文件
  //1.2 包含面向硬件对象头文件  
  #include "SCI.h"                        //该头文件包含串行通信函数的声明
  #include "Light.h"                      //灯（Light）引脚驱动头文件
  #include "LCD.h"                        //该头文件包含LCD寄存器及相关位定义
  #include "LED.h"                        //该头文件包含LED寄存器及相关位定义
  #include "Timer.h"                      //该头文件包含TIMER寄存器及相关位定义
  #include "Keyboard.h"                   //该头文件包含键盘控制引脚定义及相关头文件
  #include "PWM.h"                        //该头文件包含PWM寄存器及相关位定义
  #include "AD.h"                         //该头文件包含AD寄存器及相关位定义
  #include "Flash.h"                      //该头文件包含Flash寄存器及相关位定义

  //2 宏定义
  //2.1 中断操作语句
  #define EnableInterrupt()   asm("CLI")  //开放总中断
  #define DisableInterrupt()  asm("SEI")  //禁止总中断
  #define SYSTEM_CLOCK 20                 //系统总线频率(MHz)
  #define FeedDog() {asm sta SRS;}        //喂狗
  #define SCI_commandtype     130         //标志串口类型命令
  #define Light_commandtype   131         //标志小灯类型命令
  #define LED_commandtype     132         //标志LED数码管类型命令
  #define LCD_commandtype     133         //标志LCD液晶类型命令
  #define KB_commandtype      134         //标志键盘类型命令
  #define Timer_commandtype   135         //标志定时器类型命令
  #define AD_commandtype      136         //标志AD类型命令
  #define PWM_commandtype     137         //标志PWM类型命令
  #define Flash_commandtype   138         //标志Flash类型命令
  #define COPfd_commandtype   139         //标志看门狗喂狗类型命令
  #define COPno_commandtype   140         //标志看门狗不喂狗类型命令



  //3 在此添加全局变量声明
  extern uint8 time[3];                   //存放"时分秒"的值
  extern uint8 SerialBuff[36];            //存放接收数据的数组
  extern uint8 LCDLen;                    //存放接收LCD数据的长度
  extern uint8 ShowBuff[33];              //存放LCD数据的数组
  extern uint8 LCDLen;                    //存放接收LCD数据的长度
  extern uint8 LEDBuff[4];                //存放LED数据的数组
  extern uint8 LightBuff;                 //存放小灯状态
  extern uint8 pwmDutyPC;		              //接受客户端发送的占空比
  extern uint8 chanelNum;		              //接受客户端通道号
  extern uint8 FlashLen;                  //Flash数据的长度
  extern uint8 FlashBuff[64];             //Flash数据的数组
  extern uint8 gSCI_ISR_buffer[64];       //接收数据缓冲区
  extern uint8 gSCI_ISR_flag;             //组帧完成标志位
  extern uint8 datalen;                   //帧的有效数据长度
  extern uint8 commandtype;               //标志帧的命令类型
  extern uint8 gSCI_ISR_buffer[64];       //存放接收到的帧的数组

  //4 函数声明
  void MCUInit(void);                     //AW60芯片初始化

#endif