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

📄 r8c2c2d_s002_main.h

📁 基于日立单片机的同步收发程序。支持R8C2C/2D(5.0V/20MHz)单片机
💻 H
字号:
/************************************************************************************
*                                                                                   *
*   System file name	: r8c2c2d_s002_main.h                                       *
*	System name			: R8C2C/2D(5.0V/20MHz) 										*
*																					*
*   Version     		: 1.00                                                      *
*	ROM size			: -															*
*	RAM size			: -															*
*	Contents			: Header file of the main program for Sango					*
*                                                                                   *
************************************************************************************/
/*************************************************************
*	Declaration of function prototype          		 		 *
*************************************************************/

/*********************** System main ************************/

	extern void reset_init(void);							/* Initialization program after resets */
	extern void sfr_init(void);								/* Initial setting of SFR registers */

	void ad_exe(unsigned char an);							/* Executes A/D conversion */
	void delayed_sorce_make(void);							/* Delayed LED pulse duty sorce make */

/******************** Application module ********************/


/************************ Module ****************************/
	extern void sio_trx5(void);										/* ##R8C2C/2D-2009## Trans/Receive of Clock synchronous serial I/O 0 */
	extern void uart0_tra_int_func10(void);							/* ##R8C2C/2D-2009## UART0 transmit interrupt function of Trans/Receive of Clock synchronous serial I/O 0 */
	extern void uart0_rec_int_func14(void);							/* ##R8C2C/2D-2009## UART0 receive interrupt function of Trans/Receive of Clock synchronous serial I/O 0 */

/*************************************************************
*	Declaration of interrupt   			   		    		 *
*************************************************************/

/***************** fixed vector section *********************/

/* Voltage monitor2 interrupt */
#pragma INTERRUPT	wa2_int;
extern void	wa2_int(void);

/**************** variable vector section *******************/

/* Timer RC interrupt(vector7) */
#pragma INTERRUPT	timer_rc_int;
extern void	timer_rc_int(void);

/* Timer RD(Channel 0) interrupt(vector8) */
#pragma INTERRUPT	timer_rd0_int;
extern void	timer_rd0_int(void);

/* Timer RD(Channel 1) interrupt(vector9) */
#pragma INTERRUPT	timer_rd1_int;
extern void	timer_rd1_int(void);

/* Timer RE interrupt(vector10) */
#pragma INTERRUPT	timer_re_int;
extern void	timer_re_int(void);

/* UART2 transmit interrupt(vector 11) */
#pragma INTERRUPT	uart2_tra_int;
extern void	uart2_tra_int(void);

/* UART2 receive interrupt(vector 12) */
#pragma INTERRUPT	uart2_rec_int;
extern void	uart2_rec_int(void);

/* Key in interrupt(vector 13) */
#pragma INTERRUPT	key_in_int;
extern void	key_in_int(void);

/* SSU/IIC interrupt(vector 15) */
#pragma INTERRUPT	ssu_int;
extern void	ssu_int(void);

/* Timer RF Compare1 interrupt(vector 16) */
#pragma INTERRUPT timer_rf_cmp1_int;
extern void	timer_rf_cmp1_int(void);

/* UART0 transmit interrupt(vector 17) */
#pragma INTERRUPT	uart0_tra_int;
extern void	uart0_tra_int(void);

/* UART0 receive interrupt(vector 18) */
#pragma INTERRUPT	uart0_rec_int;
extern void	uart0_rec_int(void);

/* UART1 transmit interrupt(vector 19) */
#pragma INTERRUPT	uart1_tra_int;
extern void	uart1_tra_int(void);

/* UART1 receive interrupt(vector 20) */
#pragma INTERRUPT	uart1_rec_int;
extern void	uart1_rec_int(void);

/* INT2 interrupt(vector 21) */
#pragma INTERRUPT	int2_int;
extern void	int2_int(void);

/* Timer RA interrupt(vector 22) */
#pragma INTERRUPT	timer_ra_int;
extern void	timer_ra_int(void);

