注册 登录
编程论坛 单片机编程

单片机51用查询方式延迟1秒

mailahuotui 发布于 2012-12-20 21:13, 4253 次点击
单片机51用查询方式延迟1秒,定时器用方式1,请问我写得有什么问题,这个仿真出来明显不到1秒
ORG 0000H
MOV SP,#60H
CLR P1.0
E:ACALL DEL_1S
 CPL P1.0
 SJMP E
  PUSH ACC   
   MOV TMOD,#10H   
   MOV TL1,#0B0H     
  MOV TH1,#3CH
 DEL_1S: MOV R2,#20   
   SETB TR1   
LOOP:JNB TF1,$  
      MOV TL1,#0B0H   
    MOV TH1,#3CH   
    CLR TF1   
    DJNZ R2,LOOP   
     CLR TR1      
  RET
END
2 回复
#2
于祥2012-12-20 22:05
这个应该是正确的,仿真的时候用设置晶振频率吗?我没仿真过,一般都在板子试试就知道了,或者是用keil调试一下也行
还有就是为什么要PUSH ACC ?真心不懂
#3
mailahuotui2012-12-21 14:14
回复 2楼 于祥
ACC是之前改错的残留。。。忘删了
后来换了个延时子程序就效果很好,没有之前那个跳得那么快,原理都一样啊,就是不明白为什么上面那个是错的。。
DELAY1s:MOV TMOD,#10H  //这是效果很好的延时子程序
 MOV TL1,#0DCH
 MOV TH1,#0BH
MOV R2,#8
SETB TR1
LP1S: JNB TF1,$
MOV TL1,#0DCH
MOV TH1,#0BH
CLR TF1
DJNZ R2,LP1S
 CLR TR1
 RET
1