📄 lpc764.asm
字号:
;-----------------------------
;R0作为当前的壮态
;R1作为当前的循环的次数
mornal equ 1
first_singal equ 2
warning equ 3
mornal_circle equ 50
test_cirle equ 15
warning_circle equ 1
first_singal_circle equ 25
org 0000h
ljmp main
org 0005h ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
org 000bh
ljmp Int_t0
org 003dh ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
org 0043h
ljmp Int_ec2
;P0.1和
;p0.5输入比较电压
;p0.3输出正常信号
;p0.7 输出信号2
;p1.1输出报警信号
;p1.3 输入是青有信号还黃有信号(高为黃有信号民,低为青有信号)
main:
mov wdrst ,#1Eh
mov WDRST ,#0E1h
mov p0m1,#01110111b ;
mov p0m2,#10001000b ;按新要求初始化p0口
mov p2m1,#10000011b;
mov p2m2,#00000000b;
mov pt0ad,#01110111b ;
mov p1m1,#11111101b
mov p1m2,#00000010b
mov p0,#0h
mov p2,#0h
mov tmod,#00000001b;初始化定时器
mov th0,0h
mov tl0,0h ;初始化数器
mov wdcon,#00010110b;初始化看门狗
mov cmp2,#00110000b;初始化比较器2
mov r0,#mornal
mov r1,#mornal_circle
setb ec2 ;充许比较中断
setb et0 ;充许IT0
setb tr0 ;启动定时器
setb ea ;开中断
here:
nop
nop
nop
; mov a,cmp1
mov wdrst ,#1Eh
mov WDRST ,#0E1h
;ljmp Int_ec2
sjmp here
;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
int_t0:
clr ec2; 停止比较中断
djnz r1,int0_exit
cjne r0,#mornal,test_first_singal
mov r0,#first_singal
mov r1,#first_singal_circle
clr p1.1
clr p0.3
setb p0.7
sjmp int0_exit
;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
;软件陷阱
;这里是第一个信号处理区
test_first_singal:
cjne r0,#first_singal,test_warming
mov r0,#warning
mov r1,#warning_circle
clr p0.7
clr p0.3
setb p1.1
sjmp int0_exit
;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
;软件陷阱
test_warming :
clr p0.3
clr p0.7
cpl p1.1
mov r0,#warning
mov r1,#warning_circle
int0_exit:
setb ec2 ;开比较中断
reti
Int_ec2:
clr tr0 ;关闭计时
mov a,cmp2
anl cmp2,#11111110b;清除中断标志
mov r0,#mornal
mov r1,#mornal_circle
lcall what_your_want
jnb acc.1 ,pro_qing;(如果是青就跳出)
pro_huang:
sjmp clr_out
;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
pro_qing:
sjmp set_out
;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
clr_out:
clr p0.3
clr p0.7
clr p1.1
setb tr0
reti
;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
set_out:
setb p0.3
clr p0.7
clr p1.1
setb tr0
reti
what_your_want:
mov c,p2.0
jc want
not_want:
cpl acc.1
ret
want:
ret
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
org 0f07h
nop ;软件陷阱
nop ;软件陷阱
nop ;软件陷阱
clr ea ;软件陷阱
sjmp $ ;软件陷阱
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -