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

📄 init.h

📁 STC12C5412AD做的温度检测控制的源程序.有AD检测,可控硅过零触发,PID算法.
💻 H
字号:
#ifndef	INIT_H__
	#define	INIT_H__
	#include".\Globle.h"


	
#define	OSC_CRYSTAL		22118400						//晶振频率
#define	INSTRU_CIRCLE		12							//指令周期和机器周期的关系
#define	BAUND_RATE		9600						//定义波特率

#define	TIMER_MAX			65536						//定时器0 1 对应模式的最大值

//定时器2作为波特率发生器的初始化值

#define	TIMER2_BH			(65536-(OSC_CRYSTAL/32/BAUND_RATE))/256		
#define	TIMER2_BL			(65536-(OSC_CRYSTAL/32/BAUND_RATE))%256

//定时器1作为波特率发生器的初始化值
#define	SMOD 1				//pcon.7
#if SMOD
	#define	TIMER1_BH			(256-(OSC_CRYSTAL/BAUND_RATE/12/16))
#else
	#define	TIMER1_BH			(256-(OSC_CRYSTAL/BAUND_RATE/12/32))
#endif
/*********************************************************************/	
#define	TIMER0_SET			10000						//定时的时间设置 单位uS				
#define	TIMER0_VALUE		(TIMER_MAX-(TIMER0_SET/12)*(OSC_CRYSTAL/1000000))	//定时器设定

#define	TH0_VALUE			TIMER0_VALUE/256
#define	TL0_VALUE			TIMER0_VALUE%256

/************************************************************************/
#define	TIMER1_SET			5000						//定时的时间设置 单位uS	
#define	TIMER1_VALUE		(TIMER_MAX-(TIMER1_SET/12)*(OSC_CRYSTAL/1000000))	//定时器设定

#define	TH1_VALUE			TIMER1_VALUE/256
#define	TL1_VALUE			TIMER1_VALUE%256

/********************** Timer0 option *********************************/
#define	TIMER0_GATE_ON		0x08
#define	TIMER0_COUNTER_ON	0x04
#define	TIMER0_MODE_0			0x00
#define	TIMER0_MODE_1			0x01
#define	TIMER0_MODE_2			0x02
#define	TIMER0_MODE_3			0x03

/********************** Timer1 option *********************************/
#define	TIMER1_GATE_ON		0x80
#define	TIMER1_COUNTER_ON	0x40
#define	TIMER1_MODE_0			0x00
#define	TIMER1_MODE_1			0x10
#define	TIMER1_MODE_2			0x20
#define	TIMER1_MODE_3			0x30

/********************** Timer2 option *********************************/
#define	S_RCLK					0x20	//产生接受波特率		
#define	S_TCLK					0x10	//产生发送波特率
#define	S_EXEN2				0x08	//外部势能 			选择 T2EX有负跳变时发生重载或捕捉
#define	S_TR2					0x04	//T2开始运行 		选择 开始运行
#define	S_CT2					0x02	//T/C选择  			选择 为计数器
#define	S_CPRL2					0x01	//捕捉 重载选择 	选择 为捕捉模式

/********************** interrupt enable option  *********************************/

/***************************	IE	  *********************************************/

#define		S_GLOBLE_ENABLE		0X80				//EA 使能
#define		S_UART_ENABLE			0X10				//串口中断使能
#define		S_TIMER1_ENABLE		0X08				//Timer1中断使能
#define		S_EXTERN1_ENABLE		0X04				//外部中断1使能
#define		S_TIMER0_ENABLE		0X02				//Timer0中断使能
#define		S_EXTERN0_ENABLE		0X01				//外部中断0使能

/*****************************  TCON  ****************************************************/

#define		S_TIMER1_RUN			0X40				//TIMER1 RUN FLAG
#define		S_TIMER0_RUN			0X10				//TIMER0 RUN FLAG
#define		S_EXTERN1_MODE		0X04				//外部中断1方式选择 1边沿触发 0电平触发
#define		S_EXTERN0_MODE		0X01				//外部中断0方式选择 1边沿触发 0电平触发

