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

📄 variable.h

📁 abov公司的单片机器MC80F7208的演示程序,C代码,包含LCD,I2C,KEY,ADC,NVM,TIME等内容,适合初学者熟悉.
💻 H
字号:

//=================================================================
//     Constant  Assignment
//================================================================= 

//------------------------------------------------------------------ 
//	System Option : OTP / Emulator ? 
//------------------------------------------------------------------ 

//#define	DEBUG			1		// debug mode 
#define	DEBUG			0		// OTP/MASK mode 

//------------------------------------------------------------------ 
//	Bit define 
//------------------------------------------------------------------ 

#define  	ON			1			
#define  	OFF			0			

#define  	OK			1			
#define  	FAIL			0			

#define  	TRUE			1			
#define  	FALSE			0			

//------------------------------------------------------------------ 
// 	Port Assignment 
//------------------------------------------------------------------ 

#define	p_SCL		R06			// I2C Clcok Pin			 
#define	p_SDA		R04			// I2C Data Pin			 
#define	p_Yellow	R01			// Lamp 			 
#define	p_Pulse	R10			// Pulse out 			 

//------------------------------------------------------------------ 
//     ADC selection code data
//------------------------------------------------------------------ 

#define  	ADC_1		0x44           	// AN1	 
#define  	ADC_2		0x48          	// AN2	 
#define  	ADC_3		0x4C         	// AN3	  

//------------------------------------------------------------------ 
//	LCD Character index 
//------------------------------------------------------------------ 
#define  	Chr0		0x00			//  0   
#define  	Chr1		0x01			//  0   
#define  	Chr2		0x02			//  0   
#define  	Chr3		0x03			//  0   
#define  	Chr4		0x04			//  0   
#define  	Chr5		0x05			//  0   
#define  	Chr6		0x06			//  0   
#define  	Chr7		0x07			//  0   
#define  	Chr8		0x08			//  0   
#define  	Chr9		0x09			//  0   
#define  	ChrA		0x0A			//  0   
#define  	ChrB		0x0B			//  0   
#define  	ChrC		0x0C			//  0   
#define  	ChrD		0x0D			//  0   
#define  	ChrE		0x0E			//  0   
#define  	ChrF		0x0F			//  0   

#define  	Chr_		0x10			//  -   
#define  	ChrL		0x11			//  L   
#define  	ChrO		0x12			//  O   
#define  	ChrP		0x13			//  P   
#define  	ChrS		0x14			//  S   
#define  	ChrH		0x15			//  H   
#define  	SPACE		0x16			//      
#define  	ChrN		0x17			//  n     
#define  	ChrT		0x18			//  t     
#define  	ChrU		0x19			//  u     
#define  	ChrR		0x1A			//  r    

//------------------------------------------------------------------ 
//	LCD display mode 
//------------------------------------------------------------------ 

#define  	MODE_ALRAM		0x01		//  Alram display     
#define  	MODE_CLOCK		0x02		//  Pulse width display    

//------------------------------------------------------------------ 
//	Buzzer Control mode 
//------------------------------------------------------------------ 
#define  	BEEP_NONE		0x00		// 
#define  	BEEP_ALARM		0x01		//
#define  	BEEP_LOW		0x02		//
#define  	BEEP_OFF		0x03		//
#define  	BEEP_ERROR		0x04		//
#define  	BEEP_JjangGa	0x05		//
//=================================================================
//     RAM bank 0  160 bytes (00h ~ 09Fh)  Assignment
//================================================================= 

struct Bit_Flag_Byte {
	unsigned char B0:1;
	unsigned char B1:1;
	unsigned char B2:1;
	unsigned char B3:1;
	unsigned char B4:1;
	unsigned char B5:1;
	unsigned char B6:1;
	unsigned char B7:1;
};

union Bit_Field_Byte {
	unsigned char byte;
	struct Bit_Flag_Byte bit;
};

union Word_Field {
	unsigned int word;
	unsigned char byte[2];
};


//-----------------------------------------------------------------
//     System Flag
//----------------------------------------------------------------- 

USER_EXTERN union Bit_Field_Byte rKey_flag;		// 
#define 	f_UpDn		rKey_flag.bit.B0		//	
#define 	f_Repeat		rKey_flag.bit.B1		//
#define 	f_KeyOk		rKey_flag.bit.B2		// 1 Second flag
#define 	f_Command_Ok	rKey_flag.bit.B3		//
#define 	f_Updated		rKey_flag.bit.B4		// 
#define 	f_Scan_Err		rKey_flag.bit.B5		//	

USER_EXTERN union Bit_Field_Byte rLcd_flag;		//
#define 	f_Refresh		rLcd_flag.bit.B0		// 1=Refresh	
#define 	f_OnLcd		rLcd_flag.bit.B1		// 1=New Display request	
#define 	f_Flicker		rLcd_flag.bit.B2		// 1=Display flicker(1:ON, 0:OFF) 
#define 	f_Carry		rLcd_flag.bit.B3		// 1=carry count set
	

