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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助帖,用單片機+獨立按鍵控制電機無效

[復(fù)制鏈接]
ID:779880 發(fā)表于 2020-6-19 17:30 | 顯示全部樓層 |閱讀模式
像用獨立按鍵控制電機,然后發(fā)現(xiàn)獨立按鍵比如看k1按下去之后,除了P1^1從高電壓變成低電壓,別的地方?jīng)]有任何變化,很苦惱,求大神指點。
//這是源代碼

#include<reg52.h>
#include<intrins.h>
typedef unsigned char u8;

sbit k1=P1^6;
sbit k2=P1^7;
sbit k3=P3^6;
sbit k4=P3^7;

sbit in1=P1^1;
sbit in2=P1^2;
sbit in3=P1^3;
sbit in4=P1^4;

sbit in5=P2^1;
sbit in6=P2^2;
sbit in7=P2^3;
sbit in8=P2^4;

void delay10ms(void)
{
    unsigned char a,b,c;
    for(c=1;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}
void button()
{
   if(k1==0)
         {delay10ms();
                 if(k1==0)//ǰ½ø
                 {
                        in1=1;
                        in2=0;
                        in3=1;
                        in4=0;
                        in5=1;
                        in6=0;
                        in7=1;
                        in8=0;
         while(!k1);
         delay10ms();
           }

         
   }

if(k2==0)
         {delay10ms();//oóíË
                 if(k2==0)
                 {
                        in1=0;
                        in2=1;
                        in3=0;
                        in4=1;
            in5=0;
                        in6=1;
                        in7=0;
                        in8=1;
           while(!k2);}
           delay10ms();
   }

if(k3==0)
         {delay10ms();//×ó×a
                 if(k3==0)
                 {
                        in1=0;
                        in2=1;
                        in3=0;
                        in4=1;
                  in5=1;
                        in6=0;
                        in7=1;
                        in8=0;
           while(!k3);}
           delay10ms();
   }


if(k4==0)
         {delay10ms();//óò×a
                 if(k4==0)
                 {
                        in1=1;
                        in2=0;
                        in3=1;
                        in4=0;
                        in5=0;
                        in6=1;
                        in7=0;
                        in8=1;
            while(!k4);
            delay10ms();}

         
   }

}

void main()
{
               
                        button();
            while(1);
}




51hei截圖20200619172911.png
回復(fù)

使用道具 舉報

ID:782419 發(fā)表于 2020-6-19 19:04 | 顯示全部樓層
電機向芯片上接的時候應(yīng)該是一根線拉out,另一端接電源正極或Gnd,如果你的程序沒有問題的話,這樣試試!
回復(fù)

使用道具 舉報

ID:782419 發(fā)表于 2020-6-19 19:21 | 顯示全部樓層
另外你們button函數(shù)不應(yīng)該寫在主函數(shù)main()內(nèi)的while循環(huán)里邊嗎?
main()
{
  while(1)
  {
    button();
  }
}
回復(fù)

使用道具 舉報

ID:779880 發(fā)表于 2020-6-19 21:03 | 顯示全部樓層
wufeng391 發(fā)表于 2020-6-19 19:04
電機向芯片上接的時候應(yīng)該是一根線拉out,另一端接電源正極或Gnd,如果你的程序沒有問題的話,這樣試試!

這樣不行吧,我是寫的遙控車的一部分,如果電機的一根線拉正極或GND的話,就只能控制電機的啟停,不能控制正反轉(zhuǎn)了。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-20 09:02 | 顯示全部樓層
無標(biāo)題.png 無標(biāo)題1.png

回復(fù)

使用道具 舉報

ID:779880 發(fā)表于 2020-6-20 10:26 來自手機 | 顯示全部樓層
xianfajushi 發(fā)表于 2020-6-20 09:02

大佬這什么意思啊,我剛學(xué)單片機10天,看不太懂,請指教
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-20 11:02 | 顯示全部樓層
別管那么多,照抄就是,獲取些許經(jīng)驗,以后就會慢慢知道的。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-20 11:06 | 顯示全部樓層
稍微解釋:數(shù)組前4個元素是控制L298輸入端的信號,同時控制2片L298,數(shù)組后8個是按鍵按下時的值,用于定義按鍵的功能。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-20 11:13 | 顯示全部樓層
把數(shù)組中的值送給指定P就會出現(xiàn)想要的8個IO的高低電平,就這么簡單,沒蝦米特別的道理。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-20 12:46 | 顯示全部樓層
輸入與輸出都時一樣的道理,賦值控制輸出,按鍵按下讀取即輸入,都可以看作是一個值。
回復(fù)

使用道具 舉報

ID:342822 發(fā)表于 2020-6-20 12:52 | 顯示全部樓層
wufeng391 發(fā)表于 2020-6-19 19:21
另外你們button函數(shù)不應(yīng)該寫在主函數(shù)main()內(nèi)的while循環(huán)里邊嗎?
main()
{

支持 :隨時掃描按鍵應(yīng)寫在循環(huán)中
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-20 21:07 | 顯示全部樓層
4按鍵控制4電機.rar (68.8 KB, 下載次數(shù): 13)

回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-22 09:55 | 顯示全部樓層
錄像2_轉(zhuǎn).gif
回復(fù)

使用道具 舉報

ID:97554 發(fā)表于 2020-6-26 09:27 | 顯示全部樓層
xianfajushi 發(fā)表于 2020-6-20 11:06
稍微解釋:數(shù)組前4個元素是控制L298輸入端的信號,同時控制2片L298,數(shù)組后8個是按鍵按下時的值,用于定義 ...

數(shù)組用的是10進制數(shù),最后一個127就是十六進制的7F,意思是當(dāng)P1.7口是低電平?是這個意思嗎?
回復(fù)

使用道具 舉報

ID:97554 發(fā)表于 2020-6-26 10:56 | 顯示全部樓層
白帥比 發(fā)表于 2020-6-20 10:26
大佬這什么意思啊,我剛學(xué)單片機10天,看不太懂,請指教

大佬的意思就是把你
                        in1=0;
                        in2=1;
                        in3=0;
                        in4=1;
                        in5=1;
                        in6=0;
                        in7=1;
                        in8=0;
這種驅(qū)動298的寫法改成用一個IO口的八條線,比如你的in1  --  in8分別依次接入P1口的P1^0   P1^2 -- P1^7,你上邊的01011010就是5A,換成十進制就是90,另外的三組分別是A5    55    AA,對應(yīng)的十進制就是165   85   170,也就是說按照大佬給的接線圖,用P2口做驅(qū)動,P1口做按鍵。那你的                        in1=0;
                        in2=1;
                        in3=0;
                        in4=1;
                        in5=1;
                        in6=0;
                        in7=1;
                        in8=0;
就可以簡單的寫成:
                       P2 = 5A;
大佬直接做了個10進制的數(shù)組,把按鍵和鍵盤的IO口電平狀態(tài)放在里邊,直接在下邊調(diào)用了,比如他前邊的那P1= DJ雖然是電機的首拼,但是這里是檢測按鍵狀態(tài),后邊P2= 是驅(qū)動輸出狀態(tài)。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-26 11:35 | 顯示全部樓層
楊雪飛 發(fā)表于 2020-6-26 09:27
數(shù)組用的是10進制數(shù),最后一個127就是十六進制的7F,意思是當(dāng)P1.7口是低電平?是這個意思嗎?

解釋寫得明白,就是按鍵按下的值,按鍵接地,自然是低電平。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-26 16:22 | 顯示全部樓層
有人如此解釋我的程序,忽然有一種感覺,就好像狄仁杰到深山古堡念的詩:爛柯終年無人行,意外今日遠(yuǎn)客迎。莫道深山無知己,貴人臨堡夜風(fēng)停。 夙山留鳳鳳自停,賤客遠(yuǎn)游似浮萍。忽聞一陣香風(fēng)過,吹來貴主好門庭。
回復(fù)

使用道具 舉報

ID:97554 發(fā)表于 2020-6-26 16:46 | 顯示全部樓層
xianfajushi 發(fā)表于 2020-6-26 11:35
解釋寫得明白,就是按鍵按下的值,按鍵接地,自然是低電平。

我也是沒入門的業(yè)余愛好者,但是看了大佬寫的程序茅塞頓開,樓主的程序思路就是那些搞開發(fā)板的典型程序,我開始也是跟著開發(fā)板學(xué),由于年紀(jì)過大,十多年了也沒入門,后來覺得不用開發(fā)板學(xué)倒是簡單了不少。大佬的程序還有一個地方請教,P3 = ++j;這句的用處是什么?想了半天沒想明白,還請賜教。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-27 07:36 | 顯示全部樓層
那只是為了觀察仿真用的是否加載正確,因為我寫的好幾個程序編譯同一個名稱,有時加載有問題,看圖上是沒接線的,讓其循環(huán)可直觀程序是否加載對否,當(dāng)按鍵未操作時。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2020-6-27 07:57 | 顯示全部樓層
我也是嫌教程寫得過于啰嗦,看明白后就直接簡化掉了,8個IO口若有用單獨的一二個,可以單獨定義,能整合的盡量不用單獨去定義,直接使用整個8個口直接操作即可簡化很多。
另外如按鍵代碼也都是可以簡化的,通常的那按鍵一堆代碼就懶得去看,還有嵌套循環(huán)等這些凡是寫一大堆代碼的看著都累,而這些一堆代碼都是可以簡化的,不是不能簡化。
簡化后代碼量也少,邏輯看得也清晰,心情也舒暢,修改也方便。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩国产欧美视频 | 一色桃子av一区二区 | 精品久久久久久亚洲综合网站 | 91综合网| 欧美亚洲日本 | 午夜天堂精品久久久久 | 国产99精品 | 久久久久久综合 | 日韩中文字幕网 | 国产激情网 | 精品视频999 | 欧美精三区欧美精三区 | 99视频网站| 日韩成人免费视频 | 日韩欧美国产精品 | 青青久草| 日韩视频中文字幕 | 欧洲尺码日本国产精品 | 国产区在线看 | 黄 色 毛片免费 | 中文字幕国产视频 | 午夜日韩 | 久久国产一区 | 亚洲精品国产电影 | 中文字幕在线播放第一页 | 国产一区二区精品自拍 | 人人干人人干人人干 | 女同av亚洲女人天堂 | 午夜精品一区二区三区在线视 | 亚洲一区中文字幕在线观看 | 国产a级黄色录像 | 免费观看色 | 国产在线不卡视频 | 日韩精品一区二区三区中文在线 | 91天堂| 亚洲三区视频 | 在线观看不卡av | 成人区一区二区三区 | 99久久精品免费看国产高清 | 精品国产久 | 亚洲欧美一区二区三区在线 |