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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1743|回復: 2
打印 上一主題 下一主題
收起左側

單片機按鍵控制是成功的?怎么樣把按鍵控制,換為串口控制,求指導

[復制鏈接]
跳轉到指定樓層
樓主
ID:858009 發表于 2021-5-6 16:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. code tabup[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
  5. code tabdowm[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
  6. void delay(uint z);
  7. int i;
  8. sbit S2=P3^0;
  9. sbit S3=P3^1;
  10. sbit S4=P3^2;
  11. keyval=0;
  12. void moveup()                //正轉
  13. {
  14.         for(i=0;i<8;i++)
  15.         {
  16.                 P1=tabup[i];
  17.                 delay(1);
  18.         }
  19. }
  20. void movedowm()              //反轉
  21. {
  22.         for(i=0;i<8;i++)
  23.         {
  24.                 P1=tabdowm[i];
  25.                 delay(1);
  26.         }
  27. }
  28. void delay (uint z)
  29. {
  30.         uint x,y;
  31.         for(x=z;x>0;x--)
  32.         for(y=110;y>0;y--);
  33. }
  34. void stop()
  35. {
  36.         P1=0xff;
  37. }
  38. void main(void)           
  39. {
  40.    TMOD=0x01;               //使用定時器T0的模式1
  41.    TR0=0;                   //給定時器T0賦初值并關閉T0
  42.    TH0=(65536-500)/256;     //定時器TH0賦初值為500
  43.    TL0=(65536-500)%256;     //定時器TL0賦初值為500
  44.    EA=1;                    //開總中斷
  45.    ET0=1;                   //定時器T0中斷允許
  46.    TR0=1;                   //啟動定時器T0,這里必須要啟動,因為大循環里                  
  47.    while(1)                 //要給keyval賦值,而賦值語句在中斷服務函數里
  48.    {                  
  49.        switch(keyval)           //根據按鍵值keyval選擇待執行的功能
  50.        {
  51.             case 1:moveup();  break;  //按鍵S1按下,正轉                                          
  52.             case 2:movedowm(); break;  //按鍵S2按下,反轉                                          
  53.             case 3:stop();     break;  //按鍵S3按下,停轉                                                                                   
  54.        }                        
  55.    }
  56. }
  57. /*************************************************
  58. 函數功能:定時器T0的中斷服務子程序
  59. **************************************************/
  60. void Time0_serve(void) interrupt 1  
  61. {
  62.    TH0=(65536-200)/256;         //定時器T0的高8位賦初值
  63.    TL0=(65536-200)%256;         //定時器T0的低8位賦初值
  64.    if((P3&0xff)!=0xff)          //檢測是否有按鍵按下
  65.        {
  66.             delay(50);            //延時一段時間再去檢測
  67.             if((P3&0xff)!=0xff)   //再次檢測是否確實有按鍵按下
  68.             {
  69.                 if(S2==0)        //按鍵S1被按下
  70.                 keyval=1;        //給keyval賦值
  71.                 if(S3==0)        //按鍵S2被按下
  72.                 keyval=2;        //給keyval賦值
  73.                 if(S4==0)        //按鍵S3被按下
  74.                 keyval=3;        //給keyval賦值                                    
  75.             }
  76.        }
  77. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:648281 發表于 2021-5-6 18:05 | 只看該作者
你好!
增加串口部分的程序,串口接收的時候賦值;

       keyval = SBUF;

       switch(keyval)           //根據按鍵值keyval選擇待執行的功能
       {
            case 1:moveup();  break;      //按鍵S1按下,正轉
            case 2:movedowm(); break;  //按鍵S2按下,反轉                                          
            case 3:stop();     break;        //按鍵S3按下,停轉
       }                        
回復

使用道具 舉報

板凳
ID:889094 發表于 2021-5-6 21:49 | 只看該作者
想要串口控制,首先要啟動串口,串口初始化,設置波特率,然后串口中斷處理函數中可以用樓上的這一句:   keyval = SBUF;
然后你需要有一個串口連接,串口發送的上位機或是其它單片機來發送你想要的控制指令
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产伦精品一区二区三区在线 | 免费观看毛片 | 免费日韩网站 | 国产人成精品一区二区三 | 欧美日韩国产在线 | 99精品一级欧美片免费播放 | 国产精品日韩欧美一区二区三区 | 久久久青草婷婷精品综合日韩 | 午夜精品一区二区三区在线视频 | 国产伦精品一区二区三区照片91 | 欧美亚洲国语精品一区二区 | 波多野结衣在线观看一区二区三区 | 欧美精品一区二区在线观看 | 国产精品影视在线观看 | 午夜精品视频一区 | 久久国产香蕉 | 成人精品国产一区二区4080 | 亚洲一区二区三区在线 | 午夜精品久久久久久不卡欧美一级 | 日本一区二区三区四区 | 日韩欧美国产一区二区 | 91精品国产乱码久久久 | 久久国产精品亚洲 | 色嗨嗨| 国产91成人| 国产亚洲精品精品国产亚洲综合 | 91大神在线资源观看无广告 | 欧美国产亚洲一区二区 | 精品欧美一区二区三区久久久小说 | 精品亚洲永久免费精品 | 国产在线一区二区 | 亚洲国产精品久久久久婷婷老年 | 国产在线精品一区二区三区 | www.日韩| 婷婷免费视频 | 婷婷久久五月天 | 人人射人人插 | 91国产在线视频在线 | 欧美a级成人淫片免费看 | 亚洲精品一区二区三区在线观看 | 嫩草懂你的影院入口 |