关于proteus的仿真问题

我的程序有问题吗?我的目的是按下一个键相对应的灯亮,可是为什么只有一个按键可以另外一个不行的?求各位大神帮助谢谢!!!
ORG 0000H
AJMP START
ORG 0030H
START:
SETB P1.0
SETB P1.1
MOV A,#00H
CHECK:
MOV A,P1
JNB ACC.0,DELAY10MS
JNB ACC.1,DELAY10MS
AJMP CHECK
CONFIRM:
JNB ACC.0,FADD
JNB ACC.1,LIGHT
AJMP CHECK
FADD:
CLR P2.0
ACALL DELAY5MS
SETB P2.0
LJMP START
LIGHT:
CLR P2.1
ACALL DELAY5MS
SETB P2.1
LJMP START
DELAY10MS:
MOV R6,#04H
DELAYLOOP:
MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,DELAYLOOP
AJMP CONFIRM
DELAY5MS:
MOV R4,#01H
DELAYLOOP1:
MOV R5,#07FH
DJNZ R5,$
DJNZ R4,DELAYLOOP1
RET
END

第1个回答  2013-04-21
呵呵,当然有问题了,你的DELAY10MS,不是调用,而是转移,但却用RET返回,当然会有很大的问题,程序只能首次其作用,之后就飞走了。
ORG 0000H
AJMP START
ORG 0030H
START:
MOV SP,#5FH
SETB P2.0
SETB P2.1
CHECK:
JB P1.0,CHECK1
LCALL DELAY10MS
JB P1.0,CHECK1
CLR P2.0
LCALL DELAY5MS
SETB P2.0
SJMP CHECK
CHECK1:
JB P1.1,CHECK
LCALL DELAY10MS
JB P1.1,CHECK
CLR P2.1
LCALL DELAY5MS
SETB P2.1
SJMP CHECK

DELAY10MS:
MOV R6,#04H
DELAYLOOP:
MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,DELAYLOOP
RET

DELAY5MS:
MOV R4,#01H
DELAYLOOP1:
MOV R5,#07FH
DJNZ R5,$
DJNZ R4,DELAYLOOP1
RET
END追问

(1)你好,谢谢你的回答,你的程序给了我新思路。我后来发现我最初的程序也是可以的只是P1.1的那个按钮要按久一点才有反应。两个按钮的反应不同步,我又重新编了个程序。
(2)我把其中一个按钮的功能变为按下后,数字自己加5然后再显示出来,可是仿真的结果又不行,请帮忙指正错误谢谢。
(3)具体程序和图片我可以发给你吗?百度不允许输入那么多字数。

追答

关于键盘的处理做如下修改
CHECK:
JB P1.0,CHECK1
LCALL DELAY10MS
JB P1.0,CHECK1
JNB P1.0,$ ;等待键抬起。
CLR P2.0
LCALL DELAY5MS
SETB P2.0
SJMP CHECK
有打包的东东可以发我邮箱,团队地带里有,这里输入后好像发不出去。

本回答被网友采纳
第2个回答  2013-04-20
可以的呀 只是不能 两个同时 按下。
单独任意 按下一个 都是可以的,检查一下吧。追问

P1.0那个按钮是有反应的,可是P1.1的按下却没有反应。

追答

你的发光二极管 直接连接 P2.0 & P2.1 不要用反相器, 发光二极管+ 接 VCC.

追问

(1)你好,谢谢你的回答。后来我试了一下另一个按键也是可以的就是要按下久一些而已。
(2)我把原程序改了一下,其中一个按键的功能变为加数并显示,可是仿真时又不行,能请你帮忙看一下,百度限了字数,具体程序和图片我可以发给你吗?

追答

guell@qq.com

本回答被提问者采纳

