久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2088|回復(fù): 5
收起左側(cè)

通過MCU串口發(fā)送調(diào)試直流電機(jī)的占空比,接受完數(shù)據(jù)后,電機(jī)停止轉(zhuǎn)動(dòng),大佬幫分析一下

[復(fù)制鏈接]
ID:1027942 發(fā)表于 2022-6-23 11:22 | 顯示全部樓層 |閱讀模式
  1. #include <STC12C5A60S2.H>
  2. #include <intrins.h>
  3. #include <stdio.h>
  4. #include <math.h>
  5. sbit IN1=P1^0;
  6. sbit IN2=P1^1;
  7. sbit ENA=P1^2;  //直流電機(jī)的端口定義
  8. unsigned int Counter=0,compare,median;//定時(shí)器中斷,占空比,接收串口發(fā)送的數(shù)據(jù)
  9. unsigned int s;

  10. void UartInit(void)                //9600bps@11.0592MHz
  11. {
  12.                 SCON  = 0x50;                                 
  13.     TMOD |= 0x20;      
  14.     TH1   = 0xFD;       //   
  15.     TR1   = 1;         
  16.     EA    = 1;
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:1027942 發(fā)表于 2022-6-23 12:16 | 顯示全部樓層
void UartInit(void)                //9600bps@11.0592MHz
{
                SCON  = 0x50;                           
    TMOD |= 0x20;      
    TH1   = 0xFD;      
    TR1   = 1;      
    EA    = 1;      
}
unsigned char GetChar(void)         
{
    while(!RI);
    RI = 0;
    return SBUF;                //        
}
void SendByte(unsigned char dat)
{
    SBUF = dat;
    while(!TI);
    TI = 0;
}

unsigned char zhuanhuang(unsigned char a)
{
                s = a - '0';
        return s;
}

void Timer0Init(void)   
{
        AUXR |= 0x80;   
        TMOD &= 0xF0;  
        TL0 = 0xAE;   
        TH0 = 0xFB;   
        TF0 = 0;     
        TR0 = 1;   
        ET0=1;
        EA=1;
}


void main()
{
        UartInit();
        Timer0Init();
        compare = 10;  
        while(1)
        {
                IN1=1;   
                IN2=0;
                ENA=~ENA;
                median = GetChar();
                compare=zhuanhuang(median);
                SendByte(compare);
        }
}

void Timer0_Routine() interrupt 1
{
                TL0 = 0xAE;      
                TH0 = 0xFB;        
                Counter++;
        if (Counter>=100)                Counter = 0;
                if (Counter >compare)
                {        
                                IN1=0;
                                IN2=0;
                }
}
回復(fù)

使用道具 舉報(bào)

ID:248705 發(fā)表于 2022-6-23 13:59 | 顯示全部樓層
captaine 發(fā)表于 2022-6-23 12:16
void UartInit(void)                //9600bps@11.0592MHz
{
                SCON  = 0x50;                                // SCON:

有點(diǎn)亂,只是想模擬pwm控制電機(jī)嗎
回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2022-6-23 16:10 | 顯示全部樓層
1、應(yīng)該用ENA注入pwm; 刪除 ENA=~ENA; 再把中斷這句改成
  if (Counter >compare)
       ENA=1;
      else
           ENA=0;
2、 還有一句改一下 SendByte(compare+'0');
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-6-23 16:15 | 顯示全部樓層
ENA=~ENA;是干啥的?
while(!RI);死循環(huán)了
回復(fù)

使用道具 舉報(bào)

ID:1027942 發(fā)表于 2022-6-24 10:33 | 顯示全部樓層
用串口控制pwm轉(zhuǎn)速。
ENA在定時(shí)中斷里面,發(fā)送數(shù)據(jù)后,電機(jī)沒有反應(yīng),保持原來的轉(zhuǎn)速。但是數(shù)據(jù)過于小,電機(jī)就會(huì)停止轉(zhuǎn)動(dòng)。
ENA是控制PWM的,使能端,while(!RI); 是接收串口發(fā)送過來的數(shù)據(jù),是我在例程里面復(fù)制過來的。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜精品久久久久久久星辰影院 | 男女午夜免费视频 | 国产精品大片在线观看 | 97精品超碰一区二区三区 | 日韩欧美综合在线视频 | 日韩免费1区二区电影 | 久久国产免费看 | 欧美mv日韩mv国产网站91进入 | 69堂永久69tangcom | 五月天激情电影 | 亚洲精品久久视频 | 欧美国产91 | 中文字幕一二三区 | 欧美一区二区在线 | 四虎成人免费视频 | 性生活毛片 | 国产精品99免费视频 | 亚欧洲精品在线视频免费观看 | 中文字幕97 | 欧美日韩亚洲视频 | 最新国产福利在线 | 久久久精 | 亚洲精品亚洲人成人网 | 中文日韩在线 | 国产一区二区在线免费观看 | 久久精品免费一区二区三 | 久久国产精品免费一区二区三区 | 久久69精品久久久久久国产越南 | 国产精品 亚洲一区 | 日本天天操| 黄色欧美在线 | 亚洲一区视频 | 日韩精品中文字幕一区二区三区 | 成人久久久 | 国产探花在线精品一区二区 | 精品国产一区二区三区观看不卡 | 日本福利在线观看 | 一级一级毛片免费看 | 亚洲不卡在线观看 | 亚洲美乳中文字幕 | 久久国产精品99久久久久久丝袜 |