打印

求助..请大家帮我看看为什么调用了子程序后定时就不准了..

[复制链接]
1633|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
YFEVA|  楼主 | 2007-6-3 08:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请各位高手帮忙看看了,弄了很久都没弄明白为什么计时一开始准的,一个闹钟时间到后调用音乐子程序,然后回来计时就边快了。。(计时用T1,音乐子程序用T0,在T1中断服务程序里调用了音乐子程序)

ORG 0000H
AJMP MAIN
ORG 000BH
LJMP INTT0
ORG 001BH
LJMP INTT1
ORG 0100H
MAIN:
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#14H
SETB PT0
CLR PT1

MOV TMOD,#10H
MOV TL1,#00H
MOV TH1,#4CH
SETB ET1
SETB TR1
SETB EA
AJMP $

INTT1:
MOV SP,#60H
PUSH PSW
PUSH ACC
MOV TH1,#4CH      ;晶振11.0592M,50ms定时
MOV TL1,#00H
DJNZ 33H,RETURN   
MOV 33H,#14H      ;20次计满为1s
INC 32H
MOV A,32H
CJNE A,#60,RETURN  ;判断秒钟到60s
MOV 32H,#00H       ;到60s清零
MOV A,31H
ADD A,#1
DA A
MOV 31H,A

TABTIME:   ;一分钟扫一次定时表,比较计时到否        
PUSH PSW
PUSH ACC
COMPARE:
MOV 20H,#00H
COMP1:MOV A,20H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
CJNE A,30H,COMP2
INC 20H
MOV A,20H
MOVC A,@A+DPTR
CJNE A,31H,COMP3
LCALL MUSIC
AJMP COMP3
COMP2:INC 20H
COMP3:INC 20H
COMP4:MOV A,20H
CJNE A,#06H,COMP1
RETURN1:
POP ACC
POP PSW


CJNE A,#60H,RETURN
MOV 31H,#00H
MOV A,30H
ADD A,#1
DA A
MOV 30H,A
CJNE A,#24H,RETURN
MOV 30H,#00H
RETURN:
POP ACC
POP PSW
RETI

MUSIC:   ;音乐子程序,用T0中断
PUSH PSW
PUSH ACC
PUSH DPL
PUSH DPH

MAIN1:
MOV TMOD,#01H
SETB ET0
SETB EA
SETB TR0
START0:
SETB P1.0
MOV 40H,#00H
NEXT:
MOV A,40H
MOV DPTR,#TABLEM
MOVC A,@A+DPTR
MOV R0,A
JZ ENDD
ANL A,#0FH
MOV R7,A
MOV A,R0
SWAP A
ANL A,#0FH
JNZ SING
CLR TR0
LJMP D1
SING:
DEC A
MOV 52H,A
RL A
MOV DPTR,#TABLEF
MOVC A,@A+DPTR
MOV TH0,A
MOV 51H,A
MOV A,52H
RL A
INC A
MOVC A,@A+DPTR
MOV TL0,A
MOV 50H,A
SETB TR0
D1:
LCALL DELAY
INC 40H
LJMP NEXT
ENDD:
CLR TR0
LJMP EXIT 

INTT0:
PUSH PSW
PUSH ACC
MOV TL0,50H
MOV TH0,51H
CPL P1.0
POP ACC
POP PSW
RETI

DELAY:MOV R1,#100
DELAY1:MOV R2,#30 
DELAY2:MOV R3,#29
DELAY3:DJNZ R3,DELAY3 
DJNZ R2,DELAY2
DJNZ R1,DELAY1
DJNZ R7,DELAY
RET

EXIT:
POP DPH
POP DPL
POP ACC
POP PSW
RET

TABLE:DW 0002H,0003H,0015H
TABLEM:
DB 44H,54H,64H,44H
DB 44H,54H,64H,44H
DB 64H,74H,88H
DB 64H,74H,88H
DB 82H,92H,82H,72H,64H,44H
DB 82H,92H,82H,72H,64H,44H
DB 44H,84H,48H
DB 44H,14H,48H
DB 00H
TABLEF:
DW 64260,64400,64524,64580,64684,64777,64820,64898
DW 64968,65030,65058,65110,65157,65178,65217

END

相关帖子

沙发
dengm| | 2007-6-3 08:19 | 只看该作者

MOV SP,#60H 移到 main: 后

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

10

帖子

0

粉丝