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

📄 main.h

📁 ad准确采集
💻 H
📖 第 1 页 / 共 2 页
字号:
sbit RI1 =        0x98 ;  /* UART 1 RX INTERRUPT FLAG */

/* IE 0xA8 */
sbit EA =         0xAF ;  /* GLOBAL INTERRUPT ENABLE */
sbit ET2  =       0xAD ;  /* TIMER 2 INTERRUPT ENABLE */
sbit ES0  =       0xAC ;  /* UART0 INTERRUPT ENABLE */
sbit ET1 =        0xAB ;  /* TIMER 1 INTERRUPT ENABLE */
sbit EX1 =        0xAA ;  /* EXTERNAL INTERRUPT 1 ENABLE */
sbit ET0 =        0xA9 ;  /* TIMER 0 INTERRUPT ENABLE */
sbit EX0 =        0xA8 ;  /* EXTERNAL INTERRUPT 0 ENABLE */

/* IP 0xB8 */
sbit PT2 =        0xBD ;  /* TIMER 2 PRIORITY */
sbit PS =         0xBC ;  /* SERIAL PORT PRIORITY */
sbit PT1 =        0xBB ;  /* TIMER 1 PRIORITY */
sbit PX1 =        0xBA ;  /* EXTERNAL INTERRUPT 1 PRIORITY */
sbit PT0 =        0xB9 ;  /* TIMER 0 PRIORITY */
sbit PX0 =        0xB8 ;  /* EXTERNAL INTERRUPT 0 PRIORITY */

/* SMB0CN 0xC0 */
sbit BUSY =       0xC7 ;  /* SMBUS 0 BUSY */
sbit ENSMB =      0xC6 ;  /* SMBUS 0 ENABLE */
sbit STA  =       0xC5 ;  /* SMBUS 0 START FLAG */
sbit STO =        0xC4 ;  /* SMBUS 0 STOP FLAG */
sbit SI =         0xC3 ;  /* SMBUS 0 INTERRUPT PENDING FLAG */
sbit AA =         0xC2 ;  /* SMBUS 0 ASSERT/ACKNOWLEDGE FLAG */
sbit SMBFTE =     0xC1 ;  /* SMBUS 0 FREE TIMER ENABLE */
sbit SMBTOE =     0xC0 ;  /* SMBUS 0 TIMEOUT ENABLE */

/* MAC0STA 0xC0 */
sbit MAC0HO =     0xC3 ;  /* MAC0 HARD OVERFLOW */
sbit MAC0Z =      0xC2 ;  /* MAC0 ZERO */
sbit MAC0SO =     0xC1 ;  /* MAC0 SOFT OVERFLOW */
sbit MAC0N =      0xC0 ;  /* MAC0 NEGATIVE */

/* TMR2CN 0xC8 */
sbit TF2 =        0xCF ;  /* TIMER 2 OVERFLOW FLAG */
sbit EXF2 =       0xCE ;  /* TIMER 2 EXTERNAL FLAG */
sbit EXEN2 =      0xCB ;  /* TIMER 2 EXTERNAL ENABLE FLAG */
sbit TR2 =        0xCA ;  /* TIMER 2 ON/OFF CONTROL */
sbit CT2 =        0xC9 ;  /* TIMER 2 COUNTER SELECT */
sbit CPRL2 =      0xC8 ;  /* TIMER 2 CAPTURE SELECT */

/* TMR3CN 0xC8 */
sbit TF3 =        0xCF ;  /* TIMER 3 OVERFLOW FLAG */
sbit EXF3 =       0xCE ;  /* TIMER 3 EXTERNAL FLAG */
sbit EXEN3 =      0xCB ;  /* TIMER 3 EXTERNAL ENABLE FLAG */
sbit TR3 =        0xCA ;  /* TIMER 3 ON/OFF CONTROL */
sbit CT3 =        0xC9 ;  /* TIMER 3 COUNTER SELECT */
sbit CPRL3 =      0xC8 ;  /* TIMER 3 CAPTURE SELECT */

/* TMR4CN 0xC8 */
sbit TF4 =        0xCF ;  /* TIMER 4 OVERFLOW FLAG */
sbit EXF4 =       0xCE ;  /* TIMER 4 EXTERNAL FLAG */
sbit EXEN4 =      0xCB ;  /* TIMER 4 EXTERNAL ENABLE FLAG */
sbit TR4 =        0xCA ;  /* TIMER 4 ON/OFF CONTROL */
sbit CT4 =        0xC9 ;  /* TIMER 4 COUNTER SELECT */
sbit CPRL4 =      0xC8 ;  /* TIMER 4 CAPTURE SELECT */

/* PSW 0xD0 */
sbit CY =         0xD7 ;  /* CARRY FLAG */
sbit AC =         0xD6 ;  /* AUXILIARY CARRY FLAG */
sbit F0 =         0xD5 ;  /* USER FLAG 0 */
sbit RS1 =        0xD4 ;  /* REGISTER BANK SELECT 1 */
sbit RS0 =        0xD3 ;  /* REGISTER BANK SELECT 0 */
sbit OV =         0xD2 ;  /* OVERFLOW FLAG */
sbit F1 =         0xD1 ;  /* USER FLAG 1 */
sbit P =          0xD0 ;  /* ACCUMULATOR PARITY FLAG */

