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

📄 pwm.asm

📁 用c8051f040做得一个程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;/*---------------------------------------------------------------------------
;
;
;
;
; FILE NAME: C8051F060.H
; TARGET MCUs: C8051F060, F061, F062, F063
; DESCRIPTION: Register/bit definitions for the C8051F060 product family.
;
; REVISION 1.2
;
;---------------------------------------------------------------------------*/


;/*  BYTE Registers  */

P0       equ 80h; /* PORT 0 LATCH */
SP           equ 0x81; /* STACK POINTER */
DPL           equ 0x82; /* DATA POINTER LOW */
DPH           equ 0x83; /* DATA POINTER HIGH */
SFRPAGE       equ 84h; /* SFR PAGE REGISTER */
SFRNEXT      equ 85h; /* SFR PAGE REGISTER */
SFRLAST      equ 86h; /* SFR PAGE STACK ACCESS REGISTER */
PCON          equ 0x87; /* POWER CONTROL */
CPT0CN       equ 88h; /* COMPARATOR 0 CONTROL */
CPT1CN        equ 88h; /* COMPARATOR 1 CONTROL */
CPT2CN        equ 88h; /* COMPARATOR 2 CONTROL */
TCON          equ 88h; /* TIMER/COUNTER CONTROL */
CPT0MD        equ 89h; /* COMPARATOR 0 CONFIGURATION */
CPT1MD        equ 89h; /* COMPARATOR 1 CONFIGURATION */
CPT2MD        equ 89h; /* COMPARATOR 2 CONFIGURATION */
TMOD          equ 89h; /* TIMER/COUNTER MODE */
OSCICN        equ 8Ah; /* INTERNAL OSCILLATOR CONTROL */
TL0           equ 8Ah; /* TIMER/COUNTER 0 LOW */
OSCICL        equ 8Bh; /* INTERNAL OSCILLATOR CALIBRATION */
TL1           equ 8Bh; /* TIMER/COUNTER 1 LOW */
OSCXCN       equ 8Ch; /* EXTERNAL OSCILLATOR CONTROL */
TH0           equ 8Ch; /* TIMER/COUNTER 0 HIGH */
TH1          equ 8Dh; /* TIMER/COUNTER 1 HIGH */
CKCON       equ  8Eh; /* CLOCK CONTROL */
PSCTL         equ 8Fh; /* PROGRAM STORE R/W CONTROL */
P1            equ 90h; /* PORT 1 LATCH */
SSTA0         equ 91h; /* UART 0 STATUS */
SFRPGCN       equ 96h; /* SFR PAGE CONTROL REGISTER */
CLKSEL        equ 97h; /* OSCILLATOR CLOCK SELECTION REGISTER */
SCON0         equ 98h; /* UART 0 CONTROL */
SCON1         equ 98h; /* UART 1 CONTROL */
SBUF0         equ 99h; /* UART 0 DATA BUFFER */
SBUF1         equ 99h; /* UART 1 DATA BUFFER */
SPI0CFG       equ 9Ah; /* SPI CONFIGURATION */
SPI0DAT       equ 9Bh; /* SPI DATA */
P4MDOUT       equ 9Ch; /* PORT 4 OUTPUT MODE CONFIGURATION */
P5MDOUT       equ 9Dh; /* PORT 5 OUTPUT MODE CONFIGURATION */
SPI0CKR       equ 9Dh; /* SPI CLOCK RATE CONTROL */
P6MDOUT       equ 9Eh; /* PORT 6 OUTPUT MODE CONFIGURATION */
P7MDOUT       equ 9Fh; /* PORT 7 OUTPUT MODE CONFIGURATION */
P2           equ 0A0h; /* PORT 2 LATCH */
EMI0TC        equ 0A1h; /* EMIF TIMING CONTROL */
EMI0CN        equ 0A2h; /* EMIF CONTROL */
EMI0CF        equ 0A3h; /* EMIF CONFIGURATION */
P0MDOUT       equ 0A4h; /* PORT 0 OUTPUT MODE CONFIGURATION */
P1MDOUT       equ 0A5h; /* PORT 1 OUTPUT MODE CONFIGURATION */
P2MDOUT       equ 0A6h; /* PORT 2 OUTPUT MODE CONFIGURATION */
P3MDOUT       equ 0A7h; /* PORT 3 OUTPUT MODE CONFIGURATION */
IE            equ 0A8h; /* INTERRUPT ENABLE */
SADDR0        equ 0A9h; /* UART 0 SLAVE ADDRESS */
P1MDIN        equ 0ADh; /* PORT 1 INPUT MODE */
P2MDIN       equ 0AEh; /* PORT 2 INPUT MODE */
P3            equ 0B0h; /* PORT 3 LATCH */
FLACL         equ 0B7h; /* FLASH ACCESS LIMIT */
FLSCL         equ 0B7h; /* FLASH SCALE */
IP           equ 0B8h; /* INTERRUPT PRIORITY */
SADEN0        equ 0B9h; /* UART 0 SLAVE ADDRESS ENABLE */
ADC0CPT       equ 0BAh; /* ADC0 CALIBRATION POINTER */
AMX2CF        equ 0BAh; /* ADC2 ANALOG MULTIPLEXER CONFIGURATION */
ADC0CCF       equ 0BBh; /* ADC0 CALIBRATION COEFFICIENT */
AMX0SL        equ 0BBh; /* ADC0 MULTIPLEXER CHANNEL SELECT */
AMX2SL        equ 0BBh; /* ADC2 ANALOG MULTIPLEXER CHANNEL SELECT */
ADC0CF        equ 0BCh; /* ADC0 CONFIGURATION */
ADC1CF        equ 0BCh; /* ADC1 CONFIGURATION */
ADC2CF        equ 0BCh; /* ADC2 CONFIGURATION */
ADC0L         equ 0BEh; /* ADC0 DATA WORD LOW */
ADC1L         equ 0BEh; /* ADC1 DATA WORD LOW */
ADC2L         equ 0BEh; /* ADC2 DATA WORD LOW */
ADC0H         equ 0BFh; /* ADC0 DATA WORD HIGH */
ADC1H         equ 0BFh; /* ADC1 DATA WORD HIGH */
ADC2H         equ 0BFh; /* ADC2 DATA WORD HIGH */
CAN0STA       equ 0C0h; /* CAN0 STATUS */
SMB0CN        equ 0C0h; /* SMBUS CONTROL */
SMB0STA       equ 0C1h; /* SMBUS STATUS */
SMB0DAT       equ 0C2h; /* SMBUS DATA */
SMB0ADR       equ 0C3h; /* SMBUS SLAVE ADDRESS */
ADC0GTL       equ 0C4h; /* ADC0 GREATER-THAN LOW */
ADC2GTL       equ 0C4h; /* ADC2 GREATER-THAN LOW */
ADC0GTH       equ 0C5h; /* ADC0 GREATER-THAN HIGH */
ADC2GTH       equ 0C5h; /* ADC2 GREATER-THAN HIGH */
ADC0LTL       equ 0C6h; /* ADC0 LESS-THAN LOW */
ADC2LTL       equ 0C6h; /* ADC2 LESS-THAN LOW */
ADC0LTH       equ 0C7h; /* ADC0 LESS-THAN HIGH */
ADC2LTH       equ 0C7h; /* ADC2 LESS-THAN HIGH */
P4            equ 0C8h; /* PORT 4 LATCH */
TMR2CN        equ 0C8h; /* TIMER/COUNTER 2 CONTROL */
TMR3CN        equ 0C8h; /* TIMER/COUNTER 3 CONTROL */
TMR4CN        equ 0C8h; /* TIMER/COUNTER 4 CONTROL */
TMR2CF        equ 0C9h; /* TIMER/COUNTER 2 CONFIGURATION */
TMR3CF        equ 0C9h; /* TIMER/COUNTER 3 CONFIGURATION */
TMR4CF        equ 0C9h; /* TIMER/COUNTER 4 CONFIGURATION */
RCAP2L        equ 0CAh; /* TIMER/COUNTER 2 CAPTURE/RELOAD LOW */
RCAP3L        equ 0CAh; /* TIMER/COUNTER 3 CAPTURE/RELOAD LOW */
RCAP4L        equ 0CAh; /* TIMER/COUNTER 4 CAPTURE/RELOAD LOW */
RCAP2H        equ 0CBh; /* TIMER/COUNTER 2 CAPTURE/RELOAD HIGH */
RCAP3H        equ 0CBh; /* TIMER/COUNTER 3 CAPTURE/RELOAD HIGH */
RCAP4H        equ 0CBh; /* TIMER/COUNTER 4 CAPTURE/RELOAD HIGH */
TMR2L         equ 0CCh; /* TIMER/COUNTER 2 LOW */
TMR3L         equ 0CCh; /* TIMER/COUNTER 3 LOW */
TMR4L         equ 0CCh; /* TIMER/COUNTER 4 LOW */
TMR2H         equ 0CDh; /* TIMER/COUNTER 2 HIGH */
TMR3H         equ 0CDh; /* TIMER/COUNTER 3 HIGH */
TMR4H         equ 0CDh; /* TIMER/COUNTER 4 HIGH */
SMB0CR        equ 0CFh; /* SMBUS CLOCK RATE */
PSW           equ 0D0h; /* PROGRAM STATUS WORD */
REF0CN        equ 0D1h; /* VOLTAGE REFERENCE CONTROL 0 */
REF1CN        equ 0D1h; /* VOLTAGE REFERENCE CONTROL 1 */
REF2CN        equ 0D1h; /* VOLTAGE REFERENCE CONTROL 2 */
DAC0L         equ 0D2h; /* DAC0 LOW */
DAC1L         equ 0D2h; /* DAC1 LOW */
DAC0H         equ 0D3h; /* DAC0 HIGH */
DAC1H        equ 0D3h; /* DAC1 HIGH */
DAC0CN        equ 0D4h; /* DAC0 CONTROL */
DAC1CN        equ 0D4h; /* DAC1 CONTROL */
CAN0DATL      equ 0D8h; /* CAN0 DATA LOW */
DMA0CN        equ 0D8h; /* DMA0 CONTROL */
P5            equ 0D8h; /* PORT 5 LATCH */
PCA0CN        equ 0D8h; /* PCA CONTROL */
CAN0DATH      equ 0D9h; /* CAN0 DATA HIGH */
DMA0DAL       equ 0D9h; /* DMA0 DATA ADDRESS BEGINNING LOW BYTE */
PCA0MD        equ 0D9h; /* PCA MODE */
CAN0ADR       equ 0DAh; /* CAN0 ADDRESS */
DMA0DAH       equ 0DAh; /* DMA0 DATA ADDRESS BEGINNING HIGH BYTE */
PCA0CPM0      equ 0DAh; /* PCA MODULE 0 MODE REGISTER */
CAN0TST       equ 0DBh; /* CAN0 TEST */
DMA0DSL       equ 0DBh; /* DMA0 DATA ADDRESS POINTER LOW BYTE */
PCA0CPM1      equ 0DBh; /* PCA MODULE 1 MODE REGISTER */
DMA0DSH       equ 0DCh; /* DMA0 DATA ADDRESS POINTER HIGH BYTE */
PCA0CPM2      equ 0DCh; /* PCA MODULE 2 MODE REGISTER */
DMA0IPT       equ 0DDh; /* DMA0 INSTRUCTION WRITE ADDRESS */
PCA0CPM3      equ 0DDh; /* PCA MODULE 3 MODE REGISTER */
DMA0IDT       equ 0DEh; /* DMA0 INSTRUCTION WRITE DATA */
PCA0CPM4      equ 0DEh; /* PCA MODULE 4 MODE REGISTER */
PCA0CPM5      equ 0DFh; /* PCA MODULE 5 MODE REGISTER */
ACC           equ 0E0h; /* ACCUMULATOR */
PCA0CPL5      equ 0E1h; /* PCA CAPTURE 5 LOW */
XBR0          equ 0E1h; /* PORT I/O CROSSBAR CONTROL 0 */
PCA0CPH5      equ 0E2h; /* PCA CAPTURE 5 HIGH */
XBR1          equ 0E2h; /* PORT I/O CROSSBAR CONTROL 1 */
XBR2         equ 0E3h; /* PORT I/O CROSSBAR CONTROL 2 */
XBR3          equ 0E4h; /* PORT I/O CROSSBAR CONTROL 3 */
EIE1          equ 0E6h; /* EXTENDED INTERRUPT ENABLE 1 */
EIE2          equ 0E7h; /* EXTENDED INTERRUPT ENABLE 2 */
ADC0CN        equ 0E8h; /* ADC0 CONTROL */
ADC1CN        equ 0E8h; /* ADC1 CONTROL */
ADC2CN        equ 0E8h; /* ADC2 CONTROL */
P6            equ 0E8h; /* PORT 6 LATCH */
PCA0CPL2      equ 0E9h; /* PCA CAPTURE 2 LOW */
PCA0CPH2      equ 0EAh; /* PCA CAPTURE 2 HIGH */
PCA0CPL3      equ 0EBh; /* PCA CAPTURE 3 LOW */
PCA0CPH3      equ 0ECh; /* PCA CAPTURE 3 HIGH */
PCA0CPL4      equ 0EDh; /* PCA CAPTURE 4 LOW */
PCA0CPH4      equ 0EEh; /* PCA CAPTURE 4 HIGH */
RSTSRC        equ 0EFh; /* RESET SOURCE */
B             equ 0F0h; /* B REGISTER */
EIP1          equ 0F6h; /* EXTERNAL INTERRUPT PRIORITY 1 */
EIP2          equ 0F7h; /* EXTERNAL INTERRUPT PRIORITY 2 */
CAN0CN        equ 0F8h; /* CAN0 CONTROL */
DMA0CF        equ 0F8h; /* DMA0 CONFIGURATION */
P7            equ 0F8h; /* PORT 7 LATCH */
SPI0CN       equ 0F8h; /* SPI CONTROL */
DMA0CTL       equ 0F9h; /* DMA0 REPEAT COUNTER LIMIT LOW BYTE */
PCA0L         equ 0F9h; /* PCA COUNTER LOW */
DMA0CTH       equ 0FAh; /* DMA0 REPEAT COUNTER LIMIT HIGH BYTE */
PCA0H         equ 0FAh; /* PCA COUNTER HIGH */
DMA0CSL       equ 0FBh; /* DMA0 REPEAT COUNTER STATUS LOW BYTE */
PCA0CPL0      equ 0FBh; /* PCA CAPTURE 0 LOW */
DMA0CSH       equ 0FCh; /* DMA0 REPEAT COUNTER STATUS HIGH BYTE */
PCA0CPH0      equ 0FCh; /* PCA CAPTURE 0 HIGH */
DMA0BND       equ 0FDh; /* DMA0 INSTRUCTION BOUNDARY */
PCA0CPL1      equ 0FDh; /* PCA CAPTURE 1 LOW */
DMA0ISW       equ 0FEh; /* DMA0 INSTRUCTION STATUS */
PCA0CPH1      equ 0FEh; /* PCA CAPTURE 1 HIGH */
WDTCN         equ 0FFh; /* WATCHDOG TIMER CONTROL */


