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

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

QQ登錄

只需一步,快速開始

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

求大神指點(diǎn) 單片機(jī)串口通訊和步進(jìn)電機(jī)控制失敗

[復(fù)制鏈接]
ID:277993 發(fā)表于 2024-1-25 12:13 | 顯示全部樓層 |閱讀模式
    我最近在搞51單片機(jī)串口通訊和42步進(jìn)電機(jī)控制,但是始終無法解決雙定時(shí)器問題。    使用的是89c52芯片+步進(jìn)電機(jī)驅(qū)動(dòng)+42步進(jìn)電機(jī),我苦惱的是,單獨(dú)使用串口通訊功能沒有,單獨(dú)控制42步進(jìn)電機(jī)也沒有問題,但是結(jié)合在一起,就不行了。
   求大神指點(diǎn)。

#include <reg52.h>

#define uchar unsigned char
#define uint  unsigned int

sbit shi_neng=P1^0;  //        使能控制位
sbit fang_xiang=P1^1;//        旋轉(zhuǎn)方向控制位
sbit mai_chong=P1^2; // 脈沖控制位

sbit qi_dong=P2^0;//        啟動(dòng)按鈕

sbit ting_zhi=P2^1;//停止按鈕
sbit zheng_zhuan=P2^2;//正轉(zhuǎn)按鈕

sbit dg5=P1^5;
sbit dg6=P1^6;
sbit beep = P2^3;//蜂鳴器接口
uchar num,p1;//發(fā)送暫存變量

unsigned int m,f,s,pp,sa,xa,xb;
unsigned int p2;

void delay(uint i)//延時(shí)函數(shù)
{
        uchar j,k;
        for(j=0;j<i;j++)
        for(k=0;k<50;k++);
}
        
void UART_init()
{
        SCON=0X50;
        TMOD = 0x20;          //T1工作模式2  8位自動(dòng)重裝
        TH1 = 0xfd;
        TL1 = 0xfd;         //比特率9600
        TR1 = 1;                //啟動(dòng)T1定時(shí)器
        SM0 = 0;
        SM1 = 1;                 //串口工作方式1 10位異步
        REN = 1;                //串口允許接收
        EA  = 1;                //開總中斷
        ES  = 1;                //串口中斷打開
}
void djzf(uint x)
{
   if(x==1)
   {
        shi_neng=0;  //        使能控制位
        fang_xiang=1;//        旋轉(zhuǎn)方向控制位
        dg5=0;
        dg6=1;
        }
    if(x==2)
        {shi_neng=0;  //        使能控制位
        fang_xiang=0;//        旋轉(zhuǎn)方向控制位
        dg5=1;
        dg6=0;
        }
          if(x==3)
        {shi_neng=1;  //        使能控制位
        fang_xiang=0;//        旋轉(zhuǎn)方向控制位
        dg5=1;
        dg6=1;
        }
}  


void main()
{
        unsigned int p3;
        UART_init(); //串口初始化
         p3=p2;
        switch (p2)
          {
          case 1:djzf(1);
          case 2:djzf(2);
          case 3:djzf(3);
          break;
           }
        while(1);
         {
          mai_chong=1; //輸出時(shí)鐘脈沖
                  delay(3);
                mai_chong=0;  
                  delay(3);        
         
         }
}


void UART() interrupt 4
{
        if(RI)        //檢測(cè)是否接收完成
        {
                num = SBUF;          //num 取出接收緩存器的值
                p2=(int)num;
                beep = 0;
                delay(100);
        
                beep = 1;//蜂鳴器發(fā)出滴提示音

                num++;//把接收的數(shù)據(jù)加1并發(fā)送
                RI = 0;
                SBUF = num;        
                EA=0;
                while(!TI);
                TI = 0;
        }
}


回復(fù)

使用道具 舉報(bào)

ID:277993 發(fā)表于 2024-1-25 12:16 | 顯示全部樓層
我分析的原因是,如果開串口通訊,那么T1是自動(dòng)控制,T0不工作,我需要T0來產(chǎn)生驅(qū)動(dòng)頻率,但是采用TMOD=0X03后仍然不行,T0和T1始終無法實(shí)現(xiàn)同時(shí)工作,所以導(dǎo)致我無法實(shí)現(xiàn)通過串口控制步進(jìn)電機(jī)
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-1-25 16:10 | 顯示全部樓層
就不應(yīng)該用51來搞這一套。

2010年我接一個(gè)步進(jìn)電機(jī)為核心的項(xiàng)目,想用STM32,一查定時(shí)器只有16位太沒有誠(chéng)意了,果斷換成LPC1756
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 狠狠艹狠狠干 | 99re国产| 国产精品99999 | 青青草国产成人av片免费 | 一级a毛片 | 毛片视频免费 | 成年人免费看片 | 久久日本 | av高清不卡 | 黄a视频| 日韩精品久久久久 | 成人免费毛片嘿嘿连载视频 | 4438成人网 | 欧美一级特黄视频 | 日本在线看片 | 91精品91久久久中77777 | 久久精品2 | 日韩手机在线视频 | 黄色片久久| 天堂中文在线视频 | 欧美伊人久久 | 免费视频一区二区 | 亚洲伊人av | 日韩福利在线 | 亚洲欧美国产毛片在线 | 性色av一区二区三区 | 欧美日韩一区二区三区视频 | 九九色 | 午夜男人影院 | 欧美日韩国产在线观看 | 一区二区三区蜜桃 | 日韩国产一区二区 | 青青草国产在线视频 | 亚洲精品美女 | 亚洲免费成人 | 伊人成人在线视频 | 极品尤物一区二区三区 | www.黄色网 | 国产激情网| 草逼com| 视频一区二区在线播放 |