C8051F020單片機初始化程序和編譯步驟
一、編程步驟:
1、看門狗設(shè)置 2、系統(tǒng)初始化 3、端口初始化 4、對應(yīng)功能初始化(如:串口,定時器,I2C,SPI,PCA,DAC/ADC,中斷等等) 5、功能函數(shù)或中斷函數(shù)(如需要)6、包含的頭
文件 7、項目說明
二、對應(yīng)功能初始化要點:
1、Uart:(1)串口工作模式由SCON設(shè)定(2)定時器工作方式設(shè)定TMOD (3)波特率TH載入值設(shè)定
(4)啟動TR1 (5)時鐘基準 CKCON (6)波特率加倍設(shè)定 PCON(7)開中斷使能TI
2、Time:(1)工作方式設(shè)定TMOD (2)定時器時鐘基準CKCON (3)啟動/停止TCON設(shè)定TRn
3、Interrupt:(1)中斷允許IE (2)觸發(fā)方式設(shè)定(上下沿,電平)(3)對應(yīng)控制位允許設(shè)定,如ES串口允許
C8051F020單片機初始化程序
; $INCLUDE (C8051F020.inc)http://wbymcs51.blog.bokee.net/
C8051F020單片機功能強大,初始化也比較繁雜,為了便于初始化各功能模塊,我們編了此程序可看著“說明”初始化。
ORG SYS_INIT
;※▲◆●◎★☆△
;◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
;■-- <1> --電源管理
; PCON ; POWER CONTROL
;■-- <2> --系統(tǒng)時鐘和振蕩器
; OSCXCN ; EXTERNAL OSCILLATOR CONTROL
; OSCICN ; INTERNAL OSCILLATOR CONTROL
;■-- <3> --復(fù)位及看門狗管理
; RSTSRC ; RESET SOURCE
; WDTCN ; WATCHDOG TIMER CONTROL
;■-- <4> --FLASH存儲器編程和安全管理
; FLSCL ; FLASH MEMORY TIMING PRESCALER
; PSCTL ; PROGRAM STORE R/W CONTROL
; FLACL ; FLASH ACESS LIMIT
;■-- <5> --中斷控制
; IE ; INTERRUPT ENABLE
; EIE1 ; EXTERNAL INTERRUPT ENABLE 1
; EIE2 ; EXTERNAL INTERRUPT ENABLE 2
; IP ; INTERRUPT PRIORITY
; EIP1 ; EXTERNAL INTERRUPT PRIORITY REGISTER 1
; EIP2 ; EXTERNAL INTERRUPT PRIORITY REGISTER 2
; P3IF ; PORT 3 EXTERNAL INTERRUPT FLAGS
;■-- <6> --端口IO初始化及交叉開關(guān)設(shè)置
; XBR0 ; DIGITAL CROSSBAR CONFIGURATION REGISTER 0
; XBR1 ; DIGITAL CROSSBAR CONFIGURATION REGISTER 1
; XBR2 ; DIGITAL CROSSBAR CONFIGURATION REGISTER 2
; P0MDOUT ; PORT 0 OUTPUT MODE CONFIGURATION
; P1MDOUT ; PORT 1 OUTPUT MODE CONFIGURATION
; P2MDOUT ; PORT 2 OUTPUT MODE CONFIGURATION
; P3MDOUT ; PORT 3 OUTPUT MODE CONFIGURATION
; P74OUT ; PORTS 4 - 7 OUTPUT MODE
;■-- <7> --外部RAM和片內(nèi)XRAM
; EMI0CN ; EXTERNAL MEMORY INTERFACE CONTROL
; EMI0CF ; EXTERNAL MEMORY INTERFACE (EMIF) CONFIGURATION
; EMI0TC ; EXTERNAL MEMORY
;■-- <8> --定時器設(shè)置
; TMOD ; TIMER MODE
; TCON ; TIMER CONTROL
; T2CON ; TIMER 2 CONTROL
; T4CON ; TIMER 4 CONTROL
; TMR3CN ; TIMER 3 CONTROL
; TMR3RLL ; TIMER 3 RELOAD REGISTER - LOW BYTE
; TMR3RLH ; TIMER 3 RELOAD REGISTER - HIGH BYTE
; TMR3L ; TIMER 3 - LOW BYTE
; TMR3H ; TIMER 3 - HIGH BYTE
;■-- <9> --串行通訊
; SCON0 ; SERIAL PORT 0 CONTROL
; SCON1 ; SERIAL PORT 1 CONTROL
; SBUF1 ; SERAIL PORT 1 DATA
; SADDR1 ; SERAIL PORT 1
; PCON ; POWER CONTROL
; RCAP2L ; TIMER 2 CAPTURE REGISTER - LOW BYTE
; RCAP2H ; TIMER 2 CAPTURE REGISTER - HIGH BYTE
; RCAP4L ; TIMER 4 CAPTURE REGISTER - LOW BYTE
; RCAP4H ; TIMER 4 CAPTURE REGISTER - HIGH BYTE
; SADDR0 ; SERIAL PORT 0 SLAVE ADDRESS
;■-- <10> --可編程計數(shù)器陣列
; PCA0CN ; PCA 0 COUNTER CONTROL
; PCA0MD ; PCA 0 COUNTER MODE
; PCA0CPM0 ; CONTROL REGISTER FOR PCA 0 MODULE 0
; PCA0CPM1 ; CONTROL REGISTER FOR PCA 0 MODULE 1
; PCA0CPM2 ; CONTROL REGISTER FOR PCA 0 MODULE 2
; PCA0CPM3 ; CONTROL REGISTER FOR PCA 0 MODULE 3
; PCA0CPM4 ; CONTROL REGISTER FOR PCA 0 MODULE 4
;■-- <11> --SMBus通訊
; SMB0CN ; SMBUS 0 CONTROL
; SMB0CR ; SMBUS 0 CLOCK RATE
; SMB0STA ; SMBUS 0 STATUS
; SMB0DAT ; SMBUS 0 DATA
; SMB0ADR ; SMBUS 0 SLAVE ADDRESS
;■-- <12> --SPI總線通訊
; SPI0CKR ; SERIAL PERIPHERAL INTERFACE 0 CLOCK RATE CONTROL
; SPI0DAT ; SERIAL PERIPHERAL INTERFACE 0 DATA
; SPI0CFG ; SERIAL PERIPHERAL INTERFACE 0 CONFIGURATION
; SPI0CN ; SERIAL PERIPHERAL INTERFACE 0 CONTROL
;-- <13> --ADC轉(zhuǎn)換
; AMX0CF ; ADC 0 MUX CONFIGURATION
; AMX0SL ; ADC 0 MUX CHANNEL SELECTION
; ADC0CF ; ADC 0 CONFIGURATION
; ADC0CN ; ADC 0 CONTROL
; ADC0L ; ADC 0 DATA - LOW BYTE
; ADC0H ; ADC 0 DATA - HIGH BYTE
; ADC1CF ; ADC 1 ANALOG MUX CONFIGURATION
; AMX1SL ; ADC 1 ANALOG MUX CHANNEL SELECT
; ADC1CN ; ADC 1 CONTROL
; ADC0GTL ; ADC 0 GREATER-THAN REGISTER - LOW BYTE
; ADC0GTH ; ADC 0 GREATER-THAN REGISTER - HIGH BYTE
; ADC0LTL ; ADC 0 LESS-THAN REGISTER - LOW BYTE
; ADC0LTH ; ADC 0 LESS-THAN REGISTER - HIGH BYTE
; REF0CN ; VOLTAGE REFERENCE 0 CONTROL
; ADC1 ; ADC 1 DATA
;■-- <14> --DAC轉(zhuǎn)換
; PCA0L ; PCA 0 TIMER - LOW BYTE
; PCA0H ; PCA 0 TIMER - HIGH BYTE
; DAC0CN ; DAC 0 CONTROL
; DAC1L ; DAC 1 REGISTER - LOW BYTE
; DAC1H ; DAC 1 REGISTER - HIGH BYTE
; DAC1CN ; DAC 1 CONTROL
;■-- <15> --比較器設(shè)置
; CPT0CN ; COMPARATOR 0 CONTROL
; CPT1CN ; COMPARATOR 1 CONTROL
; EMI0TC ; EMIF TIMING CONTROL
;■-- <16> --時鐘/電壓基準設(shè)置
; CKCON ; CLOCK CONTROL
; SADEN1 ; SERIAL PORT 1 SLAVE ADDRESS MASK
; SADEN0 ; SERIAL PORT 0 SLAVE ADDRESS MASK
; P1MDIN ; PORT 1 INPUT MODE
; PSW ; PROGRAM STATUS WORD
; B ; B REGISTER
; WDTCN ; WATCHDOG TIMER CONTROL
;◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
;
;====================================================================
; function: Init_CTS 定時器/計數(shù)器,中斷和串行通訊初始化子程序
; input: -----------------
; output: -----------------
; usage: -----------------
;====================================================================
THS0 equ 0a8h
TLS0 equ 09ah
; THS1 equ 0fah;0feh;0fah;-4800;0f4h
; TLS1 equ 0fah;0feh;0fah;-4800;0f4h
;
; THS2 equ 0ffh;0feh;0fah;-4800;0f4h
; TLS2 equ 0b8h;0feh;0fah;-4800;0f4h
Init_TCS: ;定時器/計數(shù)器,中斷和串行通訊初始化子程序
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
; ◆◆◆8051內(nèi)部控制寄存器◆◆◆
;************************************************************************************
;|名 稱| 代號 | 地址|位尋| B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
;|--------|------|------|----|-----|------|------|------|------|------|------|------|
;|電源控制| PCON | 87H | NO |SMOD | -- | -- | -- | GF1 | GF0 | PD | IDL |
;|--------|------|------|----|-----|------|------|------|------|------|------|------|
;|計時控制| TCON | 88H | YE |TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
;|--------|------|------|----|-----|------|------|------|------|------|------|------|
;|計時模式| TMOD | 89H | NO |1GATE| 1C/T | 1M1 | 1M0 | 0GATE| 0C/T | 0M1 | 0M0 |
;|--------|------|------|----|-----|------|------|------|------|------|------|------|
;|串行控制| SCON | 98H | YE |SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
;|--------|------|------|----|-----|------|------|------|------|------|------|------|
;|中斷允許| IE | A8H | YE |EA | -- | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
;|--------|------|------|----|-----|------|------|------|------|------|------|------|
;|中斷優(yōu)先| IP | B8H | YE |-- | -- | PT2 | PS | PT1 | PX1 | PT0 | PX0 |
;************************************************************************************