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

📄 initsys.c

📁 ad转换的程序
💻 C
字号:
	/*=========================================================================================
                     INITIALIZATION RUTINE
===========================================================================================
AHTH: GZG
DATE:
COMMENT: 
===========================================================================================*/
/*----------------------------------------INCLUDE-----------------------------------------*/
#include <c8051f020.h>

#define TC_100ms	16000
/*---------------------------------------FUNCTION DECLARING------------------------------*/
extern void delay(int t);
//extern void  in_eeprom();
//extern void writeCmd (unsigned char  command);
//extern void delayMS(unsigned char MS);
/*---------------------------------------GLOBLE DECLARING--------------------------------*/
//extern unsigned int xdata canmodify_package[];
//extern long int transfer_ad;
//extern long int time_data;
/*---------------------------------------16BIT SFR DEFINE--------------------------------*/
sfr16 TMR3=0x94;
sfr16 TMR3RL=0x92;
//sbit p3_3=P3^3;
//sbit p3_4=P3^4;
//sbit p3_5=P3^5;
//sbit p3_6=P3^6;
//sbit p1_7=P1^7;
//sbit CS=P1^7;
//sbit D_ready=P3^0;
void initsys(void)
//sbit CS=P1^7;

{   
//     unsigned int xdata *pwrite;
 //    unsigned int code *pread;  
	// unsigned char i ;
//	 unsigned char i1;
     WDTCN = 0xde;                              //stop the wdt
     WDTCN = 0xad;  

/*-----------------------------------------------------------------------------------------
DEFINE IO OSC
-----------------------------------------------------------------------------------------*/    
    OSCXCN=0x66;
	delay(10000);
    delay(10000);
    while(OSCXCN&0x80!=0x80); 
    OSCICN|=0x08; 
/*----------------------------------------------------------------------------------------
DEFINE IO uart0 uart1 spi
----------------------------------------------------------------------------------------*/

    XBR0=0x04;                                //uart0 and spi
    XBR1=0x00;    	
   	XBR2=0x44;
    
	//P0MDOUT=0xff;
	P1MDIN=0xff;
	P1MDOUT=0xff;
	P2MDOUT=0xff;
	P3MDOUT=0xff;
	//P3MDOUT&=~0x78;
//P3MDOUT&=~0x01;
 //D_ready=1;
 
 // SPI0CFG=0x87;//8_bit onetime 
  //SPI0CN=0X03;//make it master stype
  
  //SPI0CN|=0X01;//enable spi
 
  // SPI0CKR = 0x01;
  // CS=0;

    //p1_7=1;

	//p3_3=0;
	//p3_4=0;
	//p3_5=0;
	//p3_6=0;
/*----------------------------------------------------------------------------------------
DEFINE DA AND VREF
----------------------------------------------------------------------------------------*/   
	REF0CN=0x02;
    DAC0CN=0x80;
	
    //DAC0L=0xff;
    //DAC0H=0xff;
 
/*----------------------------------------------------------------------------------------
DEFINE T1
-----------------------------------------------------------------------------------------*/
  /* TMOD=0x10;
   CKCON=0x10;
   TH1=0x00;
   TL1=0x00;
   TR1=1;*/
   TMOD=0X10;
   CKCON=0X10;
   TH1=0xf0;
   TL1=0;
   TR1=1;

/*----------------------------------------------------------------------------------------
DEFINE T3
----------------------------------------------------------------------------------------*/
   TMR3CN&=~0x80;
   //TMR3CN|=0x02;
  // TMR3RLL= 0xb0;
   TMR3RLL= 0xaf;
   TMR3RLH=0x3c;
   //TMR3=0xffff;
   EIE2&=~0x01;
   TMR3CN|=0x04;
 
/*---------------------------------------------------------------------------------------
DEFINE IO FOO5
----------------------------------------------------------------------------------------*/
   // PRT3CF=0xff;
   //PRT2CF=0xff;
   //P3=0xff;
   //PRT1CF=0x00;		
   // PRT0CF=0xff;	 
   //P0=0xff;
/*****************************
DEFINE AD
*****************************/
    AMX0CF = 0x00;                                //select the single channle
	AMX0SL = 0x00;                                //delect the an0 channel
	ADC0CF = 0x00;
	ADC0CN=0x90;

	/*DAC0CN = 0x80;	                         // DAC0 Control Register
	REF0CN=0x03;
	WDTCN = 0xde;                                //stop the wdt
	WDTCN = 0xad;
	TMR3CN = 0x00;		                         // stop Timer3
	TMR3RLH = ((-TC_100ms >> 8) & 0xff);	
	TMR3RLL = (-TC_100ms & 0xff);
	TMR3H = 0xff;			                     // init Timer3 to reload immediately
	TMR3L = 0xff;
//	EIE2 = 0x01;		                       	// enable Timer3 OVR interrupt
	TMR3CN = 0x04;			                    // start Timer3*/
/*----------------------------------------------------------------------------------------
define uart0 and timer2
-----------------------------------------------------------------------------------------*/
  SCON0=0x50;//THE BANDRAT IS 2400;AND THE TIMER IS TIMER2;
   PCON=0x00;
//TL1=0x00;TH1=0x00;
 //P3&=~0x02;//R enable
	//SCON1=0xd0;
	T2CON=0x30;
	RCAP2H=0xff;
	RCAP2L=0xb1; 
	T2CON|=0x04;
    TR1=1;
//    TI0=1;


//RI0=0;
/*-----------------------------------------------------------------------------------------
DEFINE uart1 and timer4
------------------------------------------------------------------------------------------*/
    P3&=~0x02;                                 //R enable
	SCON1=0xd0;
	T4CON=0x30;
	RCAP4H=0xff;
	RCAP4L=0xb1; 
	T4CON|=0x04;

/*----------------------------------------------------------------------------------------
eeprom init and get the current value
-----------------------------------------------------------------------------------------*/ 
          /*  in_eeprom();

              WDTCN=0xde;                    //stop watch dog
              WDTCN=0xad;
			  
              FLSCL|=0x01;
              PSCTL|=0X02;
              PSCTL|=0X01;
			 			 
              pwrite=0xa000;
              *pwrite=0;
              PSCTL&=~0X02;
			 for(i=0;i<19;i++)
             {
			   *pwrite++=canmodify_package[i];

			 } 
                 PSCTL&=~0x01; 

 */
  
 //         pread=0xa000;                      //read the current value
      //for(i1=0;i1<19;i1++)
       //{
        //canmodify_package[i1]=*pread++;
        //}
/*-----------------------------------------------------------------------------------------
   INITIALIZATION OF AD7705
------------------------------------------------------------------------------------------*/
	// if(canmodify_package[5]==1)
	 //  {
//	 CS=0;
    //init3();
	//delayMS (50);
    //delay(100);
	//writeCmd (0x20);							/*write to communications register setting chan_*/
												/*nel to be Ain1(+)/Ain1(-), setting up next op_*/
												/*eration to be a write to the clock register	*/

	//writeCmd (0x00);							/* the datasheet is wrong!! 					*/
												/*write to clock register, set the clock bits to*/
												/*be: Master clock enabled, 4.9152MHz clock, and*/
											 	/*set output rate to 50Hz						*/

//	writeCmd (0x10);							/*write to communications register, set channel */
												/*to be Ain1(+)/Ain1(-), setting up next operat_*/
												/*ion to be a write to the setup register		*/

//	writeCmd (0x44);							/*write to setup register, clear FSYNC, set gain*/
												/*to 1, monopolar mode, buffer off,and perform a*/
	//	}									 	/*self calibration								*/
/*----------------------------------------------------------------------------------------
DEFINE interrupt 
-------------------------------------------------------------------------------------------*/
      IE|=0x80;
	  EIP2|=0x01;//set the time3 first
	  EIE2|=0x01;//enable time3 interrupt

	   IE|=0x08;//enable time1 interrupt	
       EIE2|=0x40;//enable uart1 interrpt     
     //EIP2=0x40; //set the uart1 first
       IE|=0x10;
  //   transfer_ad=0;
	 ES0=1;    
	//p3_3=1;
//	p3_3=1;
//	p3_4=1;
//	p3_5=1;
//	p3_6=1; 
	   
}	

⌨️ 快捷键说明

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