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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2241|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)循跡小車程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:601581 發(fā)表于 2020-11-4 15:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
# define uchar unsigned char
# define uint unsigned int
//定義單片機(jī)不同的I/O口來(lái)進(jìn)行信號(hào)的輸入與輸出
sbit  in1=P3^7;
sbit  in2=P3^6;
sbit  in3=P3^5;
sbit  in4=P3^4;

sbit  c1=P2^7;
sbit  c2=P2^6;
sbit  c3=P2^5;
sbit  c4=P2^4;
sbit  c5=P2^3;
sbit  c6=P2^2;
sbit  c7=P2^1;
sbit  c8=P2^0;
sbit  c9=P1^6;
sbit  c10=P1^5;         //循跡10個(gè)燈

sbit D = P3^3;      

uchar  stop=0;
uchar  count=0;     
uchar  temp = 0;   
uchar  SE = 0;   
uchar speed_left = 0;     
uchar speed_right = 0;  

void time0_init(void)   
{
        TMOD=0x01;   //對(duì)定時(shí)器0的模式進(jìn)行選擇0001 即gate為0即T0只受TR0控制 C/T為0即為定時(shí)器  01對(duì)應(yīng)16位的定時(shí)器
        TH0=0xFF;    //寄存器的高8位 1111 1111
        TL0=0xea;   //寄存器的低8位  1110 1010
        TR0=1;      //啟動(dòng)定時(shí)器0
        ET0=1;      //打開(kāi)T0的中斷
        EA=1;       //打開(kāi)全局中斷
}
uchar judge(void)    //檢測(cè)情況判斷
{
          if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==1)&&(c6==1)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 1;
    else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==1)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 2;
         else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==1)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 3;
         else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==1)&&(c5==1)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 4;
         else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==1)&&(c7==1)&&(c8==0)&&(c9==0)&&(c10==0))
                return 5;
        else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==1)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 6;
        else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==1)&&(c8==0)&&(c9==0)&&(c10==0))
                return 7;
        else        if((c1==0)&&(c2==0)&&(c3==1)&&(c4==1)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 8;
        else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==1)&&(c8==1)&&(c9==0)&&(c10==0))
                return 9;
        else        if((c1==0)&&(c2==0)&&(c3==1)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 10;
        else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==1)&&(c9==0)&&(c10==0))
                return 11;
        else        if((c1==0)&&(c2==1)&&(c3==1)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 12;
else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==1)&&(c9==1)&&(c10==0))
                return 13;
        else        if((c1==0)&&(c2==1)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 14;
        else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==1)&&(c10==0))
                return 15;
        else        if((c1==1)&&(c2==1)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 16;
else if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==1)&&(c10==1))
                return 17;
else if((c1==1)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==0))
                return 18;
        else        if((c1==0)&&(c2==0)&&(c3==0)&&(c4==0)&&(c5==0)&&(c6==0)&&(c7==0)&&(c8==0)&&(c9==0)&&(c10==1))
                return 19;
        else        if((c1==1)&&(c2==1)&&(c3==1)&&(c4==1)&&(c5==1)&&(c6==1)&&(c7==1)&&(c8==1)&&(c9==1)&&(c10==1))
                return 20;
        else
                 return 0;
}

uchar dadt,dadt_1;
void main(void)
{
               
                uchar wark = 0;
                time0_init();
                speed_left = 50;
                speed_right = 50;
                SE =15;
        
                while(1)
                {
      dadt=judge();
                        if(dadt == 0)
                        dadt=dadt_1;
                        dadt_1=dadt;
                        switch(dadt)
                        {
                        case 1:SE =15;speed_left =85;speed_right =85; break;
                        case 2:SE =15;speed_left =80;speed_right =85; break;         
                        case 3:SE =15;speed_left =85;speed_right =80; break;
                        case 4:SE =14;speed_left =70;speed_right =85; break;
            case 5:SE =16;speed_left =85;speed_right =70; break;         
                                
                        case 6:SE =14;speed_left =60;speed_right =75; break;
                        case 7:SE =16;speed_left =75;speed_right =60; break;
                        case 8:SE =13;speed_left =57;speed_right =75; break;
                        case 9:SE =17;speed_left =75;speed_right =57; break;
                                
                        case 10:SE =12;speed_left =45;speed_right =75; break;
                        case 11:SE =18;speed_left =75;speed_right =55; break;
                        case 12:SE =12;speed_left =55;speed_right =80; break;
                        case 13:SE =18;speed_left =75;speed_right =63; break;
                                
                    case 14:SE =11;speed_left =53;speed_right =80;  break;         
                    case 15:SE =19;speed_left =75;speed_right =58; break;         
                        case 16:SE =11;speed_left =55;speed_right =80; break;         
                        case 17:SE =19;speed_left =80;speed_right =55; break;
                                
                        case 18:SE = 11;speed_left =55;speed_right =80; break;
                        case 19:SE = 19;speed_left =80;speed_right =55; break;
            case 20:SE = 15;speed_left =85;speed_right =85;stop++;break;
                        default:
        break;
                        }                 
                }        
}

void T0_time() interrupt 1   //中斷函數(shù)
{
        TR0=0;
        TH0=0xff;      //255
        TL0=0Xea;      //234
        temp++;
        if(temp>=833)                        //202           //1000
   {
         temp=0;
   }
  if(temp<=SE)
   {
    D=1;
   }
   else
   {
     D=0;
   }
         count++;
        if(count>100)
        count=0;
        if(count<speed_left)
        {
                in1=1;
                in2=0;
        }
        else
        {
                in1=0;
                in2=0;
        }
        if(count<speed_right)
        {
                in3=1;
                in4=0;
        }
    else
        {
                in3=0;
                in4=0;
        }
        TR0=1;        
}

程序.zip

102.48 KB, 下載次數(shù): 15, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-11-11 18:02 | 只看該作者
這個(gè)能發(fā)一下原理圖嗎?不知道電路連接啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久成人18免费网站 | 免费看日韩视频 | 精品国产一区二区三区观看不卡 | 日日摸日日爽 | 男人天堂网址 | 国产91色在线 | 亚洲 | 国产一区二区三区四区三区四 | 欧美日韩不卡合集视频 | 国产精品久久久久久久久久软件 | 国产欧美精品 | 国产激情视频网址 | www国产成人免费观看视频,深夜成人网 | 国内精品久久久久久久影视简单 | 国产午夜精品一区二区三区嫩草 | 日韩欧美三区 | 国产乱码久久久 | 亚洲精品成人网 | 91免费观看 | 在线 丝袜 欧美 日韩 制服 | 久久综合一区二区三区 | 免费高清成人 | 欧美日韩在线播放 | 狠狠综合网 | 欧美视频在线观看 | 久久国产综合 | 欧美激情精品久久久久久 | 久久久久久久综合色一本 | 国产剧情一区二区三区 | 日韩一区二区三区在线视频 | www.99re | 羞羞视频网站免费观看 | 日韩精品一区二区久久 | 自拍视频一区二区三区 | 国产成人综合亚洲欧美94在线 | 不卡一二区 | 日本不卡一区 | 高清一区二区视频 | 久久久综合久久 | 免费一区二区三区 | 亚洲品质自拍视频网站 | 午夜视频免费在线观看 |