/* PCA0CN 0xD8 */
sbit CF =         0xDF ;  /* PCA 0 COUNTER OVERFLOW FLAG */
sbit CR =         0xDE ;  /* PCA 0 COUNTER RUN CONTROL BIT */
sbit CCF5 =       0xDD ;  /* PCA 0 MODULE 5 INTERRUPT FLAG */
sbit CCF4 =       0xDC ;  /* PCA 0 MODULE 4 INTERRUPT FLAG */
sbit CCF3 =       0xDB ;  /* PCA 0 MODULE 3 INTERRUPT FLAG */
sbit CCF2 =       0xDA ;  /* PCA 0 MODULE 2 INTERRUPT FLAG */
sbit CCF1 =       0xD9 ;  /* PCA 0 MODULE 1 INTERRUPT FLAG */
sbit CCF0 =       0xD8 ;  /* PCA 0 MODULE 0 INTERRUPT FLAG */

/* ADC0CN 0xE8 */
sbit AD0EN  =     0xEF ;  /* ADC 0 ENABLE */
sbit AD0TM =      0xEE ;  /* ADC 0 TRACK MODE */
sbit AD0INT =     0xED ;  /* ADC 0 EOC INTERRUPT FLAG */
sbit AD0BUSY =    0xEC ;  /* ADC 0 BUSY FLAG */
sbit AD0CM1   =   0xEB ;  /* ADC 0 CONVERT START MODE BIT 1 */
sbit AD0CM0 =     0xEA ;  /* ADC 0 CONVERT START MODE BIT 0 */
sbit AD0WINT =    0xE9 ;  /* ADC 0 WINDOW INTERRUPT FLAG */
sbit AD0LJST =    0xE8 ;  /* ADC 0 RIGHT JUSTIFY DATA BIT */

/* ADC2CN 0xE8 */
sbit AD2EN  =     0xEF ;  /* ADC 2 ENABLE */
sbit AD2TM =      0xEE ;  /* ADC 2 TRACK MODE */
sbit AD2INT =     0xED ;  /* ADC 2 EOC INTERRUPT FLAG */
sbit AD2BUSY =    0xEC ;  /* ADC 2 BUSY FLAG */
sbit AD2CM2 =     0xEB ;  /* ADC 2 CONVERT START MODE BIT 2 */
sbit AD2CM1 =     0xEA ;  /* ADC 2 CONVERT START MODE BIT 1 */
sbit AD2CM0 =     0xE9 ;  /* ADC 2 CONVERT START MODE BIT 0 */
sbit AD2WINT =    0xE8 ;  /* ADC 2 WINDOW INTERRUPT FLAG */

/* SPI0CN 0xF8 */
sbit SPIF =       0xFF ;  /* SPI 0 INTERRUPT FLAG */
sbit WCOL =       0xFE ;  /* SPI 0 WRITE COLLISION FLAG */
sbit MODF =       0xFD ;  /* SPI 0 MODE FAULT FLAG */
sbit RXOVRN =     0xFC ;  /* SPI 0 RX OVERRUN FLAG */
sbit NSSMD1 =     0xFB ;  /* SPI 0 SLAVE SELECT MODE 1 */
sbit NSSMD0 =     0xFA ;  /* SPI 0 SLAVE SELECT MODE 0 */
sbit TXBMT =      0xF9 ;  /* SPI 0 TX BUFFER EMPTY FLAG */
sbit SPIEN =      0xF8 ;  /* SPI 0 SPI ENABLE */

sfr16 RCAP3 =0xCA;


/* SFR PAGE DEFINITIONS */

#define CONFIG_PAGE       0x0F    /* SYSTEM AND PORT CONFIGURATION PAGE */
#define LEGACY_PAGE       0x00    /* LEGACY SFR PAGE */
#define TIMER01_PAGE      0x00    /* TIMER 0 AND TIMER 1 */
#define CPT0_PAGE         0x01    /* COMPARATOR 0 */
#define CPT1_PAGE         0x02    /* COMPARATOR 1 */
#define UART0_PAGE        0x00    /* UART 0 */
#define UART1_PAGE        0x01    /* UART 1 */
#define SPI0_PAGE         0x00    /* SPI 0 */
#define EMI0_PAGE         0x00    /* EXTERNAL MEMORY INTERFACE */
#define ADC0_PAGE         0x00    /* ADC 0 */
#define ADC2_PAGE         0x02    /* ADC 2 */
#define SMB0_PAGE         0x00    /* SMBUS 0 */
#define TMR2_PAGE         0x00    /* TIMER 2 */
#define TMR3_PAGE         0x01    /* TIMER 3 */
#define TMR4_PAGE         0x02    /* TIMER 4 */
#define DAC0_PAGE         0x00    /* DAC 0 */
#define DAC1_PAGE         0x01    /* DAC 1 */
#define PCA0_PAGE         0x00    /* PCA 0 */
#define PLL0_PAGE         0x0F    /* PLL 0 */
#define MAC0_PAGE         0x03    /* MAC 0 */

