?? includes.h
字號:
/***************************************
* 文件名:INCLUDES.h
* 描述:
* 最后修改時間:2010.4.19
****************************************/
#ifndef __INCLUDES_H__
#define __INCLUDES_H__
//#include<AT89X51.H>
#include <reg51.h>
#include <intrins.h>
#include <stdio.h>
//#include <memory.h>
//include <string.h>
//Common
#define bool char
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define TRUE 1
#define FLASE 0
#define true 1
#define false 0
enum MODE
{
MODE_NULL = 0, //無效
MODE_RUNABLE,
MODE_TEST, //測試,無效
MODE_MANUAL, //手動,無效
MODE_PARAMODIFY,//參數修改
MODE_RUN, //運行
MODE_PASSWORD, //設置密碼
};
struct G_STATUS
{
//模式
enum MODE Mode;//參數修改模式、運行模式、測試模式、手動模式
//觸摸屏狀態
bool bTouchPressed;//當前觸摸屏是否被按下,手動清除
uint x;//
uint y;//
bool bButtonPressed;//
uchar Button_id;//
//密碼
bool bPasswordDialog;
uchar Password;
uchar PasswordCount;
bool bParaModifyPermitted;
//參數修改時光標的位置
uchar nPage;//表格頁數
uchar Modify_Index;
uchar Modify_Position;
//狀態量
uchar ItemState[140];//5*28
bool bUpdated_ItemState[140];//
//LED燈狀態
uchar LED_Status;
bool bUpdated_LED_Status;
uchar LED_Modify_Position;//數碼管編輯位置
//繼電器狀態
uchar Relay_Status1;
uchar Relay_Status2;
bool bDianzheng;
bool bDianfan;
bool bTrack;
};
//extern struct STATUS xdata g_Status;
extern struct G_STATUS xdata g_Status;
//Lib Functions
void delay_us(uint a);
void delay_ms(uint a);
void memset(uchar *pSrc, uchar c, uint len);
//MODULES' FUNCTIONS
/***************************SYSTEM FUNCTION****************************/
#define INTR_ALL_ENABLE (EA = 1)
#define INTR_ALL_DISABLE (EA = 0)
#define INTR_INT0_ENABLE (EX0 = 1)
#define INTR_INT0_DISABLE (EX0 = 0)
#define INTR_INT1_ENALBE (EX1 = 1)
#define INTR_INT1_DISABLE (EX1 = 0)
#define INTR_T0_ENABLE (ET0 = 1)
#define INTR_T0_DISABLE (ET0 = 0)
#define INTR_T1_ENABLE (ET1 = 1)
#define INTR_T1_DISABLE (ET1 = 0)
#define INTR_UART_ENABLE (ES = 1)
#define INTR_UART_DISABLE (ES = 0)
/***************************SYSTEM FUNCTION END************************/
/***************************TIME FUNCTION ***************************/
void Delay(uint ms);
void SetTimer(uint ms);
bool TimeOut();
/***************************TIME FUNCTION END************************/
/***************************RELAY FUNCTION****************************/
#define RELAYOUT1 *((volatile uchar xdata*)0xB000)//繼電器輸出1-8
#define RELAYOUT2 *((volatile uchar xdata*)0xC000)//繼電器輸出9-16
void SetRealyStatus(uchar index, bool bClosed);
bool GetRealyStatus(uchar index);
/***************************RELAY FUNCTION END****************************/
/***************************KEY FUNCTION****************************/
//KEY控制線
sbit KEYA = P1^2;
sbit KEYF = P1^3;
sbit KEYH = P3^0;
sbit KEYK = P3^1;
#define KEYOUT *((volatile uchar xdata*)0x9000)//按鍵控制輸出
void KEYA_DOWN();
void KEYA_UP();
void KEYB_DOWN();
void KEYB_UP();
void KEYC_DOWN();
void KEYC_UP();
void KEYD_DOWN();
void KEYD_UP();
void KEYE_DOWN();
void KEYE_UP();
void KEYF_DOWN();
void KEYF_UP();
void KEYG_DOWN();
void KEYG_UP();
void KEYH_DOWN();
void KEYH_UP();
void KEYI_DOWN();
void KEYI_UP();
void KEYJ_DOWN();
void KEYJ_UP();
void KEYK_DOWN();
void KEYK_UP();
void KEYL_DOWN();
void KEYL_UP();
void KEY_TEST1();
void KEY_INIT();
void KEY_RUN();
void KEY_STOP();
void KEY_RESET();
void KEY_CLEAR();
void KEY_CLEAR_ALL();
void KEY_JIXUAN();
void KEY_SEXUAN();
void KEY_UP();
void KEY_DOWN();
void KEY_LEFT();
void KEY_RIGHT();
void KEY_MODE();
/***************************KEY FUNCTION END****************************/
/***************************LEDSTATUS FUNCTION**************************/
#define LEDSTATUS_IN_ADDR *((volatile uchar xdata*)0x8000)//底板顯示數據總線輸入
sbit LEDSTATUS_A0 = P1^0;
sbit LEDSTATUS_A1 = P1^1;
sbit LEDSTATUS_A2 = P1^4;
sbit LEDSTATUS_A3 = P1^5;
void LEDSTATUS_INIT();
void Update_LEDSTATUS();
void Update_LEDPosition();
void Update_led_status();
/***************************LEDSTATUS FUNCTION END**********************/
/***************************TOUCH FUNCTION **********************/
#define TOH 0x46 //5ms SYSCLK is 22.1184M
#define TOL 0xAA
sbit DCLK = P1^6; //時鐘信號,下降沿有效
sbit DIN = P3^4; //串行數據輸入
sbit DOUT = P3^5; //串行數據輸出
sbit CS = P1^7; //片選信號,低電平有效
sbit PENIRQ = P3^2; //中斷請求信號,低電平(負邊沿)有效
void TOUCH_INIT();
bool TOUCH_IsReleased();
void Update_TouchPoint();
/***************************TOUCH FUNCTION END**********************/
/***************************LCD FUNCTION **************************/
#define LCD_XAdL *((volatile uchar xdata*)0xA000)
#define LCD_XAdH *((volatile uchar xdata*)0xA001)
#define LCD_YAdL *((volatile uchar xdata*)0xA002)
#define LCD_YAdH *((volatile uchar xdata*)0xA003)
#define LCD_FrontColor *((volatile uchar xdata*)0xA004)
#define LCD_BackColor *((volatile uchar xdata*)0xA005)
#define LCD_Data *((volatile uchar xdata*)0xA006)
#define LCD_Control *((volatile uchar xdata*)0xA007)
//定義顏色
#define BLACK 0x00
#define WHITE 0xff
#define RED 0xe0
#define GREEN 0x1c
#define BLUE 0x03
#define YELLOW 0xfc
#define GRAY 0x92
#define LIGHTGRAY
#define PURPLE 0xe3//紫色
#define RGB(x,y,z) ((x&0xe0) | (y&0xe0) >>3 | (z&0xc0) >> 6)
//系統顏色
#define WELCOMEUI_BORDER_COLOR GREEN
#define WELCOMEUI_BK_COLOR BLUE
#define WELCOMEUI_TEXT_COLOR RED
#define MAINUI_BORDER_COLOR GREEN
#define MAINUI_BK_COLOR RGB(176,224,230)
#define MAINUI_TEXT_COLOR RGB(80, 80, 80)
#define BTN_UP_BORDER_COLOR BLUE
#define BTN_UP_BK_COLOR YELLOW
#define BTN_UP_TEXT_COLOR RED
#define BTN_DOWN_BK_COLOR GREEN
#define BTN_DOWN_BORDER_COLOR BLUE
#define BTN_DOWN_TEXT_COLOR RED
#define BTN_CHECK_BORDER_COLOR RGB(192,192,192)
#define BTN_CHECK_BK_COLOR GREEN
#define BTN_CHECK_TEXT_COLOR RGB(80, 80, 80)
#define BTN_UNCHECK_BORDER_COLOR RGB(192,192,192)
#define BTN_UNCHECK_BK_COLOR RGB(128, 128, 128)
#define BTN_UNCHECK_TEXT_COLOR RGB(80, 80, 80)
#define TABLE_BORDER_COLOR BLUE
#define TABLE_BK_COLOR RGB(176,224,230)
#define TABLE_TEXT_COLOR BLACK
#define ITEM_CHECK_BK_COLOR BLUE
#define ITEM_CHECK_BORDER_COLOR BLUE
#define ITEM_CHECK_TEXT_COLOR RED
#define ITEM_UNCHECK_BORDER_COLOR BLUE
#define ITEM_UNCHECK_BK_COLOR RGB(176,224,230)
#define ITEM_UNCHECK_TEXT_COLOR BLACK
#define LED_ON_COLOR RED
#define LED_OFF_COLOR RGB(128, 128, 128)
//BUTTON ID
enum BUTTON_ID
{
BUTTON_NULL = 0,
BUTTON_RUN,
BUTTON_STOP,
BUTTON_RESET,
BUTTON_CLEAR,
BUTTON_CLEAR_ALL,
//BUTTON_JIXUAN,
//BUTTON_SEXUAN,
BUTTON_DIANZHENG,
BUTTON_DIANFAN,
BUTTON_UP,
BUTTON_DOWN,
BUTTON_LEFT,
BUTTON_RIGHT,
BUTTON_MODE,
BUTTON_TRACK,
BUTTON_MODIFY,
};
//
struct RECT
{
uint top;
uint left;
uint right;
uint bottom;
uint cx;
uint cy;
};
struct BUTTON_RECT
{
uint top;//
uint left;
uint cx;
uint cy;
};
struct TABLE_RECT
{
uint top;
uint left;
uint cx1;
uint cx2;
uint cy;
uchar nItem;
};
void SetPixel(int x, int y, uchar color);
void DrawHLine(int x, int y, int len, uchar width, uchar color);//畫線
void DrawVLine(int x, int y, int len, uchar width, uchar color);
void DrawRectangle(int x, int y, int width, int height, uchar color);//畫矩形
void DrawFrame(int x, int y, int width, int height, uchar LineWidth, uchar color);//畫框框
void DrawText(int x, int y, int cxText, int cyText, uchar *pText, uchar TextColor, uchar BKColor);//畫文本
void DrawTextEx(int x, int y, int cxText, int cyText, char zoom, uchar *pText, uchar TextColor, uchar BKColor);
void DrawIcon(int x, int y, int cx, int cy, int zoom, uchar *pIcon);
void LCD_TEST();
void LCD_INIT();//LCD的初始化函數
void LCD_Clear(uchar color);//LCD清屏函數
void LCD_WelcomeInterface();//顯示歡迎界面
void LCD_MainInterface();//顯示主界面
void LCD_ShowPasswordDialog(bool bShow);//顯示或關閉密碼對話框
void LCD_ShowPassword(uchar num);//顯示****
void LCD_ShowModeStatus(uchar Status);
void LCD_ShowTable(uchar nPage);
void LCD_ClearTableRect(uchar color);
void LCD_ShowStatusOrParameter(uchar index, uchar pos, uchar Text, uchar TextColor, uchar BKColor);
uchar LCD_WhichButton(uint x, uint y);
void LCD_ShowButton(uchar button_id, uchar TextColor, uchar BKColor, uchar BorderColor);
/***************************LCD FUNCTION END**************************/
#endif
/*
struct STATUS
{
//模式
enum MODE Mode;//停止模式、參數修改模式、運行模式、測試模式、手動模式
//觸摸屏狀態
bool bTouchPressed;//當前觸摸屏是否被按下,手動清除
uint x;//
uint y;//
bool bButtonPressed;//
uchar Button_id;//
//參數修改時光標的位置
uchar nPage;//表格頁數
uchar LED_Modify_Position;//數碼管編輯位置
uchar Modify_Index;
uchar Modify_Position;
//狀態量
bool bUpdated;//狀態量是否被更新過
//第一頁
uchar COUNT_1; //計數個位
bool bUpdated_COUNT_1;
uchar COUNT_2; //計數十位
bool bUpdated_COUNT_2;
uchar COUNT_3; //計數百位
bool bUpdated_COUNT_3;
uchar COUNT_4; //計數千位
bool bUpdated_COUNT_4;
uchar COUNT_5; //計數萬位
bool bUpdated_COUNT_5;
uchar LENGTH_1; //長度個位
bool bUpdated_LENGTH_1;
uchar LENGTH_2; //長度十位
bool bUpdated_LENGTH_2;
uchar LENGTH_3; //長度百位
bool bUpdated_LENGTH_3;
uchar LENGTH_4; //長度千位
bool bUpdated_LENGTH_4;
uchar LENGTH_5; //長度萬位
bool bUpdated_LENGTH_5;
uchar SPEED; //速度,曲線
bool bUpdated_SPEED;
uchar GEPI_1; //個/批個位
bool bUpdated_GEPI_1;
uchar GEPI_2; //個/批十位
bool bUpdated_GEPI_2;
bool JINGDIAN; //靜電
bool bUpdated_JINGDIAN;
bool FANGLIAO; //放料
bool bUpdated_FANGLIAO;
bool ZHUJI; //主機
bool bUpdated_ZHUJI;
bool ZONGJI; //總機
bool bUpdated_ZONGJI;
//第二頁
bool ZONGXIANG; //縱向
bool bUpdated_ZONGXIANG;
bool HENGXIANG; //橫向
bool bUpdated_HENGXIANG;
bool SHANGLIAO; //上料
bool bUpdated_SHANGLIAO;
bool CHONGKONG; //沖孔
bool bUpdated_CHONGKONG;
bool REZHEN; //熱針
bool bUpdated_REZHEN;
bool JIUPIAN; //糾偏
bool bUpdated_JIUPIAN;
uchar TIME_1; //時間個位
bool bUpdated_TIME_1;
uchar TIME_2; //時間十位
bool bUpdated_TIME_2;
uchar ZHOUCHANG_1; //周長個位
bool bUpdated_ZHOUCHANG_1;
uchar ZHOUCHANG_2; //周長十位
bool bUpdated_ZHOUCHANG_2;
uchar ZHOUCHANG_3; //周長百位
bool bUpdated_ZHOUCHANG_3;
uchar ZHOUCHANG_4; //周長千位
bool bUpdated_ZHOUCHANG_4;
//第三頁
bool FANGLIAO_1; //放料一
bool bUpdated_FANGLIAO_1;
bool FANGLIAO_2; //放料二
bool bUpdated_FANGLIAO_2;
bool DIANRE_1; //電熱一
bool bUpdated_DIANRE_1;
bool DIANRE_2; //電熱二
bool bUpdated_DIANRE_2;
bool DIANRE_3; //電熱三
bool bUpdated_DIANRE_3;
bool DIANRE_4; //電熱四
bool bUpdated_DIANRE_4;
//第四頁
uchar ZHUJI_SPEED_1; //主機速度個位
bool bUpdated_ZHUJI_SPEED_1;
uchar ZHUJI_SPEED_2; //主機速度十位
bool bUpdated_ZHUJI_SPEED_2;
uchar ZHUJI_SPEED_3; //主機速度百位
bool bUpdated_ZHUJI_SPEED_3;
uchar ZONGXINAG_SPEED_1; //縱向速度個位
bool bUpdated_ZONGXINAG_SPEED_1;
uchar ZONGXINAG_SPEED_2; //縱向速度十位
bool bUpdated_ZONGXINAG_SPEED_2;
uchar ZONGXINAG_SPEED_3; //縱向速度百位
bool bUpdated_ZONGXINAG_SPEED_3;
uchar HENGXIANG_SPEED_1; //橫向速度個位
bool bUpdated_HENGXIANG_SPEED_1;
uchar HENGXIANG_SPEED_2; //橫向速度十位
bool bUpdated_HENGXIANG_SPEED_2;
uchar HENGXIANG_SPEED_3; //橫向速度百位
bool bUpdated_HENGXIANG_SPEED_3;
uchar CHONGKONG_SPEED_1; //沖孔速度個位
bool bUpdated_CHONGKONG_SPEED_1;
uchar CHONGKONG_SPEED_2; //沖孔速度十位
bool bUpdated_CHONGKONG_SPEED_2;
uchar CHONGKONG_SPEED_3; //沖孔速度百位
bool bUpdated_CHONGKONG_SPEED_3;
uchar FANGLIAO_1_SPEED_1; //放料一速度個位
bool bUpdated_FANGLIAO_1_SPEED_1;
uchar FANGLIAO_1_SPEED_2; //放料一速度十位
bool bUpdated_FANGLIAO_1_SPEED_2;
uchar FANGLIAO_1_SPEED_3; //放料一速度百位
bool bUpdated_FANGLIAO_1_SPEED_3;
uchar FANGLIAO_2_SPEED_1; //放料二速度個位
bool bUpdated_FANGLIAO_2_SPEED_1;
uchar FANGLIAO_2_SPEED_2; //放料二速度十位
bool bUpdated_FANGLIAO_2_SPEED_2;
uchar FANGLIAO_2_SPEED_3; //放料二速度百位
bool bUpdated_FANGLIAO_2_SPEED_3;
//LED燈狀態
uchar LED_Status;
bool bUpdated_LED_Status;
//繼電器狀態
uchar Relay_Status1;
bool bUpdated_Relay_Status1;
uchar Relay_Status2;
bool bUpdated_Relay_Status2;
};*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -