📄 main.h
字号:
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 + -