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

📄 c8051f350_command.h

📁 C8051F350单片机的24位AD程序
💻 H
字号:
//---------------------------------------------------------------
//C8051F350 控制命令宏定义
//---------------------------------------------------------------
//
//
//---------------------------------------------------------------
//ADC0命令区
//---------------------------------------------------------------
//
//ADC0CN(ADC0控制寄存器)
//ADC0极性选择
#define COM_ADC0_unipolar		  			ADC0CN &= 0X0F; //单极性选择	  
#define COM_ADC0_bipolar		  			ADC0CN |= 0X10; //双极性选择
//BURNOUT电流源选择
#define COM_ADC0_burnout_disen	  			ADC0CN &= 0XF7; //电流源禁止
#define COM_ADC0_burnout_en		  			ADC0CN |= 0X08; //电流源使能
//PGA增益系数选择	
#define COM_ADC0_pga1			  			ADC0CN &= 0XF8; 		  //PAG = 1 
#define COM_ADC0_pga2			  			ADC0CN &= 0XF8; ADC0CN |= 0X01; //PAG = 2 
#define COM_ADC0_pga4			  			ADC0CN &= 0XF8; ADC0CN |= 0X02; //PAG = 4 
#define COM_ADC0_pga8			  			ADC0CN &= 0XF8; ADC0CN |= 0X03; //PAG = 8 
#define COM_ADC0_pga16			  			ADC0CN &= 0XF8; ADC0CN |= 0X04; //PAG = 16 
#define COM_ADC0_pga32			  			ADC0CN &= 0XF8; ADC0CN |= 0X05; //PAG = 32 
#define COM_ADC0_pga64			  			ADC0CN &= 0XF8; ADC0CN |= 0X06; //PAG = 64 
#define COM_ADC0_pga128			  			ADC0CN &= 0XF8; ADC0CN |= 0X07; //PAG = 128
								  		
//ADC0CF(ADC0配置寄存器)
//ADC0中断源选择(选择是sinc3滤波器还是快速滤波器转换完成产生中断)
#define COM_ADC0_sinc3_int		  			ADC0CF &= 0X0F; //选择sinc3滤波器
#define COM_ADC0_fast_int		  			ADC0CF |= 0X10; //选择快速滤波器
//VREF选择
#define COM_ADC0_internal_vref	  			ADC0CF &= 0XFB; //选择内部基准源
#define COM_ADC0_external_vref	  			ADC0CF |= 0X04; //选择外部基准源

//ADC0MD(ADC0方式寄存器)
//使能ADC0
#define	COM_ADC0_disen			  			ADC0MD &= 0X7F; //禁止ADC0
#define	COM_ADC0_en			      			ADC0MD |= 0X80; //使能ADC0
//ADC0工作方式选择
#define COM_ADC0_idle			          	ADC0MD &= 0X80; 		        //空闲模式
#define COM_ADC0_all_inside_calibrate	  	ADC0MD &= 0X80; ADC0MD |= 0X01; //全内部校准
#define COM_ADC0_single_conver		  	  	ADC0MD &= 0X80; ADC0MD |= 0X02; //单次转换
#define COM_ADC0_series_conver		      	ADC0MD &= 0X80; ADC0MD |= 0X03; //连续转换
#define COM_ADC0_inside_offset_calibrate  	ADC0MD &= 0X80; ADC0MD |= 0X04; //内部偏移校准
#define COM_ADC0_inside_gain_calibrate    	ADC0MD &= 0X80; ADC0MD |= 0X05; //内部增益校准
#define COM_ADC0_system_offset_calibrate  	ADC0MD &= 0X80; ADC0MD |= 0X06; //系统偏移校准
#define COM_ADC0_system_gain_calibrate	  	ADC0MD &= 0X80; ADC0MD |= 0X07; //系统增益校准

//ADC0CLK(调制时钟分频寄存器)

//ADC0DECH,ADC0DECL(抽取比寄存器)

//ADC0DAC(ADC偏移DAC寄存器)

//ADC0BUF(ADC0输入缓冲控制寄存器)

//ADC0STA(ADC0状态寄存器)

//ADC0COH,ADC0COM,ADC0COL(ADC0偏移校准寄存器)

//ADC0CGH,ADC0CGM,ADC0CGL(ADC0增益校准寄存器)

//ADC0H,ADC0M,ADC0L(ADC0_SINC3滤波器转换结果寄存器)

//ADC0FH,ADC0FM,ADC0FL(ADC0快速滤波器转换结果寄存器)

//ADC0MUX(ADC0模拟多路控制寄存器)
#define COM_ADC0_channels_1		ADC0MUX = 0x01;
#define COM_ADC0_channels_2		ADC0MUX = 0x23;
#define COM_ADC0_channels_3		ADC0MUX = 0x45;
#define COM_ADC0_channels_4		ADC0MUX = 0x67;
#define COM_ADC0_channels_agnd	ADC0MUX = 0x88;
#define COM_ADC0_channels_temp	ADC0MUX = 0xff;


//---------------------------------------------------------------
//写FLASH命令区
//---------------------------------------------------------------
//
//PSCTL (程序存储读写控制)
#define COM_FLASH_e_en		PSCTL |= 0X02; //允许擦除FLASH
#define COM_FLASH_e_disen	PSCTL &= 0XFD; //禁止擦除FLASH
#define COM_FLASH_w_en		PSCTL |= 0X01; //允许写入FLASH
#define COM_FLASH_w_disen	PSCTL &= 0XFE; //禁止写入FLASH
#define COM_FLASH_ew_en	    PSCTL  = 0X03; //允许擦除和写入FLASH
#define COM_FLASH_ew_disen	PSCTL  = 0X00; //禁止擦除和写入FLASH

//FLKEY (FLASH锁定和关键码寄存器)
#define COM_FLASH_key_write 	FLKEY = 0XA5; FLKEY = 0XF1; //写入关键码,先写关键码0XA5,后写关键码0XF1

//PFE0CN (预取指令引擎寄存器)
#define COM_FLASH_signle_byte	PFE0CN &= 0XFE;				//选择单字节写入方式
#define COM_FLASH_double_byte	PFE0CN |= 0X01;				//选择双字节写入方式


⌨️ 快捷键说明

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