找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2761|回复: 2
打印 上一主题 下一主题
收起左侧

[求助]各位前辈麻烦看一下吧

[复制链接]
跳转到指定楼层
楼主
ID:49303 发表于 2013-4-13 13:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

程序如下:

           ORG 1000H

START:MOV TMOD,#01H

           MOV TH0,#3CH

           MOV TL0,#0B0H

           MOV IE,#82H

           SETB TR0

           MOV R0,#90H

LOOP:  SJMP $

           ORG 000BH

           AJMP BTR0

           ORG 0080H

BTR0:  DJNZ R0,NEXT

           CPL P2.0

           MOV R0,#90H

NEXT:  MOV TH0,#3CH

           MOV TL0,#0B0H

           RETI

           END

这段程序就是让P2.0闪呀闪,很简单

我用的是STC 12C5A60S2,写入程序以后,一切正常,P2.0确实闪呀闪的

可是断掉电,然后重新启动,P2.0就变成昏暗的常亮了。这是怎么回事呢~?

[此贴子已经被作者于2013-4-13 18:51:06编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:7485 发表于 2013-4-13 22:18 | 只看该作者
          ORG 1000H

START:MOV TMOD,#01H

           MOV TH0,#3CH

           MOV TL0,#0B0H

           MOV IE,#82H

           SETB TR0

           MOV R0,#90H

LOOP:  SJMP $

           ORG 000BH

           AJMP BTR0

           ORG 0080H

BTR0:  DJNZ R0,NEXT

           CPL P2.0

           MOV R0,#90H

NEXT:  MOV TH0,#3CH

           MOV TL0,#0B0H

           RETI

           END

 

你这个程序,上面红字段运行不到的。

 

单片机上电、复位以后自动从code的0000h处开始执行。由于从0003h~009bh,是中断向量的分布段(绝大部分是预留的),所以一般是从0100处开始写初始化程序。又由于0000h~0003h(不含0003h)只有3个字节,所以一般在这里安排一句跳转指令,常用模式:

        org    0000h

        jmp   main

;        org    0003h         ;若果不用外部中断0,可以不用本句

;        jmp   ......

        org   000bh

 

 

而你的程序,org  1000h既不是复位入口地址,也不是中断入口,有没有语句向这里跳转,当让就执行不到了。

也许,由于你的程序没有循环,所以会从0000h一直顺序执行到000bh跳转......,但这样就不是你想要的结果了。

 

       

[此贴子已经被作者于2013-4-13 22:25:19编辑过]
回复

使用道具 举报

板凳
ID:49303 发表于 2013-4-14 11:58 | 只看该作者

啊,果然,我只加了下面一小段,这个问题就解决了~! T^T

  ORG    0000H
  LJMP    START
  ORG    0003H

多谢版主大人的帮助~!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表