?? 05hz.asm
字號(hào):
;變頻輸出!按p3.2連續(xù)輸出50hz,1KHZ,1KHZ窄脈沖, 停止。輸出口P3.3。
;***************************************************************************
;* sxj1974@163.com (51c51 test web) www.8951.com *
;* Create by :石學(xué)軍 www.51c51.com 更多例程請(qǐng)登陸網(wǎng)站 *
;***************************************************************************
;p3.2 control p1.3 (led)
;p3.4 control p3.3(buzzer)
org 0000h
ajmp main0
org 000bh
ajmp timer0
org 001bh
ajmp timer1
org 0030h
MAIN0:
CLR 21H ;清標(biāo)志位
mov 30h,#01h
mov tmod,#12h ;設(shè)定定時(shí)器工作方式
mov ie,#8ah ;開中斷
mov th0,#(256-50) ;設(shè)定時(shí)初值
mov tl0,#(256-50)
mov th1,#high(65536-50000)
mov tl1,#low(65536-50000)
mov r0,#00h
main:
mov c,p3.2 ;檢測(cè)按鍵
jc testp34
MOV R6,#200 ;設(shè)定0.5秒延時(shí)
MOV R7,#200
ajmp tt0
testp34:
mov c,p3.4 ;檢測(cè)按鍵
jc main
ajmp insert
TT0:
JNB 21H,TT2 ;判斷燈的狀態(tài)
tt:
mov c,p3.2
jnc tt1
JNB 20H,MAIN ;檢測(cè)0.5秒時(shí)間到否
CLR 20H
AJMP TT3
TT2:
mov c,p3.2 ;檢測(cè)按鍵
jnc tt2
TT3:
CPL 21H ;取反燈的狀態(tài)
cpl p1.3
ajmp main
TT1: NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6,TT
MOV R6,#200
DJNZ R7,TT
MOV R7,#200
SETB 20H
AJMP TT
insert:
lcall delay10ms
mov c,p3.4 ;檢測(cè)按鍵
jc main
ins1:
mov c,p3.4
jnc ins1 ;等待鍵釋放
mov a,30h ;狀態(tài)切換
rl a
mov 30h,a
jb acc.0,l1
jb acc.1,l2
jb acc.2,l3
jb acc.3,l4
jb acc.4,l1
jb acc.5,l2
jb acc.6,l3
jb acc.7,l4
ajmp main
l1: mov r5,#2 ;10%占空比,脈沖頻率1KHZ
setb tr0
clr tr1
ajmp l5
l2: mov r5,#5 ;25%占空比,脈沖頻率1KHZ
setb tr0
clr tr1
ajmp l5
l3: clr tr0
clr tr1
setb p3.3 ;全為高電平
ajmp l5
l4: clr tr0
setb tr1
ajmp l5
l5: ajmp main
timer0: ;定時(shí)器0中斷服務(wù)程序,產(chǎn)生50US定時(shí)
push acc
push psw
mov th0,#(256-50)
mov tl0,#(256-50)
inc r0
mov a,r0
mov 31h,r5
cjne a,31h,compend
cpl p3.3
ajmp exit
compend:
cjne a,#20,exit
mov r0,#00h
cpl p3.3
exit:
pop psw
pop acc
reti
timer1: ;定時(shí)器1中斷服務(wù)程序,產(chǎn)生50mS定時(shí)
push acc
push psw
mov th1,#high(65536-50000)
mov tl1,#low(65536-50000)
cpl p3.3
pop psw
pop acc
reti
delay10ms:
mov 40h,#50
ttp:
mov 41h,#100
djnz 41h,$
djnz 40h,ttp
ret
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -