C8051F020单片机初始化程序和编译步骤.docx
- 文档编号:2353540
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:54
- 大小:48.84KB
C8051F020单片机初始化程序和编译步骤.docx
《C8051F020单片机初始化程序和编译步骤.docx》由会员分享,可在线阅读,更多相关《C8051F020单片机初始化程序和编译步骤.docx(54页珍藏版)》请在冰点文库上搜索。
C8051F020单片机初始化程序和编译步骤
C8051F020单片机初始化程序和编译步骤
2011-02-1512:
20:
06| 分类:
默认分类| 标签:
|字号大中小 订阅
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)
C8051F020单片机功能强大,初始化也比较繁杂,为了便于初始化各功能模块,我们编了此程序可看着“说明”初始化。
ORGSYS_INIT
;※▲◆●◎★☆△
;◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
;■--<1>--电源管理
;PCON ;POWERCONTROL
;■--<2>--系统时钟和振荡器
;OSCXCN ;EXTERNALOSCILLATORCONTROL
;OSCICN ;INTERNALOSCILLATORCONTROL
;■--<3>--复位及看门狗管理
;RSTSRC ;RESETSOURCE
;WDTCN ;WATCHDOGTIMERCONTROL
;■--<4>--FLASH存储器编程和安全管理
;FLSCL ;FLASHMEMORYTIMINGPRESCALER
;PSCTL ;PROGRAMSTORER/WCONTROL
;FLACL ;FLASHACESSLIMIT
;■--<5>--中断控制
;IE ;INTERRUPTENABLE
;EIE1 ;EXTERNALINTERRUPTENABLE1
;EIE2 ;EXTERNALINTERRUPTENABLE2
;IP ;INTERRUPTPRIORITY
;EIP1 ;EXTERNALINTERRUPTPRIORITYREGISTER1
;EIP2 ;EXTERNALINTERRUPTPRIORITYREGISTER2
;P3IF ;PORT3EXTERNALINTERRUPTFLAGS
;■--<6>--端口IO初始化及交叉开关设置
;XBR0 ;DIGITALCROSSBARCONFIGURATIONREGISTER0
;XBR1 ;DIGITALCROSSBARCONFIGURATIONREGISTER1
;XBR2 ;DIGITALCROSSBARCONFIGURATIONREGISTER2
;P0MDOUT ;PORT0OUTPUTMODECONFIGURATION
;P1MDOUT ;PORT1OUTPUTMODECONFIGURATION
;P2MDOUT ;PORT2OUTPUTMODECONFIGURATION
;P3MDOUT ;PORT3OUTPUTMODECONFIGURATION
;P74OUT ;PORTS4-7OUTPUTMODE
;■--<7>--外部RAM和片内XRAM
;EMI0CN ;EXTERNALMEMORYINTERFACECONTROL
;EMI0CF ;EXTERNALMEMORYINTERFACE(EMIF)CONFIGURATION
;EMI0TC ;EXTERNALMEMORY
;■--<8>--定时器设置
;TMOD ;TIMERMODE
;TCON ;TIMERCONTROL
;T2CON ;TIMER2CONTROL
;T4CON ;TIMER4CONTROL
;TMR3CN ;TIMER3CONTROL
;TMR3RLL ;TIMER3RELOADREGISTER-LOWBYTE
;TMR3RLH ;TIMER3RELOADREGISTER-HIGHBYTE
;TMR3L ;TIMER3-LOWBYTE
;TMR3H ;TIMER3-HIGHBYTE
;■--<9>--串行通讯
;SCON0 ;SERIALPORT0CONTROL
;SCON1 ;SERIALPORT1CONTROL
;SBUF1 ;SERAILPORT1DATA
;SADDR1 ;SERAILPORT1
;PCON ;POWERCONTROL
;RCAP2L ;TIMER2CAPTUREREGISTER-LOWBYTE
;RCAP2H ;TIMER2CAPTUREREGISTER-HIGHBYTE
;RCAP4L ;TIMER4CAPTUREREGISTER-LOWBYTE
;RCAP4H ;TIMER4CAPTUREREGISTER-HIGHBYTE
;SADDR0 ;SERIALPORT0SLAVEADDRESS
;■--<10>--可编程计数器阵列
;PCA0CN ;PCA0COUNTERCONTROL
;PCA0MD ;PCA0COUNTERMODE
;PCA0CPM0 ;CONTROLREGISTERFORPCA0MODULE0
;PCA0CPM1 ;CONTROLREGISTERFORPCA0MODULE1
;PCA0CPM2 ;CONTROLREGISTERFORPCA0MODULE2
;PCA0CPM3 ;CONTROLREGISTERFORPCA0MODULE3
;PCA0CPM4 ;CONTROLREGISTERFORPCA0MODULE4
;■--<11>--SMBus通讯
;SMB0CN ;SMBUS0CONTROL
;SMB0CR ;SMBUS0CLOCKRATE
;SMB0STA ;SMBUS0STATUS
;SMB0DAT ;SMBUS0DATA
;SMB0ADR ;SMBUS0SLAVEADDRESS
;■--<12>--SPI总线通讯
;SPI0CKR ;SERIALPERIPHERALINTERFACE0CLOCKRATECONTROL
;SPI0DAT ;SERIALPERIPHERALINTERFACE0DATA
;SPI0CFG ;SERIALPERIPHERALINTERFACE0CONFIGURATION
;SPI0CN ;SERIALPERIPHERALINTERFACE0CONTROL
;--<13>--ADC转换
;AMX0CF ;ADC0MUXCONFIGURATION
;AMX0SL ;ADC0MUXCHANNELSELECTION
;ADC0CF ;ADC0CONFIGURATION
;ADC0CN ;ADC0CONTROL
;ADC0L ;ADC0DATA-LOWBYTE
;ADC0H ;ADC0DATA-HIGHBYTE
;ADC1CF ;ADC1ANALOGMUXCONFIGURATION
;AMX1SL ;ADC1ANALOGMUXCHANNELSELECT
;ADC1CN ;ADC1CONTROL
;ADC0GTL ;ADC0GREATER-THANREGISTER-LOWBYTE
;ADC0GTH ;ADC0GREATER-THANREGISTER-HIGHBYTE
;ADC0LTL ;ADC0LESS-THANREGISTER-LOWBYTE
;ADC0LTH ;ADC0LESS-THANREGISTER-HIGHBYTE
;REF0CN ;VOLTAGEREFERENCE0CONTROL
;ADC1 ;ADC1DATA
;■--<14>--DAC转换
;PCA0L ;PCA0TIMER-LOWBYTE
;PCA0H ;PCA0TIMER-HIGHBYTE
;DAC0CN ;DAC0CONTROL
;DAC1L ;DAC1REGISTER-LOWBYTE
;DAC1H ;DAC1REGISTER-HIGHBYTE
;DAC1CN ;DAC1CONTROL
;■--<15>--比较器设置
;CPT0CN ;COMPARATOR0CONTROL
;CPT1CN ;COMPARATOR1CONTROL
;EMI0TC ;EMIFTIMINGCONTROL
;■--<16>--时钟/电压基准设置
;CKCON ;CLOCKCONTROL
;SADEN1 ;SERIALPORT1SLAVEADDRESSMASK
;SADEN0 ;SERIALPORT0SLAVEADDRESSMASK
;P1MDIN ;PORT1INPUTMODE
;PSW ;PROGRAMSTATUSWORD
;B ;BREGISTER
;WDTCN ;WATCHDOGTIMERCONTROL
;◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
;
;====================================================================
; 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 |
;************************************************************************************
;时钟频率为:
11.059200MHz;
;机器周期为:
12/fosc=1.085069μs;
;CT0定时器设定延时为:
2000μs;
;CT0定时器工作于模式0;
;CT0溢出处理采用中断方式;
;CT0选择内部时钟;
;CT0启动由TR0的0/1决定;
;设定波特率为:
4800bps;
;串口0工作于方式1--T1定时器工作于方式2;
;串口1工作于模式3--T2定时器用于波特率发生器4800bps
mov TH0, #THS0
mov TL0, #TLS0
;mov TH1, #THS1
;mov TL1, #TLS1
; mov TH2, #THS2
; mov TL2, #TLS2
;▲■--<1>--电源管理
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
;87H---PCON-------电源控制寄存器
;复位值:
00000000
;位7-2:
保留。
;STOP:
停机方式选择。
;向该位写’1’将使CIP-51进入停机方式。
该位读出值总是为0。
;0:
无影响
;1:
CIP-51被强制进入掉电方式(关闭振荡器
;IDLE:
空闲方式选择。
向该位写’1’将使CIP-51进入空闲方式。
该位读出值总是为0。
;0:
无影响
;1:
CIP-51被强制进入空闲方式。
(关闭供给CPU的时钟信号,但定时器、中断和
;所有外设保持活动状态。
)
;======================================================================
;|电源控制|PCON| 87H|-|-|-| - |- | -| -|STOP|IDLE|
;------------------------------------------------------------------------------------
; mov PCON, #00000000B
; mov PCON, #080h
;▲■--<2>--系统时钟和振荡器
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
;B1H---OSCXCN----外部振荡器控制寄存器
;复位值:
00000000
;XTLVLD:
晶体振荡器有效标志,(在XOSCMD=11x时有效,只读)
;0:
晶体振荡器未用或未稳定。
;1:
晶体振荡器正在运行并且工作稳定。
;:
XOSCMD2-0:
外部振荡器方式位
;00x:
外部振荡器电路关闭。
;010:
外部CMOS时钟方式。
;011:
外部CMOS时钟方式二分频。
;100:
RC振荡器方式。
;101:
电容振荡器方式。
;110:
晶体振荡器方式。
;111:
晶体振荡器方式二分频。
;位3:
保留。
读=0,写= 忽略。
;XFCN2-0:
外部振荡器频率控制位。
;XFCN晶体(XOSCMD=11x)RC(XOSCMD=10x)C(XOSCMD=10x)
;000F≤32kHzF≤25kHzK因子=0.87
;00132kHz ;01084kHz ;011225kHz ;100590kHz ;1011.5MHz ;1104MHz ;11110MHz ;====================================================================== ;|外部振荡器控制|OSCXCN|B1H|-|XTLVLD|XOSCMD2|XOSCMD1|XOSCMD0|XFCN2|XFCN1|XFCN0 ;------------------------------------------------------------------------------------ ; mov OSCXCN, #01100111B mov OSCXCN, #067h ;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 ;B2H---OSCICN----内部振荡器控制寄存器 ;复位值: 11000000 ;IOSCEN: 内部振荡器使能位 ;0: 内部振荡器禁止。 ;1: 内部振荡器使能。 ;IFRDY: 内部振荡器频率准备好标志 ;0: 内部振荡器未运行在编程频率。 ;1: 内部振荡器按编程频率运行。 ;位5-2: 未用。 读=0000b,写= 忽略。 ;IFCN1-0: 内部振荡器频率控制位 ; 00: SYSCLK为内部振荡器8分频。 ; 01: SYSCLK为内部振荡器4分频。 ; 10: SYSCLK为内部振荡器2分频。 ; 11: SYSCLK为内部振荡器输出(不分频)。 ;====================================================================== ;|内部振荡器控制|OSCICN|B2H|-|IOSCEN|IFRDY|-|- |-| - |IFCN1|IFCN0 ;------------------------------------------------------------------------------------ ; mov OSCICN, #00001000B mov OSCICN, #08h ;▲■--<3>--复位及看门狗管理 ;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 ;EFH---RSTSRC----复位源寄存器 ;复位值: 可变 ;位7: 未用。 读=0,写= 忽略。 ;CNVRSEF: 转换启动复位源使能和标志。 ;写: ;0: CNVSTR0不是复位源。 ;1: CNVSTR0是复位源(低电平有效)。 ;读:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C8051F020 单片机 初始化 程序 编译 步骤