📄 startup.a51.bak
字号:
;本启动程序应用于CC1100_F310无线模块试验版
$NOMOD51
$INCLUDE (C8051F310.INC)
NAME ?C_STARTUP
?C_C51STARTUP SEGMENT CODE
EXTRN CODE (?C_START)
PUBLIC ?C_STARTUP
?STACK SEGMENT IDATA ; ?STACK goes into IDATA RAM.
RSEG ?STACK ; switch to ?STACK segment.
DS 50 ; reserve your stack space
CSEG AT 0
?C_STARTUP:
LJMP STARTUP1 ;上电复位
CSEG AT 0003H ;外部0
RETI
CSEG AT 000BH ;定时器0溢出
RETI
CSEG AT 0013H ;外部1
RETI
CSEG AT 001BH ;定时器1溢出
RETI
; CSEG AT 0023H ;UART0
; RETI
; CSEG AT 002BH ;定时器2溢出
; RETI
CSEG AT 0033H ;SPI0
RETI
CSEG AT 003BH ;SMB0
RETI
CSEG AT 0043H ;保留
RETI
CSEG AT 004BH ;ADC0窗口比较
RETI
CSEG AT 0053H ;ADC0转换结束
RETI
CSEG AT 005BH ;PCA0
RETI
CSEG AT 0063H ;比较器0
RETI
CSEG AT 006BH ;比较器1
RETI
CSEG AT 0073H ;定时器3溢出
RETI
;************************* 上电复位运行F310配置程序 **********************
RSEG ?C_C51STARTUP
STARTUP1:
CLR EA
MOV SP ,#0A0H
; MOV SP ,#?STACK-1
; (1) PCA初始化:关闭看门狗
ANL PCA0MD, #0BFH
MOV PCA0MD, #000H
; (2) 定时器初始化:(T0,T3未使用)
MOV TCON, #045H ;INT0/1边沿触发中断(备用)TR1(b6)=1(启动T1运行)
; T1:UART0的波特率发生器 波特率=9600
MOV TMOD, #020H
MOV TL1, #096H
; MOV TH1, #096H ;9600/15200
MOV TH1, #0B0H ;9600/15200
; T2:1ms周期中断:重载值=-24500
; MOV CKCON, #010H ;T2时钟=24.5Mhz,9600
; MOV CKCON, #018H ;T2时钟=24.5Mhz,115200
; MOV CKCON, #011H ;T2时钟=24.5Mhz,38400
MOV TMR2RLL, #LOW(-24500) ;0A04CH
MOV TMR2RLH, #HIGH(-24500)
MOV TMR2L, #LOW(-24500)
MOV TMR2H, #HIGH(-24500)
; mov TMR2CN, #004h ;TR2(b2)=1(启动T2运行)
; (2) UART初始化:8N1,9600,允许接收。
MOV SCON0, #030H ;8N1,允许接收。
; (4) 基准电压初始化
MOV REF0CN, #008H
; (5) 通用IO端口初始化
;------------- P0端口 ----------------------------
; 7 6 5 4 3 2 1 0
; - - RX0 TX0 - - - -
;----------------------------------------------------
MOV P0MDOUT, #030H
MOV P0, #0FFH
;------------ P1端口 ----------------------------
; 7 6 5 4 3 2 1 0
; - - - - - - - -
;----------------------------------------------------
MOV P1MDOUT, #000H
MOV P1, #0FFH
;------------ P2端口 ----------------------------
; 7 6 5 4 3 2 1 0
; - - GDO0 GDO1 CSn SO SCLK SI
;----------------------------------------------------
MOV P2MDOUT, #00BH
MOV P2, #0FFH
;------------ P3端口 ----------------------------
; 7 6 5 4 3 2 1 0
; - - - 灯1 灯2 灯3 灯4 -
;----------------------------------------------------
MOV P3MDOUT, #01EH
MOV P3, #0E1H
;数字交叉开关设置
MOV XBR0, #001H ;UART0接到端口引脚
MOV XBR1, #040H ;交叉开关使能
; (6) 振荡器初始化
MOV OSCICN, #083H ;内部振荡器使能,不分频
; (7) 中断寄存器设置
MOV IE, #030H ;允许中断:T2溢出,UART0。
;************************* F310配置程序结束 **********************
LJMP ?C_START
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -