亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版
標(biāo)題:
第一次做單片機(jī)小車,希望大佬能指點(diǎn)一下
[打印本頁(yè)]
作者:
青檸酸海
時(shí)間:
2020-6-27 10:52
標(biāo)題:
第一次做單片機(jī)小車,希望大佬能指點(diǎn)一下
剛學(xué)習(xí)51單片機(jī)不久,接到考核需要實(shí)現(xiàn)一款可以通過(guò)藍(lán)牙來(lái)控制減速,加速,直行,轉(zhuǎn)彎和倒退的小車,在網(wǎng)上搜素資料后準(zhǔn)備用tb6612和HC06來(lái)實(shí)現(xiàn)相關(guān)功能,經(jīng)過(guò)相應(yīng)學(xué)習(xí),寫出下面的代碼,目前還沒(méi)有組裝好小車,還未進(jìn)行實(shí)驗(yàn)。現(xiàn)在想問(wèn)一下這個(gè)代碼在邏輯上有沒(méi)有什么問(wèn)題,由于第一次做小車,有一些地方可能想不到,如果有其他問(wèn)題請(qǐng)大佬指出。電路部分就拿單片機(jī)最小系統(tǒng)和HC06以及TB6612直接連接。
單片機(jī)源程序如下:
#include<reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit PWM_L=P1^1;
sbit PWM_R=P1^2;
sbit P_L_AIN1=P1^3;
sbit P_L_AIN2=P1^4;
sbit P_R_BIN1=P1^5;
sbit P_R_BIN2=P1^6;
sbit STBY=P1^0;
uchar PWM_L_TIME=0;
uchar PWM_R_TIME=0;
uchar PWM_KEY=0;
uchar PWM_VALUE=40;//調(diào)速控制
uchar PWM_MIN=0;//控制轉(zhuǎn)彎
uchar PWM_VALUE_T=40;//
void CHUSHI()//串口初始化
{
ES=0; //關(guān)中斷
<div> SCON = 0x50; // <span style='display: inline !important; float: none; background-color: rgb(247, 247, 247); color: rgb(37, 37, 37); font-family: Tahoma,"Microsoft Yahei","Simsun"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;'>串口工作模式1,REN=1</span>
</div> TMOD = 0x22; // 定時(shí)器1工作于方式2,8位自動(dòng)重載模式, 用于產(chǎn)生波特率
TH1=TL1=0xFD; // 波特率9600 (晶振為11.0592)
PCON &= 0x7f; // 波特率不倍增
TR1 = 1; //定時(shí)器1開(kāi)始工作,產(chǎn)生波特率
TI=0; //接收標(biāo)志位置0
ES=1;
}
/*********************************************************************/
void CHULI()//接收處理函數(shù)
{
if (PWM_KEY==0)//直行
{
PWM_VALUE=PWM_VALUE_T;
PWM_MIN=0;
P_L_AIN1=1;
P_L_AIN2=0;
P_R_BIN1=1;
P_R_BIN2=0;
}
if (PWM_KEY==1)//左轉(zhuǎn)
{
PWM_VALUE=PWM_VALUE_T;
PWM_MIN=PWM_VALUE-20;//調(diào)整轉(zhuǎn)彎角度
}
if (PWM_KEY==2)//右轉(zhuǎn)
{
PWM_VALUE=PWM_VALUE_T;
PWM_MIN=PWM_VALUE-20;//調(diào)整轉(zhuǎn)彎角度
}
if (PWM_KEY==3)//加速
{
if ((PWM_VALUE=PWM_VALUE_T+20)<=100)
PWM_VALUE=PWM_VALUE_T+20;//
}
if (PWM_KEY==4)//減速
{
if ((PWM_VALUE=PWM_VALUE_T-20)>=0)
PWM_VALUE=PWM_VALUE_T-20;
}
if (PWM_KEY==5)//后退
{
P_L_AIN1=0;
P_L_AIN2=1;
P_R_BIN1=0;
P_R_BIN2=1;
}
}
/*********************************************************************/
void PWM_CREATE () interrupt 1
{
TR0=0;
TL0 = 0x91; //設(shè)置定時(shí)初值
TH0 = 0xFF; //10us
ET0=1;
PWM_R_TIME++;
if (PWM_L_TIME>=100)
PWM_L_TIME=0;
PWM_R_TIME=0;
if (PWM_R_TIME<PWM_VALUE)
{
if (PWM_R_TIME+PWM_MIN>PWM_VALUE)
{
if(PWM_KEY==1)//左轉(zhuǎn)
{
PWM_L=0;
PWM_R=1;
}
if(PWM_KEY==2)//右轉(zhuǎn)
{
PWM_R=0;
PWM_L=1;
}
}
else
{
PWM_L=1;
PWM_R=1;
}
}
else
{
PWM_L=0;
PWM_R=0;
}
TR0=1;
}
/******************************************************************/
void main()
{
STBY=1;
EA=1;
CHUS();
TH0 = 0XA3; //定時(shí)時(shí)間為100us
TL0 = 0XA3;
TR0 = 1;
while(1)
{
if(RI==1) // 是否有數(shù)據(jù)到來(lái)
{
RI = 0;
PWM_KEY = SBUF;
CHULI();
}
}
}
復(fù)制代碼
作者:
湖南
時(shí)間:
2020-6-28 17:03
代碼有沒(méi)有問(wèn)題也看不出來(lái)啊 自己的實(shí)物搭建好以后自己把代碼下載進(jìn)去看看
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1