欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2290|回復: 8
收起左側

我這段單片機代碼為什么小車動不了?感覺沒什么問題

[復制鏈接]
ID:586622 發表于 2019-8-9 23:15 | 顯示全部樓層 |閱讀模式
#include<reg52.h>


typedef unsigned char u8;
typedef unsigned int  u16;
sbit IN1=P2^1;
sbit IN2=P2^0;
sbit ENA=P2^2;
sbit ENB=P2^3;
u8        time1;


void time()
{        
    TMOD|=0x01;
        TH0=0XFF;
        TL0=0Xff;
        EA=1;
        ET0=1;
        TR0=1;
}

void main()
{

        time();
        while(1)
        {

                if (time1>1000)time1=0;//定義周期
                IN1=0;
                IN2=1;
                   if(time1<=500)          //占空比50%
                   {
                        ENA=1;
                        ENB=1;
               
                }
                else
                {
                ENA=0;
                ENB=0;
               
                }
                IN1=1;
                IN2=0;
                if(time<=500)          //占空比50%
                   {
                        ENA=1;
                        ENB=1;
                }
                else
                {
                 ENA=0;
                ENB=0;
                }
                }
}
void time0() interrupt 1
{
        TH0=0XFF;
        TL0=0Xff;
        time1++;
        
}

回復

使用道具 舉報

ID:332444 發表于 2019-8-10 03:58 | 顯示全部樓層
time這個定義在哪?沒看到
回復

使用道具 舉報

ID:542954 發表于 2019-8-10 08:38 來自觸屏版 | 顯示全部樓層
你的這個定時中斷給的時間或許過于短了吧,這是一個機器周期一次中斷,算下來你pwm的周期也只有1000個機器周期,這個頻率可能超過了電機的接受范圍。你可以適量減少TH0和TL0的值試一下
回復

使用道具 舉報

ID:586622 發表于 2019-8-10 09:37 | 顯示全部樓層
xianfajushi 發表于 2019-8-10 03:58
time這個定義在哪?沒看到

主函數第一個就調用了
回復

使用道具 舉報

ID:586622 發表于 2019-8-10 09:39 | 顯示全部樓層
witheMe 發表于 2019-8-10 08:38
你的這個定時中斷給的時間或許過于短了吧,這是一個機器周期一次中斷,算下來你pwm的周期也只有1000個機器 ...

#include<reg52.h>


typedef unsigned char u8;
typedef unsigned int  u16;
sbit IN1=P2^1;
sbit IN2=P2^0;
sbit IN3=P2^2;
sbit IN4=P2^3;
                         
#define L_go      IN1=0;IN2=1 //左輪前進
#define L_back    IN1=1;IN2=0 //左輪后退   
#define L_stop    IN1=0;IN2=0        //左輪停止,兩個輸出1也可以
#define R_go            IN3=0;IN4=1 //右輪前進
#define R_back          IN3=1;IN4=0 //右輪后退
#define R_stop          IN3=0;IN4=0 //右輪停止,兩個輸出1也可以
void main()
{
        while(1)
        {
         L_go;
         R_go;
        }       
}
我這樣不用PWM直接讓他動,為什么也不行
回復

使用道具 舉報

ID:542954 發表于 2019-8-10 10:22 | 顯示全部樓層

那我覺得你或許需要檢查一下你的硬件問題了,看是不是線松動了,單片機出了啥差錯,穩壓模塊驅動模塊是不是正常工作,電機是否可以正常轉動
回復

使用道具 舉報

ID:332444 發表于 2019-8-10 10:22 | 顯示全部樓層
longtimenosee 發表于 2019-8-10 09:37
主函數第一個就調用了

     if(time<=500)     我說的是這個
回復

使用道具 舉報

ID:586622 發表于 2019-8-10 12:56 | 顯示全部樓層
witheMe 發表于 2019-8-10 10:22
那我覺得你或許需要檢查一下你的硬件問題了,看是不是線松動了,單片機出了啥差錯,穩壓模塊驅動模塊是不 ...

我現在就是排查到應該是單片機沒進入電路,但是我把L298N的GND和最小系統板的GND連在一起,這種接法沒有問題
回復

使用道具 舉報

ID:586622 發表于 2019-8-10 12:56 | 顯示全部樓層

這個打掉了一個1.。。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表