(完整版)基于单片机的智能循迹小车毕业论文设计

2006:1-296

[8] 陈晓莉,张俊涛.KEIL C51单片机仿真器的设计. 第二版. 陕西科技大学出版社,2006:19-20.

[9] 杨素行编著.模拟电子技术基础简明教程.第2版.高等教育出版社,2005:

[10] 余孟尝编著.数字电子技术基础简明教程. 第2版. 高等教育出版社. 1999:1-361

[11] 李全利,迟荣强编著.单片机原理及接口技术.第1版.高等教育出版社,2004:14-191

[12] 王守中编著.51单片机开发入门与典型实例.第1版. 人民邮电出版社,2007:

附录A 原理图及PCB图

系统总设计电路图

单片机原理图

TCRT5000 传感器模块原理图

L298电机控制驱动模块原理图

PCB图:

单片机PCB图

L298N电机驱动模块PCB图

附录B 程序代码

智能循迹小车的#C程序

#include

forward1(); forward2();

speed(cnt1,sd1,cnt2,sd2); }

*********************电机的后退控制********************* void back(int cnt1,int sd1,int cnt2,int sd2) { back1(); back2();

speed(cnt1,sd1,cnt2,sd2); }

*********************第三部分 主函数********************* void main() { int num=0;

TMOD=0x01; 中断模式设置 EA=1;

TH0=()256; 定时 1ms TL0=()%6; ET0=1; TR0=1;

turn(count1,250,count2,250); 使小车冲上黑色轨道 delay(350); 延时等待小车冲上黑色轨道 while(1) {

if(RP1==1&&RP2==1&&RP3==1&&RP4==1)

back(count1,50,count2,50); 1111 当四个LED都没检测到黑

线时,小车后退

if(RP1==1&&RP2==0&&RP3==0&&RP4==1)

turn(count1,200,count2,200); 1001 当第二、第三个LED检测到黑线时,小车前进

if(RP1==0&&RP2==1&&RP3==1&&RP4==0)

turn(count1,150,count2,150); 0110 当第一、第四个LED检测到黑线时,小车减速前进

*********************小车左转********************* if(RP1==0&&RP2==1&&RP3==1&&RP4==1)

turn(count1,0,count2,150); 0111 当只有第一个LED检测到黑线时,小车左转

if(RP1==1&&RP2==0&&RP3==1&&RP4==1)

turn(count1,80,count2,150); 1011 当第二个LED检测到黑线时,小车偏左转

if(RP1==0&&RP2==0&&RP3==1&&RP4==1)

turn(count1,0,count2,100); 0011 当第一、二个LED检测到黑线时,小车左转

if(RP1==0&&RP2==0&&RP3==0&&RP4==1)

turn(count1,0,count2,200); 0001 当第一、二、三个LED检测到黑线时,小车左大转

*********************小车右转********************* if(RP1==1&&RP2==1&&RP3==0&&RP4==1)

turn(count1,150,count2,80); 1101 当第三个LED检测到黑线时,小车偏右转

if(RP1==1&&RP2==1&&RP3==1&&RP4==0)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4