北邮电子规范标准工艺标准实习报告小学期.doc
,.电子工艺实习报告 学院: 信息与通信工程学院 专业: 信息工程 班级: 2013* 学号: 2013* 姓名: * 北京邮电大学实习报告实习名称电子工艺实习学 院信息与通信工程学院学生姓名赵月班 级2013211124学 号2013210653实习时间2015.7.67.16实习地点主楼710实习内容1) 6号上午:了解本次工艺实习的常用工具、耗材及主要任务;去图书馆借阅讲解单片机编程的书籍。2) 6号下午至7号:焊接练习,掌握手工焊接技术和手工拆焊技术。3) 8号:简单的发光二极管交替闪烁电路的安装调测。4) 9号至10号:小车的安装调测。完成整机测试,使小车能够走直线。5) 11号至12号:进一步熟悉单片机的工作原理,编写走迷宫程序。6) 13号至14号:迷宫小车的安装调测。安装红外传感器,烧录走迷宫程序并调试。7) 15号:小车外观设计及制作。8) 16号上午:实习成果验收。学生实习总结(附页,不少于2000字)见附页实习成绩评定遵照实习大纲并根据以下三方面按五级分制(优秀、良好、中等、及格、不及格)综合评定成绩:1、思想品德、实习态度、实习纪律等2、技术业务考核、笔试、口试、实际操作等3、实习报告、分析问题、解决问题的能力实习评语:实习成绩:指导教师签名: 实习单位公章年 月 日学生实习总结一、 实习任务要求1. 简单的发光二极管交替闪烁电路的安装调测:1.1. 根据元器件清单准备元器件;1.2. 根据电路规划元器件在电路板上的焊接位置;1.3. 实际安装焊接电路;1.4. 电路检测与调试、通电运行。2. 智能迷宫小车的安装调测:1.2.2.1. 按顺序安装焊接元件;2.2. 控制电路测试;2.3. 电机装配;2.4. 驱动电路测试;2.5. 编写走直线程序;2.6. 编写走迷宫程序;2.7. 安装红外传感器;2.8. 烧录走迷宫程序;2.9. 通电运行与调试;2.10. 外观的设计与制作。二、 实习题目的设计思路及详细实现过程按照实习任务要求中小车安装调测的步骤进行实现:1. 按顺序安装焊接元件由队友主焊,我安装元器件并检查安装无误,队友再检查元件位置和方向是否正确,然后进行焊接。我焊接了三极管、后万向轮、单排针和电机电源线,并对整个过程中出现的4个不合格焊点进行拆焊。这样虽然进度较慢,但是大大提高了准确率,焊点都符合要求,整个焊接过程没有出现元器件接错、短路等问题。2. 控制电路测试测量电源端子、VCC与GND之间是否短路,测试PWR灯是否正常。3. 电机装配按照给定的电机装配步骤顺利完成。4. 驱动电路测试下载电机驱动程序,根据电机转动方向调整电机电源线。5. 编写走直线程序在老师提供的示例代码基础上做修改,去掉主函数中后退函数的调用,同时令数码管显示“543210”。小车通电运行,根据实际情况,可通过调整两轮不同的延迟时间,使小车保持直线行走。6. 编写走迷宫程序前期调研找到了不少类似的代码,虽然都有错误,但也给了我们不小的启发,让我们有了大体的思路。队友在此基础上设计并完善了算法思路,我参考其他代码编写了程序并进行调试。单片机基于c语言编程,由于之前已经看书学习,编代码比较顺利,遇到的小问题也通过上网查资料或跟同学讨论得到了解决。 算法主要思路:3.4.5.5.1. 由电机接线判断出IN1、IN2控制右轮,IN4 、IN3控制左轮。以右轮为例,IN1、IN2分别为00、11时电机停止,为01时逆时针转(即前进),为10时顺时针转(即后退)。据此编写前进、后退、左转、右转等函数。5.2. 定义的变量:/感应器口sbit N1= P34;/左方 sbit N2=P33;/右方sbit N3=P31;/前方主函数中分情况讨论:1) if(N3=1&N2=0&N1=0 | N3=1&N2=1&N1=1) 如果左右两边有障碍物,或三个方向都没有障碍,直行。2) if(N3=0&N2=1&N1=1|N3=0&N2=1&N1=0) 如果只有前方、或左方前方有障碍物,右转。3) if( N3=0&N2=0&N1=1)如果右方前方有障碍物,左转。4) if(N3=0&N2=0&N1=0)如果三个方向都有障碍物,倒车。5) if( N3=1&N2=1&N1=0) 如果左方有障碍物,分两种情况:假设之前走到了死胡同,即倒车了一次,直行后右转;如果没有倒过车,直行。6) if(N3=1&N2=0&N1=1),计数左转,即假设之前右转了三次后左转,否则直行。7. 安装红外传感器通过查资料以及和同学互相讨论,正确安装了传感器并掌握了调节感应距离的方法。传感器三根导线分别接单排针的VCC、GND和OUT;通过调节电阻值改变感应距离,顺时针转动螺丝使感应距离变大,逆时针转动螺丝使感应距离变小。8. 烧录走迷宫程序由于之前已经烧录过小车直走程序,烧录顺利完成。9. 通电运行与调试根据小车走迷宫的实际情况修改算法,调整传感器感应距离,通过修改延迟时间调整转向的转角等。10. 外观的设计与制作我设计了“浪漫糖果车”的形象,以蓝色为主题色调,以深蓝色的薄纱来装饰浅蓝色的外盒,盒顶放置插有五颗糖果的泡沫块,泡沫块和糖果都进行了包装。我们组的外观得到了老师的认可和表扬,我们非常地开心。三、 本人在实习项目中的具体工作1. 元器件安装与检查。2. 少部分元器件的焊接。 3. 电机装配。4. 迷宫小车程序的编写。 5. 与队友共同进行整机测试、迷宫小车的调试、算法及程序修改。6. 外观的设计与制作。四、 实现功能简单的发光二极管交替闪烁电路实现了交替闪烁的功能,左右灯闪烁频率稳定。迷宫小车实现了手动启动功能,避障功能,转向时转向灯闪烁功能。五、 遇到的问题及解决方案1. 在测试交替闪烁电路中,我们发现两个灯闪烁的频率不一致,仔细判断检查后发现是三极管C级和E级接反了。因为这次错误,之后焊接小车我们格外仔细,没有再出现这类问题。2. 调测小车走直线功能时,我和队友时发现,直接在前进函数中加Delay函数,会影响数码管的亮度,但是当时没有在意这一点,老师检查时我们的数码管亮度没有达到要求。思考后想出的方法是利用for循环解决,烧录改进程序后数码管亮度明显提高。for(i ; i=25 ; i+) display();Delay_ms(1);3. 在一次烧录程序的过程中,软件显示烧录成功,但按下开关后小车不运转,于是我们检测了电机、二极管等处发现均没有问题。在跟同学讨论的过程中,发现有几组也出现了这个问题。最后我们再次烧录程序,小车正常了,分析可能是上次烧录过程中USB口接触有问题或者软件操作不当。4. 在调试过程中,每次更换电池后,随着电池电量的减少,电机转速变慢,传感器感应到障碍物后车轮不能及时变方向,小车行驶路线随机性很大。我通过微调传感器感应距离使它尽可能稳定。5. 由于我们使用的是双轴电机,调测过程消耗了很多电池,实验成本不断增加。我们了解到有的小组在原有基础上再串联一个电池盒,8节旧电池来供电,采用这种方法后我们发现并不可行,电压过大,小车转速过快。队友通过请教老师,得到了一个更好地解决方法,于是我改造了电池盒,改用6节旧电池供电,效果与4节新电池基本相同,这为我们节省了不少开销。六、 心得体会和总结1. 心得体会本次电子工艺实习的最终目标是制作一个迷宫小车,小车能够走出简易迷宫,实现灵活前进、转弯等功能,在此基础上进一步提高速度。我们组完成了迷宫小车的焊接、组装、程序编写、调试及外观制作,并通过了最后的验收。调试小车的过程并不顺利,所幸遇到的问题最终都得到了很好的解决。当看到自己和队友努力了两周的成果走出了迷宫时,内心喜悦之情难以言表。在最初练习焊接的两天,我们组的表现并不是很令人满意,焊点经常呈现“包子状”,以至于我们频繁使用吸锡器。在练焊验收的时候,老师看了我们的焊接作品并指出了我们的一些不足,为我们细心讲解了如何改进。在老师的指点下,我们朝着焊接出标准的焊点努力,不断进行练习,焊接的元器件布满了整个万能板,由此我们焊接技术进步很大,这为我们后几天焊接小车打好了基础。练习结束后,我们决定由队友主焊,我协助。我熟练掌握了吸锡器的使用方法,同时也发现使用吸锡器可能会出现有残余锡留在焊盘上、影响临近焊点、吸掉焊盘等情况,所以在之后焊接小车的过程中我们格外注意避免焊接错误。最后验收的时候,我们的小车第一次跑出了迷宫但是速度很慢,可以看出传感器不太灵敏;第二次没有跑出迷宫,小车卡在了一个转角,过了一会儿以后车轮停止了转动,我分析是因为电池电量不足,这让我和队友感到非常遗憾。验收之前我们测试了多次,虽然单轴电机比较耗电,但由于测试的最后一次小车跑出了迷宫,我们就没有换电池。这说明我们之前的调测工作还是做得不够充分,在以后的实验中我们要更加注重这一部分。2. 总结本次电子工艺实习让我收获的不仅仅是一辆自己亲手制作的迷宫小车。第一天通过老师的讲解,我对于电子工艺知识有了一定程度的了解;在前期调研过程中,我意识到充足的准备可以进一步明确努力的目标、提高工作效率;在焊接和组装过程中,我掌握了许多电路工艺技术,增强了动手操作能力;在调测过程中,我体会到了耐心,专心,细心的重要性,任何一个细小的差错,都可能导致无法完成任务,遇到问题需要耐心寻找解决方案,比如根据电机运转情况调整转弯角度,需要很多次的修改和尝试;经历了本次实习,我的团队协作能力得到了极大地增强,我认识到要做好一件事,不仅要有充足的准备,还要有科学、细致的分工,按照分工按部就班的进行,这样一来即使遇到突发状况,也只是对计划稍作修改而不至于慌张。我很感谢老师和我的队友。老师总是能耐心的给我们讲解并提出我们的不足,不仅让我对相关的专业知识和技术有了更深刻的了解,还让我养成了良好的操作习惯,使我考虑问题时的思路变得开阔。我和队友一起进行实际操作时,她的提醒让我避免了很多错误。我从她身上也学到了很多,比如及时整理清点元器件,遇到问题保持冷静的头脑而不是手足无措等等。总而言之,这次电子工艺实习让我获益匪浅。七、 参考文献1电子工艺实习教程 北京邮电大学电子工程学院电路中心 2015年6月出版2 杨欣,王玉凤,刘湘黔 51单片机应用从零开始 清华大学出版社 2008年1月出版3 张洪润 单片机应用设计200例 北京航天航空大学出版社 2006年7月八、 程序源代码#include#include #include #define uchar unsigned char#define uint unsigned int#define t 1uchar code seg_data = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/09的段码表,0x00为熄灭符uchar data disp_buf7 = 0x00,0x00,0x00,0x00,0x00,0x00,0x00;/显示缓冲区uchar d4;uchar leftcount; /左转次数uchar rightcount; /右转次数uchar daochecount; /倒车次数uchar temp;uchar chance; /右转优先的机会/电机控制sbit IN1=P13;sbit IN2=P15;sbit IN4=P12;sbit IN3=P10;/LED灯sbit YOUDENG=P26; sbit ZUODENG=P27;sbit S1=P16;/感应器口sbit N1= P34;/左方 sbit N2=P33;/右方sbit N3=P31;/前方/sbit BEEP=P44; /蜂鸣器uint i; /*以下是延时函数*/void Delay_ms(uint xms) /延时程序,xms是形式参数 uint i, j;for(i=xms;i0;i-) / xms由实际参数传入一个值for(j=115;j0;j-) P0=seg_datarightcount;/为了在转弯的延时过程中数码管亮 P2=0xfe; P0=seg_dataleftcount; P2=0xdf; /*以下是显示函数*/display() P0=seg_datarightcount; /数码管分别显示左转和右转的次数 P2=0xfe; Delay_ms(1); P0=seg_dataleftcount; P2=0xdf; Delay_ms(1); stop()IN1=0; IN2=0;IN3=0;IN4=0;Delay_ms(15);qianjin()IN1=0; IN2=1;IN3=0;IN4=1;ZUODENG=1;YOUDENG=1;houtui() IN1=1; /moto a 左轮向前IN2=0;IN3=1;/moto b 右轮向前IN4=0; zuozhuan() IN1=0;IN2=1;IN3=1;IN4=0;ZUODENG=0;YOUDENG=1;youzhuan()IN1=0;IN2=0;IN3=0;IN4=1;Delay_ms(50);/IN4=1;IN1=1;YOUDENG=0;ZUODENG=1;danlunyouzhuan() IN1=0;IN2=0;IN3=0;IN4=1;YOUDENG=0;ZUODENG=1;danlunzuozhuan() IN1=0;IN2=1;IN3=0;IN4=0;YOUDENG=1;ZUODENG=0;/*主程序*/unsigned int i=0,j=0;/q=0,w=0;void main() temp=0; leftcount=0; rightcount=0;daochecount=0;chance=0; while(1) temp=rightcount; if(N3=1&N2=0&N1=0 | N3=1&N2=1&N1=1)/ 小车直走 qianjin();display(); if( N3=1&N2=1&N1=0) if(daochecount=1) qianjin(); Delay_ms(50); /youzhuan(); youzhuan(); /第一倒车之后右转优先 Delay_ms(43); rightcount+; stop(); if(chance=1) daochecount=0;/右转优先状态维持两次 chance=0; chance=1;elseqianjin();display(); if(N3=0&N2=1&N1=1|N3=0&N2=1&N1=0) /右转 youzhuan(); for(i ; i=25 ; i+) /右转角度 YOUDENG=0;Delay_ms(1); i=0;rightcount+;stop(); if(N3=1&N2=0&N1=1) /小车计数左转 if(rightcount=3&temp=0) qianjin(); Delay_ms(60); /youzhuan(); zuozhuan(); Delay_ms(48); leftcount+; stop(); temp=1;else qianjin();display(); if( N3=0&N2=0&N1=1)/左转 zuozhuan();for(j;j=48;j+) /左转角度 ZUODENG=0;Delay_ms(1); j=0;leftcount+;stop(); if(N3=0&N2=0&N1=0)/倒车 /youzhuan(); zuozhuan(); Delay_ms(96); stop(); daochecount=1;
收藏
编号:2652239
类型:共享资源
大小:142.41KB
格式:DOC
上传时间:2020-04-17
8
金币
- 关 键 词:
-
邮电
规范
标准
工艺
实习
报告
讲演
呈文
学期
- 资源描述:
-
,.
电子工艺实习报告
学院: 信息与通信工程学院
专业: 信息工程
班级: 2013****
学号: 2013****
姓名: *****
北京邮电大学实习报告
实习名称
电子工艺实习
学 院
信息与通信工程学院
学生姓名
赵月
班 级
2013211124
学 号
2013210653
实习时间
2015.7.6—7.16
实习地点
主楼710
实
习
内
容
1) 6号上午:了解本次工艺实习的常用工具、耗材及主要任务;去图书馆借阅讲解单片机编程的书籍。
2) 6号下午至7号:焊接练习,掌握手工焊接技术和手工拆焊技术。
3) 8号:简单的发光二极管交替闪烁电路的安装调测。
4) 9号至10号:小车的安装调测。完成整机测试,使小车能够走直线。
5) 11号至12号:进一步熟悉单片机的工作原理,编写走迷宫程序。
6) 13号至14号:迷宫小车的安装调测。安装红外传感器,烧录走迷宫程序并调试。
7) 15号:小车外观设计及制作。
8) 16号上午:实习成果验收。
学生
实习
总结
(附页,不少于2000字)
见附页
实
习
成
绩
评
定
遵照实习大纲并根据以下三方面按五级分制(优秀、良好、中等、及格、不及格)综合评定成绩:
1、思想品德、实习态度、实习纪律等
2、技术业务考核、笔试、口试、实际操作等
3、实习报告、分析问题、解决问题的能力
实习评语:
实习成绩:
指导教师签名: 实习单位公章
年 月 日
学生实习总结
一、 实习任务要求
1. 简单的发光二极管交替闪烁电路的安装调测:
1.1. 根据元器件清单准备元器件;
1.2. 根据电路规划元器件在电路板上的焊接位置;
1.3. 实际安装焊接电路;
1.4. 电路检测与调试、通电运行。
2. 智能迷宫小车的安装调测:
1.
2.
2.1. 按顺序安装焊接元件;
2.2. 控制电路测试;
2.3. 电机装配;
2.4. 驱动电路测试;
2.5. 编写走直线程序;
2.6. 编写走迷宫程序;
2.7. 安装红外传感器;
2.8. 烧录走迷宫程序;
2.9. 通电运行与调试;
2.10. 外观的设计与制作。
二、 实习题目的设计思路及详细实现过程
按照实习任务要求中小车安装调测的步骤进行实现:
1. 按顺序安装焊接元件
由队友主焊,我安装元器件并检查安装无误,队友再检查元件位置和方向是否正确,然后进行焊接。我焊接了三极管、后万向轮、单排针和电机电源线,并对整个过程中出现的4个不合格焊点进行拆焊。这样虽然进度较慢,但是大大提高了准确率,焊点都符合要求,整个焊接过程没有出现元器件接错、短路等问题。
2. 控制电路测试
测量电源端子、VCC与GND之间是否短路,测试PWR灯是否正常。
3. 电机装配
按照给定的电机装配步骤顺利完成。
4. 驱动电路测试
下载电机驱动程序,根据电机转动方向调整电机电源线。
5. 编写走直线程序
在老师提供的示例代码基础上做修改,去掉主函数中后退函数的调用,同时令数码管显示“543210”。小车通电运行,根据实际情况,可通过调整两轮不同的延迟时间,使小车保持直线行走。
6. 编写走迷宫程序
前期调研找到了不少类似的代码,虽然都有错误,但也给了我们不小的启发,让我们有了大体的思路。队友在此基础上设计并完善了算法思路,我参考其他代码编写了程序并进行调试。单片机基于c语言编程,由于之前已经看书学习,编代码比较顺利,遇到的小问题也通过上网查资料或跟同学讨论得到了解决。
算法主要思路:
3.
4.
5.
5.1. 由电机接线判断出IN1、IN2控制右轮,IN4 、IN3控制左轮。以右轮为例,IN1、IN2分别为00、11时电机停止,为01时逆时针转(即前进),为10时顺时针转(即后退)。据此编写前进、后退、左转、右转等函数。
5.2. 定义的变量:
//感应器口
sbit N1= P3^4;//左方
sbit N2=P3^3;//右方
sbit N3=P3^1;//前方
主函数中分情况讨论:
1) if(N3==1&&N2==0&&N1==0 || N3==1&&N2==1&&N1==1) 如果左右两边有障碍物,或三个方向都没有障碍,直行。
2) if(N3==0&&N2==1&&N1==1||N3==0&&N2==1&&N1==0) 如果只有前方、或左方前方有障碍物,右转。
3) if( N3==0&&N2==0&&N1==1) 如果右方前方有障碍物,左转。
4) if(N3==0&&N2==0&&N1==0) 如果三个方向都有障碍物,倒车。
5) if( N3==1&&N2==1&&N1==0) 如果左方有障碍物,分两种情况:假设之前走到了死胡同,即倒车了一次,直行后右转;如果没有倒过车,直行。
6) if(N3==1&&N2==0&&N1==1),计数左转,即假设之前右转了三次后左转,否则直行。
7. 安装红外传感器
通过查资料以及和同学互相讨论,正确安装了传感器并掌握了调节感应距离的方法。
传感器三根导线分别接单排针的VCC、GND和OUT;通过调节电阻值改变感应距离,顺时针转动螺丝使感应距离变大,逆时针转动螺丝使感应距离变小。
8. 烧录走迷宫程序
由于之前已经烧录过小车直走程序,烧录顺利完成。
9. 通电运行与调试
根据小车走迷宫的实际情况修改算法,调整传感器感应距离,通过修改延迟时间调整转向的转角等。
10. 外观的设计与制作
我设计了“浪漫糖果车”的形象,以蓝色为主题色调,以深蓝色的薄纱来装饰浅蓝色的外盒,盒顶放置插有五颗糖果的泡沫块,泡沫块和糖果都进行了包装。我们组的外观得到了老师的认可和表扬,我们非常地开心。
三、 本人在实习项目中的具体工作
1. 元器件安装与检查。
2. 少部分元器件的焊接。
3. 电机装配。
4. 迷宫小车程序的编写。
5. 与队友共同进行整机测试、迷宫小车的调试、算法及程序修改。
6. 外观的设计与制作。
四、 实现功能
简单的发光二极管交替闪烁电路实现了交替闪烁的功能,左右灯闪烁频率稳定。
迷宫小车实现了手动启动功能,避障功能,转向时转向灯闪烁功能。
五、 遇到的问题及解决方案
1. 在测试交替闪烁电路中,我们发现两个灯闪烁的频率不一致,仔细判断检查后发现是三极管C级和E级接反了。因为这次错误,之后焊接小车我们格外仔细,没有再出现这类问题。
2. 调测小车走直线功能时,我和队友时发现,直接在前进函数中加Delay函数,会影响数码管的亮度,但是当时没有在意这一点,老师检查时我们的数码管亮度没有达到要求。思考后想出的方法是利用for循环解决,烧录改进程序后数码管亮度明显提高。
for(i ; i<=25 ; i++)
{ display();
Delay_ms(1);
}
3. 在一次烧录程序的过程中,软件显示烧录成功,但按下开关后小车不运转,于是我们检测了电机、二极管等处发现均没有问题。在跟同学讨论的过程中,发现有几组也出现了这个问题。最后我们再次烧录程序,小车正常了,分析可能是上次烧录过程中USB口接触有问题或者软件操作不当。
4. 在调试过程中,每次更换电池后,随着电池电量的减少,电机转速变慢,传感器感应到障碍物后车轮不能及时变方向,小车行驶路线随机性很大。我通过微调传感器感应距离使它尽可能稳定。
5. 由于我们使用的是双轴电机,调测过程消耗了很多电池,实验成本不断增加。我们了解到有的小组在原有基础上再串联一个电池盒,8节旧电池来供电,采用这种方法后我们发现并不可行,电压过大,小车转速过快。队友通过请教老师,得到了一个更好地解决方法,于是我改造了电池盒,改用6节旧电池供电,效果与4节新电池基本相同,这为我们节省了不少开销。
六、 心得体会和总结
1. 心得体会
本次电子工艺实习的最终目标是制作一个迷宫小车,小车能够走出简易迷宫,实现灵活前进、转弯等功能,在此基础上进一步提高速度。我们组完成了迷宫小车的焊接、组装、程序编写、调试及外观制作,并通过了最后的验收。调试小车的过程并不顺利,所幸遇到的问题最终都得到了很好的解决。当看到自己和队友努力了两周的成果走出了迷宫时,内心喜悦之情难以言表。
在最初练习焊接的两天,我们组的表现并不是很令人满意,焊点经常呈现“包子状”,以至于我们频繁使用吸锡器。在练焊验收的时候,老师看了我们的焊接作品并指出了我们的一些不足,为我们细心讲解了如何改进。在老师的指点下,我们朝着焊接出标准的焊点努力,不断进行练习,焊接的元器件布满了整个万能板,由此我们焊接技术进步很大,这为我们后几天焊接小车打好了基础。练习结束后,我们决定由队友主焊,我协助。我熟练掌握了吸锡器的使用方法,同时也发现使用吸锡器可能会出现有残余锡留在焊盘上、影响临近焊点、吸掉焊盘等情况,所以在之后焊接小车的过程中我们格外注意避免焊接错误。
最后验收的时候,我们的小车第一次跑出了迷宫但是速度很慢,可以看出传感器不太灵敏;第二次没有跑出迷宫,小车卡在了一个转角,过了一会儿以后车轮停止了转动,我分析是因为电池电量不足,这让我和队友感到非常遗憾。验收之前我们测试了多次,虽然单轴电机比较耗电,但由于测试的最后一次小车跑出了迷宫,我们就没有换电池。这说明我们之前的调测工作还是做得不够充分,在以后的实验中我们要更加注重这一部分。
2. 总结
本次电子工艺实习让我收获的不仅仅是一辆自己亲手制作的迷宫小车。第一天通过老师的讲解,我对于电子工艺知识有了一定程度的了解;在前期调研过程中,我意识到充足的准备可以进一步明确努力的目标、提高工作效率;在焊接和组装过程中,我掌握了许多电路工艺技术,增强了动手操作能力;在调测过程中,我体会到了耐心,专心,细心的重要性,任何一个细小的差错,都可能导致无法完成任务,遇到问题需要耐心寻找解决方案,比如根据电机运转情况调整转弯角度,需要很多次的修改和尝试;经历了本次实习,我的团队协作能力得到了极大地增强,我认识到要做好一件事,不仅要有充足的准备,还要有科学、细致的分工,按照分工按部就班的进行,这样一来即使遇到突发状况,也只是对计划稍作修改而不至于慌张。
我很感谢老师和我的队友。老师总是能耐心的给我们讲解并提出我们的不足,不仅让我对相关的专业知识和技术有了更深刻的了解,还让我养成了良好的操作习惯,使我考虑问题时的思路变得开阔。我和队友一起进行实际操作时,她的提醒让我避免了很多错误。我从她身上也学到了很多,比如及时整理清点元器件,遇到问题保持冷静的头脑而不是手足无措等等。
总而言之,这次电子工艺实习让我获益匪浅。
七、 参考文献
[1]《电子工艺实习教程》 北京邮电大学电子工程学院电路中心 2015年6月出版
[2] 杨欣,王玉凤,刘湘黔 《51单片机应用从零开始》 清华大学出版社 2008年1月出版
[3] 张洪润 《单片机应用设计200例》 北京航天航空大学出版社 2006年7月
八、 程序源代码
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define t 1
uchar code seg_data[ ] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//0~9的段码表,0x00为熄灭符
uchar data disp_buf[7] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00};//显示缓冲区
uchar d[4];
uchar leftcount; //左转次数
uchar rightcount; //右转次数
uchar daochecount; //倒车次数
uchar temp;
uchar chance; //右转优先的机会
//电机控制
sbit IN1=P1^3;
sbit IN2=P1^5;
sbit IN4=P1^2;
sbit IN3=P1^0;
//LED灯
sbit YOUDENG=P2^6;
sbit ZUODENG=P2^7;
sbit S1=P1^6;
//感应器口
sbit N1= P3^4;//左方
sbit N2=P3^3;//右方
sbit N3=P3^1;//前方
//sbit BEEP=P4^4; //蜂鸣器
uint i;
/********以下是延时函数********/
void Delay_ms(uint xms) //延时程序,xms是形式参数
{
uint i, j;
for(i=xms;i>0;i--) // xms由实际参数传入一个值
for(j=115;j>0;j--)
{
P0=seg_data[rightcount];//为了在转弯的延时过程中数码管亮
P2=0xfe;
P0=seg_data[leftcount];
P2=0xdf;
}
}
/********以下是显示函数********/
display()
{
P0=seg_data[rightcount]; //数码管分别显示左转和右转的次数
P2=0xfe;
Delay_ms(1);
P0=seg_data[leftcount];
P2=0xdf;
Delay_ms(1);
}
stop()
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
Delay_ms(15);
}
qianjin()
{
IN1=0;
IN2=1;
IN3=0;
IN4=1;
ZUODENG=1;
YOUDENG=1;
}
houtui()
{
IN1=1; //moto a 左轮向前
IN2=0;
IN3=1; //moto b 右轮向前
IN4=0;
}
zuozhuan()
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
ZUODENG=0;
YOUDENG=1;
}
youzhuan()
{
IN1=0;
IN2=0;
IN3=0;
IN4=1;
Delay_ms(50);
//IN4=1;
IN1=1;
YOUDENG=0;
ZUODENG=1;
}
danlunyouzhuan()
{
IN1=0;
IN2=0;
IN3=0;
IN4=1;
YOUDENG=0;
ZUODENG=1;
}
danlunzuozhuan()
{
IN1=0;
IN2=1;
IN3=0;
IN4=0;
YOUDENG=1;
ZUODENG=0;
}
//****************主程序******************//
unsigned int i=0,j=0;//q=0,w=0;
void main()
{
temp=0;
leftcount=0;
rightcount=0;
daochecount=0;
chance=0;
while(1)
{
temp=rightcount;
if(N3==1&&N2==0&&N1==0 || N3==1&&N2==1&&N1==1) // 小车直走
{
qianjin();
display();
}
if( N3==1&&N2==1&&N1==0)
{
if(daochecount==1)
{
qianjin();
Delay_ms(50);
//youzhuan();
youzhuan(); //第一倒车之后右转优先
Delay_ms(43);
rightcount++;
stop();
if(chance==1)
{
daochecount=0; //右转优先状态维持两次
chance=0;
}
chance=1;
}
else
{
qianjin();
display();
}
}
if(N3==0&&N2==1&&N1==1||N3==0&&N2==1&&N1==0) //右转
{
youzhuan();
for(i ; i<=25 ; i++) //右转角度
{ YOUDENG=0;
Delay_ms(1);
}
i=0;
rightcount++;
stop();
}
if(N3==1&&N2==0&&N1==1) //小车计数左转
{
if(rightcount==3&&temp==0)
{
qianjin();
Delay_ms(60);
//youzhuan();
zuozhuan();
Delay_ms(48);
leftcount++;
stop();
temp=1;
}
else
{
qianjin();
display();
}
}
if( N3==0&&N2==0&&N1==1) //左转
{
zuozhuan();
for(j;j<=48;j++) //左转角度
{ ZUODENG=0;
Delay_ms(1);
}
j=0;
leftcount++;
stop();
}
if(N3==0&&N2==0&&N1==0) //倒车
{
//youzhuan();
zuozhuan();
Delay_ms(96);
stop();
daochecount=1;
}
}
}
展开阅读全文
![提示](https://www.taowenge.com/images/bang_tan.gif)
淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。