📄 ldrom4k.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 + -