?? timeciir.s
字號:
;******************************************************************************
; 文件名:TIMECIIR.S
; 功能:利用RTC的增量功能進行1S的定時,當定時時間到時,取反蜂鳴器控制I/O。
; 說明:將跳線器JP7短接。
;******************************************************************************
INCLUDE LPC2294.INC
EXPORT MAIN
RTC_BASE EQU 0xE0024000
BEEPCON EQU 0x00000080 ; P0.7引腳控制B1,低電平蜂鳴
FPCLK EQU 11059200
AREA TIMECIIRC,CODE,READONLY
MAIN LDR R0,=PINSEL0
MOV R1,#0x00000000
STR R1,[R0] ; 設置管腳連接
LDR R0,=IO0DIR
LDR R1,=BEEPCON
STR R1,[R0]
BL SYSCLK_INI ; 設置系統時鐘
BL RTC_INI
MAIN_LOOP LDR R0,=IO0SET
MOV R1,#BEEPCON
STR R1,[R0] ; IO0SET=BEEPCON
LDR R0,=ILR
WAIT1 LDR R1,[R0]
ANDS R1,R1,#0x01
BEQ WAIT1 ; 等待RTC增量中斷標志
MOV R1,#0x01
STR R1,[R0] ; ILR=0x01,清除中斷標志
LDR R0,=IO0CLR
MOV R1,#BEEPCON
STR R1,[R0] ; IO0SET=BEEPCON
LDR R0,=ILR
WAIT2 LDR R1,[R0]
ANDS R1,R1,#0x01
BEQ WAIT2 ; 等待RTC增量中斷標志
MOV R1,#0x01
STR R1,[R0] ; ILR=0x01,清除中斷標志
B MAIN_LOOP
;******************************************************************************
; 名稱:RTC_INI
; 功能:初始化實時時鐘,并啟動。
; 入口參數:無
; 出口參數:無
; 占用資源:R0、R1
;******************************************************************************
RTC_INI
LDR R0,=RTC_BASE
; 設置基準時鐘分頻器(PREINT、PREFRAC)
LDR R1,=FPCLK/32768-1
STR R1,[R0,#0x80]
LDR R1,=FPCLK-(FPCLK/32768)*32768
; 初始化時鐘值
LDR R1,=2004
STR R1,[R0,#0x3C] ; YEAR=2004
MOV R1,#2
STR R1,[R0,#0x38] ; MONTH=2
MOV R1,#20
STR R1,[R0,#0x2C] ; DOM=20
MOV R1,#0x01
STR R1,[R0,#0x0C] ; CIIR=0x01,設置秒值的增量產生一次中斷
MOV R1,#0x01
STR R1,[R0,#0x08] ; CCR=0x01,啟動RTC
MOV PC,LR
;******************************************************************************
; 名稱:SYSCLK_INI
; 功能:設置系統時鐘。(M值為4,P值為2)
; 入口參數:無
; 出口參數:無
; 占用資源:R0、R1
;******************************************************************************
SYSCLK_INI
LDR R0,=VPBDIV
MOV R1,#0x00
STR R1,[R0] ; VPBDIV=0x00
LDR R0,=PLLCFG
MOV R1,#0x23
STR R1,[R0] ; PLLCFG=0x23,設置M值為4,P值為2
LDR R0,=PLLCON
MOV R1,#0x01
STR R1,[R0] ; PLLCON=0x01
LDR R0,=PLLFEED
MOV R1,#0xAA
STR R1,[R0] ; PLLFEED=0xAA
MOV R1,#0x55
STR R1,[R0] ; PLLFEED=0x55
WAIT_OK LDR R0,=PLLSTAT
LDR R1,[R0]
ANDS R1,R1,#0x0400
BEQ WAIT_OK ; 等待PLL鎖定
LDR R0,=PLLCON
MOV R1,#0x03
STR R1,[R0]
LDR R0,=PLLFEED
MOV R1,#0xAA
STR R1,[R0]
MOV R1,#0x55
STR R1,[R0]
MOV PC,LR
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -