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

📄 stcmuc.txt

📁 STC单片机功能模块程序
💻 TXT
字号:
//模块:STC12C5412AD_Driver.C    
//功能:单片机增强功能驱动模块    
//晶振:24.000MHz    
//芯片: STC12C5412AD    
//版本:V1.0.0    
//设计:魏广寅    
//日期:2007.4.10    
#include "STC12C5412AD.h"    
#define uchar unsigned char    
#define uint unsigned int    
//--------------------------------------------------------------------    
/*void set_timer0_1T()//设置T0为1T模式   
{   
    AUXR=AUXR|0x80;   
}   
//--------------------------------------------------------------------   
void set_timer1_1T()//设置T1为1T模式   
{   
    AUXR=AUXR|0x40;   
}   
//--------------------------------------------------------------------   
void set_timer0_12T()//设置T0为12T模式   
{   
    AUXR=AUXR&amt;0x7f;   
}   
//--------------------------------------------------------------------   
void set_timer1_12T()//设置T1为12T模式   
{   
    AUXR=AUXR&amt;0xbf;   
}   
//--------------------------------------------------------------------   
uchar EEPROM_read(uint addr)//EEPROM字节读   
{   
    ISP_ADDRH=(addr&amt;0xff00)>>8;   
    ISP_ADDRL=addr&amt;0x00ff;   
    ISP_CONTR=0x81;   
    ISP_CMD=1;   
    ISP_TRIG=0x46;   
    ISP_TRIG=0xb9;   
    return ISP_DATA;   
}   
//--------------------------------------------------------------------   
void EEPROM_write(uint addr,uchar dat)//EEPROM字节写   
{   
    ISP_DATA=dat;   
    ISP_ADDRH=(addr&amt;0xff00)>>8;   
    ISP_ADDRL=addr&amt;0x00ff;   
    ISP_CONTR=0x81;   
    ISP_CMD=2;   
    ISP_TRIG=0x46;   
    ISP_TRIG=0xb9;   
}   
//--------------------------------------------------------------------   
void EEPROM_ERASE(uint addr)//EEPROM扇区擦除   
{   
    ISP_ADDRH=(addr&amt;0xff00)>>8;   
    ISP_ADDRL=addr&amt;0x00ff;   
    ISP_CONTR=0x81;   
    ISP_CMD=3;   
    ISP_TRIG=0x46;   
    ISP_TRIG=0xb9;   
} */    
//--------------------------------------------------------------------    
/*    void set_p3_tw()   
 {   
    P3M0|=0x00;   
    P3M1|=0x00;   
 }*/    
 //--------------------------------------------------------------------    
void AD_init(uchar AD_port_sel ) //ADC初始化    
{    
    ADC_CONTR|=0x80;  //开ADC电源    
    
    switch(AD_port_sel) //选择作为ADC的端口    
    {    
        case 0:    
        P1M0=0x01;    
        P1M1=0x00;    
        ADC_CONTR&amt;=0xf8;    
    
        break;    
            
        case 1:    
        P1M0=0x02;    
        P1M1=0x00;    
        ADC_CONTR&amt;=0xf8;    
        ADC_CONTR|=0x01;    
        break;    
    
        case 2:    
        P1M0=0x04;    
        P1M1=0x00;    
        ADC_CONTR&amt;=0xf8;    
        ADC_CONTR|=0x02;    
        break;    
    
        case 3:    
        P1M0=0x08;    
        P1M1=0x10;    
        ADC_CONTR&amt;=0xf8;    
        ADC_CONTR|=0x03;    
        break;    
    
        case 4:    
        P1M0=0x10;    
        P1M1=0x00;    
        ADC_CONTR&amt;=0xf8;    
        ADC_CONTR|=0x03;    
        break;    
    
        case 5:    
        P1M0=0x20;    
        P1M1=0x00;    
        ADC_CONTR&amt;=0xf8;    
        ADC_CONTR|=0x05;    
        break;    
    
        case 6:    
        P1M0=0x40;    
        P1M1=0x00;    
        ADC_CONTR&amt;=0xf8;    
        ADC_CONTR|=0x06;    
        break;    
    
        case 7:    
        P1M0=0x80;    
        P1M1=0x80;    
        ADC_CONTR&amt;=0xf8;    
        ADC_CONTR|=0x07;    
        break;    
    }    
    ADC_CONTR=0xe7;    
}    
//--------------------------------------------------------------------    
uint GET_AD_Result()//启动AD转换并返回转换值    
{    
    uchar temp;    
    uint data_temp;    
    data_temp=0;    
    ADC_DATA=0;    
    ADC_LOW2=0;    
    ADC_CONTR|=0x08;    
re: temp=0x10;    
    temp&amt;=ADC_CONTR;    
    if(temp==0)    
        goto re;    
    ADC_CONTR&amt;=0xe7;    
    data_temp=ADC_DATA;    
    data_temp<<=2;    
    data_temp+=ADC_LOW2;    
    return data_temp;    
}    
//--------------------------------------------------------------------<SCRIPT src="/inc/gg_read2.js"></SCRIPT>  


