C8051F020单片机初始化程序和编译步骤.docx

上传人:b****1 文档编号:12518801 上传时间:2023-04-19 格式:DOCX 页数:54 大小:48.84KB
下载 相关 举报
C8051F020单片机初始化程序和编译步骤.docx_第1页
第1页 / 共54页
C8051F020单片机初始化程序和编译步骤.docx_第2页
第2页 / 共54页
C8051F020单片机初始化程序和编译步骤.docx_第3页
第3页 / 共54页
C8051F020单片机初始化程序和编译步骤.docx_第4页
第4页 / 共54页
C8051F020单片机初始化程序和编译步骤.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

C8051F020单片机初始化程序和编译步骤.docx

《C8051F020单片机初始化程序和编译步骤.docx》由会员分享,可在线阅读,更多相关《C8051F020单片机初始化程序和编译步骤.docx(54页珍藏版)》请在冰豆网上搜索。

C8051F020单片机初始化程序和编译步骤.docx

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是复位源(低电平有效)。

;读:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1