;/* Bit Definitions */

;/* TCON 0x88 */
TF1 bit       8Fh ;  /* TIMER 1 OVERFLOW FLAG */
TR1 bit        8Eh ;  /* TIMER 1 ON/OFF CONTROL */
TF0 bit        8Dh;  /* TIMER 0 OVERFLOW FLAG */
TR0 bit        8Ch ;  /* TIMER 0 ON/OFF CONTROL */
IE1 bit        8Bh ;  /* EXT. INTERRUPT 1 EDGE FLAG */
IT1 bit        8Ah ;  /* EXT. INTERRUPT 1 TYPE */
IE0 bit        89h ;  /* EXT. INTERRUPT 0 EDGE FLAG */
IT0 bit        88h ;  /* EXT. INTERRUPT 0 TYPE */

;/* CPT0CN 0x88 */
CP0EN bit       8Fh ;  /* COMPARATOR 0 ENABLE */
CP0OUT bit     8Eh ;  /* COMPARATOR 0 OUTPUT */
CP0RIF bit      8Dh ;  /* COMPARATOR 0 RISING EDGE INTERRUPT */
CP0FIF bit      8Ch ;  /* COMPARATOR 0 FALLING EDGE INTERRUPT */
CP0HYP1 bit     8Bh ;  /* COMPARATOR 0 POSITIVE HYSTERISIS 1 */
CP0HYP0 bit     8Ah ;  /* COMPARATOR 0 POSITIVE HYSTERISIS 0 */
CP0HYN1 bit     89h ;  /* COMPARATOR 0 NEGATIVE HYSTERISIS 1 */
CP0HYN0 bit     88h ;  /* COMPARATOR 0 NEGATIVE HYSTERISIS 0 */

