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

📄 startup.lst

📁 单片机快速入门原程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
                    +1  211     ;
                    +1  212     ; SPI0CN F8H
 00F8.0             +1  213     SPIEN    BIT   SPI0CN.0 ; SPI 0 SPI ENABLE
 00F8.1             +1  214     MSTEN    BIT   SPI0CN.1 ; SPI 0 MASTER ENABLE
 00F8.2             +1  215     SLVSEL   BIT   SPI0CN.2 ; SPI 0 SLAVE SELECT
 00F8.3             +1  216     TXBSY    BIT   SPI0CN.3 ; SPI 0 TX BUSY FLAG
 00F8.4             +1  217     RXOVRN   BIT   SPI0CN.4 ; SPI 0 RX OVERRUN FLAG
 00F8.5             +1  218     MODF     BIT   SPI0CN.5 ; SPI 0 MODE FAULT FLAG
 00F8.6             +1  219     WCOL     BIT   SPI0CN.6 ; SPI 0 WRITE COLLISION FLAG
 00F8.7             +1  220     SPIF     BIT   SPI0CN.7 ; SPI 0 INTERRUPT FLAG
                        221     
                        222     ;------------------------------------------------------------------------------
                        223     NAME    ?C_STARTUP
                        224     
------                  225     ?C_C51STARTUP   SEGMENT   CODE
                        226     
------                  227     ?STACK  SEGMENT   IDATA
                        228     
------                  229             RSEG    ?STACK
000000                  230             DS      1
                        231     
                        232             EXTRN CODE (?C_START)
                        233             PUBLIC  ?C_STARTUP
                        234     
                        235     ;==========================
000000                  236     CSEG    AT      0
000000                  237     ?C_STARTUP:
000000 020000     F     238             LJMP    STARTUP1
                        239     
                        240     ;-------------------------
00000B                  241             org     0bh
                        242     EXTRN CODE (Timer0Int)
00000B 020000     E     243             LJMP    Timer0Int       ;Vector of TIMER0
                        244     
                        245     ;------------------------
000023                  246             org     23h
                        247     EXTRN CODE (UartInt)
000023 020000     E     248             LJMP    UartInt         ;Vector of UART
                        249     ;=========================
------                  250             RSEG    ?C_C51STARTUP
                        251     ;-------------------------
000000                  252     STARTUP1:
                        253     ;=========================
                        254     ;       V8051F007 hardware init
                        255     ;-------------------------
                        256     ;       Reset Source select
AX51 MACRO ASSEMBLER  STARTUP                                                               06/13/06 10:15:30 PAGE     5

                        257     ;- - - - - - - - - - - - -
000000 C2AF             258             clr     ea              ;
000002 75EF00           259             mov     RSTSRC, #000h   ; Reset Source Register
                        260     
                        261     ;-----------------------------
                        262     ;       Watch Dog Setup(write #FF will lock the WDT in enable state)
                        263     ;- - - - - - - - - - - - - - -
                        264     $if  ProgProtect=1
                                        mov     WDTCN, #0ffh            ;lock the WDT in enable state
                                $else 
000005 75FFDE           267             mov     WDTCN, #0deh            ; disable watchdog timer
000008 75FFAD           268             mov     WDTCN, #0adh            ;(write successive DE then AD will disable WDT)
                        269     $endif 
                        270     ;-----------------------------
                        271     ;       OSC setup
                        272     ;- - - - - - - - - - - - - - -
                        273     $if  ExtOsc=1
                                        mov     OSCXCN, #67h    ; enable external crystal oscillator with Fosc>6.74Mhz
                                
                                        clr     A               ; wait at least 1ms at internal OSC=2Mhz
                                        djnz    acc, $          ; wait ~512us  (256*4T=256*(4/2Mhz)=512us)
                                        djnz    acc, $          ; wait ~512us
                                
                                osc_wait:                                ; poll for XTLVLD-->1
                                        mov     a, OSCXCN
                                        jnb     acc.7, osc_wait
                                
                                        orl     OSCICN, #08h    ; select external oscillator as system clock source
                                
                                ;       orl     OSCXCN, #80h    ; enable missing clock detector
                                $else 
00000B 75B100           288             mov     OSCXCN, #0      ; disable external OSC and Ground the XTAL1 internally(s
                               ee an002.pdf)
                        289     $endif 
                        290     
                        291     ;-----------------------------
                        292     ;       CrossBar setup
                        293     ;- - - - - - - - - - - - - - -
                        294     $if  UartEnable=0
