您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页北京邮电大学电子工艺实习报告

北京邮电大学电子工艺实习报告

来源:意榕旅游网
电子工艺实习报告

一、实习任务:

1. 焊接一个发光二级管交替闪烁电路;

2.两人一组完成一个迷宫机器人的焊接、组装、编程及调试等工作,完成自动穿越迷宫的机器人。

二、实习题目的设计思路及实现过程

实习题目:两人一组完成迷宫机器人的焊接、组装、编程及调试等工作,完成自动穿越迷宫的机器人。

小学期实习为期两周,8月27日到8月29日为电路焊接练习。练习的主要内容为在一块电路板上焊接各种电路元件,包括电阻、电容、各种接插件等。我们按照老师的要求将元件焊满了整个电路板。并在8月28日的下午通过了老师的考核,即在电路板上连续焊接两个芯片共40个管脚。第二天我们有做了一个任务,任务内容为简单的二极管交替闪烁电路。虽然电路很简单,但老师要求很高,老师要求我们只能用导线连接,由于电路板很小,我们的到西安也非常短小,这就使焊接过程变得很艰难。最后我们在下课半小时才完成了电路,但庆幸的是我们的电路一次成功了。

从8月30日下午开始正式组装并焊接迷宫机器人即智能小车。按照小车装配说明中的装配步骤我们边装配变焊接。其中遇到了很多困难。首先一些原件或接插件是有方向的,我们必须按照正确的方向焊接。如排阻、IC座、二极管、电解电容等。焊接排阻时,我们为了确保方向正确,向周围同学及老师仔细询问。还有排针的焊接也破费周折,排针上下两面都为针状,初识排针的我们不清楚它的使用方法,故而不清楚哪面应该朝上,我的室友就因为焊错了方向又无法复原导致小车的电路板损坏。其次,还有很多考验我们焊接技术的地方,比如IC座,排针等焊点很密,要求我们有优秀的焊接技术及良好的习惯,否则很容易虚焊或桥接,那样不仅使电路出错而且很难检查出错误所在。最后一定要注意的是VCC与GND是否短路,我们旁边的同学就因为短路似的在烧程序时电脑差点被损坏。

我们的小车装配完成后第一次烧程序时也车险了短路反应,但经过我的队友的仔细检查发现我们并没有焊接错误,所有VCC与GND间都有电阻,不存在短路。真正的问题竟然是我们的单片机装配方向出错了。这个问题后果相当严重,虽然事实上我们没有造成很严重的后果,但如果没有及时发现,不仅会把同学电脑损坏还会把我们小车的核心单片机损坏。相信我和队友会吸取经验教训,以后做事时会万分仔细、认真。

三、本人在实习项目中的具体工作

本人主要负责小车的装配及焊接,8月30日下午,在队友的协助下我主要负

责往小车的电路板上焊接各种元件,因此对焊接过程中遇到的各种问题感触颇深。小车程序的编写及修改、调试主要由队友负责。

四、实现功能及测试数据结果

我们的迷宫机器人即智能小车主要功能即为走出迷宫。迷宫由木板做成,轨

道曲折。小车主要功能为沿轨道前行,遇到阻碍时转弯,遇到死角时后退,被卡死在某处时经过判断后退并根据周围障碍情况左转或右转。我们设计的小车走迷宫程序中还包括了小车三边都感应不到障碍时后退并右转,以防小车被卡死在某处时不停地进行后退、前进的死循环。

小车在测试时,第一次由于电量不足在第一次拐弯处就撞到的轨道导致无法

走出迷宫。但在第二次测试时由于更换了两节电池小车顺利地走出迷宫,由于我们总共使用了四节电池,小车速度比较慢,最终成绩为29秒多。虽然成绩不是特别理想,也不是我们小车的最佳成绩,但我们已经很满意了。

五、遇到的问题及解决方法

装配及调试小车过程中我们遇到了很多问题。第一个问题为烧程序时显示短

路。我们用万用表逐一测试小车上所有VCC与GND间的电阻,经测试所有VCC与GND间都有900Ώ以上的电阻,确认没有短路以后,我们又仔细检查了各种元件的装配,发现我们的单片机方向插反了。这个问题是由于我们粗心所致,我们在以后的学习生活中一定会吸取经验教训。

第二个问题是小车调试过程中小车被卡死后会进行后退、前进的死循环。这个问题是程序问题,我们发现此时他往往三边都没有感应到障碍。我们根据已有代码进行修改,添加了一段程序。 houtui1() {

P0=seg_data[3]; P2=0xf7; Delay_ms(t); stop(); IN1=1; IN2=0; IN3=0; IN4=1;

Delay_ms(100); }

这样小车再遇到这样的情况时就会很好地处理。也为小车成功走出迷宫奠定了很好的基础。

六、心得体会和总结

为期两周的小学期结束了,本次实习中我收获颇多。我不仅学会了焊接电路,还成功地做出了智能车。尽管我们的小车不是最好的,但它在我心中已经是最乖的孩子了。

我很庆幸我们遇到了两位非常尽职尽责的老师。小学期的前一周,我们在老师的安排指导下有条不紊地进行着前期准备。听完老师讲解后就开始进行自主练习,我们把各种元件焊满了一整块电路板,然后又按老师要求做了一个任务。这些我们都很顺利地完成了。从第一周的周五我们开始装配、焊接智能小车,从第二周开始进行小车的调试。这期间我们遇到了很多困难,求助过老师同学,也自己进行过思考,虽然过程看似艰难,但看到我们的小车顺利跑出出口时,所有的艰难都不再苦涩,我们像家长看到孩子获得成功一样开心!

