所有关于电路
兰博基尼Av

线程启动

兰博基尼Av

加入2019年4月24日
59
嗨,所有。我从以下网站下载了我的Proteus 8 Professional的L293N电机驱动程序。
https://www.theengineeringprojects.com/2017/09/l298-motor-driver-library-proteus.html

根据网站上的视频链接(或者你可以点击这里:
),它说两个引脚(我不知道)必须接地。请参考下面的图片,我已经圈出了我的意思是2个大头针的区域。
1573472208716. png

我尝试模拟没有连接任何2个引脚和电机不会旋转。将其中的1个连接到地面只会使1个马达旋转。这是在模拟中。事实上,我能不能告诉你我可以在哪里禁足?为了便于参考,我将在下面插入一个图表。我试图连接的一切如上bradboard除了接地和电机不会移动。
1573472234257. png

任何帮助我都很感激,谢谢。

这篇文章是关于https://forum.allaboutcircuits.com/threads/obstacle-avoiding-robot-using-pic-microcontroller.164564/这是由马达驱动本身决定的。
兰博基尼Av

线程启动

兰博基尼Av

加入2019年4月24日
59
Dodgydave

Dodgydave

2012年6月22日加入
9912年
要在Pic上使端口位高,只需使用命令BSF和位号0到7,

首先设置你想使用的端口,如A B C等,所以如果你想使用端口Bbit 3,那么' BSF端口B,3 '将使引脚高,使它低使用。供应量PORTB 3 . .
兰博基尼Av

线程启动

兰博基尼Av

加入2019年4月24日
59
要在Pic上使端口位高,只需使用命令BSF和位号0到7,

首先设置你想使用的端口,如A B C等,所以如果你想使用端口Bbit 3,那么' BSF端口B,3 '将使引脚高,使它低使用。供应量PORTB 3 . .
我通常使用TRISB3 = 1,我陈述的编码是正确的还是我遗漏了什么?
J

jpanhalt

2008年1月18日加入
11088年
我有点困惑,因为这个线程:https://forum.allaboutcircuits.com/threads/obstacle-avoiding-robot-using-pic-microcontroller.164564/
有类似的问题,但是使用相同芯片的不同控制器。
1)您计划使用哪个控制器?
你会写哪种程序设计语言?
3)一般来说,将一个引脚设置为TRISx = 1不会将其推高。恰恰相反,这将引脚设置为具有高阻抗的输入。
我只能做装配。在这种语言中,“TRISB3”不会被MPLAB 8.92所承认。你想要的是TRISB,3。逗号很重要。
我不确定你用的是哪个PIC芯片。如果是中档(不是增强中档),你可以这样写
代码:
净水器PORTB, 3
将该位对应的引脚设置为高。你必须在C中设置TRISB,3 =0或在汇编中使用BCF TRISB,3。这不是一个特别好的编码实践,但它通常在一个简单的程序中工作。最好的做法是这样做或类似的事情:
代码:
MOVLW b'xxxx0xxx' MOVWF TRISB
当然,x必须适当地用1或0代替。

此外,根据您的芯片,在组装时,您必须始终确保您所修改的寄存器处于正确的内存库中。如果你不是,奇怪的事情可能会发生,这可以解释为什么设置TRISB,3 =1可能对你有用。例如,如果您正在使用16F877芯片,PORTB在银行0,TRISB在银行1。它们从每一家银行开始就有相同的抵消。因此,在汇编中,如果你在Bank 0中,写的是BSF TRISB,3,实际上会这样做:BSF PORTB,3。我不认为这是一种很好的做法,但有些聪明的人会这样做——我认为是为了混淆代码。在十六进制代码的“反汇编”中,你最有可能看到这种情况。
最后的编辑: