报警声.asm

来自「单片机开发资料光盘-双龙-686M.zip」· 汇编 代码 · 共 45 行

ASM
45
字号

;MEGA16的PC口发出报警声
.include"m16def.inc"	;器件配置文件
.org  $0000
reset:
	ldi r16,low(ramend)	;设置堆栈指针。
	out spl,r16
	ldi temp,high(ramend)
	out sph,r16
      ldi r18,0xff	;设口为输出
      out ddrc,r18
	ldi r19,0x80	;报警参数
  lp: sbi portc,$00	;开pc口
      rcall delay	;延时
      cbi portc,$00	;关pc口
      rcall delay
	dec r19		;-1
	brne lp		;r19不为0转,为0顺执
	rcall delay1 	;较长延时,不发声
      rjmp lp		;循环报警

delay1:ldi r17,$40	;延时子程序,报警声快慢调节$30-$60
	rcall delay0
	ret

delay:ldi  r17,$9	;延时子程序,报警声频率可调$a-$7
	rcall delay0
        ret

delay0:			;延时子程序
  d1: push r17
  d2: push r17
  d3: push r17
  d4: dec r17
      brne d4
      pop r17
      dec r17
      brne d3
      pop r17
      dec r17
      brne d2
      pop r17
      dec r17
      brne d1
      ret     

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?