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

📄 ldrom4k.h

📁 W78E516B在线升级的下位机源代码
💻 H
字号:
#ifndef LDROM4K_H
#define LDROM4K_H

#ifdef __cplusplus
extern "C"
{
#endif

#define STX			0x02
#define ETX			0x03
#define ACK			0x06
#define NACK		0x15
#define RERR		0x55
#define SetBaudRate	0x20

#ifdef BRG1
	//braud rate generator use timer1
	//SetValue = -(2^SMOD * fosc / (384 * BR))
	#if (FOSC == 11059200)
		//fosc = 11.0592MHz
		#define B1200		-48
		#define B2400		-24
		#define B4800		-12
		#define B9600		-6
		#define B19200		-3
		#define B28800		-2
		#define B57600		-1
	#else
		//FOSC = 24MHz
		#define B1200		-104
		#define B2400		-52
		#define B4800		-26
		#define B9600		-13
		//下面的设置值误差太大,数据容易出错,建议不使用
		//#define B19200		-3		//SMOD = 0
		//#define B28800		-4
		//#define B57600		-2;
		//#define B115200		-1;
	#endif
#else
	//braud rate generator use timer2
	//SetValue = 65536-fosc/(32*BR)
	#if (FOSC == 11059200)
		//fosc = 11.0592MHz
		#define B1200		(65536-288)
		#define B2400		(65536-144)
		#define B4800		(65536-72)
		#define B9600		(65536-36)
		#define B19200		(65536-18)
		#define B28800		(65536-12)
		#define B38400		(65536-9)
		#define B57600		(65536-6)
		#define B115200		(65536-3)
	#else
		//fosc = 24MHz
		#define B1200		(65536-625)
		#define B2400		(65536-313)		//312.5
		#define B4800		(65536-156)		//156.25
		#define B9600		(65536-78)		//78.125
		#define B19200		(65536-39)		//39.0625
		#define B28800		(65536-26)		//26.0416
		//#define B38400		(65536-20)		//19.531 (don't use)
		#define B57600		(65536-13)		//13.02
		//#define B115200		(65536-7)		//6.51 (don't use)
	#endif
#endif

//times = time*fosc/12
#if (FOSC == 24000000)
	#define D_1ms	2000
	#define D_10ms	20000
	#define D_30ms	60000
	#define D15ms	30000
	#define D1p5us	3
	#define D50us	100
	#define F4KHz	250
#else//11059200
	#define D_1ms	922
	#define D_10ms	9216
	#define D_30ms	27648
	#define D15ms	13824
	#define D1p5us	2
	#define D50us	46
	#define F4KHz	115
#endif

#define GETVERSION	0x01
#define BLANKCHK	0x02
#define ERASE		0x03
#define PROGRAM		0x04
#define EPV			0x05
#define EXIT		0x06
#define CONNECT		0x07
#define READ		0x08

uchar data TM0H,TM0L;
uchar data TM1H,TM1L;

uchar idata r_buf[40],t_buf[40];
#define command		r_buf[1]
#define object		r_buf[2]
uchar data r_in,r_cnt,t_in,t_out;
bit RevData,RevErr,r_end,t_empty,t_done;

#ifdef	BOARD_1
	sbit RedLed = P1^1;
	sbit GreenLed = P1^0;
#else
	sbit RedLed = P1^2;
	sbit GreenLed = P1^0;
#endif

bit m_bConnect;

uchar DelayWait;
bit TM1_TimeUp;

void InitSys(void);
uchar EraseAprom(void);
uchar BlankCheck(void);
uchar PrgAprom(void);
void RevRS232(void);
uchar CalBCC(uchar idata* s1);
void SendMsg(void);
uchar CommandExe(void);
void SendByte(uchar ch);
void ReadAPROM(void);
void TM1_Delay10ms(uchar _10ms);

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

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