//模块:STC12C5412AD_Driver.C 
//功能:单片机增强功能驱动模块 
//晶振:24.000MHz 
//芯片: STC12C5412AD 
//版本:V1.0.0 
//设计:魏广寅 
//日期:2007.4.10 
#include "STC12C5412AD.h" 
#define uchar unsigned char 
#define uint unsigned int 
//-------------------------------------------------------------------- 
/*void set_timer0_1T()//设置T0为1T模式 
{ 
	AUXR=AUXR|0x80; 
} 
//-------------------------------------------------------------------- 
void set_timer1_1T()//设置T1为1T模式 
{ 
	AUXR=AUXR|0x40; 
} 
//-------------------------------------------------------------------- 
void set_timer0_12T()//设置T0为12T模式 
{ 
	AUXR=AUXR&amt;0x7f; 
} 
//-------------------------------------------------------------------- 
void set_timer1_12T()//设置T1为12T模式 
{ 
	AUXR=AUXR&amt;0xbf; 
} 
//-------------------------------------------------------------------- 
uchar EEPROM_read(uint addr)//EEPROM字节读 
{ 
	ISP_ADDRH=(addr&amt;0xff00)>>8; 
	ISP_ADDRL=addr&amt;0x00ff; 
	ISP_CONTR=0x81; 
	ISP_CMD=1; 
	ISP_TRIG=0x46; 
	ISP_TRIG=0xb9; 
	return ISP_DATA; 
} 
//-------------------------------------------------------------------- 
void EEPROM_write(uint addr,uchar dat)//EEPROM字节写 
{ 
	ISP_DATA=dat; 
	ISP_ADDRH=(addr&amt;0xff00)>>8; 
	ISP_ADDRL=addr&amt;0x00ff; 
	ISP_CONTR=0x81; 
	ISP_CMD=2; 
	ISP_TRIG=0x46; 
	ISP_TRIG=0xb9; 
} 
//-------------------------------------------------------------------- 
void EEPROM_ERASE(uint addr)//EEPROM扇区擦除 
{ 
	ISP_ADDRH=(addr&amt;0xff00)>>8; 
	ISP_ADDRL=addr&amt;0x00ff; 
	ISP_CONTR=0x81; 
	ISP_CMD=3; 
	ISP_TRIG=0x46; 
	ISP_TRIG=0xb9; 
} */ 
//-------------------------------------------------------------------- 
/*    void set_p3_tw() 
 { 
  	P3M0|=0x00; 
 	P3M1|=0x00; 
 }*/ 
 //-------------------------------------------------------------------- 
void AD_init(uchar AD_port_sel ) //ADC初始化 
{ 
	ADC_CONTR|=0x80;  //开ADC电源 
 
	switch(AD_port_sel)	//选择作为ADC的端口 
	{ 
		case 0: 
		P1M0=0x01; 
		P1M1=0x00; 
		ADC_CONTR&amt;=0xf8; 
 
		break; 
		 
		case 1: 
		P1M0=0x02; 
		P1M1=0x00; 
		ADC_CONTR&amt;=0xf8; 
		ADC_CONTR|=0x01; 
		break; 
 
		case 2: 
		P1M0=0x04; 
		P1M1=0x00; 
		ADC_CONTR&amt;=0xf8; 
		ADC_CONTR|=0x02; 
		break; 
 
		case 3: 
		P1M0=0x08; 
		P1M1=0x10; 
		ADC_CONTR&amt;=0xf8; 
		ADC_CONTR|=0x03; 
		break; 
 
		case 4: 
		P1M0=0x10; 
		P1M1=0x00; 
		ADC_CONTR&amt;=0xf8; 
		ADC_CONTR|=0x03; 
		break; 
 
		case 5: 
		P1M0=0x20; 
		P1M1=0x00; 
		ADC_CONTR&amt;=0xf8; 
		ADC_CONTR|=0x05; 
		break; 
 
		case 6: 
		P1M0=0x40; 
		P1M1=0x00; 
		ADC_CONTR&amt;=0xf8; 
		ADC_CONTR|=0x06; 
		break; 
 
		case 7: 
		P1M0=0x80; 
		P1M1=0x80; 
		ADC_CONTR&amt;=0xf8; 
		ADC_CONTR|=0x07; 
		break; 
	} 
	ADC_CONTR=0xe7; 
} 
//-------------------------------------------------------------------- 
uint GET_AD_Result()//启动AD转换并返回转换值 
{ 
	uchar temp; 
	uint data_temp; 
	data_temp=0; 
	ADC_DATA=0; 
	ADC_LOW2=0; 
	ADC_CONTR|=0x08; 
re:	temp=0x10; 
	temp&amt;=ADC_CONTR; 
	if(temp==0) 
		goto re; 
	ADC_CONTR&amt;=0xe7; 
	data_temp=ADC_DATA; 
	data_temp<<=2; 
	data_temp+=ADC_LOW2; 
	return data_temp; 
} 
//--------------------------------------------------------------------

⌨️ 快捷键说明

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