好文档 - 专业文书写作范文服务资料分享网站

毕业设计-电磁感应路径识别智能小车设计

天下 分享 时间: 加入收藏 我要投稿 点赞

WidthR=20;

}

void right() {

WidthR=15; widthL=20;

}

void stop() {

WidthR=0;

WidthL=0;

}

void head() {

WidthR=20; Widthl=20;

}

4 调试与检测

调试与检测是应用开发电子领域中必不缺少的实践环节,单片机的开发也是一样。 若在具体的工程实践中,因为方案错误并进行相应的开发设计,会浪费更多的时间和资 金,应此,进行软件的模拟与仿真是非常有必要的。对结果的数据分析关系到系统的参 数是否正确,通过检测分析能够及时的更正发生的错误以避免造成不必要的麻烦。

4.1 调试与仿真

单片机开发,除必要的硬件外,软件也是不能分开的。通过编译软件将源代码编译 变为机器码,早期单片机的汇编软件有A51等,随着技术的不断发展,由早期的汇编语言 开发逐渐演变到现在的高级语言开发。同时单片机的开发软件也在不断更新发展,其中K eilC51软件是目前最流行的用于开发MCS-

51系列单片机的软件。KeilC51提供了包括库管理、连接器、宏汇编、C编译器和一个功 能强大的仿真调试系统等,它通过一个集成开发环境将这些组件结合在一起,全Windows 界面,生成目标代码的效率非常高,是一种非常实用的软件。Keil软件的优点:容易上手 ,编程操作简单;支持许多内部函数,内部函数产生代码来完成库函数,执行速度很快 ,效率也很高。另外一款用于硬件仿真的软件Proteus

ISIS是Labcenter公司推出的电路实物分析仿真系统,可仿真各类电路及IC,并全面支持

15

单片机系统。它的元件库种类齐全,使用方便,是一款人们普遍使用的的专业单片机软 件仿真系统。其主要的特点有两个:一是能够对动态元件的实时仿真,同时使得系统更 具真实性;二是集成了虚拟工具箱的功能,虚拟工具能够与仿真系统同时进行,使测量 更加方便而准确。本系统使用C语言编程,采用Keil

编译器进行源程序编译,结合硬件电路的设计制作使用Proteus

ISIS硬件仿真软件进行系统的联调与仿真测试。调试过程分模块进行调试与仿真,在确 保各个模块无异常情况下进行系统联调,最后进行数据的分析对比,改进完善程序。

uversion3 4.2 检测与分析

本小节将介绍在调试过程中检测出的问题及分析解决方法。初次调试程序难免会产 生相应的错误,这就需要耐心的对程序的语法进行检查,如函数的定义规则、逗号的使 用、花括号的对应,以及赋值符号与等号分别。通过修改,编译全部通过,下一步就是 对程序的功能测试。

在程序功能测试中的主要问题是起初所给的电压过于低,导致小车没法驱动;其次 小车没法识别方向,经过排查,是因为单片机上的P0输出口与电机接口没能连接妥当。

结束语

通过这次毕业设计,使我认识到自身在该门课的理论知识的不足之处,表现在一些 错误发生时,不能很好的按照科学的检查方法检查出错误,致使一些实验步骤进展缓慢 。但是,对于单片机接口电路以及C语言的程序的设计知识得到了巩固,温习了旧的知识 ,也增强了实验动手能力,同时,使我得到了一次用专业知识、专业技能分析和解决问 题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用 编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步。让我感受感到现代 科学技术的迅猛发展,作为一个新时代的大学生,更应该以求知若渴的姿态不断吸收新 的知识,以跟上时代的步伐,促进祖国科技实力的不断进步,为日后成为合格的应用型 人才打下良好的基础!

16

参考文献

[1].余孟尝.数字电子技术基础简明教程. 高等教育出版社.1985 [2].杨素行.模拟电子技术基础简明教程.高等教育出版社.1985 [3].张毅刚.彭喜元.单片机原理与应用设计.电子工业出版社.2008.4

[4].梅丽凤.王艳秋.汪毓铎.张军.单片机原理与接口技术.北京交通大学出版社.2005.7 [5].刘笃仁.韩保君.传感器原理及应用技术.西安电子科技大学出版社.2003.8 [6].李金平.沈明山.姜余祥.电子系统设计.电子工业出版社.2007.8

[7].马忠梅.籍顺心.张凯.马岩.单片机的C语言应用程序设计.航空航天大学出版社.2008 [8].余志生.汽车理论.机械工业出版社.2006

附录

程序清单

Int sum1=100000; Int width=20; Int widthleft=20; Int fre =40; Sbit pwm P0^0; Sbit pwm1 P0^1; //传感器端口 sbit s1=P3^0; sbit S2=P3^1; sbit s3=P3^2; sbit S4=P3^3; main() {

EA=1; ET0=1; TMOD=0x02;

17

//右轮脉宽 //左轮脉宽 //频率

//右输出口 //左输出口

//开中断 //开T0中断 //8位重装

TL0=0xfc; TH0=0x18; TR0=1; While(1) {

Int temp=P3&0x0f; switch(temp) {

case 0x00: do

{

stop();

}while(temp!=0);break;

case 0x03: do

{

left();

}while(temp!=0x03);break; do {

Left1()

}while(temp!=0x0b);break; do {

right();

}while(temp!=0x0d);break; do {

Right1();

}while(temp!=0x0c);break; {

head();

}while(temp!=0x0f);break;

case 0x0b:

case 0x0d:

case 0x0c:

case 0x0f: do

}

head(); } }

18

Void T0-ISR() interrupt 1 {

Static int count; Int sum=0; Count ++; Sum++;

If(sum==sum1) {

EA=0;

PwmR=pwmL=0;}

If(count == widthL) PwmL =0;

if(count == widthR) pwmR=0;

If(count==fre) {

Count =0;

PwmR=pwmL=1;}

}

void left() {

WidthL=15; widthR=20;

}

void right() {

WidthR=15; WidthL=20;

}

void stop() {

WidthR=0; WidthL=0;

}

void head() {

WidthR=20;

//向右转 //停止

//向前走 19//中断服务程序 //计数变量 //定时器变量

//向左转

widthL=20;

}

时光流逝匆匆,转眼间论文终于完成了。当自己终于可以从毕业论文的压力下解脱 出来,长长地吁出一口气时,我忽然间才意识到,原来大学四年已经过去,到了该告别 的时候了。一念至此,竟有些恍惚,所谓白驹过隙、百代过客云云,想来便是这般惆怅 了。

我在这里首先要感谢的是我的学位论文指导老师,在本文的撰写过程中,老师多次 询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。老师给 予了悉心的指导和关心,使我克服了众多困难终于完成了论文的撰写工作。他的渊博的 知识、严谨求实的治学态度及敬业精神让我受益匪浅!并将在我今后的人生道路上产生 深远的影响,在此论文完成之际,谨向张乐老师致以崇高的敬意和衷心的感谢!

20

1r8yi5z5d652amw9lhr375cln2z0an008e9
领取福利

微信扫码领取福利

微信扫码分享