📄 blinky.src
字号:
; blinky.SRC generated from: blinky.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\c51.exe blinky.c DB OE SRC
$NOMOD51
NAME BLINKY
CCF2 BIT 0D8H.2
EWARN BIT 0C0H.6
TB80 BIT 098H.3
SPI0CKR DATA 09DH
CCF3 BIT 0D8H.3
TB81 BIT 098H.3
CAN0TST DATA 0DBH
P0 DATA 080H
SPIEN BIT 0F8H.0
CCF4 BIT 0D8H.4
SM00 BIT 098H.7
P1 DATA 090H
CCF5 BIT 0D8H.5
AA BIT 0C0H.2
SM10 BIT 098H.6
WDTCN DATA 0FFH
P2 DATA 0A0H
SM20 BIT 098H.5
ADC0CF DATA 0BCH
P3 DATA 0B0H
AC BIT 0D0H.6
P4 DATA 0C8H
LEC0 BIT 0C0H.0
EIE1 DATA 0E6H
P5 DATA 0D8H
ADC2CF DATA 0BCH
LEC1 BIT 0C0H.1
EA BIT 0A8H.7
P6 DATA 0E8H
EIE2 DATA 0E7H
LEC2 BIT 0C0H.2
MCE1 BIT 098H.5
P7 DATA 0F8H
PSCTL DATA 08FH
CANINIT BIT 0F8H.0
CF BIT 0D8H.7
ADC0CN DATA 0E8H
DAC0CN DATA 0D4H
SFRPAGE DATA 084H
DAC1CN DATA 0D4H
P0MDOUT DATA 0A4H
ADC2CN DATA 0E8H
P1MDOUT DATA 0A5H
IE DATA 0A8H
P2MDOUT DATA 0A6H
AMX0PRT DATA 0BDH
P3MDOUT DATA 0A7H
EIP1 DATA 0F6H
P4MDOUT DATA 09CH
TXBMT BIT 0F8H.1
EIP2 DATA 0F7H
P5MDOUT DATA 09DH
PCA0CPH0 DATA 0FCH
P6MDOUT DATA 09EH
PCA0CPH1 DATA 0FEH
P7MDOUT DATA 09FH
PCA0CPH2 DATA 0EAH
CANTEST BIT 0F8H.7
CR BIT 0D8H.6
CAN0CN DATA 0F8H
PCA0CPH3 DATA 0ECH
EXF2 BIT 0C8H.6
REN0 BIT 098H.4
PCA0CPL0 DATA 0FBH
PCA0CPH4 DATA 0EEH
EMI0CF DATA 0A3H
SFRPGCN DATA 096H
EXF3 BIT 0C8H.6
REN1 BIT 098H.4
PCA0CPL1 DATA 0FDH
PCA0CPH5 DATA 0E2H
PCA0CPM0 DATA 0DAH
PCA0MD DATA 0D9H
PCA0CN DATA 0D8H
ADC2GT DATA 0C4H
EXF4 BIT 0C8H.6
PCA0CPL2 DATA 0E9H
PCA0CPM1 DATA 0DBH
PCA0CPL3 DATA 0EBH
PCA0CPM2 DATA 0DCH
IP DATA 0B8H
CP0FIF BIT 088H.4
PCA0CPL4 DATA 0EDH
PCA0CPM3 DATA 0DDH
CP1FIF BIT 088H.4
PCA0CPL5 DATA 0E1H
PCA0CPM4 DATA 0DEH
CY BIT 0D0H.7
SI BIT 0C0H.3
CP2FIF BIT 088H.4
PCA0CPM5 DATA 0DFH
ADC2LT DATA 0C6H
XBR0 DATA 0E1H
SADEN0 DATA 0B9H
BOFF BIT 0C0H.7
XBR1 DATA 0E2H
EMI0CN DATA 0A2H
CANCCE BIT 0F8H.6
XBR2 DATA 0E3H
XBR3 DATA 0E4H
REF0CN DATA 0D1H
SADDR0 DATA 0A9H
AMX0CF DATA 0BAH
SADDR1 DATA 0A9H
AD0INT BIT 0E8H.5
HVA0CN DATA 0D6H
RCAP2H DATA 0CBH
SFRLAST DATA 086H
PS BIT 0B8H.4
RCAP3H DATA 0CBH
AMX2CF DATA 0BAH
SP DATA 081H
AD2INT BIT 0E8H.5
RCAP4H DATA 0CBH
EMI0TC DATA 0A1H
OV BIT 0D0H.2
SMB0CN DATA 0C0H
CP0RIF BIT 088H.5
CAN0DATH DATA 0D9H
RCAP2L DATA 0CAH
TMR3 DATA 0CCH
CANEIE BIT 0F8H.3
MODF BIT 0F8H.5
CP1RIF BIT 088H.5
RCAP3L DATA 0CAH
CP2RIF BIT 088H.5
RCAP4L DATA 0CAH
SMB0CR DATA 0CFH
S0MODE BIT 098H.7
CAN0DATL DATA 0D8H
CPT0MD DATA 089H
CPT0CN DATA 088H
CANDAR BIT 0F8H.5
P1MDIN DATA 0ADH
CPT1MD DATA 089H
CPT1CN DATA 088H
P2MDIN DATA 0AEH
CPT2MD DATA 089H
CPT2CN DATA 088H
P3MDIN DATA 0AFH
SFRNEXT DATA 085H
SPI0CN DATA 0F8H
TMR2CF DATA 0C9H
TMR3CF DATA 0C9H
PCON DATA 087H
TMR4CF DATA 0C9H
SPIF BIT 0F8H.7
CANSIE BIT 0F8H.2
TMOD DATA 089H
TCON DATA 088H
WCOL BIT 0F8H.6
NSSMD0 BIT 0F8H.2
AMX0SL DATA 0BBH
NSSMD1 BIT 0F8H.3
TMR2CN DATA 0C8H
TMR3CN DATA 0C8H
AMX2SL DATA 0BBH
TMR4CN DATA 0C8H
CP0OUT BIT 088H.6
CP1OUT BIT 088H.6
IE0 BIT 088H.1
CP2OUT BIT 088H.6
IE1 BIT 088H.3
OSCICL DATA 08BH
CLKSEL DATA 097H
B DATA 0F0H
DAC0H DATA 0D3H
ADC0H DATA 0BFH
OSCICN DATA 08AH
DAC1H DATA 0D3H
SMBFTE BIT 0C0H.1
BUSY BIT 0C0H.7
RXOK BIT 0C0H.4
DAC0L DATA 0D2H
ADC0L DATA 0BEH
DAC1L DATA 0D2H
TXOK BIT 0C0H.3
ACC DATA 0E0H
ES0 BIT 0A8H.4
AD0EN BIT 0E8H.7
CT2 BIT 0C8H.1
ET0 BIT 0A8H.1
CT3 BIT 0C8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
AD2EN BIT 0E8H.7
CT4 BIT 0C8H.1
ET2 BIT 0A8H.5
RI0 BIT 098H.0
TF1 BIT 088H.7
TF2 BIT 0C8H.7
SMBTOE BIT 0C0H.0
RI1 BIT 098H.0
TH0 DATA 08CH
TF3 BIT 0C8H.7
EX0 BIT 0A8H.0
TI0 BIT 098H.1
IT0 BIT 088H.0
PCA0H DATA 0FAH
TH1 DATA 08DH
TF4 BIT 0C8H.7
EX1 BIT 0A8H.2
TI1 BIT 098H.1
IT1 BIT 088H.2
P BIT 0D0H.0
OSCXCN DATA 08CH
TL0 DATA 08AH
PCA0L DATA 0F9H
TL1 DATA 08BH
PT0 BIT 0B8H.1
LED BIT 090H.6
RS0 BIT 0D0H.3
PT1 BIT 0B8H.3
RS1 BIT 0D0H.4
PT2 BIT 0B8H.5
TR0 BIT 088H.4
AD0TM BIT 0E8H.6
CP0EN BIT 088H.7
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
CP1EN BIT 088H.7
AD2TM BIT 0E8H.6
TR3 BIT 0C8H.2
PX1 BIT 0B8H.2
CP2EN BIT 088H.7
RCAP3 DATA 0CAH
TR4 BIT 0C8H.2
CAN0ADR DATA 0DAH
DPH DATA 083H
ADC0GTH DATA 0C5H
DPL DATA 082H
CANIE BIT 0F8H.1
ADC0GTL DATA 0C4H
SBUF0 DATA 099H
CANIF BIT 0F8H.4
ADC0LTH DATA 0C7H
SBUF1 DATA 099H
EXEN2 BIT 0C8H.3
RSTSRC DATA 0EFH
FLACL DATA 0B7H
EXEN3 BIT 0C8H.3
CPRL2 BIT 0C8H.0
CP0HYN0 BIT 088H.0
SCON0 DATA 098H
EXEN4 BIT 0C8H.3
CPRL3 BIT 0C8H.0
CP1HYN0 BIT 088H.0
CP0HYN1 BIT 088H.1
SCON1 DATA 098H
CPRL4 BIT 0C8H.0
CP2HYN0 BIT 088H.0
CP1HYN1 BIT 088H.1
CP0HYP0 BIT 088H.2
ADC0LTL DATA 0C6H
CP2HYN1 BIT 088H.1
CP1HYP0 BIT 088H.2
CP0HYP1 BIT 088H.3
STA BIT 0C0H.5
CP2HYP0 BIT 088H.2
CP1HYP1 BIT 088H.3
CP2HYP1 BIT 088H.3
SMB0ADR DATA 0C3H
CAN0STA DATA 0C0H
SSTA0 DATA 091H
SMB0DAT DATA 0C2H
TMR2H DATA 0CDH
SPI0CFG DATA 09AH
TMR3H DATA 0CDH
CKCON DATA 08EH
TMR4H DATA 0CDH
RXOVRN BIT 0F8H.4
TMR2L DATA 0CCH
TMR3L DATA 0CCH
TMR4L DATA 0CCH
F0 BIT 0D0H.5
FLSCL DATA 0B7H
AD0CM0 BIT 0E8H.2
F1 BIT 0D0H.1
STO BIT 0C0H.4
ENSMB BIT 0C0H.6
AD0CM1 BIT 0E8H.3
SPI0DAT DATA 09BH
AD2CM0 BIT 0E8H.0
AD2CM1 BIT 0E8H.1
AD0WINT BIT 0E8H.1
AD2CM2 BIT 0E8H.2
AD0BUSY BIT 0E8H.4
PSW DATA 0D0H
ADC2 DATA 0BEH
AD2WINT BIT 0E8H.3
AD2BUSY BIT 0E8H.4
CCF0 BIT 0D8H.0
RB80 BIT 098H.2
SMB0STA DATA 0C1H
CCF1 BIT 0D8H.1
EPASS BIT 0C0H.5
RB81 BIT 098H.2
?PR?main?BLINKY SEGMENT CODE
?PR?PORT_Init?BLINKY SEGMENT CODE
?PR?_Timer3_Init?BLINKY SEGMENT CODE
?PR?Timer3_ISR?BLINKY SEGMENT CODE
EXTRN CODE (?C_STARTUP)
PUBLIC Timer3_ISR
PUBLIC _Timer3_Init
PUBLIC PORT_Init
PUBLIC main
;
; //------------------------------------------------------------------------------------
; // Blinky.c
; //------------------------------------------------------------------------------------
; // Copyright (C) 2005 Silicon Laboratories, Inc.
; //
; // AUTH: BD
; // DATE: 15 MAR 2002
; //
; // This program flashes the green LED on the C8051F040 target board about five times
; // a second using the interrupt handler for Timer3.
; // Target: C8051F04x
; //
; // Tool chain: KEIL Eval 'c'
; //
;
; //------------------------------------------------------------------------------------
; // Includes
; //------------------------------------------------------------------------------------
; #include <c8051f040.h> // SFR declarations
;
; //-----------------------------------------------------------------------------
; // 16-bit SFR Definitions for 'F04x
; //-----------------------------------------------------------------------------
;
; sfr16 RCAP3 = 0xCA; // Timer3 reload value
; sfr16 TMR3 = 0xCC; // Timer3 counter
;
; //------------------------------------------------------------------------------------
; // Global CONSTANTS
; //------------------------------------------------------------------------------------
;
; #define SYSCLK 3062500 // approximate SYSCLK frequency in Hz
;
; sbit LED = P1^6; // green LED: '1' = ON; '0' = OFF
;
; //------------------------------------------------------------------------------------
; // Function PROTOTYPES
; //------------------------------------------------------------------------------------
; void PORT_Init (void);
; void Timer3_Init (int counts);
; void Timer3_ISR (void);
;
; //------------------------------------------------------------------------------------
; // MAIN Routine
; //------------------------------------------------------------------------------------
; void main (void) {
RSEG ?PR?main?BLINKY
main:
USING 0
; SOURCE LINE # 47
;
; // disable watchdog timer
; WDTCN = 0xde;
; SOURCE LINE # 50
MOV WDTCN,#0DEH
; WDTCN = 0xad;
; SOURCE LINE # 51
MOV WDTCN,#0ADH
;
; SFRPAGE = CONFIG_PAGE; // Switch to configuration page
; SOURCE LINE # 53
MOV SFRPAGE,#0FH
; PORT_Init ();
; SOURCE LINE # 54
LCALL PORT_Init
;
; SFRPAGE = TMR3_PAGE; // Switch to Timer 3 page
; SOURCE LINE # 56
MOV SFRPAGE,#01H
; Timer3_Init (SYSCLK / 12 / 10); // Init Timer3 to generate interrupts
; SOURCE LINE # 57
MOV R7,#0B0H
MOV R6,#063H
LCALL _Timer3_Init
; // at a 10 Hz rate.
; EA = 1; // enable global interrupts
; SOURCE LINE # 59
SETB EA
; #pragma asm
; mov acc,#00h
mov acc,#00h
; #pragma endasm
;
; SFRPAGE = LEGACY_PAGE; // Page to sit in for now
; SOURCE LINE # 64
CLR A
MOV SFRPAGE,A
?C0001:
;
; while (1) { // spin forever
; SOURCE LINE # 66
;
; }
; SOURCE LINE # 68
SJMP ?C0001
; END OF main
; }
;
; //------------------------------------------------------------------------------------
; // PORT_Init
; //------------------------------------------------------------------------------------
; //
; // Configure the Crossbar and GPIO ports
; //
; void PORT_Init (void)
RSEG ?PR?PORT_Init?BLINKY
PORT_Init:
; SOURCE LINE # 77
; {
; SOURCE LINE # 78
; XBR2 = 0x40; // Enable crossbar and weak pull-ups
; SOURCE LINE # 79
MOV XBR2,#040H
; P1MDOUT |= 0x40; // enable P1.6 (LED) as push-pull output
; SOURCE LINE # 80
ORL P1MDOUT,#040H
; }
; SOURCE LINE # 81
RET
; END OF PORT_Init
;
; //------------------------------------------------------------------------------------
; // Timer3_Init
; //------------------------------------------------------------------------------------
; //
; // Configure Timer3 to auto-reload and generate an interrupt at interval
; // specified by <counts> using SYSCLK/12 as its time base.
; //
; //
; void Timer3_Init (int counts)
RSEG ?PR?_Timer3_Init?BLINKY
_Timer3_Init:
USING 0
; SOURCE LINE # 91
;---- Variable 'counts?240' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 92
; TMR3CN = 0x00; // Stop Timer3; Clear TF3;
; SOURCE LINE # 93
CLR A
MOV TMR3CN,A
; // use SYSCLK/12 as timebase
; RCAP3 = -counts; // Init reload values
; SOURCE LINE # 95
CLR C
SUBB A,R7
MOV R7,A
CLR A
SUBB A,R6
MOV RCAP3+01H,A
MOV RCAP3,R7
; TMR3 = 0xffff; // set to reload immediately
; SOURCE LINE # 96
MOV A,#0FFH
MOV TMR3+01H,A
MOV TMR3,A
; EIE2 |= 0x01; // enable Timer3 interrupts
; SOURCE LINE # 97
ORL EIE2,#01H
; TR3 = 1; // start Timer3
; SOURCE LINE # 98
SETB TR3
; }
; SOURCE LINE # 99
RET
; END OF _Timer3_Init
CSEG AT 00073H
LJMP Timer3_ISR
;
; //------------------------------------------------------------------------------------
; // Interrupt Service Routines
; //------------------------------------------------------------------------------------
;
; //------------------------------------------------------------------------------------
; // Timer3_ISR
; //------------------------------------------------------------------------------------
; // This routine changes the state of the LED whenever Timer3 overflows.
; //
; // NOTE: The SFRPAGE register will automatically be switched to the Timer 3 Page
; // When an interrupt occurs. SFRPAGE will return to its previous setting on exit
; // from this routine.
; //
; void Timer3_ISR (void) interrupt 14
RSEG ?PR?Timer3_ISR?BLINKY
USING 0
Timer3_ISR:
; SOURCE LINE # 114
; {
; TF3 = 0; // clear TF3
; SOURCE LINE # 116
CLR TF3
; LED = ~LED; // change state of LED
; SOURCE LINE # 117
CPL LED
; } ; SOURCE LINE # 118
RETI
; END OF Timer3_ISR
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -