找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 966|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)開(kāi)發(fā)板為什么無(wú)法控制兩個(gè)舵機(jī)?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1005856 發(fā)表于 2023-5-13 22:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
代碼如下,仿真時(shí)可以運(yùn)行兩個(gè)舵機(jī),到了普中開(kāi)發(fā)板上就只有一個(gè)口能用?
求助求助

單片機(jī)源程序如下:
#include <reg51.h>
#include <stdio.h>
typedef unsigned char uchar;//0~255
typedef unsigned int uint;//0~65535
uchar Turn_angle=1;
sbit PWM_1 = P3^7;
sbit PWM_2 = P3^5;//
uchar kk =0;
uint control_pwm;
uint clfition;//·ÖÀà±äÁ¿

void delay_ms(uint c)
{
    uint a,b;
for(;c>0;c--)
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
void Time0_Init()
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=0xff;
TL0=0xa3;
TR0=1;
}

void main()
{
Time0_Init();
   kk=0;
clfition=0;
while(1){
  control_pwm=0;
  switch(clfition)
  {
   case 0:{
  Turn_angle=5;
  delay_ms(2000);
control_pwm=1;
Turn_angle=20;
  delay_ms(2000);
   Turn_angle=5;
  delay_ms(1000);
     clfition=4;
break;}
  case 1:{
  Turn_angle=10;
  delay_ms(2000);
control_pwm=1;
Turn_angle=20;
  delay_ms(2000);
   Turn_angle=5;
  delay_ms(1000);
    clfition=4;
break;}
  case 2:{
  Turn_angle=15;
  delay_ms(2000);
control_pwm=1;
Turn_angle=20;
  delay_ms(2000);
   Turn_angle=5;
  delay_ms(1000);
   clfition=4;
break;}
  case 3:{
  Turn_angle=20;
  delay_ms(2000);
control_pwm=1;
Turn_angle=20;
  delay_ms(2000);
   Turn_angle=5;
  delay_ms(1000);
    clfition=4;
break;}
  default:break;
}
}}
void timer() interrupt 1
{
  TR0=0;
  TH0=0xff;
  TL0=0xa3;
  switch(control_pwm){
  case 0:
  {
   if(kk<=Turn_angle)
   PWM_1=1;
  else
   PWM_1=0;
  if(kk==200)
  kk=0;
  kk++;
  TR0=1;
break;}
  case 1:
   {if(kk<=Turn_angle)

   PWM_2=1;

  else
   PWM_2=0;
  if(kk==200)
  kk=0;
  kk++;
TR0=1;
break;}
}
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表