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

📄 c8051f020.h

📁 C8051ucos源码
💻 H
字号:

#include "C8051F020.inc"

#define SYSTEM_CLK 11059200

#define TRUE	1
#define FALSE	0
//--------------------------------------------------------------------------------------------------------
//24MHZ
void Oscillator_Init();

void Port_IO_Init(void);


//打开int0中断
//px :1.高级中断 0低级中断
//it :1.下降沿中断 0.低电平中断
#define OpenInt0(px,it) XBR2|=0X40;XBR1|=0x04;EX0=1;PX0=px;IT0=it;
//关闭int0
#define CloseInt0() EX0=0;
//打开int0中断
//px :1.高级中断 0低级中断
//it :1.下降沿中断 0.低电平中断
#define OpenInt1(px,it) XBR2|=0X40;XBR1|=0x10;EX1=1;PX1=px;IT1=it;
//关闭int0
#define CloseInt1() EX1=0;





//C8051F020 看门狗的设置
//sw == 0时关闭看门狗 sw!= 0时打开并重置
extern bit SYSTEM_TEMP_BIT;
#define WatchDog(sw) if (sw!=0){WDTCN = 0xff;WDTCN = 0xa5;}else{SYSTEM_TEMP_BIT=EA;EA=0;WDTCN = 0xde;WDTCN = 0xad;EA=SYSTEM_TEMP_BIT;}

void ADC_Init();

//端口初始化
void Port_IO_Init();

//外部总线初始化
void ExtBus_Init();

//ADC2初始化8位
void ADC2_Init();

//ADC2放大倍数设置
//num=0:0.5倍;num=1:1倍;num=2:2倍;num=3:4倍
#define ADC2_SetupMul(mul) ADC2CF&=0XF8;ADC2CF|=(mul&0x07)

//ADC2线路选择
//输入参数 0-7 选择8路通道
#define ADC2_SelLine(val) AMX2SL = val;

//读取ADC2转换结果
unsigned char ADC2_Read(void);

//定时器3
//clk是定时器中断的频率
#define T3Stup(clk)	TMR3RLH = ((0xffff-(SYSTEM_CLK/clk))+1)/0x100;\
					TMR3RLL = ((0xffff-(SYSTEM_CLK/clk))+1)%0x100;\
					TMR3CN = 0X06;\
					EIE2  |= 0x01;\
					EA=1;
 void DAC_Init();
void ADC0_Init();

 //------------------------------------------------------------------------------------------------------------
//串口0
#define UART0SetSM2()		SM20=1 	//多机通讯时设置为	地址接收					  
#define UART0ClrSM2()		SM20=0 	//多机通讯时设置为	数据接收				  
#define UART0SetTB8()		TB80=1 	//多机通讯时设置为	地址发送
#define UART0ClrTB8()		TB80=0 	//多机通讯时设置为	数据发送
#define UART0SetRI()		RI0=1	//置位RI
#define UART0ClrRI()		RI0=0	//清除RI
#define UART0GetRI()		RI0		//获取RI
#define UART0SetTI()		TI0=1	//置位RI
#define UART0ClrTI()		TI0=0	//清除RI
#define UART0GetTI()		TI0		//获取RI
#define UART0SEND(val)	    SBUF0 = val //UART0数据发送
//设置串口
//bps      波特率	   
//dataBits 数据位8或9
#define UART0SETUP(bps,dataBits) \ 
			CKCON&=0XeF;\
			PCON&=0x7f;\
			RCAP2H=(65535-(SYSTEM_CLK/32/bps)+1)/0X100;\
			RCAP2L=(65535-(SYSTEM_CLK/32/bps)+1)%0X100;\
			T2CON=0x34;SCON0=(0x50|(0x01<<(dataBits-2)));\
			P0MDOUT|=0X01;P0MDOUT&=0Xfd;\
			XBR0|=0X04;XBR2|=0X40;

//开串口中断
#define UART0ENABLE() ES0=1
//关串口中断
#define UART0DISABLE()  ES0=0


//------------------------------------------------------------------------------------------------------------
//串口1
#define UART1SetSM2()		    SCON1|=0x40 //多机通讯时设置为	地址接收					  
#define UART1ClrSM2()		    SCON1&=(~0x40) //多机通讯时设置为	数据接收				  
#define UART1SetTB8()		    SCON1|=0x08 //多机通讯时设置为	地址发送
#define UART1ClrTB8()		    SCON1&=(~0x08) //多机通讯时设置为	数据发送
#define UART1SetRI()			SCON1|=0x01//置位RI
#define UART1ClrRI()			SCON1&=(~0x01)//清除RI
#define UART1GetRI()			(SCON1&0x01)//获取RI
#define UART1SetTI()			SCON1|=0x02//置位TI
#define UART1ClrTI()			SCON1&=(~0x02)//清除TI
#define UART1GetTI()			(SCON1&0x02)//获取TI
#define UART1SEND(val)	    	SBUF1 = val //UART1数据发送

//设置串口
//bps      波特率
//dataBits 数据位8或9
#define UART1SETUP(bps,dataBits) \ 
			CKCON&=0XBF;\
			PCON&=0xE7;\
			RCAP4H=(65535-(SYSTEM_CLK/32/bps)+1)/0X100;\
			RCAP4L=(65535-(SYSTEM_CLK/32/bps)+1)%0X100;\
			T4CON=0x34;SCON1=(0x50|(0x01<<(dataBits-2)));\
			P0MDOUT|=0X04;P0MDOUT&=0Xf7;\
			XBR2|=0X44;


//开串口中断
#define UART1ENABLE() EIE2|=(0x01<<6)
//关串口中断
#define UART1DISABLE() EIE2&=~(0x01<<6)

//--------------------------------------------------------------------------------------------------------
















⌨️ 快捷键说明

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