/*****************************  SCON  ****************************************************/
#define	S_UART_MODE0			0X00				//UART MODE 0
#define	S_UART_MODE1			0X40				//UART MODE 1
#define	S_UART_MODE2			0X80				//UART MODE 2
#define	S_UART_MODE3			0XC0				//UART MODE 3

#define	S_MULTI_COM			0X20				//多机通信
#define	S_RECEIVE_EN			0X10				//enable receive
#define	S_TRANSMIT_8			0X08				//发送第八位
#define	S_RECEIVE_8			0X04				//接收第八位	





/******************************************************************************************
** 函数名 Timer0_init
** 参数   mode		选择工作方式
**        hvalue    TH0的值
**        lvalue	TL0的值
*******************************************************************************************
** 选择项
		  TIMER0_GATE_ON			 	选择GATE方式	
          TIMER0_COUNTER_ON				选择COUNTER方式,如果不选为TIMER方式
          TIMER0_MODE_0					方式1	
          TIMER0_MODE_1					方式2						
          TIMER0_MODE_2					方式3		
          TIMER0_MODE_3					方式4		 
*******************************************************************************************/
void Timer0_Init(UBYTE mode, UBYTE hvalue, UBYTE lvalue);



/******************************************************************************************
** 函数名 Timer1_init
** 参数   mode		选择工作方式
**        hvalue    TH0的值
**        lvalue	TL0的值
*******************************************************************************************
** 选择项
		  TIMER1_GATE_ON			 	选择GATE方式	
          TIMER1_COUNTER_ON				选择COUNTER方式,如果不选为TIMER方式
          TIMER1_MODE_0					方式1	
          TIMER1_MODE_1					方式2						
          TIMER1_MODE_2					方式3		
          TIMER1_MODE_3					方式4		 
*******************************************************************************************/
void Timer1_Init(UBYTE mode, UBYTE hvalue, UBYTE lvalue);



/******************************************************************************************
** 函数名 Timer2_Init
** 参数   mode		选择工作方式
**        hvalue    TH0的值
**        lvalue	TL0的值
*******************************************************************************************
** 选择项
		  S_RCLK			0x20	//产生接受波特率		
		  S_TCLK			0x10	//产生发送波特率
		  S_EXEN2			0x08	//外部势能 			选择 T2EX有负跳变时发生重载或捕捉
  		  S_TR2				0x04	//T2开始运行 		选择 开始运行
		  S_CT2				0x02	//T/C选择  			选择 为计数器
		  S_CPRL2			0x01	//捕捉 重载选择 	选择 为捕捉模式	 
*******************************************************************************************/
void Timer2_Init(UBYTE mode, UBYTE hvalue, UBYTE lvalue);



/******************************************************************************************
** 函数名 Interrupt_init
** 参数   enable		TCOM的值
**        prio    		中断优先级设置
**        globle		EA设置
*******************************************************************************************
** 选择项
		  S_TIMER1_RUN			0X40				//TIMER1 RUN FLAG
		  S_TIMER0_RUN			0X10				//TIMER0 RUN FLAG
		  S_EXTERN1_MODE		0X04				//外部中断1方式选择 1边沿触发 0电平触发
		  S_EXTERN0_MODE		0X01				//外部中断0方式选择 1边沿触发 0电平触发
*******************************************************************************************/
void Interrupt_init(UBYTE enable, UBYTE run);




/******************************************************************************************
** 函数名 Uart_init
** 参数   mode			方式设置

*******************************************************************************************
** 选择项
		  S_UART_MODE0			0X00				//UART MODE 0
		  S_UART_MODE1			0X40				//UART MODE 1
		  S_UART_MODE2			0X80				//UART MODE 2
		  S_UART_MODE3			0XC0				//UART MODE 3

		  S_MULTI_COM			0X20				//多机通信
		  S_RECEIVE_EN			0X10				//enable receive
		  S_TRANSMIT_8			0X08				//发送第八位
		  S_RECEIVE_8			0X04				//接收第八位
*******************************************************************************************/
void Uart_init(UBYTE mode);

void Devices_init();


#endif

⌨️ 快捷键说明

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