我們那課設的作業(yè)
Altium Designer畫的小車走迷宮原理圖和PCB圖如下:(51hei附件中可下載工程文件)
原理圖和PCB的單片機源程序如下:
- #include <AT89X51.H> //包含51單片機相關的頭文件
- #include "mytest.h"
- void Delay(unsigned int DelayTime) //定義機器人調(diào)轉(zhuǎn)子時間子程序
- {
- while(DelayTime--); //機器人轉(zhuǎn)彎循環(huán)
- // SB1=!SB1; //蜂鳴器閃響
- return;
- }
- void ControlCar(unsigned char ConType) //定義電機控制子程序
- {
- switch(ConType){ //判斷用戶設定電機形式
- case FRONT: //前進 //判斷用戶是否選擇形式1
- M1B=0;
- M2B=0;
- M1A=1; //M1電機正轉(zhuǎn)
- M2A=1; //M2電機正轉(zhuǎn)
- break;
- case BACK: //后退 //判斷用戶是否選擇形式2
- M1A=0;
- M2A=0;
- M1B=1; //M1電機反轉(zhuǎn)
- M2B=1; //M2電機反轉(zhuǎn)
- break;
- case LEFT: //左轉(zhuǎn) //判斷用戶是否選擇形式3
- M2B=0;
- M1A=0;
- M1B=1; //M1電機反轉(zhuǎn)
- M2A=1; //M2電機正轉(zhuǎn)
- break;
- case RIGHT: //右轉(zhuǎn) //判斷用戶是否選擇形式4
- M2A=0;
- M1B=0;
- M1A=1; //M1電機正轉(zhuǎn)
- M2B=1; //M2電機反轉(zhuǎn)
- break;
- default: //停止 //判斷用戶是否選擇形式8
- M2A=0;
- M1B=0;
- M1A=0; //M1電機正轉(zhuǎn)
- M2B=0;
- break; //退出當前選擇
-
- }
- }
- void main() //主程序入口
- {
- bit FrontFlag,LeftFlag,RightFlag;
- P1=0XFF;
- while(1){ //程序主循環(huán)
- LeftLed=LeftIR;
- LeftFlag=LeftIR;
- RightLed=RightIR;
- RightFlag=RightIR;
- FrontLed1=FrontIR;
- FrontLed2=FrontIR;
- FrontFlag=FrontIR;
-
- if((FrontFlag == OFF) && (LeftFlag == OFF) && (RightFlag == OFF)){
- ControlCar(FRONT);
- }
- if((FrontFlag == ON) && (LeftFlag == ON) && (RightFlag == ON)){
- ControlCar(BACK);
- }
- if(FrontFlag == ON){
- if(LeftFlag == ON){
- ControlCar(BACK);
- Delay(100);
- ControlCar(RIGHT);
- Delay(50000);
- Delay(20000);
- }
- else{
- Delay(100);
- ControlCar(LEFT);
- Delay(500);
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
小車走迷宮電路及代碼.zip
(2.19 MB, 下載次數(shù): 30)
2017-9-4 23:31 上傳
點擊文件名下載附件
|