USER_EXTERN union Bit_Field_Byte rComm_flag;		//
#define 	f_NoACK		rComm_flag.bit.B0		// 1= 

USER_EXTERN union Bit_Field_Byte rTime_flag;		//
#define 	f_Minute		rTime_flag.bit.B0		// 1=1minute	
#define 	f_Clock		rTime_flag.bit.B1		// 1=clcok active  	
#define 	f_AmPm		rTime_flag.bit.B2		// 1=enable AmPm  	
#define 	f_AM			rTime_flag.bit.B3		// 1=Am/0=Pm  	
#define 	f_Alarm		rTime_flag.bit.B4		// 1=Alarm set  	


//------------------------------------------------------------------
//	global general buffer 
//------------------------------------------------------------------

USER_EXTERN unsigned char	i;			//
USER_EXTERN unsigned short	j;			//				

USER_EXTERN unsigned short	wDly_count;		// N usec 

USER_EXTERN unsigned char	rTemp[4];		//
//------------------------------------------------------------------
//     Timer 4ms interval counter 
//------------------------------------------------------------------

USER_EXTERN unsigned char rTimer_4ms[5];
#define 	TIME_Key		0			// Key counter  
#define 	TIME_Wait		1			// Wait counter  
#define 	TIME_Sec		2			// Second counter 	
#define 	TIME_Lcd		3			// Lcd counter   
//#define 	TIME_Stop		4			// Stop counter  

USER_EXTERN unsigned char	rStop_Timer;	//
	
//------------------------------------------------------------------
//	Local Key control
//------------------------------------------------------------------ 
USER_EXTERN unsigned char	rKey_Temp[4];	//
USER_EXTERN unsigned char	rKey_Buffer;	//						
USER_EXTERN unsigned char	rScan_Count;	//						
USER_EXTERN unsigned char	rKey_Data;		// key command 				
USER_EXTERN unsigned char	rKey_Command;	// key command 				
USER_EXTERN unsigned char	rCmd_Count;		// Command repeat count 		
USER_EXTERN unsigned char	rOption;		//   		
USER_EXTERN unsigned char	rCustom_Code;	//

//------------------------------------------------------------------
//	Inter IC bus control
//------------------------------------------------------------------
USER_EXTERN unsigned char	rI2C_mode; 		//  I2c mode   				 
USER_EXTERN unsigned char	rI2C_mad; 		//  I2c main address			 
USER_EXTERN unsigned char	rI2C_byte; 		//  Data Byte 荐    			 
USER_EXTERN unsigned char	rI2C_sad; 		//  sub register addr  			 
USER_EXTERN unsigned char	*rI2C_post; 	//  Data Pointer   			 
USER_EXTERN unsigned char	rRetry_Count; 	//  I2C retry count    			 

//------------------------------------------------------------------
//     Real Time Clocked Calendar   
//------------------------------------------------------------------ 
USER_EXTERN unsigned char	rMinute;		//  
USER_EXTERN unsigned char	rHour;		// 			
USER_EXTERN unsigned char	rDate;		// 			
USER_EXTERN unsigned char	rWeek;		//
USER_EXTERN unsigned char	rMonth;		//
USER_EXTERN unsigned char	rYear;		//

USER_EXTERN unsigned char	rAlram_Minute;	//  
USER_EXTERN unsigned char	rAlram_Hour;	// 			
//------------------------------------------------------------------
//     LCD control data  
//------------------------------------------------------------------ 
USER_EXTERN unsigned char	rLcd_Buf[10]; 	// Lcd Display Buffer 			 
USER_EXTERN unsigned char	rLcd_Mode;		// display main menu		
USER_EXTERN unsigned char	rSub_Menu;		// display sub menu	
USER_EXTERN unsigned char	rCursor;		// display sub menu	
USER_EXTERN unsigned char	rDsp_Count;		// display time count 

//------------------------------------------------------------------
//	Remote Pulse out  
//------------------------------------------------------------------

USER_EXTERN unsigned char	rRem_Buf[4];	// remote out pulse code 	 
USER_EXTERN unsigned char	rCG_Count;		// Carrier Generation count 
USER_EXTERN unsigned char	iTemp;		// interrupt temp i
USER_EXTERN unsigned char	kTemp;		// interrupt temp k  


//------------------------------------------------------------------
//	Buzzer Control  
//------------------------------------------------------------------

USER_EXTERN unsigned char	*wMelody_Ptr;	//
USER_EXTERN unsigned char	rMelody_Mode;	//
USER_EXTERN unsigned char	rMelody_cnt;	//

//=================================================================
//     RAM bank 1  229 bytes (11Bh ~ 1FFh)  Assignment
//================================================================= 


//=================================================================


⌨️ 快捷键说明

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