1、当我们使用一款IC时,需要知道这块IC对应的特殊寄存器的头文件。譬如我们现在用的AM8EB151X,对应的头文件就是:8EB_SFR.h
; ************************************************
; Alpha AM8EB SFR definition
; ************************************************
;======================================================
;General functon register
;=======================================================
#define INAR 0x00 ;Indirect addres register
#define TIM0 0x01 ;Timer0
#define PCL 0x02 ;Low byte of program counter
#define STATUS 0x03 ;Status register
#define FSR 0x04 ;file select register pointer
;#define PTA 0x05 ;PortA
#define PTB 0x06 ;PortB
;#define PTC 0x07 ;PortC
;#define PTD 0x08 ;PortD
;#define PTC_PH 0x09 ;PortC pull high control register
;#define PTC_PD 0x0A ;PortC pull down control register
;#define PTC_OD 0x0B ;PortC open drain control register
;#define PTD_CR 0x0C ;PortD control
#define FUNC_ECR 0X0D ;功能增强控制寄存器
#define INT_SR 0x0F ;Interrupt status register
;====================================================
;I/O control register
;====================================================
;#define PTA_IOM 0x05 ;PortA I/O mode
#define PTB_IOM 0x06 ;PortB I/O mode
;#define PTC_IOM 0x07 ;PortC I/O mode
;#define PTA47_CR 0x08 ;PortA4~PortA7 control register
#define PTB_IICR 0x09 ;PortB input change interrupt control register
#define PSC 0x0A ;Prescaler counter
#define PB_PD 0x0B ;Pull down control register
#define PTB_OD 0x0C ;PortB open drain control register
#define PTB_PH 0x0D ;PortB pull high control register
#define SYS_CR 0x0E ;System control register
#define INT_MR 0x0F ;Interrupt mask register
;====================================================
;Special function register
;====================================================
;#define TIM1 0x00 ;Timer1 initial/reload register
;#define TIM1_C1 0x01 ;Timer1 control register1
;#define TIM1_C2 0x02 ;Timer1 control register2
;#define PWM1 0x03 ;PWM1 register
;#define T1_PSC 0x04 ;Perscaler1 of Timer1 counter register
;#define BZ1 0x05 ;Buzzer1 control register
#define IR 0x06 ;IR control rgister
#define TBHP 0x07 ;TBHP(table high-order byte pointer register)
#define TBH 0x08 ;TBH(table high-order byte data register)
;#define TIM2 0x09 ;Timer2 initial/reload register
;#define TIM2_C1 0x0A ;Timer2 control register1
;#define TIM2_C2 0x0B ;Timer2 control register2
;#define PWM2 0x0C ;PWM2 register
;#define T2_PSC 0x0D ;Perscaler2 of Timer2 counter register
;#define BZ2 0x0E ;Buzzer2 control register
;====================================================
;General storage registers
;====================================================
#define R10 0x10
#define R11 0x11
#define R12 0x12
#define R13 0x13
#define R14 0x14
#define R15 0x15
#define R16 0x16
#define R17 0x17
#define R18 0x18
#define R19 0x19
#define R1A 0x1A
#define R1B 0x1B
#define R1C 0x1C
#define R1D 0x1D
#define R1E 0x1E
#define R1F 0x1F
;Bank 0 registers
#define R20 0x20
#define R21 0x21
#define R22 0x22
#define R23 0x23
#define R24 0x24
#define R25 0x25
#define R26 0x26
#define R27 0x27
#define R28 0x28
#define R29 0x29
#define R2A 0x2A
#define R2B 0x2B
#define R2C 0x2C
#define R2D 0x2D
#define R2E 0x2E
#define R2F 0x2F
#define R30 0x30
#define R31 0x31
#define R32 0x32
#define R33 0x33
#define R34 0x34
#define R35 0x35
#define R36 0x36
#define R37 0x37
#define R38 0x38
#define R39 0x39
#define R3A 0x3A
#define R3B 0x3B
#define R3C 0x3C
#define R3D 0x3D
#define R3E 0x3E