?? rtcc time.asm
字號:
#include "mk7a11p.inc" ;編譯該文檔需包含"mk7a11p.inc"文件
;---------------------------------------------------------------------------------------------------------------------------
;芯片型號(mk7a11p)
;---------------------------------------------------------------------------------------------------------------------------
;配置寄存器設置說明(CONFIG)
;1-----------FOSC=RC ;LS,NS,HS,RC
;2-----------INRC=ON ;ON,OFF
;3-----------CPT=OFF ;ON,OFF
;4-----------WDTE=Disable ;Enable,Disable
;5-----------LV=Low Vol Reset ON ;Low Vol Reset ON,Low Vol Reset OFF
;6-----------RESET=...input... ;...input...,...reset...
;---------------------------------------------------------------------------------------------------------------------------
flag equ 0x23 ;標志
del_r equ 0x24 ;延時
;---------------------------------------------------------------------------------------------------------------------------
#define flag_key flag,0 ;按鍵未松開標志
#define flag_t flag,1 ;重新計時標志
;---------------------------------------------------------------------------------------------------------------------------
org 0x3ff ;mk7a11p的復位向量地址定義
lgoto main ;跳轉到主程序入口
;---------------------------------------------------------------------------------------------------------------------------
org 0x100 ;主程序入口地址定義
main
movla 0x20
movam fsr ;將0x20送入fsr寄存器
;---------------------------------------------------------------------------------------------------
clear_ram
;利用indf和fsr來進行間接尋址
;對0x20-0x2f的RAM進行clear
clr indf
mov fsr,a
andla b'00111111' ;將無關的數據慮除
xorla 0x2f
btsc status,z
lgoto $+3
inc fsr,m
lgoto clear_ram
clr fsr ;使用fsr時要注意bank的歸位
;---------------------------------------------------------------------------------------------------
;PortA端口方向及狀態設定
movla b'11111101'
iodir porta
clr porta
clr pa_pdm
;---------------------------------------------------------------------------------------------------
;PortB端口方向及狀態設定
movla b'11111001'
iodir portb
clr portb
clr pb_pod
clr pb_pup
;---------------------------------------------------------------------------------------------------
;將PB2/RTC作為TMR0外部時鐘的輸入腳
movla b'10000000'
movam pb_pdm
;---------------------------------------------------------------------------------------------------
;PortB端口8個IO喚醒禁止
movla b'00000000'
movam wake_up
;---------------------------------------------------------------------------------------------------
;配置TMR0,預分頻比為1:16
;TMR0初始值為250
;時鐘源為外部時鐘
movla b'11100011'
select
movla .250
movam tmr0
;---------------------------------------------------------------------------------------------------
;禁止中斷,清除中斷標志
clr irqm
clr irqf
;---------------------------------------------------------------------------------------------------------------------------
loop ;程序循環入口
btss irqf,0
lgoto jump_0
bc irqf,0
movla b'00000010'
xor porta ;時間到進行LED開關切換
lgoto jump_1
;-----------------------------------------------------------------------------------------------------------
jump_0
;保持時間等長
nop
nop
nop
nop
;-----------------------------------------------------------------------------------------------------------
jump_1
bs portb,1
;-----------------------------------------------------------------------------------------------------------
;high--125us
inc del_r,m
movla .20
xor del_r,a
btss status,z
lgoto $-4
clr del_r
nop
nop
nop
nop
bc portb,1
;-----------------------------------------------------------------------------------------------------------
;low--125us
inc del_r,m
movla .19
xor del_r,a
btss status,z
lgoto $-4
clr del_r
nop
lgoto loop
;---------------------------------------------------------------------------------------------------------------------------
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -