51單片機智能小車按鍵調速前進程序源代碼、電路原理圖和電路器件表_第1頁
51單片機智能小車按鍵調速前進程序源代碼、電路原理圖和電路器件表_第2頁
51單片機智能小車按鍵調速前進程序源代碼、電路原理圖和電路器件表_第3頁
51單片機智能小車按鍵調速前進程序源代碼、電路原理圖和電路器件表_第4頁
51單片機智能小車按鍵調速前進程序源代碼、電路原理圖和電路器件表_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

51單片機智能小車按鍵調速前進程序源代碼、電路原理圖、電路器件表1智能小車PWM調速是通過設置pwmval_left_init的和pwmval_right_init這2個變量的值來實現(xiàn)的,需要通過修改程序代碼中這2個變量的值,這2個變量的值設置好后,在程序運行的過程中是不能修改的。而智能小車的按鍵調速通過按鍵達到修改這2個變量的值,從而達到對智能小車調速的目的。每按下K3按鍵一次,變量pwmval_left_init和pwmval_right_init減1,智能小車減速。每按下K4按鍵一次,變量pwmval_left_init和pwmval_right_init加1,智能小車加速。具體實現(xiàn)方法見下文的程序源代碼。下文主要提供了智能小車按鍵調速前進完整程序原代碼、電路原理圖以及電路器件表。1智能小車核心板原理圖1STC15W4K56S4智能小車核心板器件(BOM)表序號器件標號1C1器件名稱0.1UF貼片電容綠色LED實物圖說明0603封裝2D10603封裝0603封裝PIN與PIN間隔2.54mm插針3D2紅色LED4J1、J2、J3單排插針PIN與PIN間隔2.54mm2x14雙排插針5P1、P22x14雙排插針6R110K電阻1K電阻0603封裝0603封裝7R2、R38S1按鍵直插9U1STC15W4K56S4LQFP7x7-48STC15W4K56S4智能小車核心板正面STC15W4K56S4智能小車核心板背面智能小車驅動板原理圖151單片機(STC15W4K56S4)智能小車驅動板器件(BOM)表序號器件標號器件名稱實物圖說明C1、C4、C5、C7、C9、C11、C12、C13、C14、C15、C1610.1UF獨石電容直插2C2470UF/25V電解電容3C3220UF/16V電解電容直插直插4C6470UF/10V電解電容5C8、C10、10UF/10V電解電容直插直插直插直插直插直插6D1黃色LED7D2、D3、D4、D6紅色LED8D89D7綠色LED藍色LED10F1自恢復保險絲直插PIN與PIN之間的間隔2.54mm插電池盒11J12PIN插座PIN與PIN間隔2.54mm,插電機J21、J22、122PIN插座黃色插針J23、J243PIN插針,針與針間隔2.54mm插舵機13J23.3V紅色插針、GND黑色插針14J4、J10紅色插針和黑色插針15J6、J12紅色插針和黑色插針16J8、J14紅色插針和黑色插針PIN與PIN之間的間隔2.54mm5V用紅色插針、GND用黑色插針PIN與PIN之間的間隔2.54mmVIN紅色插針、GND黑色插針PIN與PIN之間的間隔2.54mm17J54PIN黑色插母插MQ2模塊針與針間隔2.54mm插GP2Y1014AU模塊18J76PIN插座4PIN插座針與針間隔2.54mm語音播報實驗時,串口4插語音播報模塊19J13、J27針與針間隔2.54mm20J15、J252x14雙排插針I(yè)O擴展用,沒有必要不要焊接針與針間隔2.54mm插DHT11模塊21J1622J173PIN黑色插母用4PIN插針,針與針間隔2.54mm用杜邦線連接超聲波模塊黃色插針針與針間隔2.54mm插藍牙模塊(要原廠原裝的)23J186PIN黃色插母用8PIN插針,針與針間隔2.54mm杜邦線連接紅外循跡避障模塊24J1925J20黃色插針黃色插針用4PIN插針,針與針間隔2.54mm用杜邦線連接測速模塊針與針間隔2.54mm插5V的LCD1602液晶26J2616PIN黑色插母MPU6050模塊采用5V供電,L3不要焊接。(如果不用磁珠的話也可以用導線直接將L2短接,但一定要注意不要短接L3。)27L2、L328LS10歐姆磁珠5V蜂鳴器直插29Q1、Q2三極管S9012330歐姆電阻直插30R1、R2、R3、R6、R7、R8、R9直插電阻31R410K電位器直插32R10、R11、R181K歐姆電阻33R12、R134.7K歐姆電阻R14、R15、R16、直插電阻這2個電阻不焊34R19、R20、R21、R2210K歐姆電阻直插電阻35R17150歐姆電阻電源開關直插電阻電阻36S137S2、S3、S4、S5功能按鍵電阻38U139U2L7805CV5V電源芯片3.3V電源芯片5V電源芯片AMS111740U341U478M05VS1838B紅外遙控信號接收管針與針間隔2.54mm,插MPU6050模塊,目前只是在電路圖上保留了該接口,并無相關實驗程序。42U58PIN黑色插母16PIN芯片座上插L293D電機驅動芯片43U6、U716PIN芯片座PIN與PIN間隔2.54mm插STC15W4K56S5核心板44U92x14雙排排母注意:以上器件(BOM)表是智能小車驅動板完整的器件(BOM)表,并不是所有的器件一定要焊接上。焊接的時候請對照智能小車驅動板的電路原理圖,用到了電路原理圖上那一部分電路就焊接那一部分相關的器件,沒有用到的電路部分相關器件可以不焊接(這一點請根據(jù)實際需求進行判斷)。焊接用的導線:電源正用紅色導線電源負用黑色導線信號線用藍色導線智能小車驅動板上電機驅動芯片L293D焊接圖解智能小車驅動電機安裝圖解智能小車驅動電機導線焊接圖解51單片機智能小車按鍵調速前進程序源代碼/****************51單片機智能小車按鍵調速前進程序源代碼******************功能:51單片機智能小車按鍵調速前進。單片機型號:STC15W4K56S4。智能小車上電后如果電池電壓小于門檻值,會發(fā)出報警聲并提示。如果電池電壓足夠,按下按K4按鍵智能小車加速;按(智能小車采用K1按鍵后智能小車就前進了。K3按鍵智能小車減速。2節(jié)18650鋰離子電池串聯(lián)供電)。接線說明:1、智能小車的左前電機線接智能小車驅動板上的左前電機接口;2、智能小車的左后電機線接智能小車驅動板上的左后電機接口;3、智能小車的右前電機線接智能小車驅動板上的右前電機接口;4、智能小車的右后電機線接智能小車驅動板上的右后電機接口;5、在智能小車驅動板和液晶1602板之間接好液晶專用導線。燒寫程序時,選擇單片機內部時鐘,頻率為22.1184M。單片機型號:STC15W4K56S4。**************************************************************************/#include"stc15.h"http://包含頭文件stc15.h#include<intrins.h>#defineADC_POWER0x80//包含頭文件intrins.h//將0x80宏定義成//將0x10宏定義成//將0x08宏定義成//將0x00宏定義成ADC_POWER#defineADC_FLAG0x10ADC_FLAG#defineADC_START0x08#defineADC_SPEEDLL0x00#defineADC_SPEEDL0x20#defineADC_SPEEDH0x40#defineADC_SPEEDHH0x60#defineBusy0x80ADC_STARTADC_SPEEDLL//將0x20宏定義成ADC_SPEEDL//將0x40宏定義成ADC_SPEEDH//將0x60宏定義成ADC_SPEEDHH//LCD忙#definewarning_voltage7.0sbitLCD_D4=P4^3;//電池報警電壓值//LCD_D4對應P4.3//LCD_D5對應P4.2//LCD_D6對應P2.7//LCD_D7對應P5.1//LCD_RS對應P4.1//LCD_RW對應P3.5//LCD_EN對應P2.6//紅色LED對應P0.4//綠色LED對應P0.5//藍色LED對應P5.2//黃色LED對應P5.3sbitLCD_D5=P4^2;sbitLCD_D6=P2^7;sbitLCD_D7=P5^1;sbitLCD_RS=P4^1;sbitLCD_RW=P3^5;sbitLCD_EN=P2^6;sbitRed_LED=P0^4;sbitGreen_LED=P0^5;sbitBlue_LED=P5^2;sbitYellow_LED=P5^3;sbitBeep=P4^4;//蜂鳴器對應P0.4sbitKey_1=P5^2;//Key1對應IO口P5.2//Key2對應IO口P0.4//Key3對應IO口P0.5//Key4對應IO口P5.3sbitKey_2=P0^4;sbitKey_3=P0^5;sbitKey_4=P5^3;

sbitU6_L293D_En1_En2=P1^7;//U6的EN1和EN2對應P1^7//U6的IN1和IN3對應P4^7//U6的IN2和IN4對應P1^6//U7的EN1和EN2對應P0^6//U7的IN1和IN3對應P0^7//U7的IN2和IN4對應P1^2//LCD顯示內容CARSTART//LCD顯示內容CARWORK//LCD顯示內容V:sbitU6_L293D_In1_In3=P4^7;sbitU6_L293D_In2_In4=P1^6;sbitU7_L293D_En1_En2=P0^6;sbitU7_L293D_In1_In3=P0^7;sbitU7_L293D_In2_In4=P1^2;unsignedcharcodeStart[]={"CARSTART"};unsignedcharcodeWork[]={"CARWORK"};unsignedcharcodeVoltage[]={"V:.V"};unsignedcharcodeVlotageLow[]={"LOW"};unsignedcharcodeSpace1[]={"http://LCD顯示內容LOW"};//LCD顯示內容空白unsignedcharcodeSpace3[]={""};unsignedcharcodeForward[]={"FORWARD"};unsignedcharcodeBack[]={"BACK"};unsignedcharcodeTing[]={"TING"};unsignedcharcodeLeft[]={"LEFT"};unsignedcharcodeRight[]={"RIGHT"};unsignedcharcodeClockWise[]={"CLOCKWISE"};//LCD顯示內容空白//LCD顯示內容FORWARD//LCD顯示內容BACK//LCD顯示內容TING//LCD顯示內容LEFT//LCD顯示內容RIGHT//LCD顯示內容CLOCKWISEunsignedcharcodeAntiClockWise[]={"ANTICLOCKWISE"};//LCD顯示內容ANTICLOCKWISEunsignedcharcodePressKey1[]={"P:K1"};unsignedcharcodePressKey2[]={"P:K2"};unsignedcharcodePressKey3[]={"P:K3"};unsignedcharcodePressKey4[]={"P:K4"};unsignedcharcodeJiaSu[]={"JIASU"};unsignedcharcodeJianSu[]={"JIANSU"};voiddelay(unsignedintt);voiddelay_us(unsignedintt);voiddelay_ms(unsignedintt);voidDelay5Ms(void);//LCD顯示內容P:K1//LCD顯示內容P:K2//LCD顯示內容P:K3//LCD顯示內容P:K4//LCD顯示內容JIASU//LCD顯示內容JIANSU//delay延時函數(shù)//delay_us延時函數(shù)//delay_ms延時函數(shù)//延時函數(shù)voidLED_INIT(void);//LED對應的IO口初始化//紅色LED亮voidRed_Led_On(void);voidRed_Led_Off(void);//紅色LED滅voidBlue_Led_On(void);//藍牙LED亮voidBlue_Led_Off(void);//藍色LED滅voidGreen_Led_On(void);//綠色LED亮voidGreen_Led_Off(void);voidYellow_Led_On(void);voidYellow_Led_Off(void);voidBEEP_INIT(void);//綠色LED滅//黃色LED亮//黃色LED滅//蜂鳴器對應的//蜂鳴器響IO口初始化voidBEEP_ON(void);voidBEEP_OFF(void);//蜂鳴器不響voidKEY_INIT(void);//KEY對應的IO口初始化//按鍵掃描voidKey1_SCAN(void);voidVoltage_Warning(void);//測量電池電壓