此次实习我收获最多的是对困难的解决。从单片机插反到打不开烧录工具再到小车被卡,我们遇到了种种困难,但在我们的努力下都一一解决了。战胜困难的喜悦是难以言喻的。当然,我们也从中收获了很多经验教训。总之,非常感激此次电子工艺实习,我收获良多,也非常感激两位尽职尽责的好老师。期盼在下

次实习中能有更多收获。

附:部分算法源程序

#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};//显示缓冲区

sbit IN1 =P1^0; sbit IN2=P1^1; sbit IN3=P1^4; sbit IN4=P1^5; sbit LED1=P2^6; sbit LED2=P2^7; sbit S1=P1^6;

sbit mid=P3^1; sbit left=P3^4; sbit right=P3^6;

uchar count1=0; uchar count2=0; uchar count3=0; uchar count4=0; uchar count5=0; uchar count6=0; uchar count7=0;

/********以下是延时函数********/

void Delay_ms(uintxms) //延时程序,xms是形式参数 { uint i, j;

for(i=xms;i>0;i--) // i=xms,即延时xms, xms由实际参数传入一个值

for(j=115;j>0;j--); //此处分号不可少 }

/********以下是显示函数********/

display() {

P0=seg_data[0]; P2=0xfe; //显示毫秒十位

//开个位显示(开第1只数码管) Delay_ms(t); P0=seg_data[1]; P2=0xfd; Delay_ms(t); P0=seg_data[2]; P2=0xfb; //Delay_ms(t); P0=seg_data[3]; P2=0xf7; Delay_ms(t); P0=seg_data[4]; P2=0xef; //Delay_ms(t); P0=seg_data[5]; P2=0xdf; Delay_ms(t); P2=0xff; }

Q_right() {

IN1=1; IN2=0;

Delay_ms(1); }

Q_left() {

IN3=0; IN4=1;

Delay_ms(48); }

stop() {

IN1=0; IN2=0; IN3=0;

//延时10ms //显示毫秒百位

//开十位显示(开第2只数码管) //延时10ms //显示秒个位

开百位显示(开第3只数码管) //延时10ms //显示秒十位

//开个位显示(开第4只数码管) //延时10ms //显示分个位

开十位显示(开第5只数码管) //延时10ms //显示分十位

//开个位显示(开第6只数码管) //延时10ms

IN4=0;

Delay_ms(200); }

stop1() {

IN1=0; IN2=0; IN3=0; IN4=0;

Delay_ms(2); }

qianjin() {

P0=seg_data[0]; P2=0xfe; Delay_ms(t); Q_right(); Q_left(); } houtui() {

P0=seg_data[3]; P2=0xf7; Delay_ms(t); stop(); IN1=0; IN2=1; IN3=1; IN4=0;

Delay_ms(400); }

houtui1() {

P0=seg_data[3]; P2=0xf7; Delay_ms(t); stop(); IN1=1; IN2=0; IN3=0; IN4=1;

//显示毫秒十位

开个位显示(开第1只数码管) //延时10ms

//显示秒十位

//开个位显示(开第4只数码管) //延时10ms

//??ê???ê???

//?a??????ê?(?aμú4??êy??1ü) //?óê±10ms

// Delay_ms(100); }

zuozhuan() {

P0=seg_data[1]; P2=0xfd; Delay_ms(t); stop(); IN1=1; IN2=0; IN3=1; IN4=0;

Delay_ms(210); }

youzhuan() {

P0=seg_data[2]; P2=0xfb; //Delay_ms(t); stop(); IN1=0; IN2=1; IN3=0; IN4=1;

Delay_ms(190); }

youzhuan1() {

P0=seg_data[2]; P2=0xfb; //Delay_ms(t); stop(); IN1=0; IN2=1; IN3=0; IN4=1;

Delay_ms(50); }

//显示毫秒百位

//开十位显示(开第2只数码管) //延时10ms

//显示秒个位

开百位显示(开第3只数码管) //延时10ms

//显示秒个位

开百位显示(开第3只数码管) //延时10ms

//****************主程序******************// void main() { P0=0xff; P2=0xff; P1=0xff;

TMOD=0x01; //定时器T0方式1 TH0=0xfe; TL0=0x0c; //1ms定时初值

EA=1; ET0=1; TR0=1; //开总中断,开定时器T0中断,启动定时器T0

while(1) { LED1=0; LED2=0; display();

while(mid==1&&left==0&&right==0) {

qianjin(); stop1(); count4++;

if(count4>600) {houtui();break;} }

while(mid==1&&left==0&&right==1) {

qianjin(); stop1(); count1++;

if(count1>20)

{houtui();stop1();youzhuan1();break; } }

while(mid==1&&left==1&&right==0) {qianjin(); stop1(); count2++;

if(count2>20)

{houtui();break; } }

if(right==1&&left==0) {

youzhuan(); qianjin();stop1(); }

while(mid==0&&left==1) {

zuozhuan(); qianjin();stop1(); count5++;

if(count5>30)

{houtui();break;} }

while(mid==0&&right==1&&left==0) {

youzhuan(); qianjin(); stop1(); count6++;

if(count6>30)

{houtui();break;} }

{while(mid==0&&(left==0)&&(right==0)) {

houtui1(); count7++; if (right==1)

{youzhuan(); break; } if(left==1)

{zuozhuan(); break;} if(count7>15)

{qianjin();Delay_ms(20);count7=0;break;} } }

while(mid==1&&left==1&&right==1) {qianjin(); stop1(); count3++;

if(count3>20)

{houtui(); break;} }

count1=count2=count3=count4=count5=count6=count7=0; } }

参考文献:单片机原理及应用

刚焊完的小车 装配好的小车 小车侧面

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务