;/* CPT1CN 0x88 */
CP1EN bit       8Fh ;  /* COMPARATOR 1 ENABLE */
CP1OUT bit      8Eh ;  /* COMPARATOR 1 OUTPUT */
CP1RIF bit      8Dh ;  /* COMPARATOR 1 RISING EDGE INTERRUPT */
CP1FIF bit      8Ch ;  /* COMPARATOR 1 FALLING EDGE INTERRUPT */
CP1HYP1 bit     8Bh ;  /* COMPARATOR 1 POSITIVE HYSTERISIS 1 */
CP1HYP0 bit     8Ah ;  /* COMPARATOR 1 POSITIVE HYSTERISIS 0 */
CP1HYN1 bit    89h ;  /* COMPARATOR 1 NEGATIVE HYSTERISIS 1 */
CP1HYN0 bit     88h ;  /* COMPARATOR 1 NEGATIVE HYSTERISIS 0 */

;/* CPT2CN 0x88 */
CP2EN bit       8Fh ;  /* COMPARATOR 2 ENABLE */
CP2OUT bit      8Eh ;  /* COMPARATOR 2 OUTPUT */
CP2RIF bit      8Dh ;  /* COMPARATOR 2 RISING EDGE INTERRUPT */
CP2FIF bit      8Ch ;  /* COMPARATOR 2 FALLING EDGE INTERRUPT */
CP2HYP1 bit     8Bh ;  /* COMPARATOR 2 POSITIVE HYSTERISIS 1 */
CP2HYP0 bit     8Ah ;  /* COMPARATOR 2 POSITIVE HYSTERISIS 0 */
CP2HYN1 bit     89h ;  /* COMPARATOR 2 NEGATIVE HYSTERISIS 1 */
CP2HYN0 bit     88h ;  /* COMPARATOR 2 NEGATIVE HYSTERISIS 0 */

