?? 蜂鳴器之報警聲.asm
字號:
;蜂鳴器之報警聲
;P1.0接蜂鳴器,變頻輸出報警
CODE_SEG SEGMENT CODE
DATA_SEG SEGMENT DATA
STACK_SEG SEGMENT IDATA
SPK BIT P1.0 ;定義P1.0為蜂鳴器
RSEG DATA_SEG
FRQ:DS 1 ;定義1個程序存儲器空間為FRQ
TMP:DS 1 ;定義1個程序存儲器空間為TMP
RSEG STACK_SEG
STACK:DS 20 ;定義20個程序存儲器空間,起始地址為STACK
CSEG AT 00000H ;程序起始地址
LJMP MAIN ;跳轉(zhuǎn)至MAIN
CSEG AT 0000BH ;定時/計數(shù)器T0中斷服務(wù)子程序入口地址
LJMP TIMER0 ;跳轉(zhuǎn)至定時/計數(shù)器T0中斷服務(wù)子程序
RSEG CODE_SEG
MAIN:MOV SP,#(STACK-1) ;堆棧棧頂?shù)刂? MOV TMOD,#01H ;定時/計數(shù)器T0采用定時器方式1,16位計數(shù)器
CLR A ;A清零
MOV FRQ,A ;FRQ清零
MOV TH0,A ;計數(shù)初值為0FFH,即65.281ms
MOV TL0,#0FFH
SETB TR0 ;啟動T0
MOV IE,#082H ;CPU開總中斷,T0開溢出中斷
MAIN_LP:INC FRQ ;FRQ加1
MOV R7,#04 ;R7=4
LCALL DELAYMS ;調(diào)用延時子程序
SJMP MAIN_LP
TIMER0:MOV TH0,#0FEH ;重新初始化T0
MOV TL0,FRQ
CPL SPK
RETI
;延時子程序
DELAYMS:MOV A,R7
JZ END_DLYMS
DLY_LP1:MOV R6,#185
DLY_LP2:NOP
NOP
NOP
DJNZ R6,DLY_LP2
DJNZ R7,DLY_LP1
END_DLYMS:RET
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -