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

📄 bootldr.h

📁 根据HI-TECH PICC18原版BOOTLOADER改进的适合PIC18F4580的BOOTLOADER程序。对HEX文件有要求
💻 H
字号:
#ifndef _BOOTLDR_H_
#define _BOOTLDR_H_

#define BOOT_TIMEOUT	9		//超时时间5秒,必须小于9秒
#define FILL_BYTE		0xFF	//程序空间擦除时使用的填充数据,默认值是0xFF
#define PROG_START		0x400	//如果在程序空间宽裕模式



/***************************************************************************
*			 利用芯片特殊的头文件定义 ROMSIZE 
***************************************************************************/
#if !defined(MPLAB_ICD)				//如果MPLAB_ICD没有定义
  #define	MEM_TOP	(unsigned int)(ROMSIZE&0xFFFF)
  #if ROMSIZE >= 65536
    #define UPPER_ADDRESS_BYTE	(unsigned char)((ROMSIZE>>16)&0xFF)	//高位地址
  #endif
#else								//如果MPLAB_ICD有定义(可以自己增加合适的)
  #if defined(_18F4580) 
  #define MEM_TOP	0x7DC0
  #endif
#endif

//*********************************************************************
#define BAUD 9600      			// 波特率,  设9600
#define FOSC 20000000L			// 晶振频率,设20M		
#define NINE 0     				// 0=8位数据,1=9位数据
#define OUTPUT 0
#define INPUT 1

#define DIVIDER ((int)(FOSC/(16UL * BAUD) -1))
#define HIGH_SPEED 1			// 设置成高速方式

#if NINE == 1					// 如果是9位数据
#define NINE_BITS 0x40			// NINE_BITS=0100,0000
#else							// 如果是8位数据
#define NINE_BITS 0				// NINE_BITS=0000,0000
#endif

#if HIGH_SPEED == 1				// 如果是高速方式
#define SPEED 0x4				// SPEED=0000,0100
#else							// 如果是低速方式
#define SPEED 0					// SPEED=0000,0000
#endif

/*******************************************************
* 					串口初始化
*******************************************************/
#define init_comms()							\
			{									\
				BAUDCON=0x08;					\
				SPBRGH=0x04;					\
				SPBRG=0x11;						\
				TXSTA = 0b00100110;				\
				RCSTA = 0b10010000;				\
				TRISC=0x80;						\
 			}

//******************************************************
#ifndef NOP()
#define NOP()	asm("nop")
#endif

#ifndef RESET()
#define RESET()	asm("reset")
#endif
//******************************************************

/*******************************************************
*					检测标志位
*******************************************************/
#define FLASH 	EEPGD==1
#define EEPROM 	EEPGD==0
#define CONFIG 	CFGS==1


/*******************************************************
*				HEX记录类型
*******************************************************/
#define DATA 0
#define END 1
#define EXTEND_ADDRESS 4

#endif

⌨️ 快捷键说明

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