/* Timer RB interrupt(vector 24) */
#pragma INTERRUPT	timer_rb_int;
extern void	timer_rb_int(void);

/* INT1 interrupt(vector 25) */
#pragma INTERRUPT	int1_int;
extern void	int1_int(void);

/* INT3 interrupt(vector 26) */
#pragma INTERRUPT	int3_int;
extern void	int3_int(void);

/* Timer RF interrupt(vector 27) */
#pragma INTERRUPT timer_rf_int;
extern void	timer_rf_int(void);

/* Timer RF Compare0 interrupt(vector 28) */
#pragma INTERRUPT timer_rf_cmp0_int;
extern void	timer_rf_cmp0_int(void);

/* INT0 interrupt(vector 29) */
#pragma INTERRUPT	int0_int;
extern void	int0_int(void);

/* A/D interrupt(vector 30) */
#pragma INTERRUPT	ad_int;
extern void	ad_int(void);

/* Timer RF Capture interrupt(vector 31) */
#pragma INTERRUPT timer_rf_cap_int;
extern void	timer_rf_cap_int(void);

/*************************************************************
*	Definition of RAM area   					       		 *
*************************************************************/

/*********************** System main ************************/

/* A/D conversion */
unsigned short ad_data[20];									/* A/D conversion results data of AN0-AN19 (matched two times) */
unsigned short ad_buf[20];									/* A/D conversion results data buffer of AN0-AN19 */

static unsigned char c_ad_cha;								/* A/D conversion channel(analog input pin) select counter */
static unsigned char exe_ad_cha;							/* Executes A/D conversion channel(analog input pin) */

/* Timesharing */
static unsigned char c_timesharing = 0x00;					/* Timesharing counnter */

static unsigned char c_10ms  = 0x00;						/* 10msec  main timer make counter */
static unsigned char c_100ms = 0x00;						/* 100msec main timer make counter */
static unsigned short c_1s = 0x0000;						/* 1sec    main timer make counter */

static union byte_def	timesharing;
#define f_1ms   		timesharing.bit.b0 	      			/* 1msec   elapses flag: "0"=not elapses / "1"=elapsed    *Timesharing */
#define f_10ms   		timesharing.bit.b1    	   			/* 10msec  elapses flag: "0"=not elapses / "1"=elapsed    *Timesharing */
#define f_100ms   		timesharing.bit.b2       			/* 100msec elapses flag: "0"=not elapses / "1"=elapsed    *Timesharing */
#define f_1s   			timesharing.bit.b3       			/* 1sec    elapses flag: "0"=not elapses / "1"=elapsed    *Timesharing */

/* Delayed LED corce make */
unsigned char c_delay_sorce;								/* Sorce counter : free run */

union word_def				delay_duty_flag;
#define delay_duty			delay_duty_flag.word			/* Pulse duty flags for Delayed LED */
#define f_delay_duty1		delay_duty_flag.bit.b0			/* Pulse duty1  = "H"(15):"L"( 1) */
#define f_delay_duty2		delay_duty_flag.bit.b1			/* Pulse duty2  = "H"(14):"L"( 2) */
#define f_delay_duty3		delay_duty_flag.bit.b2			/* Pulse duty3  = "H"(13):"L"( 3) */
#define f_delay_duty4		delay_duty_flag.bit.b3			/* Pulse duty4  = "H"(12):"L"( 4) */
#define f_delay_duty5		delay_duty_flag.bit.b4			/* Pulse duty5  = "H"(11):"L"( 5) */
#define f_delay_duty6		delay_duty_flag.bit.b5			/* Pulse duty6  = "H"(10):"L"( 6) */
#define f_delay_duty7		delay_duty_flag.bit.b6			/* Pulse duty7  = "H"( 9):"L"( 7) */
#define f_delay_duty8		delay_duty_flag.bit.b7			/* Pulse duty8  = "H"( 8):"L"( 8) */
#define f_delay_duty9		delay_duty_flag.bit.b8			/* Pulse duty9  = "H"( 7):"L"( 9) */
#define f_delay_duty10		delay_duty_flag.bit.b9			/* Pulse duty10 = "H"( 6):"L"(10) */
#define f_delay_duty11		delay_duty_flag.bit.b10			/* Pulse duty11 = "H"( 5):"L"(11) */
#define f_delay_duty12		delay_duty_flag.bit.b11			/* Pulse duty12 = "H"( 4):"L"(12) */
#define f_delay_duty13		delay_duty_flag.bit.b12			/* Pulse duty13 = "H"( 3):"L"(13) */
#define f_delay_duty14		delay_duty_flag.bit.b13			/* Pulse duty14 = "H"( 2):"L"(14) */
#define f_delay_duty15		delay_duty_flag.bit.b14			/* Pulse duty15 = "H"( 1):"L"(15) */
#define f_delay_base		delay_duty_flag.bit.b15			/* Pulse duty base : "L" output */

