电子项目工程实习报告.doc
《电子项目工程实习报告.doc》由会员分享,可在线阅读,更多相关《电子项目工程实习报告.doc(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/*中国地质大学(武汉) 课 程: 电子工程实习报告 学 号: 班 级: 姓 名: 指导老师:陈分雄、叶敦范、罗大鹏、杨勇、王勇目 录第一阶段 软件使用与仿真31.1 单片机系统原理图绘制31.2 PCB制板31.3 编程训练4第二阶段 焊接电路板182.1单片机最小系统板焊接 18第三阶段 电路调试与程序设计183.1 电路调试及功能测试183.2 蜂鸣器调试193.3 串口通信调试 193.4 液晶显示调试193.5 数码管及键盘控制调试203.6 系统综合功能设计20附录21实习小结38第一阶段 软件使用与仿真1.1单片机系统原理图绘制(指导老师:罗大鹏)1.地点:信息楼5032.目的:
2、熟练掌握protel99的使用方法,绘制单片机最小系统原理图,且保证ERC校验无误,并生成网络报表3.内容:文件管理先新建设计数据库,再在数据库中新建各种文件,主要用到Schematic Document和PCB Document。在使用中学会及时保存原理图或PCB文件以及熟练文件的导入导出。protel的绘图方法 通过学习掌握绘图的一些方法。要对键盘上的快捷键熟练应用,比如:把原理图的放大Page UP,缩小Page Down,追踪鼠标视野Home,删除Delete,空格键转换元件以及撤销选择区域X-A等。元器件或区域的复制,粘贴,删除等。熟悉界面中的工作条功能。绘制原理图首先添加元件库,包
3、括自制元件和下载的元件库,加上protel自带的元件库。把需要用到的元件在自定义合适大小的图纸上合理摆布,再用导线把各器件连接起来,注意各电源及接地符号,节点,总线等的设置方法,使用绘图工具实现文字注释或其他注释。ERC校验待原理图绘制完毕,然后进行电气法则测试,即ERC校验,若产生错误,则根据错误提示对原电路图进行修改,直至通过ERC校验,原理图无误。修改元器件封装当ERC校验无错时,然后对照元件清单及PCB元件库,对每一个元器件封装进行修改,产生元件清单。修改器件封装,修改其属性中的footprint即可。修改完以后,再进行一次ERC校验,若出现错误,则根据错误提示修改,直至能通过ERC校
4、验无错误产生。生成网络报表待修改封装之后,并再次通过ERC校验无错误产生,生成网络报表。然后对照原电路图把网络报表仔细检查一遍,检查每一个器件与其他器件间的连接是否有误,及是否有元器件的丢失,检查VCC与GND的连接,是否全部连上。若有遗漏或错误,则返回修改,在进行ERC校验,生成网络报表,直至无遗漏和错误。此工作非常繁琐,需耐心和仔细对待。 但由于前些工作比较仔细所以原理图基本没有太大错误。原理图见附录1。1.2PCB制板1.地点:信息楼5032.目的:熟练掌握protel99的使用方法,绘制单片机最小系统原理图3.内容:新建PCB文件,并添加老师要求的PCB元件库。导入网络报表导入上一阶段
5、产生的网络报表,在导入过程中会进行错误检查,若产生错误,则需返回上一阶段,根据错误提示,修改元器件的封装等等,然后按步骤生成网络报表,再次导入网络报表,直至导入无错误。手工布局在PCB图纸上KeepOutLayer层放置线定义板宽,在导入网络报表无错误之后,然后执行,在将导入的各元器件进行布局摆放,其中键盘按照矩阵形式排列,我们所用的是16个键,按44矩阵进行排列,其中外部扩展及下载口及电源及串口等等器件应放置在PCB板边缘,在元件布局应按原理图的各个模块的具体分布进行,把每一模块的各器件尽量摆放在一起,并标注各个模块,再逐步调整,使所用PCB板面积尽量小,利用效率最大。自动布线及手工改动首先
6、设计规则,主要是电线宽度,孔大小约束。待手工布局结束后,进行自动布线,自动布线结束后,仔细检查布线效果,布线应遵循导线走钝角,线尽量走近路,尽量保证TopLayer层走横线,BottomLayer层走竖线。然后去掉自动布线所产生的毛刺,修改走直角或锐角的连线,并使线程尽量短。此过程中应逐个局部仔细检查修正。修正结束后,可以对PCB添加泪滴焊盘,进行覆铜或放置汉字,防止实际硬件电路静电干扰。 PCB板见附录2。设计规则检查对已经布局布线的PCB图进行设计规则检查,对PCB图进行查错,以保证其正确无误。观看3D图 单PCB图画好后,可以观看其3D效果图,以验证其布局布线合理,和提前知晓制成板后的效
7、果。 PCB3D效果图见附录3生成PCB报表最后可以生成PCB报表,包括电路板状态信息报表,引脚信息报表,元件信息报表,网络分析信息报表等,以对板子有个清晰的认识。1.3、编程训练:(指导老师:杨勇)(一 )熟悉keil软件的使用和仿真步骤Keil集成开发软件基本操作1、 新建一个项目文件2、 首先点击 Keil uVision2 ,进入uVision2界面。点击工具栏Project选项中的NewProject,准备开始建立自己的项目3、 输入工程文件名称,并选择保存工程文件的目录。 4、 为项目文件选择一个目标器件(如AT89C51),如图所示。 5、 用鼠标对项目工作区的目标1,点击右键在
8、弹出的菜单中选择“为目标目标1设置选项”如下图所示。 6、 在“为目标目标1设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真,连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的设置选项,在此对对话框中选择串口和波特率,串口根据所连电脑来决定。7、 点击“文件/新建”创建源程序文件并输入程序代码。8、 在文本框中输入原程序9、 点击“文件/保存“对程序进行保存。 10、 用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择添加文件到原代码组,如下图所示: 11、 在弹出的添加文件框中,选择需要添加到项目中的文件。 12、 点击编译连接的图标,对项目文件进行编译1
9、3、 点击“调试/启动/停止调试”进入调试界面若要查看内存中的数据,点击“视图/存储器窗口” (二)实训100例部分LED显示#include sbit led=P32;void delay_ms(unsigned char x_ms)unsigned char i;while(x_ms-)for(i=124;i0;i-)void main(void)while(1)led=1;delay_ms(100);led=0;delay_ms(100);3.7 8只数码管滚动显示单个数字#include#include#define uchar unsigned char#define uint un
10、signed intuchar code DSY_CODE=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;void DelayMS(uint x)uchar i;while(x-) for(i=0;i120;i+);void main()uchar i,k=0x80;while(1)for(i=0;i8;i+)P2=0xFF;k=_crol_(k,1);P0=DSY_CODEi;P2=k;DelayMS(300);3.8 8只数码管显示多个不同字符#include#include#define uchar unsigned char#def
11、ine uint unsigned intuchar code DSY_CODE=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;void DelayMS(uint x)uchar i;while(x-) for(i=0;i120;i+);void main()uchar k,m=0x80;P0=0xff;P2=0x00;while(1)for(k=0;k8;k+)m=_crol_(m,1);P2=m;P0=DSY_CODEk+1;DelayMS(2);3.35 定时器控制数码管动态显示#include#include#define ucha
12、r unsigned char#define uint unsigned intuchar code DSY_CODE=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF;uchar code Table_OF_Digits8=0,9,10,1,2,10,2,5,2,1,10,5,7,10,3,9;uchar i=0,j=0;uint t=0;void main()P3=0x80;TMOD=0x00;TH0=(8192-4000)/32;TL0=(8192-4000)%32;IE=0x82;TR0=1;while(1);void DSY
13、_Show() interrupt 1TH0=(8192-4000)/32;TL0=(8192-4000)%32;P3=_crol_(P3,1);P0=DSY_CODETable_OF_Digitsij;j=(j+1)%8;if(+t!=350) return;t=0;i=(i+1)%2;3.42 报警器和旋转灯#include#include#define uchar unsigned char#define uint unsigned intsbit SPK=P37;uchar FRQ=0x00;void delayms(uint ms)uchar i;while(ms-) for(i=0
14、;i120;i+);void main()P2=0x00;TMOD=0x11;TH0=0x00;TL0=0xFF;IT0=0;IE=0x8B;IP=0x01;TR0=0;TR1=0;while(1)FRQ+;delayms(1);void EX0_INT() interrupt 0TR0= !TR0;TR1= !TR1;if( P2=0x00)P2=0xE0;else P2=0x00;void T0_INT() interrupt 1TH0=0xFE;TL1=FRQ;SPK=SPK;void T1_INT() interrupt 3TH1=-45000/256;TL1=-45000%256;P
15、2=_crol_(P2,1);4.12 1602字符液晶滚动显示程序#include REG51.h#include intrins.h /包含此头文件可直接操作内核的寄存器以及一些定义好的宏/ this file for MCU I/O port or the orthers hardware config/ for LCD Display/ Define for the port use by LCD Driversbit LCD_EP=P27;sbit LCD_RW=P26;sbit LCD_RS=P25;#define LCD_Data_BUS_Out P0#define LCD_Da
16、ta_BUS_In P0code unsigned char LCD_InitialCode=0x30,0x30,0x30,0x38,0x01,0x06,0x0c;void LCD_DataWrite(unsigned char Data)unsigned int Read_Dat=0;LCD_EP = 0; /EP、RS端口为低,RW为高LCD_RS = 0;LCD_RW = 1;doLCD_Data_BUS_In = 0xff;LCD_EP = 1;Read_Dat = LCD_Data_BUS_In&0x80;LCD_EP = 0;while(Read_Dat!=0); /读状态字并判断
17、是否可进行读写操作LCD_RW = 0; /EP RW to LowLCD_RS = 1; /RS HightLCD_Data_BUS_Out = Data;LCD_EP = 1; /EP to HightLCD_EP = 0; /EP to lowvoid LCD_RegWrite(unsigned char Command)unsigned int Read_Dat=0;LCD_EP = 0; /EP、RS置低,RW置高,表为读状态字LCD_RS = 0;LCD_RW = 1;doLCD_Data_BUS_In = 0xff;LCD_EP = 1;Read_Dat = LCD_Data_B
18、US_In&0x80;LCD_EP = 0;while(Read_Dat!=0); /读状态字并判断是否可进行读写操作LCD_RW = 0; /RW to Low,表为写指令LCD_Data_BUS_Out = Command;LCD_EP = 1; /EP to HightLCD_EP = 0;unsigned char LCD_DataRead(void)unsigned char Read_Dat=0;LCD_EP = 0; /EP、RS置低,RW置高,表为读状态字LCD_RS = 0;LCD_RW = 1;doLCD_Data_BUS_In = 0xff;LCD_EP = 1;Read
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 项目 工程 实习 报告 讲演 呈文
限制150内