proteus仿真时出现问题?
1、打开proteus。2、接着就是要按照电路图,对元件进行布局和连线,完成电路图。3、点击箭头指的图标,开始仿真。4、点击箭头所指的竖着的等于号就可以暂停。5、最后一步就是因为选择LM311元件时,它没有仿真模型然后要点击暂停。点击如图所示的正方形黑色图标,可以停止仿真。

proteus如何仿真
以proteus9.5为例,proteus中光敏电阻仿真的方法如下:1、首先在电脑上打开proteus软件。2、进入到软件界面后,在左侧工具栏中点击黑色箭头下面的那个图标。3、然后在出现的二级页面中,点击“P”字按钮。4、接着在出现的搜索界面输入“ldr”,就会出现两个光敏元件,其次进行双击,元件就出现在P字下方的...

proteus仿真为何不动了?
当Proteus仿真停滞不前时,可能是由于选择了LM311元件,该元件在Proteus的库中并未提供仿真模型。解决这个问题的步骤如下:首先,打开Proteus软件,确保软件环境已经正常启动。接着,根据电路设计的需要,细致地在Proteus的界面中放置元件,根据电路图布局,并连接相应的线路,构建出完整的电路图。然后,当电路...

proteus仿真时出错, PC端口不输出怎么办?
proteus仿真出错,PC端口不输出并一直警告可能有以下几种原因:1. 电路图设计问题 可能是电路图设计的问题导致仿真出错,例如元件连接错误、元件参数设置错误、电压信号源设置错误等。请仔细检查电路图的每个元件是否正确连接、元件参数是否设置正确。2. 元器件模型设置问题 如果电路图设计无误,则可能是元器...

Proteus出错, No model specified for怎么解决?
在Proteus中遇到"No model specified for..."错误,通常是由于所选元件LM311缺少对应的仿真模型。以下是解决这个问题的详细步骤:首先,确保Proteus软件已正确打开。在进行电路设计时,确保你按照电路图的指示,准确无误地放置LM311元件,并连接好电路。这包括正确地在原理图编辑器中放置元件,并通过导线...

proteus怎么仿真?
具体步骤如下:1、打开proteus 2、按照电路图,对元件进行布局和连线,完成电路图 3、点击如图,开始仿真 4、点击如图所示,靠右边的暂停。5、点击如图所示,最左边的暂停。

proteus怎样仿真出错?
这个proteus运行出了问题,在这儿也不好说,就看那个错误提示真难说,PROTEUS中肯定是元件连接出了错误,或有元件的引脚该连的没有连,或连错了(被元件盖住了)等,具体操作如下:1、打开proteus 2、按照电路图,对元件进行布局和连线,完成电路图 3、点击如图,开始仿真 4、点击如图所示,暂停 5、...

Proteus中出现No model specified for...是什么原因? 怎么解决?_百度知...
遇到Proteus中"没有指定模型"的错误,通常是因为LM311元件的仿真模型未被软件识别。以下是针对这个问题的解决步骤:首先,确保Proteus软件已正确打开,并且你的工作环境设置无误。在进行电路设计时,你需要确保按照电路图精确地放置LM311元件,并将其与其他组件正确连接,构建完整的电路图。当电路搭建完成,...

protues仿真出错是什么原因啊?
是protues软件和系统不兼容造成的,解决方法如下:1、首先在电脑中找到这个protues图标,如下图所示。2、然后在打开的软件页面中,点开文件库,接着在下拉菜单中点开第一个选项。3、在紫色方框里输入所要用到的元件,然后选中绿色方框中的元件,它的仿真会在右边蓝色方框中显示。4、双击选中所选元件,...

proteus 仿真卡死的奇怪问题
您好,关于您提到的cadence ORCAD软件在破解安装后遇到的原理图元件数量限制问题,我建议您尝试以下方法:首先,确认您所使用的软件是合法的版本,因为破解版本可能存在不完全破解的情况,这可能导致软件异常行为。若您在使用过程中发现放置元件数量受到限制,您可以尝试重新安装软件或更新至最新版本。如果问题...

相似回答