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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1008|回復: 1
收起左側

智能小車源代碼

[復制鏈接]
ID:410899 發表于 2018-10-17 08:33 | 顯示全部樓層 |閱讀模式
#include <reg52.h>
#include <intrins.h>

void Delay10ms();
void Delay5ms();
void Delay1ms();

#define uchar unsigned char
#define uint unsigned int

sbit a=P1^0;  //電機信號輸入
sbit b=P1^1;
sbit c=P1^2;
sbit d=P1^3;
sbit pwm1=P1^4;
sbit pwm2=P1^5;

sbit buzz=P2^7;

uchar cishu; //中斷次數
uchar p1;  //p1占空比
uchar p2;  //p2占空比



void qian()   //方向控制
{
        a=1;b=0;c=1;d=0;       
}
void hou()   //方向控制
{
        a=0;b=1;c=0;d=1;
}
void zuo()   //方向控制
{
        a=1;b=0;c=0;d=1;
}
void you()   //方向控制
{
        a=0;b=1;c=1;d=0;
}
void ting()   //方向控制
{
        a=0;b=0;c=0;d=0;
}

void jia()
{
       
        if(p1>29)
        {
                p1=30;p2=30; buzz=0;       
        }
        else
        {
        p1++; p2++;        buzz=1;
        }

}
void jian()
{
       
        if(p1<21)
        {
                p1=20;p2=20;buzz=0;       
        }
        else
        {
        p1--; p2--; buzz=1;
        }

}


uchar RxData()
{
   uchar tmp;   //定義一個臨時變量,用來保存接收到的數據
   while (!RI);//等待數據接收完,接收完后時RI會自動置1
   RI = 0;     //清中斷標志
   tmp = SBUF; //將接收到的數據保存到tmp中
   return tmp; //返回接收到的數據
}

void UartInit(void)                //9600bps@11.0592MHz
{

        SCON = 0x50;                //8位數據,可變波特率

        TMOD &= 0x00;                //清除定時器1模式位
        TMOD |= 0x21;                //設定定時器1為8位自動重裝方式
        TL1 = 0xFD;                //設定定時初值
        TH1 = 0xFD;                //設定定時器重裝值
        ET1 = 0;                //禁止定時器1中斷
        TR1 = 1;                //啟動定時器1

        TL0 = 0xF1;                //設置定時初值
        TH0 = 0xFF;                //設置定時初值
        TF0 = 0;                //清除TF0標志

        TR0 = 1;                //定時器0開始計時
        ET0 = 1;
        EA = 1;

        ES=1;
}


void main()
{
        UartInit();
        RI = 1;  
        p1=25;p2=25;  
        while(1)
        {
               
//                switch(RxData())
//                {
//                        case 0x01: qian(); Delay1ms(); p1=30;p2=30; break;
//                        case 0x02: hou(); Delay1ms(); p1=30;p2=30; break;
//                        case 0x03: zuo(); Delay1ms(); p1=21;p2=21; break;
//                        case 0x04: you(); Delay1ms(); p1=21;p2=21; break;
//                        case 0x00: ting(); Delay1ms(); p1=0;p2=0; break;
//                        default :  ;
//                }

        }
}

void es () interrupt 4
{
        uchar tmp;   //定義一個臨時變量,用來保存接收到的數據
        if(RI==1)
        {
                tmp = SBUF; //將接收到的數據保存到tmp中
                switch(tmp)
                {
                        case 0x01: qian(); Delay1ms();  break;        //p1=30;p2=30;
                        case 0x02: hou(); Delay1ms();   break;        //p1=30;p2=30;
                        case 0x03: zuo(); Delay1ms();   break;        //p1=21;p2=21;
                        case 0x04: you(); Delay1ms();   break;        //p1=21;p2=21;
                        case 0x00: ting(); Delay1ms();  break;        //p1=0;p2=0;
                        case 0x09: buzz=~buzz; break;
                        case 0x06:  jia(); buzz=0;Delay1ms();buzz=1; break;
                        case 0x07:  jian(); buzz=0;Delay1ms();buzz=1; break;
                        default :  ;
                }

        }
        RI=0;
}


void T_0 () interrupt 1
{
        TR0=0;
        TL0 = 0xF1;                //設置定時初值
        TH0 = 0xFF;                //設置定時初值
        if(cishu<=30)
        {
                cishu++;
        }
        else
        {
                cishu=0;
        }

        if(cishu<=p1)
        {
                pwm1=1;
        }
        else
        {
                pwm1=0;
        }

        if(cishu<=p2)
        {
                pwm2=1;
        }
        else
        {
                pwm2=0;
        }
        TR0=1;
}




void Delay10ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 108;
        j = 145;
        do
        {
                while (--j);
        } while (--i);
}

void Delay5ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 54;
        j = 199;
        do
        {
                while (--j);
        } while (--i);
}

void Delay1ms()                //@11.0592MHz
{
        unsigned char i, j;

        _nop_();
        _nop_();
        _nop_();
        i = 11;
        j = 190;
        do
        {
                while (--j);
        } while (--i);
}


回復

使用道具 舉報

ID:1 發表于 2018-10-17 13:26 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: caoporn免费| 毛片免费在线观看 | 午夜视频免费网站 | 亚洲一区二区三区四区五区午夜 | 亚洲精品2区| 亚洲免费三区 | 成人一区二区三区在线观看 | 久久一二 | 完全免费在线视频 | 福利久久 | 亚洲不卡在线观看 | 国产欧美精品 | 精品久久久久国产免费第一页 | 国产欧美日韩视频 | 天堂成人国产精品一区 | 亚洲精品日日夜夜 | 精品欧美一区二区三区久久久 | 国产精品伦一区二区三级视频 | 99热精品在线观看 | 国产亚洲精品精品国产亚洲综合 | 超碰97人人人人人蜜桃 | 精品真实国产乱文在线 | 午夜影院免费体验区 | 91久久国产综合久久91精品网站 | 日韩福利 | 一级黄a视频 | 亚洲精品福利在线 | 久草新在线 | 99国产精品一区二区三区 | 97人人澡人人爽91综合色 | 日韩欧美在线免费 | 国产欧美精品一区二区三区 | 亚洲综合大片69999 | 国产成人精品a视频一区www | 欧美一级大片免费看 | 欧美日韩1区2区3区 欧美久久一区 | www.日本在线播放 | 亚洲综合中文字幕在线观看 | 成人一区二区在线 | 伊人久久在线 | 91精品国产91久久久久久密臀 |