?? initsys.c
字號(hào):
/*=========================================================================================
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;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -