Robofun 機器人論壇

標題: KeilC程式問題...急急急!! [打印本頁]

作者: asus06512    時間: 2008-4-27 21:29
標題: KeilC程式問題...急急急!!
請問各位大大們,小弟有一組8051電路,P1.0~P1.2是接三顆感測器(CNY70),兩顆馬達是接P2.0~P2.3
可是當感測器有HI, LO的時候馬達卻沒有動作,請問這是哪裡出問題呢?(假設電路正確)
那程式錯誤在哪裡呢?馬達驅動電路我是用TA7279P(附圖)
#include <reg51.h>
sbit motor1_1=P2^0;
sbit motor1_2=P2^1;
sbit motor2_1=P2^2;
sbit motor2_2=P2^3;
sbit sensor1=P1^0;
sbit sensor2=P1^1;
sbit sensor3=P1^2;
void delay1ms(int);
//=================================
main()
{motor1_1=0;
motor1_2=0;
motor2_1=0;
motor2_2=0;
sensor1=1;
sensor2=1;
sensor3=1;
while(1)
{    if(sensor1==1)
      {motor1_1=0;
       motor1_2=1;
       motor2_1=0;
       motor2_2=1;
       delay1ms(1000);
      if(sensor1==0 )
      {motor1_1=1;
       motor1_2=0;
       motor2_1=0;
       motor2_2=1;
       delay1ms(1000);
}}
//=================================
void delay 1ms(int x)
{    int i,j;
for (i=0;i<x;i++)
      for(j=0;j<120;j++);
}


作者: naga    時間: 2008-4-27 22:14
asus06512大大你好
                      不知您8051的P2有沒有接,pull  high 電阻
                      如果沒有,就接個pull  high 電阻試試^^
作者: draw3299    時間: 2008-4-28 10:02
asus06512大大你好

我建議你先用這樣測測看

感測器一樣接在P1

把P2的接馬達的腳先接LED燈

#include<regx51.h>
sbit ssr_1=P1^0;
sbit ssr_2=P1^1;
sbit ssr_3=P1^2;
sbit mtr1=P2^0;
sbit mtr2=P2^1;
sbit mtr3=P2^2;
sbit mtr4=P2^3;

main()
{
while(1)
{
P1=0xff;
P2=0xff;
if(ssr_1==0)
{
mtr1=0;
mtr3=0;
}
else
{
mtr2=0;
mtr4=0;
}
}
}


平時沒信號近感測器 則MOTOR2&4為0
有信號進入時 MOTOR1&3為0

如果這樣可行 可能是你接馬達那邊的出問題


電路
+5V-電阻-LED-P2
作者: 超新手    時間: 2008-4-29 13:00
左右括號根本沒對稱...
這程式真的可以 Compiler 過嗎
while(1)
{    if(sensor1==1)
      {motor1_1=0;
       motor1_2=1;
       motor2_1=0;
       motor2_2=1;
       delay1ms(1000);}
      else
      {motor1_1=1;
       motor1_2=0;
       motor2_1=0;
       motor2_2=1;
       delay1ms(1000);}
}}
作者: asus06512    時間: 2008-5-4 21:52
draw3239大大你好,我試過你的程式可是馬達輸出都是HI耶,電壓有點偏低...

你的程式應該沒缺東西吧?假如我現在只要使用P1.0 P1.1這兩個PORT做HI LO動作

來控制P2.0 P2.1單邊馬達輸出那要怎麼修改呢?感謝你的指導!!




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2