我们那课设的作业
Altium Designer画的小车走迷宫原理图和PCB图如下:(51hei附件中可下载工程文件)
原理图和PCB的单片机源程序如下:
- #include <AT89X51.H> //包含51单片机相关的头文件
- #include "mytest.h"
- void Delay(unsigned int DelayTime) //定义机器人调转子时间子程序
- {
- while(DelayTime--); //机器人转弯循环
- // SB1=!SB1; //蜂鸣器闪响
- return;
- }
- void ControlCar(unsigned char ConType) //定义电机控制子程序
- {
- switch(ConType){ //判断用户设定电机形式
- case FRONT: //前进 //判断用户是否选择形式1
- M1B=0;
- M2B=0;
- M1A=1; //M1电机正转
- M2A=1; //M2电机正转
- break;
- case BACK: //后退 //判断用户是否选择形式2
- M1A=0;
- M2A=0;
- M1B=1; //M1电机反转
- M2B=1; //M2电机反转
- break;
- case LEFT: //左转 //判断用户是否选择形式3
- M2B=0;
- M1A=0;
- M1B=1; //M1电机反转
- M2A=1; //M2电机正转
- break;
- case RIGHT: //右转 //判断用户是否选择形式4
- M2A=0;
- M1B=0;
- M1A=1; //M1电机正转
- M2B=1; //M2电机反转
- break;
- default: //停止 //判断用户是否选择形式8
- M2A=0;
- M1B=0;
- M1A=0; //M1电机正转
- M2B=0;
- break; //退出当前选择
-
- }
- }
- void main() //主程序入口
- {
- bit FrontFlag,LeftFlag,RightFlag;
- P1=0XFF;
- while(1){ //程序主循环
- 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, 下载次数: 30)
|