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

📄 e51pro.h

📁 笔者的《用M8L制作的89S51单片机 USB下载线》在无线电2007年第9期已刊登过
💻 H
字号:
//e51pro.h
#include <iom8v.h>
typedef unsigned int UINT;
typedef	unsigned long ULONG;
typedef unsigned char BYTE;
typedef unsigned char BOOL;

struct _prowork//定义编程器的一般操作,具体器件的编程器实现下列函数
{
	void (*fpInitPro)();//编程前的准备工作
	void (*fpReadSign)();//读特征字
	void (*fpErase)();//擦除器件
	BOOL (*fpWrite)(BYTE);//写器件
	BYTE (*fpRead)();//读器件
	void (*fpLock)();//写锁定位
	void (*fpProOver)();//编程结束后的工作
};
typedef struct _prowork ProWork;
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(void);//等待上位机的命令
//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(void);//等待上位机的回应
//WaitResp()将等待1个字节。为了提高编程器读器件的通讯效率,等待上位机ReadRomThread线程建立后
//将会发送一个字节作为回应,if (ComBuf[0]==1)表示继续读16个字节(ComBuf[2~17])然后发送给PC,
//else if(ComBuf[0]==0xff)表示要求重发数据,else读器件结束。
//返回值=1表示等待完成 =0表示等待超时

extern BOOL WaitData(void);//等待上位机的数据
//WaitData()等待18个字节,在写器件函数中使用。if(ComBuf[0]==1)表示继续写数据块(ComBuf[2~17]16字节)
//else 写器件结束。

extern void SendData(void);//发送数据或回应操作完成,18字节,编程器完成操作后用该函数回应,表示操作完成。
//在读器件过程中用该函数发送读出的ROM数据给上位机

extern void SendResp(void);//回应上位机一个字节,在写器件函数中使用。为了提高编程器写器件的通讯效率,
//编程器每写完数据块(ComBuf[2~17]])后,回应上位机一个字节(ComBuf[0])。如果没出错将回应1,出错回应0xff。

extern void SetVpp5V(void);//设置VPP=5V
extern void SetVpp0V(void);//Vpp=0V
extern void SetVpp12V(void);//Vpp=12V

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -