📄 head.h
字号:
//head.h
#include <mega64.h>
#include <delay.h>
#include <stdio.h>
#include <string.h>
#define uchar unsigned char
#define schar signed char
#define uint unsigned int
#define sint signed int
#define fosc 8000000 //晶振8MHZ
#define fuart 16000000
//UCSRA
#define RXC 7
#define TXC 6
#define UDRE 5
#define FE 4
#define DOR 3
#define UPE 2
#define U2X 1
#define MPCM 0
//UCSRB
#define RXCIE 7
#define TXCIE 6
#define UDRIE 5
#define RXEN 4
#define TXEN 3
#define UCSZ2 2
#define RXB8 1
#define TXB8 0
//UCSRC
#define UMSEL 6
#define UPM1 5
#define UPM0 4
#define USBS 3
#define UCSZ1 2
#define UCSZ0 1
#define UCPOL 0
//PORTD
#define CSA PORTD.4
#define CSB PORTD.5
#define CSC PORTD.6
#define CSD PORTD.7
//MCUCR
#define SRE 7
#define SRW10 6
//XMCRA
#define SRL2 6
#define SRL1 5
#define SRL0 4
#define SRW01 3
#define SRW00 2
#define SRW11 1
//XMCRB
#define XMBK 7
#define XMM2 2
#define XMM1 1
#define XMM0 0
//EECR
#define EEWE 1
#define EERE 0
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<DOR)
#define RX_COMPLETE (1<<RXC)
#define TX_COMPLETE (1<<TXC)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RT485 PORTE.2
#define RST554 PORTE.3
//串口A
#define TL16C554_A_THR *(unsigned char *)0x8000 // Transmit Holding Register
#define TL16C554_A_RBR *(unsigned char *)0x8000 // Receive Holding Register
#define TL16C554_A_DLL *(unsigned char *)0x8000 // Divisor-latch LSB
#define TL16C554_A_DLM *(unsigned char *)0x8001 // Divisor-latch MSB
#define TL16C554_A_IER *(unsigned char *)0x8001 // Interrupt Enable Register
#define TL16C554_A_IIR *(unsigned char *)0x8002 // Interrupt Status Register
#define TL16C554_A_FCR *(unsigned char *)0x8002 // FIFO control register
#define TL16C554_A_LCR *(unsigned char *)0x8003 // Line control Register
#define TL16C554_A_MCR *(unsigned char *)0x8004 // Modem Control Register
#define TL16C554_A_LSR *(unsigned char *)0x8005 // Line Status Register
#define TL16C554_A_MSR *(unsigned char *)0x8006 // Modem Status Register
#define TL16C554_A_SCR *(unsigned char *)0x8007 // Scratchpad Register
//串口B
#define TL16C554_B_THR *(unsigned char *)0x8000 // Transmit Holding Register
#define TL16C554_B_RBR *(unsigned char *)0x8000 // Receive Holding Register
#define TL16C554_B_DLL *(unsigned char *)0x8000 // Divisor-latch LSB
#define TL16C554_B_DLM *(unsigned char *)0x8001 // Divisor-latch MSB
#define TL16C554_B_IER *(unsigned char *)0x8001 // Interrupt Enable Register
#define TL16C554_B_IIR *(unsigned char *)0x8002 // Interrupt Status Register
#define TL16C554_B_FCR *(unsigned char *)0x8002 // FIFO control register
#define TL16C554_B_LCR *(unsigned char *)0x8003 // Line control Register
#define TL16C554_B_MCR *(unsigned char *)0x8004 // Modem Control Register
#define TL16C554_B_LSR *(unsigned char *)0x8005 // Line Status Register
#define TL16C554_B_MSR *(unsigned char *)0x8006 // Modem Status Register
#define TL16C554_B_SCR *(unsigned char *)0x8007 // Scratchpad Register
//串口C
#define TL16C554_C_THR *(unsigned char *)0x8000 // Transmit Holding Register
#define TL16C554_C_RBR *(unsigned char *)0x8000 // Receive Holding Register
#define TL16C554_C_DLL *(unsigned char *)0x8000 // Divisor-latch LSB
#define TL16C554_C_DLM *(unsigned char *)0x8001 // Divisor-latch MSB
#define TL16C554_C_IER *(unsigned char *)0x8001 // Interrupt Enable Register
#define TL16C554_C_IIR *(unsigned char *)0x8002 // Interrupt Status Register
#define TL16C554_C_FCR *(unsigned char *)0x8002 // FIFO control register
#define TL16C554_C_LCR *(unsigned char *)0x8003 // Line control Register
#define TL16C554_C_MCR *(unsigned char *)0x8004 // Modem Control Register
#define TL16C554_C_LSR *(unsigned char *)0x8005 // Line Status Register
#define TL16C554_C_MSR *(unsigned char *)0x8006 // Modem Status Register
#define TL16C554_C_SCR *(unsigned char *)0x8007 // Scratchpad Register
//串口D
#define TL16C554_D_THR *(unsigned char *)0x8000 // Transmit Holding Register
#define TL16C554_D_RBR *(unsigned char *)0x8000 // Receive Holding Register
#define TL16C554_D_DLL *(unsigned char *)0x8000 // Divisor-latch LSB
#define TL16C554_D_DLM *(unsigned char *)0x8001 // Divisor-latch MSB
#define TL16C554_D_IER *(unsigned char *)0x8001 // Interrupt Enable Register
#define TL16C554_D_IIR *(unsigned char *)0x8002 // Interrupt Status Register
#define TL16C554_D_FCR *(unsigned char *)0x8002 // FIFO control register
#define TL16C554_D_LCR *(unsigned char *)0x8003 // Line control Register
#define TL16C554_D_MCR *(unsigned char *)0x8004 // Modem Control Register
#define TL16C554_D_LSR *(unsigned char *)0x8005 // Line Status Register
#define TL16C554_D_MSR *(unsigned char *)0x8006 // Modem Status Register
#define TL16C554_D_SCR *(unsigned char *)0x8007 // Scratchpad Register
typedef struct
{
uchar Start;
uchar Command;
uchar *Pack_Data;
uchar Check_Sum;
}Str_Command;
typedef struct
{
uchar Start;
uchar Command;
uchar Len[2];
uchar *Pack_Data;
uchar Check_Sum;
}Str_Data;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -