⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e51pro.h

📁 功能强大的51编程器
💻 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 + -