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

📄 header.h

📁 small RTOS 嵌入式实时多任务开发
💻 H
字号:

#include    "e:\keil c51\c51\inc\atmel\at898252.h"

#ifndef   OS_Q_MEM_SEL
   #define   OS_Q_MEM_SEL  idata
#endif


sbit     TX00           =         P0^0;
sbit     RX01           =         P0^1;
sbit     INIT02         =         P0^2;
sbit     UART03         =         P0^3;
sbit     CS             =         P1^0; 
sbit     CE             =         P1^1;
sbit     PWR_UP         =         P1^2;
sbit     TXEN           =         P1^3;
sbit     TRI_STA20      =         P2^0;
sbit     EN_3STA        =         P2^1;
sbit     SCH22          =         P2^2;
sbit     EN_SCH         =         P2^3;
sbit     RIGHT          =         P2^4;
sbit     WRONG          =         P2^5;

// 凡是宏定义,前面均加有下划线以示与变量的区别

// 这几个宏定义是程序中所使用的一些常量
#define  _DataWidth                0x02   // 长度为2个字节
#define  _AddrWidth                0x04   // 长度为4个字节
#define  _MaxTimes                 0x04   // 最大重传次数 
#define  _RIGHT                    0X01      
#define  _ERROR                    0X00
#define  _Tx_Word                  0x04
#define  _Rx_Word                  0x05
#define  _ControlFrame             0xc0
#define  _DataFrame                0x00 
#define  _END                      0x0d   // 回车符号
#define  _STARTBYTE1               0xf0   // PC--->MCU的帧头标志  
#define  _STARTBYTE2               0x0f
#define  _CtrlDataFlag             0x80
#define  _AckState                 0x60
#define  _NewFrame                 0x10
#define  _LastFrame                0x08
#define  _FrameSequence            0x07
#define  _ReSendThisFrame          0 
#define  _ReSendLastFrame          1
#define  _SendNextFrame            2 
#define  _SendComplete             3
#define  _ThisFrameHasReceived     0
#define  _ReceivedANewFrame        1
#define  _AllFramesHasReceived     2
#define  _LostAtLeastOneFrame      3 
#define  _ParameterError           4 


// 以下宏定义暂未使用,留待扩展
#define  _TransData                0x00
#define  _TransAck                 0x01
#define  _PCAsk                    0x05
#define  _PCSendEnd                0x0d   // 回车符号表示PC发送完成 
#define  _AskSelfAddr              0x10
#define  _Admit                    0x55
#define  _RequireErr               0x60
#define  _DataAckErr               0x70 
#define  _TransOK                  0x80
#define  _TXD                      0x88
#define  _ReqFrame                 0xa3
#define  _Agree                    0xac 

 
 


#define  _500US                   0
#define  _1MS                     1
#define  _3MS                     2
#define  _5MS                     3
#define  _10MS                    4




#define  _Spi_RX                   0
#define  _Spi_TX                   1
#define  _F_Ctrl                   1
#define  _F_Data                   0


/* CE下跳沿后195us,2401把数据发射出去 */
#define  _2401_START_TX       PWR_UP=1; CS=0; CE=0; Delay(_5MS)       
 /* 启动SPI传输 */
#define  _TX_SPI(para)   OS_ENTER_CRITICAL();SPDR=(para);while(!(SPSR&0x80));OS_EXIT_CRITICAL()               

#define  _RX_SPI(para)   OS_ENTER_CRITICAL();SPDR=0xff;while(!(SPSR&0x80));(para)=SPDR;OS_EXIT_CRITICAL()                       

/* 等待SPI传输结束 */    
#define  _WAIT_SPI       OS_ENTER_CRITICAL();SPDR=0xcc;while(!(SPSR&0x80));OS_EXIT_CRITICAL()              

 
/* 查询方式,等待TIMER0计数结束 */ 
#define  _WAIT_TIMER0         TF0=0; TR0=1; while(!TF0); TR0=0; TF0=0  
/* 启动TIMER1 */
#define  _START_TIMER1        TR1=1
/* 启动Timer2 */
#define  _START_SYS_TIMER     TR2=1