/******************** Application module ********************/

/************************ Module ****************************/

/*************************************************************
*	Definition of base section   			  		 		 *
*************************************************************/

/*********************** System main ************************/

/* Timesharing */
#define	timesharing_mask  	0x03							/* Timesharing mask(bit0 and bit1 valid) */

/* BCD code to HEX convert table */
#define NONE				0x00							/* None(unuesd) */

/******************** Application module ********************/

/************************ Module ****************************/

/* General port input */
#define bit0	0x01										/* bit0 */
#define bit1	0x02										/* bit1 */
#define bit2	0x04										/* bit2 */
#define bit3	0x08										/* bit3 */
#define bit4	0x10										/* bit4 */
#define bit5	0x20										/* bit5 */
#define bit6	0x40										/* bit6 */
#define bit7	0x80										/* bit7 */

/*************************************************************
*	Definition of port			   	    		 			 *
*************************************************************/

/*************************************************************
*	Data table			  									 *
*************************************************************/

/*********************** System main ************************/

/* A/D conversion */
/* A/D port select table */
const unsigned char tb_ad_port[20] = {
/*  AN0 ,AN1 ,AN2 ,AN3 ,AN4 ,AN5 ,AN6 ,AN7 ,AN8 ,AN9 ,AN10,AN11,AN12,AN13,AN14,AN15,AN16,AN17,AN18,AN19 */
	0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x84,0x85,0x86,0x87,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87		/* AN , Single mdoe , Port group , Soft trigger , A/D conversion stop , fAD/2 */
};

/******************** Application module ********************/

/************************ Module ****************************/

/* General port input */
/* Bit select data table */
const unsigned char tb_bit[8] = {
/*  bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7 */
	0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
};

/* Pulse duty select table of delayed LED */
const unsigned short tb_delay_duty_selec[16] = {
	0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,
	0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000
};

/* Final day table */
const unsigned char tb_calen_final_day[12] = {				/* Table : final day of Month */
/*  1  2  3	 4  5  6  7  8  9  10 11 12 */					/* Month */
	31,28,31,30,31,30,31,31,30,31,30,31
};

/* HEX to BCD code convert table */
const unsigned char tb_hex_bcd[60] = {						/* The hexadecimal(00h to 3Bh) is converted to The BCD(Binary Coded Decimal) code(00 to 59) */
	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
	0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,
	0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
	0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
	0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
	0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
};

/* BCD code to HEX convert table */
const unsigned char tb_bcd_hex[96] = {						/* The BCD(Binary Coded Decimal) code(00 to 59) is converted to The hexadecimal(00h to 3bh) */
	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,NONE,NONE,NONE,NONE,NONE,NONE,
	0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,NONE,NONE,NONE,NONE,NONE,NONE,
	0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,NONE,NONE,NONE,NONE,NONE,NONE,
	0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,NONE,NONE,NONE,NONE,NONE,NONE,
	0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,NONE,NONE,NONE,NONE,NONE,NONE,
	0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,NONE,NONE,NONE,NONE,NONE,NONE,
};

/*************************************************************
*  		   					 	                    		 *
*************************************************************/

⌨️ 快捷键说明

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