voidTimer0_Init(void);//定時器初始化//左電機voidLEFT_MOTO(void);PWM調速函數(shù)PWM調速函數(shù)voidRIGHT_MOTO(void);//右電機voidADC_INIT(void);//AD初始化unsignedcharGetADCResult(unsignedcharch);voidGPIO_1602_Configuration(void);voidWriteDataLCD(unsignedcharWDLCD);//獲取AD值//LCD1602液晶IO口初始化//LCD寫數(shù)據(jù)函數(shù)voidWriteCommandLCD(unsignedcharWCLCD,BuysC);//LCD寫命令函數(shù)unsignedcharReadDataLCD(void);unsignedcharReadStatusLCD(void);voidLCDInit(void);//LCD讀數(shù)據(jù)函數(shù)//LCD讀狀態(tài)函數(shù)//LCD初始化voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);//LCD顯示一個字符voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);//LCD顯示一個字符串voidGPIO_MOTOR_Configuration(void);voidCAR_FORWARD(void);//電機控制IO口初始化//智能小車前進//智能小車停止voidCAR_STOP(void);voidZUO_MOTOR_ZZ(void);voidZUO_MOTOR_TZ(void);voidYOU_MOTOR_ZZ(void);voidYOU_MOTOR_TZ(void);unsignedcharpwmval_left=0;unsignedcharpwmval_right=0;unsignedcharpwmval_left_init=10;unsignedcharpwmval_right_init=10;bitright_pwm=1;//智能小車左側電機正轉//智能小車左側電機停轉//智能小車右側電機正轉//智能小車右側電機停轉//變量定義//左電機占空比調節(jié)//右電機占空比調節(jié)//右電機PWM開關,為1時打開//左電機PWM開關,為1時打開//按鍵K3按下標志bitleft_pwm=1;unsignedcharK3_Pressed=0;unsignedcharK4_Pressed=0;//按鍵K4按下標志/***************************延時函數(shù)****************************/voiddelay(unsignedintt){while(t--);}//delay延時函數(shù)voiddelay_us(unsignedintt)//delay_us延時函數(shù){unsignedchari;while(t--){i=3;while(i--)delay(1);}}voiddelay_ms(unsignedintt){while(t--){delay_us(t);}}voidDelay5Ms(void){//delay_ms延時函數(shù)//5ms延時函數(shù)unsignedintTempCyc=3552;while(TempCyc--);}