/* 开关3-STATE的小灯 */
#define  _TURN_ON_3STA        EN_3STA=1;TRI_STA20=0
#define  _TURN_OFF_3STA       TRI_STA20=1
/* 开关SCHMIDIT的小灯 */
#define  _TURN_ON_SCH         EN_SCH=0; SCH22=0
#define  _TURN_OFF_SCH        SCH22=1
/* 开关指示灯TX00*/
#define  _TURN_ON_TX          TX00=0
#define  _TURN_OFF_TX         TX00=1
/* 开关指示灯RX01 */
#define  _TURN_ON_RX          RX01=0
#define  _TURN_OFF_RX         RX01=1
/* 开关指示灯INIT02 */
#define  _TURN_ON_INIT        INIT02=0
#define  _TURN_OFF_INIT       INIT02=1
/* 开关指示灯UART03 */
#define  _TURN_ON_UART        UART03=0
#define  _TURN_OFF_UART       UART03=1
/* 开关指示灯LED24 */
#define  _TURN_ON_RIGHT       RIGHT=0
#define  _TURN_OFF_RIGHT      RIGHT=1
/* 开关指示灯LED25 */
#define  _TURN_ON_WRONG       WRONG=0
#define  _TURN_OFF_WRONG      WRONG=1

/* 总体中断使能位 */
#define  _EN_INT              EA=1
#define  _DIS_INT             EA=0
/* UART中断使能 */
#define  _EN_UART_INT         ES=1
#define  _DIS_UART_INT        ES=0 
/* INT0中断使能 */
#define  _EN_INT0_INT         EX0=1; IT0=1; INT0=1; IE0=0
#define  _DIS_INT0_INT        EX0=0; IE0=0 
/* INT1中断使能(Aviable At Negative Edge And Ready For Input) */
#define  _EN_INT1_INT         EX1=1; IT1=1; INT1=1; IE1=0  
#define  _DIS_INT1_INT        EX1=0; IE1=0 
/* TIMER0中断使能 */
#define  _EN_TIMER0_INT       TF0=0; ET0=1
#define  _DIS_TIMER0_INT      TF0=0; ET0=0
/* TIMER1中断使能 */
#define  _EN_TIMER1_INT       ET1=1
#define  _DIS_TIMER1_INT      ET1=0
/* TIMER2中断使能 */
#define  _EN_TIMER2_INT       ET2=1
#define  _DIS_TIMER2_INT      ET2=0
/* 设置中断优先级 */
#define  _SET_INT_PRI(para)   (para)=1
                                                        
/* 设置SPI为SPCR=0x53=01010011,主控方式, 开放SPI,关SPI中断, 
   从MSB到LSB,正脉冲前沿,128分频(FCLK=CK/128) */
#define  _SET_SPI_TX             SPCR=0x53
/* 设置SPI为SPCR=0x57=01010111,主控方式, 开放SPI,关SPI中断, 
   从MSB到LSB,正脉冲后沿,128分频(FCLK=CK/128) */
#define  _SET_SPI_RX             SPCR=0x57





extern volatile bit SerialCanSend;

extern volatile unsigned char  data SelfAddr,DesAddr,SourAddr,ReceAddr;
extern volatile unsigned char  idata DataCnt,AddressCnt;
extern volatile unsigned char  idata FrameType;

                                 
extern unsigned char  OS_Q_MEM_SEL SerialInBuf[];
extern unsigned char  OS_Q_MEM_SEL ReceDataBuf[];
extern unsigned char  OS_Q_MEM_SEL AckInBuf[];
extern unsigned char  data SendData[];
extern unsigned char  code Rxconfig_Word[];

extern void Power_Down(void);
extern void Stand_By(void);
extern void Config_Word(void);
extern void Init_System(void);
extern void Delay(unsigned char) ;
extern void PutChar(unsigned char); 
extern void ChangeState(unsigned char);
extern unsigned char Dispose(unsigned char);
extern void Transmit(unsigned char,unsigned char (*), unsigned char);





         



⌨️ 快捷键说明

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