C8051F020单片机初始化程序和编译步骤
扫描二维码
随时随地手机看文章
一、编程步骤:
1、看门狗设置 2、系统初始化 3、端口初始化 4、对应功能初始化(如:串口,定时器,I2C,SPI,PCA,DAC/ADC,中断等等) 5、功能函数或中断函数(如需要)6、包含的头
文件 7、项目说明
二、对应功能初始化要点:
1、Uart:(1)串口工作模式由SCON设定(2)定时器工作方式设定TMOD (3)波特率TH载入值设定
(4)启动TR1 (5)时钟基准 CKCON (6)波特率加倍设定 PCON(7)开中断使能TI
2、Time:(1)工作方式设定TMOD (2)定时器时钟基准CKCON (3)启动/停止TCON设定TRn
3、Interrupt:(1)中断允许IE (2)触发方式设定(上下沿,电平)(3)对应控制位允许设定,如ES串口允许
C8051F020单片机初始化程序
; $INCLUDE (C8051F020.inc)http://wbymcs51.blog.bokee.net/
C8051F020单片机功能强大,初始化也比较繁杂,为了便于初始化各功能模块,我们编了此程序可看着“说明”初始化。
ORG SYS_INIT
;※▲◆●◎★☆△
;◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
;■-- <1> --电源管理
; PCON ; POWER CONTROL
;■-- <2> --系统时钟和振荡器
; OSCXCN ; EXTERNAL OSCILLATOR CONTROL
; OSCICN ; INTERNAL OSCILLATOR CONTROL
;■-- <3> --复位及看门狗管理
; 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初始化及交叉开关设置
; 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和片内XRAM
; EMI0CN ; EXTERNAL MEMORY INTERFACE CONTROL
; EMI0CF ; EXTERNAL MEMORY INTERFACE (EMIF) CONFIGURATION
; EMI0TC ; EXTERNAL MEMORY
;■-- <8> --定时器设置
; 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> --可编程计数器阵列
; 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转换
; 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转换
; 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> --比较器设置
; CPT0CN ; COMPARATOR 0 CONTROL
; CPT1CN ; COMPARATOR 1 CONTROL
; EMI0TC ; EMIF TIMING CONTROL
;■-- <16> --时钟/电压基准设置
; 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 定时器/计数器,中断和串行通讯初始化子程序
; 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: ;定时器/计数器,中断和串行通讯初始化子程序
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
; ◆◆◆8051内部控制寄存器◆◆◆
;************************************************************************************
;|名 称| 代号 | 地址|位寻| 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 |
;|--------|------|------|----|-----|------|------|------|------|------|------|------|
;|中断优先| IP | B8H | YE |-- | -- | PT2 | PS | PT1 | PX1 | PT0 | PX0 |
;************************************************************************************