//-----------------------------------------------------------------------------
// C8051F02X的16位SFR定义
//-----------------------------------------------------------------------------
sfr16 DP = 0x82; // 数据指针
sfr16 TMR3RL = 0x92; // 定时器3重装值
sfr16 TMR3 = 0x94; // 定时器3计数器
sfr16 ADC0 = 0xbe; // ADC0数据
sfr16 ADC0GT = 0xc4; // ADC0大于窗口
sfr16 ADC0LT = 0xc6; // ADC0小于窗口
sfr16 RCAP2 = 0xca; // 定时器2捕捉/重装
sfr16 T2 = 0xcc; // 定时器2
sfr16 RCAP4 = 0xe4; // 定时器4捕捉/重装
sfr16 T4 = 0xf4; // 定时器4
sfr16 DAC0 = 0xd2; // DAC0数据
sfr16 DAC1 = 0xd5; // DAC1数据
//-----------------------------------------------------------------------------
// 全局常量
//-----------------------------------------------------------------------------
#define SYSCLK_AD 22118400 // 系统时钟频率Hz
//#define BAUDRATE 115200 // UART波特率bps
#define SYSCLK_LCD 4000000 // 系统时钟频率Hz
#define BAUDRATE 9600 // UART波特率bps
#define SAMPLERATE0 50000 // ADC0采样频率Hz
//#define NUM_SAMPLES 2048 // ADC0采样次数
#define NUM_SAMPLES 600 // ADC0采样次数
#define TRUE 1
#define FALSE 0
sbit LED = P1^6; // LED='1' 意为开
sbit SW1 = P3^7; // SW1='0' 意为按压开关   
//------------------------------------------------------------------------
//cunchu.c
//---------------------------------------------------------------
sbit 	P1_7 = P1^7;                //p1.7连接的是并行flash的CS位
sbit    P3_1 = P3^1;                  //P3.1连接的是FLASH的RD/BY#位
sbit    P3_0 = P3^0;                   //P3.0连接的是FLASH的RESET#位
  
//------------------------------------------------------------------------
//Global CONSTANTS
//------------------------------------------------------------------------
//#define SYSCLK   22184000
#define   DATA        P7                    //P7为并行存储器的数据端口
#define   ADDRL       P6                    //P6口为地址线的A0-A7位
#define   ADDRHL      P5                    //P5口为地址线的A8-A15位
//#define   ADDRHH      P4                     // P4口为地址线的A16-A20位
#define chip_select   P1_7 = 0;                //P1.7为芯片的选通信号
#define chip_noselect P1_7 = 1;
#define    RD     P4 = P4&~(0x40);          //P4.6为芯片的读选通信号
#define   NORD    P4 = P4|(0x40);
#define    WR      P4 = P4&~(0x80);         //P4.7为芯片的写选通信号
#define   NOWR     P4 = P4|(0x80);
#define   RDY_BUSY	while(!(P3&0x02)); // P3_1=1; while(!(P3&0x02));
#define   RESET      P3_0=0;P3_0=1;
//*****************************************************************
//main.c
//****************************************************************//  
void SYSCLK_Init_AD (void);

//*****************************************************************
//lcd.c
//****************************************************************//  
void LCD_Prepare(void);
void LCD_Initialise(void);
void LCD_Write_Data(unsigned char lwd_data);
void LCD_Write_Command(unsigned char lwc_data);
//unsigned char LCD_Read_Status(void);
void LCD_Clear_Graphics(void);
void LCD_Clear_Text(void);
void LCD_Write_Text(unsigned char character, unsigned char x, unsigned char y);
void New_Write_Under_Picture(unsigned char  o_x,unsigned char o_y,char cch[2],int reverse);
void STA_RST(void);
void SYSCLK_Init_LCD(void);

//*************************************************************888*****//
//ad.c functions
//*************************************************************888*****//
void SampFunc(long SYSCLK, int totalChannel, long sampleRate, float gain,  volatile unsigned int  *samples, long numSample);
void Timer3_Init(int counts);
void ADC0_Init(float gain);
void ADC0_ISR(void);
//void ADC0_ISR (int totalChannel ,  unsigned int *samples , long numSample); //interrupt 15 //using 3????????????

//*************************************************************888*****//
//UART0.c functions
//*************************************************************888*****//
void UART0_transmit(unsigned int *samples, unsigned int numSample);
void UART0_Init (void);
void UART0_ISR(void);
//void SYSCLK_Init (void);
void PORT_Init(void);
//-------------------------------------------------
//cunchu.c
//-------------------------------------------------
void cunchu_Init();
unsigned char flash_readchar(unsigned int addrh,unsigned int ADDR);
void flash_writecom(unsigned int ADDR,unsigned char ch);
void flash_write( unsigned long addr,unsigned int *Inarry,unsigned int arry);
void flash_writechar(unsigned long addr,unsigned char ch);
unsigned int flash_read(unsigned int addh,unsigned int addr);



⌨️ 快捷键说明

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