电子工程实习报告.docx

上传人:b****8 文档编号:9647404 上传时间:2023-05-20 格式:DOCX 页数:52 大小:743.86KB
下载 相关 举报
电子工程实习报告.docx_第1页
第1页 / 共52页
电子工程实习报告.docx_第2页
第2页 / 共52页
电子工程实习报告.docx_第3页
第3页 / 共52页
电子工程实习报告.docx_第4页
第4页 / 共52页
电子工程实习报告.docx_第5页
第5页 / 共52页
电子工程实习报告.docx_第6页
第6页 / 共52页
电子工程实习报告.docx_第7页
第7页 / 共52页
电子工程实习报告.docx_第8页
第8页 / 共52页
电子工程实习报告.docx_第9页
第9页 / 共52页
电子工程实习报告.docx_第10页
第10页 / 共52页
电子工程实习报告.docx_第11页
第11页 / 共52页
电子工程实习报告.docx_第12页
第12页 / 共52页
电子工程实习报告.docx_第13页
第13页 / 共52页
电子工程实习报告.docx_第14页
第14页 / 共52页
电子工程实习报告.docx_第15页
第15页 / 共52页
电子工程实习报告.docx_第16页
第16页 / 共52页
电子工程实习报告.docx_第17页
第17页 / 共52页
电子工程实习报告.docx_第18页
第18页 / 共52页
电子工程实习报告.docx_第19页
第19页 / 共52页
电子工程实习报告.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电子工程实习报告.docx

《电子工程实习报告.docx》由会员分享,可在线阅读,更多相关《电子工程实习报告.docx(52页珍藏版)》请在冰点文库上搜索。

电子工程实习报告.docx

电子工程实习报告

中国地质大学(武汉)

课程:

电子工程实习报告

学号:

班级:

姓名:

指导老师:

陈分雄、叶敦范、罗大鹏、杨勇、王勇

 

第一阶段软件使用与仿真·····································3

1.1单片机系统原理图绘制·································3

1.2PCB制板·············································3

1.3编程训练·············································4

第二阶段焊接电路板········································18

2.1单片机最小系统板焊接································18

第三阶段电路调试与程序设计································18

3.1电路调试及功能测试·································18

3.2蜂鸣器调试·········································19

3.3串口通信调试······································19

3.4液晶显示调试·······································19

3.5数码管及键盘控制调试·······························20

3.6系统综合功能设计···································20

附录·······················································21

实习小结···················································38

第一阶段软件使用与仿真

1.1﹑单片机系统原理图绘制(指导老师:

罗大鹏)

1.地点:

信息楼503

2.目的:

熟练掌握protel99的使用方法,绘制单片机最小系统原理图,且保证ERC校验无误,并生成网络报表

3.内容:

⑴﹑文件管理

先新建设计数据库,再在数据库中新建各种文件,主要用到SchematicDocument和PCBDocument。

在使用中学会及时保存原理图或PCB文件以及熟练文件的导入导出。

⑵﹑protel的绘图方法

通过学习掌握绘图的一些方法。

要对键盘上的快捷键熟练应用,比如:

把原理图的放大PageUP,缩小PageDown,追踪鼠标视野Home,删除Delete,空格键转换元件以及撤销选择区域X-A等。

元器件或区域的复制,粘贴,删除等。

熟悉界面中的工作条功能。

⑶﹑绘制原理图

首先添加元件库,包括自制元件和下载的元件库,加上protel自带的元件库。

把需要用到的元件在自定义合适大小的图纸上合理摆布,再用导线把各器件连接起来,注意各电源及接地符号,节点,总线等的设置方法,使用绘图工具实现文字注释或其他注释。

⑷﹑ERC校验

待原理图绘制完毕,然后进行电气法则测试,即ERC校验,若产生错误,则根据错误提示对原电路图进行修改,直至通过ERC校验,原理图无误。

⑸﹑修改元器件封装

当ERC校验无错时,然后对照元件清单及PCB元件库,对每一个元器件封装进行修改,产生元件清单。

修改器件封装,修改其属性中的footprint即可。

修改完以后,再进行一次ERC校验,若出现错误,则根据错误提示修改,直至能通过ERC校验无错误产生。

⑹﹑生成网络报表

待修改封装之后,并再次通过ERC校验无错误产生,生成网络报表。

然后对照原电路图把网络报表仔细检查一遍,检查每一个器件与其他器件间的连接是否有误,及是否有元器件的丢失,检查VCC与GND的连接,是否全部连上。

若有遗漏或错误,则返回修改,在进行ERC校验,生成网络报表,直至无遗漏和错误。

此工作非常繁琐,需耐心和仔细对待。

但由于前些工作比较仔细所以原理图基本没有太大错误。

原理图见附录1。

1.2﹑PCB制板

1.地点:

信息楼503

2.目的:

熟练掌握protel99的使用方法,绘制单片机最小系统原理图

3.内容:

⑴﹑新建PCB文件,并添加老师要求的PCB元件库。

⑵﹑导入网络报表

导入上一阶段产生的网络报表,在导入过程中会进行错误检查,若产生错误,则需返回上一阶段,根据错误提示,修改元器件的封装等等,然后按步骤生成网络报表,再次导入网络报表,直至导入无错误。

⑶﹑手工布局

在PCB图纸上KeepOutLayer层放置线定义板宽,在导入网络报表无错误之后,然后执行,在将导入的各元器件进行布局摆放,其中键盘按照矩阵形式排列,我们所用的是16个键,按4×4矩阵进行排列,其中外部扩展及下载口及电源及串口等等器件应放置在PCB板边缘,在元件布局应按原理图的各个模块的具体分布进行,把每一模块的各器件尽量摆放在一起,并标注各个模块,再逐步调整,使所用PCB板面积尽量小,利用效率最大。

⑷﹑自动布线及手工改动

首先设计规则,主要是电线宽度,孔大小约束。

待手工布局结束后,进行自动布线,自动布线结束后,仔细检查布线效果,布线应遵循导线走钝角,线尽量走近路,尽量保证TopLayer层走横线,BottomLayer层走竖线。

然后去掉自动布线所产生的毛刺,修改走直角或锐角的连线,并使线程尽量短。

此过程中应逐个局部仔细检查修正。

修正结束后,可以对PCB添加泪滴焊盘,进行覆铜或放置汉字,防止实际硬件电路静电干扰。

PCB板见附录2。

⑸﹑设计规则检查

对已经布局布线的PCB图进行设计规则检查,对PCB图进行查错,以保证其正确无误。

⑹﹑观看3D图

单PCB图画好后,可以观看其3D效果图,以验证其布局布线合理,和提前知晓制成板后的效果。

PCB3D效果图见附录3

⑺﹑生成PCB报表

最后可以生成PCB报表,包括电路板状态信息报表,引脚信息报表,元件信息报表,网络分析信息报表等,以对板子有个清晰的认识。

1.3、编程训练:

(指导老师:

杨勇)

(一)熟悉keil软件的使用和仿真步骤

Keil集成开发软件基本操作

1、新建一个项目文件

2、首先点击KeiluVision2,进入uVision2界面。

点击工具栏Project选项中的NewProject,准备开始建立自己的项目

3、输入工程文件名称,并选择保存工程文件的目录。

4、为项目文件选择一个目标器件(如AT89C51),如图所示。

5、用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择“为目标‘目标1’设置选项”如下图所示。

6、在“为目标‘目标1’设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真,连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的[设置]选项,在此对对话框中选择串口和波特率,串口根据所连电脑来决定。

7、点击“文件/新建”创建源程序文件并输入程序代码。

8、在文本框中输入原程序

9、点击“文件/保存“对程序进行保存。

10、用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择添加文件到原代码组,如下图所示:

11、在弹出的添加文件框中,选择需要添加到项目中的文件。

12、点击编译连接的图标,对项目文件进行编译

13、点击“调试/启动/停止调试”进入调试界面

若要查看内存中的数据,点击“视图/存储器窗口”

(二)实训100例部分

LED显示

#include

sbitled=P3^2;

voiddelay_ms(unsignedcharx_ms)

{

unsignedchari;

while(x_ms--)

{

for(i=124;i>0;i--)

{

}

}

}

voidmain(void)

{

while

(1)

{

led=1;

delay_ms(100);

led=0;

delay_ms(100);

}

}3.78只数码管滚动显示单个数字

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeDSY_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

voidDelayMS(uintx)

{

uchari;

while(x--)for(i=0;i<120;i++);

}

voidmain()

{

uchari,k=0x80;

while

(1)

{

for(i=0;i<8;i++)

{

P2=0xFF;

k=_crol_(k,1);

P0=DSY_CODE[i];

P2=k;

DelayMS(300);

}

}

}

3.88只数码管显示多个不同字符

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeDSY_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

voidDelayMS(uintx)

{

uchari;

while(x--)for(i=0;i<120;i++);

}

voidmain()

{

uchark,m=0x80;

P0=0xff;

P2=0x00;

while

(1)

{

for(k=0;k<8;k++)

{

m=_crol_(m,1);

P2=m;

P0=DSY_CODE[k+1];

DelayMS

(2);

}

}

}

3.35定时器控制数码管动态显示

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeDSY_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF};

ucharcodeTable_OF_Digits[][8]=

{

{0,9,10,1,2,10,2,5},

{2,1,10,5,7,10,3,9}

};

uchari=0,j=0;

uintt=0;

voidmain()

{

P3=0x80;

TMOD=0x00;

TH0=(8192-4000)/32;

TL0=(8192-4000)%32;

IE=0x82;

TR0=1;

while

(1);

}

voidDSY_Show()interrupt1

{

TH0=(8192-4000)/32;

TL0=(8192-4000)%32;

P3=_crol_(P3,1);

P0=DSY_CODE[Table_OF_Digits[i][j]];

j=(j+1)%8;

if(++t!

=350)return;

t=0;

i=(i+1)%2;

}

3.42报警器和旋转灯

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitSPK=P3^7;

ucharFRQ=0x00;

voiddelayms(uintms)

{

uchari;

while(ms--)for(i=0;i<120;i++);

}

voidmain()

{

P2=0x00;

TMOD=0x11;

TH0=0x00;

TL0=0xFF;

IT0=0;

IE=0x8B;

IP=0x01;

TR0=0;

TR1=0;

while

(1)

{

FRQ++;

delayms

(1);

}

}

voidEX0_INT()interrupt0

{

TR0=!

TR0;

TR1=!

TR1;

if(P2==0x00)

P2=0xE0;

else

P2=0x00;

}

voidT0_INT()interrupt1

{

TH0=0xFE;

TL1=FRQ;

SPK=~SPK;

}

voidT1_INT()interrupt3

{

TH1=-45000/256;

TL1=-45000%256;

P2=_crol_(P2,1);

}

4.121602字符液晶滚动显示程序

#include"REG51.h"

#include"intrins.h"//包含此头文件可直接操作内核的寄存器以及一些定义好的宏

//thisfileforMCUI/Oportortheorther`shardwareconfig

//forLCDDisplay

//DefinefortheportusebyLCDDriver

sbitLCD_EP=P2^7;

sbitLCD_RW=P2^6;

sbitLCD_RS=P2^5;

#defineLCD_Data_BUS_OutP0

#defineLCD_Data_BUS_InP0

codeunsignedcharLCD_InitialCode[]={0x30,0x30,0x30,0x38,0x01,0x06,0x0c};

voidLCD_DataWrite(unsignedcharData)

{

unsignedintRead_Dat=0;

LCD_EP=0;//EP、RS端口为低,RW为高

LCD_RS=0;

LCD_RW=1;

do{

LCD_Data_BUS_In=0xff;

LCD_EP=1;

Read_Dat=LCD_Data_BUS_In&0x80;

LCD_EP=0;

}while(Read_Dat!

=0);//读状态字并判断是否可进行读写操作

LCD_RW=0;//EPRWtoLow

LCD_RS=1;//RSHight

LCD_Data_BUS_Out=Data;

LCD_EP=1;//EPtoHight

LCD_EP=0;//EPtolow

}

voidLCD_RegWrite(unsignedcharCommand)

{

unsignedintRead_Dat=0;

LCD_EP=0;//EP、RS置低,RW置高,表为读状态字

LCD_RS=0;

LCD_RW=1;

do{

LCD_Data_BUS_In=0xff;

LCD_EP=1;

Read_Dat=LCD_Data_BUS_In&0x80;

LCD_EP=0;

}while(Read_Dat!

=0);//读状态字并判断是否可进行读写操作

LCD_RW=0;//RWtoLow,表为写指令

LCD_Data_BUS_Out=Command;

LCD_EP=1;//EPtoHight

LCD_EP=0;

}

unsignedcharLCD_DataRead(void)

{

unsignedcharRead_Dat=0;

LCD_EP=0;//EP、RS置低,RW置高,表为读状态字

LCD_RS=0;

LCD_RW=1;

do{

LCD_Data_BUS_In=0xff;

LCD_EP=1;

Read_Dat=LCD_Data_BUS_In&0x80;

LCD_EP=0;

}while(Read_Dat!

=0);//读状态字并判断是否可进行读写操作

LCD_RS=1;//RS置高,表为读数据

LCD_EP=1;//EPtoHight

Read_Dat=LCD_Data_BUS_In;//读出数据

LCD_EP=0;

returnRead_Dat;

}

unsignedcharLCD_StatusRead(void)

{

unsignedcharRead_Dat=0;

LCD_EP=0;//EP、RS置低,RW置高,表为读状态字

LCD_RS=0;

LCD_RW=1;

LCD_Data_BUS_In=0xff;

LCD_EP=1;

Read_Dat=LCD_Data_BUS_In;//读状态字

LCD_EP=0;

returnRead_Dat;

}

 

include

#definelcdportP0

#defineH1

#defineL0

sbitlcdrs=P2^0;

sbitlcdrw=P2^1;

sbitlcden=P2^2;

voiddelay_ms(unsignedcharxms)

{

unsignedchari;

while(xms--){

for(i=125;i>0;i--){}}

}

voidlcd_write_data(unsignedchardat)

{

lcdrs=H;

lcdrw=L;

lcden=L;

lcdport=dat;

lcden=H;

delay_ms

(2);

lcden=L;

}

voidlcd_write_command(unsignedcharcom)

{}

voidlcd_init(void)

{}

验收:

用1602实现两行显示并闪烁

#include

#definelcdportP0

sbitlcdrs=P2^0;

sbitlcdrw=P2^1;

sbitlcden=P2^2;

voiddelay_ms(unsignedintms)

{

inti;

while(ms--)

{

for(i=125;i>0;i--)

{}

}

}

voidwrite_data(unsignedchardat)

{

lcdrs=1;

lcdrw=0;

lcden=0;

lcdport=dat;

lcden=1;

delay_ms

(2);

lcden=0;

}

voidwrite_command(unsignedcharc)

{

lcdrs=0;

lcdrw=0;

lcden=0;

lcdport=c;

lcden=1;

delay_ms

(2);

lcden=0;

}

voidlcd_busy()

{

do

{

lcdrs=0;

lcdrw=1;

lcden=0;

lcden=1;

delay_ms

(1);

}

while(lcdport&0x80);

lcden=0;

}

voidinit_lcd1602()

{

write_command(0x38);

write_command(0x01);

write_command(0x06);

write_command(0x0c);

}

voidmain()

{

init_lcd1602();

while

(1)

{

lcd_busy();

write_command(0x80+0x06);

write_data('w');

delay_ms(10);

write_command(0x80+0x07);

write_data('e');

delay_ms(10);

write_command(0x80+0x09);

write_data('a');

delay_ms(10);

write_command(0x80+0x0a);

write_data('r');

delay_ms(10);

write_command(0x80+0x0b);

write_data('e');

delay_ms(10);

write_command(0x80+0x47);

write_data('y');

delay_ms(10);

write_command(0x80+0x48);

write_data('o');

delay_ms(10);

write_command(0x80+0x49);

write_data('u');

delay_ms(10);

write_command(0x80+0x4a);

write_data('n');

delay_ms(10);

write_command(0x80+0x4b);

write_data('g');

delay_ms(10);

write_command(0x0c);

delay_ms(10);

write_command(0x08);

delay_ms(10);

}

}

第二阶段焊接电路板(指导老师:

王勇叶敦范)

2.1﹑单片机最小系统板焊接

1.地点:

信息楼405

2.目的:

完成电路板和JTAG下载线的硬件焊接

3.内容:

(1)首先对照元件清单和电路图,检查器件是否完整,型号﹑规格﹑安装是否

正确。

(2)然后将各器件根据焊接规则焊接到电路板上,其中对于器件的摆放方向和

位置需十分注意。

先焊发热器件电阻和较低的电容,再焊较大的器件

(3)而后,焊接JTAG线,JTAG线里面的芯片电阻,电阻电容均为贴片封装,

焊接时需小心谨慎,对于各条线引的焊接也需谨慎,按照其对应的顺序进行焊接,焊接结束后,自行组装。

第三阶段电路调试与程序设计

(指导老师:

陈分雄王勇叶敦范)

3.1﹑电路调试及功能测试

1.地点:

信息楼503

2.目的:

检查已经焊好的电路板和JTAG下载线是否无误

3.内容:

⑴﹑先用万用表检查电路板焊接是否都正确。

⑵﹑当检查没有短路,断路,虚焊,漏焊等错误后,给电路板供电,看二极管是否亮,是否有器件过热,有可能二极管或三极管会在焊接的过程中被烧坏,那样的话就要重新焊器件。

⑶﹑再用Keil软件给板子拷正确的程序,检查是否能按功能正常工作。

单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。

3.2﹑蜂鸣器调试

1.目的:

主要是检验程序能否下载到芯片,蜂鸣器能正常工作,掌握程序的编译下载到芯片的方法。

2.内容:

⑴﹑在Keil环

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2