arduino的l293d驅動板轉到51單片機上出現了問題因為驅動板通過74HCT595N連接單片機,所以我寫了個程序,如下
//74HC595
#include <reg51.h>
#include <intrins.h>
#define NOP() _nop_()
sbit MOSIO=P2^1;
sbit R_CLK=P2^2;
sbit S_CLK=P2^0;
sbit M1=P1^1; //電機使能
sbit M4=P1^2;
sbit M3=P1^3;
sbit M2=P1^4;
sbit pwm=P1^0;
void delay(unsigned int i);
void HC595SendData(unsigned char SendVal);
void delay(unsigned int i)
{
unsigned int j;
for(i;i>0;i--)
for(j=300;j>0;j--);
}
void HC595SendData(unsigned char SendVal)
{
unsigned char i;
for(i=0;i<8;i++)
{
if((SendVal<<i)&0x80)MOSIO=1;
else MOSIO=0;
S_CLK=0;
NOP();
NOP();
S_CLK=1;
}
R_CLK=0;
NOP();
NOP();
R_CLK=1;
}
void main()
{
M1=1; //電機使能
M2=1;
M3=1;
M4=1;
pwm=0; //595使能
while(1)
{
HC595SendData(0xf0);//發送數據
}
}
現在出現的問題是,不論發送什么數據,電機都不受我控制,單片機斷電重開后,或者拔線重連,電機的轉動情況可能都不一樣。
我認為可能是連線問題,圖如下
連線圖.jpg (3.54 MB, 下載次數: 61)
下載附件
2018-1-1 14:50 上傳
QQ圖片20180101145542.png (58.73 KB, 下載次數: 64)
下載附件
2018-1-1 14:56 上傳
mshieldv12schem.png (44.53 KB, 下載次數: 53)
下載附件
2018-1-1 14:49 上傳
該如何解決呢?感激不盡!
142700w1n0cuvjm66vq6zn.png (414.12 KB, 下載次數: 49)
下載附件
2018-1-1 14:49 上傳
|