/***********************LED控制相關函數(shù)*************************/voidLED_INIT(void)//LED對應的IO口初始化{P0M1=P0M1&0xcf;P0M0=P0M0&0xcf;//P0.5,P0.4設置為雙向//P5.3,P5.2設置為雙向IO口IO口P5M1=P5M1&0xf3;P5M0=P5M0&0xf3;}voidRed_Led_On(void){Red_LED=0;}//紅色LED亮//紅色LED滅voidRed_Led_Off(void){Red_LED=1;}voidBlue_Led_On(void){Blue_LED=0;}//藍牙LED亮voidBlue_Led_Off(void){Blue_LED=1;}//藍色LED滅voidGreen_Led_On(void){Green_LED=0;}//綠色LED亮voidGreen_Led_Off(void){Green_LED=1;}//綠色LED滅voidYellow_Led_On(void){Yellow_LED=0;}//黃色LED亮voidYellow_Led_Off(void){Yellow_LED=1;}//黃色LED滅/**********************蜂鳴器控制相關函數(shù)***********************/voidBEEP_INIT(void)//蜂鳴器對應的IO口初始化{P4M1=P4M1&0xef;P4M0=P4M0&0xef;}voidBEEP_ON(void){Beep=0;}//蜂鳴器響//蜂鳴器不響voidBEEP_OFF(void){Beep=1;}/***********************按鍵掃描相關函數(shù)************************/voidKEY_INIT(void)//KEY對應的IO口初始化{P0M1=P0M1&0xcf;P0M0=P0M0&0xcf;//P0.5,P0.4設置為雙向//P5.3,P5.2設置為雙向IO口IO口P5M1=P5M1&0xf3;P5M0=P5M0&0xf3;}voidKey1_SCAN(void)//按鍵掃描{LOOP:if(Key_1==0)//判斷按鍵是否被按下{delay_us(20);if(Key_1==0){//第二次判斷按鍵是否被按下BEEP_ON();while(Key_1==0);BEEP_OFF();}//蜂鳴器響//判斷按鍵是否被松開//蜂鳴器停止else{gotoLOOP;}}//跳轉到loop處重新掃描//跳轉到loop處重新掃描else{gotoLOOP;}}

/**********************電壓監(jiān)測AD相關函數(shù)***********************///AD初始化voidADC_INIT(void){P1ASF=0x08;ADC_RES=0;ADC_CONTR=ADC_POWER|ADC_SPEEDLL;}unsignedcharGetADCResult(unsignedcharch){//獲取AD值ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch|ADC_START;delay(4);while(!(ADC_CONTR&ADC_FLAG));ADC_CONTR&=~ADC_FLAG;returnADC_RES;}voidVoltage_Warning(void){//電壓報警函數(shù)u8AD_RESULT;floattemp;unsignedinttempA;unsignedchardisbuff[4]={0,0,0,0};AD_RESULT=GetADCResult(0x03);temp=((float)AD_RESULT/256)*5*2;tempA=temp*1000;//讀取電壓值//數(shù)值轉換disbuff[3]=tempA/10000;disbuff[2]=tempA/1000%10;disbuff[1]=tempA/100%10;disbuff[0]=tempA/10%10;DisplayOneChar(2,1,(0x30+disbuff[3]));Delay5Ms();//顯示電壓值DisplayOneChar(3,1,(0x30+disbuff[2]));Delay5Ms();//顯示電壓值DisplayOneChar(5,1,(0x30+disbuff[1]));Delay5Ms();//顯示電壓值DisplayOneChar(6,1,(0x30+disbuff[0]));Delay5Ms();//顯示電壓值if(temp<=warning_voltage)//如果讀取到的電壓值小于等于設定的報警電壓值warning_voltage{while(1){BEEP_ON();//蜂鳴器響Red_Led_On();Blue_Led_On();Green_Led_On();Yellow_Led_On();DisplayListChar(13,1,VlotageLow);delay_ms(200);//紅色LED亮,藍牙LED亮//綠色LED亮,黃色LED亮//在LCD中顯示//延時LOWBEEP_OFF();//蜂鳴器不響Red_Led_Off();Blue_Led_Off();Green_Led_Off();Yellow_Led_Off();DisplayListChar(13,1,Space3);delay_ms(200);}//紅色LED滅,藍色LED滅//綠色LED滅,黃色LED滅}}

