⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpc764.asm

📁 光电传感器文件,用汇编语言写的,用于制作单片机
💻 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 + -