ORG 0000H ;主ç¨åºä»0000Hå¼å§
LJMP MAIN
ORG 0003H
LJMP MINUTE ;å¤ä¸æ0æ ¡å
ORG 000BH
LJMP COUNT ;å®æ¶ä¸æè¾åºæ¾ç¤º
ORG 0013H
LJMP HOUR ;å¤ä¸æ1æ ¡æ¶
以ä¸å¯¹åºï¼
#includeâ¦â¦
#includeâ¦â¦
void minute() interrupt 0 using 0
{ }
void count() interrupt 1 using 1
{ }
void hour() interrupt 2 using 2
{ }
//////////////////////////////////////////////////////////////////////////////////////////////////////////
MAIN: MOV SP,#50H ;设置å æ
MOV R0,#00H ;设置50ms计æ°å¨åå¼
MOV R2,#00H ;设置ç§è®¡æ°å¨åå¼
MOV R3,#00H ;设置å计æ°å¨åå¼
MOV R4,#00H ;设置åå计æ°å¨åå¼
MOV R5,#00H ;设置å°æ¶è®¡æ°å¨åå¼
MOV R6,#00H ;设置åå°æ¶è®¡æ°å¨åå¼
SETB PT0 ;å®æ¶å¨0ä¸æä¼å
SETB PT1 ;å®æ¶å¨1ä¸æä¼å
SETB EA ;ä¸ææ»å
许
SETB ET0 ;å®æ¶ä¸æ0å
许
SETB EX0 ;å¤é¨ä¸æ0å
许
SETB EX1 ;å¤é¨ä¸æ1å
许
SETB IT0 ;å¤é¨ä¸æ0为èå²è§¦åæ¹å¼
SETB IT1 ;å¤é¨ä¸æ1为èå²è§¦åæ¹å¼
MOV TMOD,#01H ;å®æ¶å¨0å·¥ä½äºæ¹å¼1ï¼å®æ¶ï¼
MOV TL0,#0B0H ;å®æ¶å¨0è£
å
¥50ms计æ°åå¼
MOV TH0,#3CH
以ä¸å¯¹åº:
unsigned char count=0,second=0,minute=0,ten_minute=0,hour=0,ten_hour=0,flag
void init(void)
{
PT0 =1 ;//å®æ¶å¨0ä¸æä¼å
PT1=1 ;//å®æ¶å¨1ä¸æä¼å
EA =1 ;//ä¸ææ»å
许
ET0=1 ;//å®æ¶ä¸æ0å
许
EX0=1 ;//å¤é¨ä¸æ0å
许
EX1=1 ;//å¤é¨ä¸æ1å
许
IT0 =1 ;//å¤é¨ä¸æ0为èå²è§¦åæ¹å¼
IT1=1 ;//å¤é¨ä¸æ1为èå²è§¦åæ¹å¼
TMOD=0x01 ;//å®æ¶å¨0å·¥ä½äºæ¹å¼1ï¼å®æ¶ï¼
TL0=0xB0 ;//å®æ¶å¨0è£
å
¥50ms计æ°åå¼
TH0=0x3C;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
SETB TR0 ;å¯å¨å®æ¶å¨0
SJMP $ ;çå¾
ä¸æ
以ä¸å¯¹åº:
void main(void)
{
init();
TR0=1 ;//å¯å¨å®æ¶å¨0
while(1) ;//çå¾
ä¸æ
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
COUNT: INC R0
CJNE R0,#14H,XIAN ;å¤æ计æ¶æ¯å¦æ»¡1ç§ï¼ä¸æ»¡è½¬XIAN
MOV R0,#00H ;é设50ms计æ°å¨åå¼
INC R2
CJNE R2,#3CH,XIAN;å¤æ计æ¶æ¯å¦æ»¡1åï¼ä¸æ»¡è½¬XIAN
MOV R2,#00H ;é设1s计æ°å¨åå¼
INC R3
CJNE R3,#0AH,XIAN ;å¤æ计æ¶æ¯å¦æ»¡10åï¼ä¸æ»¡è½¬XIAN
MOV R3,#00H ;é设1å计æ°å¨åå¼
INC R4
CJNE R4,#06H,XIAN ;å¤æ计æ¶æ¯å¦æ»¡1å°æ¶ï¼ä¸æ»¡è½¬XIAN
MOV R4,#00H ;é设10å计æ°å¨åå¼
INC R5
CJNE R5,#03H,X1 ;å¤æå°æ¶è®¡æ°æ¯å¦ä¸º3ï¼ä¸æ¯è½¬X1
MOV 20H,R6 ;å°æ¶è®¡æ°ä¸º3ï¼ååº10å°æ¶è®¡æ°å¼
以ä¸å¯¹åºï¼
conut++;
if(count==0x14)
{
count=0;
second++;
if (second==0x3c)
{
second=0;
minute++;
if(minute==0x0a)
{
minute=0;
ten_minute++;
if(ten_minute==0x06)
{
ten_minute=0;
hour++;
if(hour==0x03)
{
flag=ten_hour;
}
else
{
//å¡«åä½ çX1代ç
}
}
}
}
}
æ¤å¤å¡«åä½ çXIAN代ç ã
温馨提示:内容为网友见解,仅供参考