这是老师分给我的一个项目.
要求:
1:8脚上电时6脚出现400毫秒高电平,上电初始时向外的延时尽量短.以后准时在出现高电平;
2:8脚掉电时5脚出现2.8秒高电平,6脚在5脚转化为高电平后延时1秒6脚再出现20毫秒高电平.结束!
昨天晚上终于完成了,并通过了检测.可以用,已经给外面的工程师了.
Include derivative-specific definitions
INCLUDE 'derivative.inc'
;
; export symbols
;
XDEF _Startup
ABSENTRY _Startup
;
; variable/data section
ORG RAMStart
; Insert your data definition here
time: DS.B 1
count: DS.B 1
num: DS.B 1
;=================================================
;
;=================================================
;code section
ORG ROMStart
_Startup:
;CONFIGURES SYSTEM CONTROL
mov #HIGH_6_13(SOPT), PAGESEL
mov #$03, MAP_ADDR_6(SOPT) ; Disables COP and enables BKGD (PTA3) and RESET (PTA2) pins
;CONFIGURES CLOCK (FEI Operation Mode),ICSOUT = DCO output frequency
clr ICSC1
mov #$c8,ICSC2 ;8 分频;低功率
clr ICSSC ;out of fll
;ACMP
bclr ACMPSC_ACBGS,ACMPSC
;wait_clock:
;brclr ICSSC_CLKST,ICSSC,wait_clock ; Waits until FLL is engaged ,CLKST是0时选择FLL,1时选择内部参考时钟
;=================================================
;全局变量初始化
clr time
clr count
clr num
;=================================================
;端口初始化
;7脚输出,指示等亮
bset PTADD_PTADD1,PTADD
bset PTAD_PTAD1,PTAD
;5脚输出,打开大功率管
mov #HIGH_6_13(PTAPE),PAGESEL
bset PTAPE_PTAPE5,MAP_ADDR_6(PTAPE) ;因为是大功率管,所以上拉
bset PTADD_PTADD5,PTADD
bset PTAD_PTAD5,PTAD
;6脚输出,关闭小继电器
bset PTADD_PTADD4,PTADD
bclr PTAD_PTAD4,PTAD
;8脚输入,电源检测,acmp
mov #HIGH_6_13(PTAPE),PAGESEL
bset PTAPE_PTAPE0,MAP_ADDR_6(PTAPE)
bclr PTADD_PTADD0,PTADD
pta400ms_loop:
mov #$13,time ;0~19,20 loops
pta400ms:
JSR relay_20ms
dbnz time,pta400ms ;7
bclr PTAD_PTAD5,PTAD
;=================================================
;测8脚
hv_loop:
brset PTAD_PTAD0,PTAD,hv_loop
JSR relay_20ms
brset PTAD_PTAD0,PTAD,hv_loop
bset PTAD_PTAD4,PTAD
pta1s:
mov #$18,time ;0~49
pta1s1:
JSR relay_20ms
dbnz time,pta1s1
bset PTAD_PTAD5,PTAD
JSR relay_20ms
bclr PTAD_PTAD5,PTAD
wait
;=================================================
; DELAY 20MS
;=================================================
relay_20ms: mov #$36,count ;4
re_cycle: mov #100,num ;4 cycle
dbnz num,* ;7
dbnz count,re_cycle ;7
rts ;3
;=================================================
;**************************************************************
;* Startup Vector *
;**************************************************************
ORG $3FFD
JMP _Startup ; Reset