?? e51pro.h
字號:
//e51pro.h
#include <at89x52.h>
typedef unsigned int UINT;
typedef unsigned long ULONG;
typedef unsigned char BYTE;
typedef bit BOOL;
struct _prowork//定義編程器的一般操作,具體器件的編程器實現下列函數
{
void (*fpInitPro)();//編程前的準備工作
void (*fpReadSign)();//讀特征字
void (*fpErase)();//擦除器件
BOOL (*fpWrite)(BYTE);//寫器件
BYTE (*fpRead)();//讀器件
void (*fpLock)();//寫鎖定位
void (*fpProOver)();//編程結束后的工作
};
typedef struct _prowork ProWork;
sbit A_0=ACC^0;//方便位操作
sbit A_1=ACC^1;
sbit A_2=ACC^2;
sbit A_3=ACC^3;
sbit A_4=ACC^4;
sbit A_5=ACC^5;
sbit A_6=ACC^6;
sbit A_7=ACC^7;
sbit B_0=B^0;//方便位操作
sbit B_1=B^1;
sbit B_2=B^2;
sbit B_3=B^3;
sbit B_4=B^4;
sbit B_5=B^5;
sbit B_6=B^6;
sbit B_7=B^7;
extern BYTE ComBuf[18];//串口通訊數據緩存,發送和接收都使用
extern UINT nAddress;//ROM中地址計數
extern UINT nTimeOut;//超時計數
extern ProWork pw;//編程器一般操作
extern void Delay_ms(UINT nMs);//延時函數 毫秒級 小于65535ms
extern void Delay_us(BYTE nUs);//延時函數 微秒級 小于255us
extern BOOL WaitComm();//等待上位機的命令
//WaitComm()將等待18個字節。第一個字節(ComBuf[0])表示命令:00=初始化編程器,01=讀特征字,02=擦除器件,
//03=寫器件,04=讀器件,05=寫鎖定位。第二個字節(ComBuf[1])表示器件的FID(Funcation IDentification)。
//主程序將根據FID調用該器件的編程器函數。后面16個字節(ComBuf[2~17])是該命令的相關數據
//返回值=1表示等待完成 =0表示等待超時
extern BOOL WaitResp();//等待上位機的回應
//WaitResp()將等待1個字節。為了提高編程器讀器件的通訊效率,等待上位機ReadRomThread線程建立后
//將會發送一個字節作為回應,if (ComBuf[0]==1)表示繼續讀16個字節(ComBuf[2~17])然后發送給PC,
//else if(ComBuf[0]==0xff)表示要求重發數據,else讀器件結束。
//返回值=1表示等待完成 =0表示等待超時
extern BOOL WaitData();//等待上位機的數據
//WaitData()等待18個字節,在寫器件函數中使用。if(ComBuf[0]==1)表示繼續寫數據塊(ComBuf[2~17]16字節)
//else 寫器件結束。
extern void SendData();//發送數據或回應操作完成,18字節,編程器完成操作后用該函數回應,表示操作完成。
//在讀器件過程中用該函數發送讀出的ROM數據給上位機
extern void SendResp();//回應上位機一個字節,在寫器件函數中使用。為了提高編程器寫器件的通訊效率,
//編程器每寫完數據塊(ComBuf[2~17]])后,回應上位機一個字節(ComBuf[0])。如果沒出錯將回應1,出錯回應0xff。
extern void SetVpp5V();//設置VPP=5V
extern void SetVpp0V();//Vpp=0V
extern void SetVpp12V();//Vpp=12V
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -