打印

中颖单片机CJNE汇编指令问题

[复制链接]
13317|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ephzq|  楼主 | 2012-1-26 16:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ORG 0000H
MOV A,#200
CJNE A,#200,QUIT
MOV A,#100
OUIT:
AJMP $
END
这个程序在KEIL2仿真时没有出错,烧到SH79F161时,运行出错了,怎么会是这样,请中颖工程师解答一下,谢谢!
沙发
ephzq|  楼主 | 2012-1-26 16:39 | 只看该作者
ORG 0000H
MOV A,#200
CJNE A,#200,QUIT
MOV A,#100
QUIT:
AJMP $
END
===============
更正一下,改了OUIT为QUIT,还是出现同样问题,即是KEIL2仿真通过,烧进SH79F161单片机后,无法用。

使用特权

评论回复
板凳
zhuhuis| | 2012-1-26 17:58 | 只看该作者
不懂,帮顶吧

使用特权

评论回复
地板
ephzq|  楼主 | 2012-1-26 18:37 | 只看该作者
情况是这样的,我用汇编写了一个关于SH79F161单片机的程序
其中有一个功能是:
加1,后会有一个值,如:100加到200时,需要将200改为100
用这个程序不行
CJNE A,#200,XXX
而改为这个
XRL A,#200
JNZ  XXX
改为这个后,程序正常运行了,
问一下,用CJNE做判断转向与用XRL和JNZ做有什么区别?
这两个汇编功能是一样的,但是为什么这时用CJNE不行,而用XRL和JNZ就行了,求高手指点,谢谢!

使用特权

评论回复
5
ephzq|  楼主 | 2012-1-27 13:36 | 只看该作者
具体情况是这样的,我在我的汇编商用程序中取如下一段
INC 0EH;-------------问题点1
MOV A,0EH;-----------问题点2,
CJNE A,#200,State_1;-问题点3,改为XRL A,#200--->JNZ State_1问题解决
;XRL A,#200
;JNZ State_1
MOV 0EH,#100
State_1:
------------------------
程序运行错误
改为这个后,程序运行正常
INC 0EH;-------------问题点1
MOV A,0EH;-----------问题点2,
;CJNE A,#200,State_1;-问题点3,改为XRL A,#200--->JNZ State_1问题解决
XRL A,#200
JNZ State_1
MOV 0EH,#100
State_1:
===================
这个问题很是纠结,请高手指点一下,可能是我的KEIL2出错了,也可能是SH79F161D单片机出错了
这个问题很奇怪,这两个汇编指令功能是一样的,为什么在这里用CJNE就不行而用XRL+JNZ就通过了呢?真是奇怪,求高手指点一二,小弟感激不尽。

使用特权

评论回复
6
bananarer| | 2012-1-29 12:38 | 只看该作者
你是不是将程序下载下去了。我看是对的嘛

使用特权

评论回复
7
ephzq|  楼主 | 2012-1-29 13:16 | 只看该作者
在KEIL2中仿真运行正常,下载到SH879F161单片机中,就出问题了。只要是运行到CJNE时,没按要求运行下去。而改用XRL+JNZ后,程序正常,很是奇怪,我估计可能是SH79F161的问题。

使用特权

评论回复
8
ephzq|  楼主 | 2012-1-29 13:34 | 只看该作者
当然,我开启了,按键键盘,我还开启了内部时钟0中断。
这只不地是完成按键循环的一个增值,如从100步进1直加到199,当加到200时,使用这个判断,改为100,当用到CJNE时,程序也能运行下去,但是会出错。
我还有一个功能,就是从199降到100,当减1值到99时,同样需要改为199,这时用CJNE功能正常,没有问题。
当用到升+1时,就出现问题,这个CJNE很可能是汇编指令设计时,受到某些部件的影响,而运行出错,而这个外部条件,刚好被我的前后相关的汇编指令启动了,所以CJNE运行出错。还望中颖高工程师指点一二,小弟不胜感激

使用特权

评论回复
9
bananarer| | 2012-1-30 17:19 | 只看该作者
先换一颗79F161,看看,如果也是这样、
你将你的程序弄到最简单(不要有外部按键什么的,中断也不要),试试看行不行?如果还是不行,则将整个程序打包放到网络上面,我帮你看看

使用特权

评论回复
10
ephzq|  楼主 | 2012-1-31 11:28 | 只看该作者
等我手头上的项目做完后,我们再详细聊一聊这个CJNE语句的问题,真的很奇怪。我的机子有两个按键,一个是增+1,另一个按键是减-1,-1的按键正常,+1的按键不正常,这时,我将这两个按键互换,即是-1按键,复制+1程序,+1按键,复制了-1程序,问题还是出在,+1按键上。所以,我基本上说,CJNE有语句有问题。

使用特权

评论回复
11
ephzq|  楼主 | 2012-1-31 11:30 | 只看该作者
等我手头上的项目做完后,我们再详细聊一聊这个CJNE语句的问题,真的很奇怪。我的机子有两个按键,一个是增+1,另一个按键是减-1,-1的按键正常,+1的按键不正常,这时,我将这两个按键互换,即是-1按键,复制+1程序,+1按键,复制了-1程序,问题还是出在,+1功能上(即是-1按键出问题,反正这个+1程序放到哪个按键哪个按键出问题)。所以,我基本上说,CJNE有语句有问题。

使用特权

评论回复
12
jamie-ma| | 2012-2-2 17:00 | 只看该作者
观望一下

使用特权

评论回复
13
ephzq|  楼主 | 2012-2-18 21:06 | 只看该作者
项目已完成,板子已上交给了老板,由于没有板子,无法体现CJNE的问题,也就无法深入研究了。这个问题,只能到这里了。不过,估计中颖的高级工程师,应该会知道怎第回事吧,或可能需要找一个SH单片机的晶片开发指令商的能解这个凝问题。祝大家好运。

使用特权

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

本版积分规则

5

主题

38

帖子

0

粉丝