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

📄 door_ring.asm

📁 AVR开发板范例程序,WS开发板配套_51_汇编源程序
💻 ASM
字号:
;/********************************************************************
; *  主    页 :  HTTP://WWW.QLMCU.COM
; *
; *  程序功能 :  “叮咚”门铃
; *
; *  应用软件 :  KEIL C
; *
; *  版    本 :  KEIL 7.06
; *
; *  硬    件 :  WS803、WS804、WS806
; *
; *  创建时间 :  2005-07-28
; *
; *  程序整理 :  benladn911
; *
; *  注:为了有更多实用的实验程序供大家学习,部分程序参考网上的资源,
; *      在此谢谢这些无私奉献的朋友!!!
; *
; ********************************************************************/
;/* 程序详细功能介绍:
; *当按下按键P3.3 ,AT89S51单片机产生“叮咚”声从P3.2端口输出
; *程序设计方法
; * 1. 我们用单片机实定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0,我们取定时250us,
; *      因此,700HZ的频率要经过3次250us的定时,而500HZ的频率要经过4次250us的定时。
; * 2. 在设计过程,只有当按下SP1之后,才启动T0开始工作,当T0工作完毕,回到最初状态。
; * 3. “叮”和“咚”声音各占用0.5秒,因此定时/计数器T0要完成0.5秒的定时,对于以250us为基准定时2000次才可以。
; */


T5HZ EQU 30H   ;内存定义
T7HZ EQU 31H
T05SA EQU 32H
T05SB EQU 33H
FLAG BIT 00H
STOP BIT 01H
SP1 BIT P3.3 ;按键定义

ORG 0000H
LJMP START
ORG 000BH
LJMP INT_T0

ORG 0100H
START: MOV TMOD,#02H
MOV TH0,#06H
MOV TL0,#06H
SETB ET0
SETB EA
NSP: JB SP1,NSP
LCALL DELY10MS
JB SP1,NSP
SETB TR0
MOV T5HZ,#00H
MOV T7HZ,#00H
MOV T05SA,#00H
MOV T05SB,#00H
CLR FLAG
CLR STOP
JNB STOP,$
LJMP NSP

DELY10MS: MOV R6,#20 ; 10MS延时子程序
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET

INT_T0: INC T05SA
MOV A,T05SA
CJNE A,#100,NEXT
MOV T05SA,#00H
INC T05SB
MOV A,T05SB
CJNE A,#20,NEXT
MOV T05SB,#00H
JB FLAG,STP
CPL FLAG
LJMP NEXT
STP: SETB STOP
CLR TR0
LJMP DONE

NEXT: JB FLAG,S5HZ
INC T7HZ
MOV A,T7HZ
CJNE A,#03H,DONE
MOV T7HZ,#00H
CPL P3.2
LJMP DONE
S5HZ: INC T5HZ
MOV A,T5HZ
CJNE A,#04H,DONE
MOV T5HZ,#00H
CPL P3.2
LJMP DONE
DONE: RETI
END

⌨️ 快捷键说明

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