;/* SCON0 0x98 */
SM00 bit        9Fh ;  /* UART 0 MODE 0 */
SM10 bit        9Eh ;  /* UART 0 MODE 1 */
SM20 bit        9Dh ;  /* UART 0 MULTIPROCESSOR EN */
REN0 bit        9Ch ;  /* UART 0 RX ENABLE */
TB80 bit        9Bh ;  /* UART 0 TX BIT 8 */
RB80 bit        9Ah ;  /* UART 0 RX BIT 8 */
TI0 bit         99h ;  /* UART 0 TX INTERRUPT FLAG */
RI0 bit        98h ;  /* UART 0 RX INTERRUPT FLAG */

;/* SCON1 0x98 */
S1MODE bit      9Fh ;  /* UART 1 MODE */
MCE1 bit        9Dh ;  /* UART 1 MCE */
REN1 bit        9Ch ;  /* UART 1 RX ENABLE */
TB81 bit        9Bh ;  /* UART 1 TX BIT 8 */
RB81 bit        9Ah ;  /* UART 1 RX BIT 8 */
TI1 bit         99h ;  /* UART 1 TX INTERRUPT FLAG */
RI1 bit         98h ;  /* UART 1 RX INTERRUPT FLAG */

;/* IE 0xA8 */
EA bit          0AFh ;  /* GLOBAL INTERRUPT ENABLE */
ET2  bit        0ADh ;  /* TIMER 2 INTERRUPT ENABLE */
ES0  bit        0ACh ;  /* UART0 INTERRUPT ENABLE */
ET1 bit         0ABh ;  /* TIMER 1 INTERRUPT ENABLE */
EX1 bit         0AAh ;  /* EXTERNAL INTERRUPT 1 ENABLE */
ET0 bit        0A9h ;  /* TIMER 0 INTERRUPT ENABLE */
EX0 bit         0A8h ;  /* EXTERNAL INTERRUPT 0 ENABLE */

;/* IP 0xB8 */

⌨️ 快捷键说明

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