/*********************液晶LCD1602相關函數(shù)voidGPIO_1602_Configuration(void){P2M1=P3M1&0x3f;P2M0=P3M0&0x3f;P3M1=P3M1&0xdf;P3M0=P3M0&0xdf;P4M1=P4M1&0xf1;P4M0=P4M0&0xf1;P5M1=P5M1&0xfd;P5M0=P5M0&0xfd;}unsignedcharReadStatusLCD(void){***********************///LCD1602液晶IO口初始化//測試LCD忙碌狀態(tài)LCD_D7=1;//LCD的D7置1//LCD管腳RS設置成低電平//LCD管腳RW設置成高電平//LCD管腳E設置成高電平//檢測忙信號LCD_RS=0;LCD_RW=1;LCD_EN=0;LCD_EN=0;LCD_EN=1;while(LCD_D7);return(Busy);//表示當前忙}voidWriteCommandLCD(unsignedcharWCLCD,BuysC)//BuysC為0時忽略忙檢測{if(BuysC)ReadStatusLCD();LCD_EN=0;//根據(jù)需要檢測忙//LCD管腳E設置成低電平_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//延時LCD_RS=0;//LCD管腳RS設置成低電平//LCD管腳RW設置成低電平LCD_RW=0;if((WCLCD&0x80)==0x80){LCD_D7=1;}else{LCD_D7=0;}if((WCLCD&0x40)==0x40){LCD_D6=1;}else{LCD_D6=0;}if((WCLCD&0x20)==0x20){LCD_D5=1;}else{LCD_D5=0;}if((WCLCD&0x10)==0x10){LCD_D4=1;}else{LCD_D4=0;}LCD_EN=1;//LCD管腳E設置成高電平//LCD管腳E設置成低電平LCD_EN=0;if((WCLCD&0x08)==0x08){LCD_D7=1;}else{LCD_D7=0;}if((WCLCD&0x04)==0x04){LCD_D6=1;}else{LCD_D6=0;}if((WCLCD&0x02)==0x02){LCD_D5=1;}else{LCD_D5=0;}if((WCLCD&0x01)==0x01){LCD_D4=1;}else{LCD_D4=0;}LCD_EN=1;//LCD管腳E設置成高電平//LCD管腳E設置成低電平LCD_EN=0;}voidWriteDataLCD(unsignedcharWDLCD)//LCD寫數(shù)據(jù)函數(shù){ReadStatusLCD();LCD_EN=0;//讀取LCD狀態(tài)//LCD管腳E設置成低電平_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//延時LCD_RS=1;//LCD管腳RS設置成高電平//LCD管腳RW設置成低電平LCD_RW=0;if((WDLCD&0x80)==0x80){LCD_D7=1;}else{LCD_D7=0;}if((WDLCD&0x40)==0x40){LCD_D6=1;}else{LCD_D6=0;}

if((WDLCD&0x20)==0x20){LCD_D5=1;}else{LCD_D5=0;}if((WDLCD&0x10)==0x10){LCD_D4=1;}else{LCD_D4=0;}LCD_EN=1;LCD_EN=0;//LCD管腳E設置成高電平//LCD管腳E設置成低電平if((WDLCD&0x08)==0x08){LCD_D7=1;}else{LCD_D7=0;}if((WDLCD&0x04)==0x04){LCD_D6=1;}else{LCD_D6=0;}if((WDLCD&0x02)==0x02){LCD_D5=1;}else{LCD_D5=0;}if((WDLCD&0x01)==0x01){LCD_D4=1;}else{LCD_D4=0;}LCD_EN=1;LCD_EN=0;//LCD管腳E設置成高電平//LCD管腳E設置成低電平//LCD初始化}voidLCDInit(void){LCD_D7=0;LCD_D6=0;LCD_D5=0;LCD_D4=0;WriteCommandLCD(0x28,0);Delay5Ms();WriteCommandLCD(0x28,0);Delay5Ms();WriteCommandLCD(0x28,0);Delay5Ms();WriteCommandLCD(0x28,1);WriteCommandLCD(0x08,1);WriteCommandLCD(0x01,1);WriteCommandLCD(0x06,1);WriteCommandLCD(0x0C,1);}//三次顯示模式設置//顯示模式設置//關閉顯示//顯示清屏//顯示光標移動設置//顯示開及光標設置voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData){Y&=0x1;X&=0xF;if(Y)X|=0x40;//限制X不能大于//當要顯示第二行時地址碼//算出指令碼15,Y不能大于1+0x40;X|=0x80;WriteCommandLCD(X,0);WriteDataLCD(DData);//這里不檢測忙信號,發(fā)送地址碼//發(fā)送數(shù)據(jù)}voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData){unsignedcharListLength;ListLength=0;Y&=0x1;X&=0xF;//限制X不能大于//若到達字串尾則退出15,Y不能大于1while(DData[ListLength]>=0x20){if(X<=0xF)//X坐標應小于0xF{DisplayOneChar(X,Y,DData[ListLength]);//顯示單個字符ListLength++;X++;}}}

