cryosc.asm
来自「8051试验程序 基础教材」· 汇编 代码 · 共 80 行
ASM
80 行
;-----------------------------------------------------------------------------
; cryosc.ASM
;-----------------------------------------------------------------------------
; Copyright 2005, Copyright (C) 2004 Silicon Laboratories, Inc.
;
; FILE: cryosc.ASM
; DEVICE: C8051F02x
; AUTH: BW
; DATE: 17 JUN 03
;
; This program provides an example of how to configure the C8051F02x device
; to operate from an external 22.1184MHz crystal attached to the XTAL1 and
; XTAL2 pins. Also enables Missing Clock Detector.
;
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
; EQUATES
;-----------------------------------------------------------------------------
#include "ioC8051F020.h"
LED EQU P1.6 ; LED on target board ('1' is LED ON)
SYSCLK EQU 22118 ; SYSCLK frequency in kHz
;-----------------------------------------------------------------------------
; VARIABLES
;-----------------------------------------------------------------------------
;-------------------
; STACK
RSEG STACK_PTR:IDATA
DS 80h ; reserve 128 bytes for stack
;-----------------------------------------------------------------------------
; MACRO DEFINITIONS
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
; RESET AND INTERRUPT VECTOR TABLE
;-----------------------------------------------------------------------------
ASEGN CSEG01:CODE,0
ljmp Main ; RESET vector
;-----------------------------------------------------------------------------
; MAIN PROGRAM CODE
;-----------------------------------------------------------------------------
RSEG CRYOSC:CODE
Main:
mov WDTCN, #0deh ; disable watchdog timer
mov WDTCN, #0adh
mov SP, SFB(STACK_PTR) ; init stack pointer
mov OSCXCN, #67h ; enable external crystal
; oscillator at 22.1184MHz
clr A ; wait at least 1ms
djnz ACC, $ ; wait ~512us
djnz ACC, $ ; wait ~512us
osc_wait: ; poll for XTLVLD-->1
mov a, OSCXCN
jnb ACC.7, osc_wait
orl OSCICN, #08h ; select external oscillator as
; system clock source
orl OSCICN, #80h ; enable missing clock detector
sjmp $ ; spin forever
;-----------------------------------------------------------------------------
; End of file.
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?