00000E 75E100           295             mov     XBR0, #00h      ; Disable UART's TX RX to P0.0 and P0.1
                        296     $else 
                                        mov     XBR0, #04h      ; Enable UART's TX RX to P0.0 and P0.1 for no-FingerLedM
                               ode
                                $endif 
                        299     
000011 75E200           300             mov     XBR1, #00h      ; XBAR1: Initial Reset Value
000014 75E3C0           301             mov     XBR2, #0C0h     ; Enable CrossBarCoder and enable Weak-PullUp function
                        302     
000017 75A4FF           303             mov     PRT0CF, #0FFh   ; Output configuration for P0(all bit are Push-Pull)
00001A 75A5FF           304             mov     PRT1CF, #0FFh  
00001D 75A6FF           305             mov     PRT2CF, #0FFh  
000020 75A7FF           306             mov     PRT3CF, #0FFh  
                        307     
                        308     $if  FingerLedMode=1 or FingerOLedMode=1
                                        clr     PowerOnCtrl     ;set the Power On
                                $if  FingerOLedMode=1   ;for NewVersionSerialMode
                                        clr     OledPowerOnCtrl ;turn off the HighPower of Oled VCC
                                $endif 
                                $endif 
                        314     
                        315     ;-----------------------------
                        316     ;       Comparator setup
                        317     ;- - - - - - - - - - - - - - -
000023 759E00           318             mov     CPT0CN, #000h     ; Disable Comparator0
                        319     
                        320     ;-----------------------------
AX51 MACRO ASSEMBLER  STARTUP                                                               06/13/06 10:15:30 PAGE     6

                        321     ;       Reference Control Register Configuration
                        322     ;- - - - - - - - - - - - - - -
000026 75D103           323             mov     REF0CN, #003h   ; InternalSensorOff,EnableInternalBiase,EnableInternalRe
                               f
                        324     
                        325     ;-----------------------------
                        326     ;       SPI Configuration
                        327     ;- - - - - - - - - - - - - - -
000029 75F800           328             mov     SPI0CN, #000h   ; Disable SPI
00002C 759A00           329             mov     SPI0CFG, #000h  ; SPI Configuration Register
00002F 759D00           330             mov     SPI0CKR, #000h  ; SPI Clock Rate Register
                        331     
                        332     ;-----------------------------
                        333     ;       DAC Configuration
                        334     ;- - - - - - - - - - - - - - -
                        335     $if  LowPwrAdDaMode=1
                                        mov     DAC0CN, #0      ; DAC0 Control Register(Disable ADC0 and Right justified
                               )
                                $else 
000032 75D480           338             mov     DAC0CN, #080h   ; DAC0 Control Register(Enable ADC0 and Right justified)
                        339     $endif 
000035 75D200           340             mov     DAC0L, #00h     ; DAC0 Low Byte Register
000038 75D300           341             mov     DAC0H, #00h     ; DAC0 High Byte Register
                        342     
                        343     $if  LowPwrAdDaMode=1
                                        mov     DAC1CN, #0      ; DAC0 Control Register(Disable ADC0 and Right justified
                               )
                                $else 
00003B 75D780           346             mov     DAC1CN, #080h   ; DAC0 Control Register(Enable ADC0 and Right justified)
                        347     $endif 
00003E 75D500           348             mov     DAC1L, #00h     ; DAC1 Low Byte Register
000041 75D600           349             mov     DAC1H, #00h     ; DAC1 High Byte Register
                        350     
                        351     ;-----------------------------
                        352     ; SMBus Configuration
                        353     ;- - - - - - - - - - - - - - -
000044 75C000           354             mov     SMB0CN, #000h   ; SMBus Control Register(Disable SMBus)
000047 75C300           355             mov     SMB0ADR, #000h  ; SMBus Address Register
00004A 75CF00           356             mov     SMB0CR, #000h   ; SMBus Clock Rate Register
                        357     
                        358     ;-----------------------------
                        359     ;       PCA Configuration(Disable all PCA's)
                        360     ;- - - - - - - - - - - - - - -
00004D 75D900           361             mov     PCA0MD, #000h   ; PCA Mode Register
000050 75D800           362             mov     PCA0CN, #000h   ; PCA Control Register
000053 75E900           363             mov     PCA0L, #000h    ; PCA Counter/Timer Low Byte
000056 75F900           364             mov     PCA0H, #000h    ; PCA Counter/Timer High Byte 
                        365     
                        366             ;Module 0
000059 75DA00           367             mov     PCA0CPM0, #000h ; PCA Capture/Compare Register 0
00005C 75EA00           368             mov     PCA0CPL0, #000h ; PCA Counter/Timer Low Byte
00005F 75FA00           369             mov     PCA0CPH0, #000h ; PCA Counter/Timer High Byte
                        370     
                        371             ;Module 1
000062 75DB00           372             mov     PCA0CPM1, #000h ; PCA Capture/Compare Register 1
000065 75EB00           373             mov     PCA0CPL1, #000h ; PCA Counter/Timer Low Byte
000068 75FB00           374             mov     PCA0CPH1, #000h ; PCA Counter/Timer High Byte
                        375     
                        376             ;Module 2
00006B 75DC00           377             mov     PCA0CPM2, #000h ; PCA Capture/Compare Register 2
00006E 75EC00           378             mov     PCA0CPL2, #000h ; PCA Counter/Timer Low Byte
000071 75FC00           379             mov     PCA0CPH2, #000h ; PCA Counter/Timer High Byte
                        380     
                        381             ;Module 3
000074 75DD00           382             mov     PCA0CPM3, #000h ; PCA Capture/Compare Register 3
000077 75ED00           383             mov     PCA0CPL3, #000h ; PCA Counter/Timer Low Byte
AX51 MACRO ASSEMBLER  STARTUP                                                               06/13/06 10:15:30 PAGE     7

00007A 75FD00           384             mov     PCA0CPH3, #000h ; PCA Counter/Timer High Byte
                        385     
                        386             ;Module 4
00007D 75DE00           387             mov     PCA0CPM4, #000h ; PCA Capture/Compare Register 4
000080 75EE00           388             mov     PCA0CPL4, #000h ; PCA Counter/Timer Low Byte
000083 75FE00           389             mov     PCA0CPH4, #000h ; PCA Counter/Timer High Byte
                        390     
                        391     ;-----------------------------
                        392     ; ADC Configuration
                        393     ;- - - - - - - - - - - - - - -
000086 75BA00           394             mov     AMX0CF, #0      ; AMUX Configuration Register(all input is single ended)
000089 75BB00           395             mov     AMX0SL, #0      ; AMUX Channel Select Register(linear address)
                        396     $if  ExtOsc=0
00008C 75BC20           397             mov     ADC0CF, #20h    ; ADC Configuraion Register(SAR=SYSCLK/2,Gain=1),1.7M/2=
                               0.85M
                        398     $else 
                                
                                $if  FingerLedMode=1 or FingerOLedMode=1
                                        mov     ADC0CF, #040h   ; ADC Configuraion Register(SAR=SYSCLK/4,Gain=1),3.6864/
                               4=0.9216M
                                $else 
                                        mov     ADC0CF, #060h   ; ADC Configuraion Register(SAR=SYSCLK/8,Gain=1),11.0592
                               /8=1.3824M
                                $endif 
                                
                                $endif 
                        407     
                        408     $if  LowPwrAdDaMode=1
                                        mov     ADC0CN, #040h   ; ADC Control Register(Disable ADC0,ADCTM=1,TarckingMode
                               =00)
                                $else 
00008F 75E880           411             mov     ADC0CN, #080h   ; ADC Control Register(Enable ADC0,always tracking)
                        412     $endif  
                        413     
000092 75C700           414             mov     ADC0LTH, #000h  ; ADC Less-Than High Byte Register
000095 75C600           415             mov     ADC0LTL, #000h  ; ADC Less-Than Low Byte Register
000098 75C5FF           416             mov     ADC0GTH, #0FFh  ; ADC Greater-Than High Byte Register
00009B 75C4FF           417             mov     ADC0GTL, #0FFh  ; ADC Greater-Than Low Byte Register
                        418     
                        419     ;----------------------------------------
00009E 7800             420             MOV     R0,#0   ;old is #7Fh for 128B,new for 256B

⌨️ 快捷键说明

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