/***********************電機控制相關函數(shù)voidGPIO_MOTOR_Configuration(void){P0M1=P0M1&0x3f;P0M0=P0M0&0x3f;P1M1=P1M1&0x3b;P1M0=P1M0&0x3b;P4M1=P4M1&0x7f;P4M0=P4M0&0x7f;}voidCAR_FORWARD(void){************************///電機控制IO口初始化//智能小車前進ZUO_MOTOR_ZZ();//智能小車左側電機正轉//智能小車右側電機正轉YOU_MOTOR_ZZ();}voidCAR_STOP(void){//智能小車停止ZUO_MOTOR_TZ();//智能小車左側電機停轉//智能小車右側電機停轉YOU_MOTOR_TZ();}voidZUO_MOTOR_ZZ(void){U6_L293D_In1_In3=1;U6_L293D_In2_In4=0;}voidZUO_MOTOR_TZ(void){U6_L293D_In1_In3=0;U6_L293D_In2_In4=0;}voidYOU_MOTOR_ZZ(void){U7_L293D_In1_In3=0;U7_L293D_In2_In4=1;}voidYOU_MOTOR_TZ(void){U7_L293D_In1_In3=0;U7_L293D_In2_In4=0;}voidLEFT_MOTO(void){//智能小車左側電機正轉//智能小車左側電機停轉//智能小車右側電機正轉//智能小車右側電機停轉if(left_pwm){if(pwmval_left<=pwmval_left_init){U6_L293D_En1_En2=1;}elseif(pwmval_left>pwmval_left_init){U6_L293D_En1_En2=0;}if(pwmval_left>=20){pwmval_left=0;}}else{U6_L293D_En1_En2=0;}}voidRIGHT_MOTO(void){if(right_pwm){if(pwmval_right<=pwmval_right_init){U7_L293D_En1_En2=1;}elseif(pwmval_right>pwmval_right_init){U7_L293D_En1_En2=0;}if(pwmval_right>=20){pwmval_right=0;}}else{U7_L293D_En1_En2=0;}}

/**********************定時器voidTimer0_Init(void){0初始化函數(shù)***********************///定時器初始化TMOD=0x01;TH0=0xf8;TL0=0xcd;TR0=1;ET0=1;EA=1;}//1ms定時//開中斷/****************************主函數(shù)voidmain(void)****************************/{GPIO_MOTOR_Configuration();CAR_STOP();//電機控制IO口初始化//智能小車停止GPIO_1602_Configuration();delay_ms(10);LCDInit();delay_ms(10);LED_INIT();//LCD1602液晶IO口初始化//LCD1602初始化//LED對應的//蜂鳴器對應的//處理器IO口初始化BEEP_INIT();IO口初始化ADC_INIT();AD轉換初始化KEY_INIT();//KEY對應的//延時IO口初始化delay_ms(10);BEEP_ON();//蜂鳴器響Red_Led_On();Blue_Led_On();Green_Led_On();Yellow_Led_On();delay_ms(500);//紅色LED亮,藍牙LED亮//綠色LED亮,黃色LED亮//延時BEEP_OFF();//蜂鳴器不響Red_Led_Off();Blue_Led_Off();Green_Led_Off();Yellow_Led_Off();delay_ms(500

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論