“叮咚声”的电子门铃

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8279

文章摘要: 图4.19.2 6. 汇编源程序T5HZ EQU 30HT7HZ EQU 31HT05SA EQU 32HT05SB EQU 33HFLAG BIT 00HSTOP BIT 01HSP1 BIT P3.7ORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB ET0SETB EANSP: JB SP1,NSPLCALL DELY10MSJB SP1,NSPSETB TR0MOV T5HZ,#00HMOV T7HZ,#00HMOV T05SA,#00HMOV T05SB,#00HCL

“叮咚声”的电子门铃,标签:电子小制作,http://www.88dzw.com

图4.19.2

6. 汇编源程序
T5HZ EQU 30H
T7HZ EQU 31H
T05SA EQU 32H
T05SB EQU 33H
FLAG BIT 00H
STOP BIT 01H
SP1 BIT P3.7
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
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
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 P1.0
LJMP DONE
S5HZ: INC T5HZ
MOV A,T5HZ
CJNE A,#04H,DONE
MOV T5HZ,#00H
CPL P1.0
LJMP DONE
DONE: RETI
END

7. C语言源程序
#include <AT89X51.H>
unsigned char t5hz;
unsigned char t7hz;
unsigned int tcnt;

bit stop;
bit flag;

void main(void)
{
unsigned char i,j;

TMOD=0x02;
TH0=0x06;
TL0=0x06;
ET0=1;
EA=1;

while(1)
{
if(P3_7==0)
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_7==0)
{
t5hz=0;
t7hz=0;
tcnt=0;
flag=0;
stop=0;
TR0=1;
while(stop==0);
}
}
}
}

void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==2000)
{
tcnt=0;
if(flag==0)
{
flag=~flag;
}
else
{
stop=1;
TR0=0;
}
}
if(flag==0)
{
t7hz++;
if(t7hz==3)
{
t7hz=0;
P1_0=~P1_0;
}
}
else
{
t5hz++;
if(t5hz==4)
{
t5hz=0;
P1_0=~P1_0;
}
}
}

上一页  [1] [2] 


Tag:电子制作电子小制作维修教程知识 - 电子制作

《“叮咚声”的电子门铃》相关文章