嵌入式实习报告3篇(嵌入式实训报告心得体会)
下面是范文网小编整理的嵌入式实习报告3篇(嵌入式实训报告心得体会),供大家参阅。
蓝牙技术概述
蓝牙(Bluetooth)是目前比较流行的一种短距离无线通讯技术,其主要目的就是要在全世界范围内建立一个短距离的无线通信标准。设计者的初衷是用隐形的连接线代替线缆。它取代目前多种电缆连接方案,通过统一的短程无线链路,在各信息设备之间可以穿过墙壁或公文包,实现方便快捷、灵活安全、低成本小功耗的话音和数据通信。 “蓝牙”技术的目的是使特定的移动电话、便携式电脑以及各种便携式通信设备的主机之间在近距离内实现无缝的`资源共享。
一、 实践目的
了解处理器的发展
掌握WinCE嵌入式系统开发方法和开发流程。
掌握WinCE嵌入式C#编程方法。
掌握WinCE嵌入式网络通信技术。
掌握Bluetooth编码技术
二、实践要求
1. 了解WinCE操作系统的裁剪及定制;
2. 设计蓝牙广播系统(包括服务器端和客户端);
3.设计蓝牙文件传输系统(包括服务器端和客户端);
4. 应用程序安装和部署。
三、实践内容
(1)了解Wince平台
了解处理器的发展,什么是嵌入系统,嵌入式系统的应用,以及窗体与控件的概念,掌握WinCE嵌入式C#编程方法,对实验平台有一定的认识,更进一步的认识蓝牙。了解编写应用程序的流程,理解了Windows 窗体,学会了使用基本控件如标签、文本、按钮、列表框和组合框,掌握窗体的常用属性和方法。
(2)蓝牙搜索、浏览与发送,蓝牙设备列表,配对设备清空,删除。
四、原理介绍
1.嵌入式系统:
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
一般由硬件设备、嵌入式操作系统、嵌入式应用软件组成。具有专用性、高效简洁性、高可靠和低能耗性、自身特殊性的特点。
实践报告学习嵌入式是我的梦想,我很羡慕能够在嵌入式方面独档一面的高手,希望有一天我也能像他们那样自信自如的在嵌入式这片热土上挥洒着自己的青春和浪漫。带着无比豪迈的心情和缤纷的梦想来到易嵌学习嵌入式,在新的老师、新的同学和新的环境中,我开始了我的嵌入式学习,开始了新一轮的拼搏。
在易嵌短暂的两个月,我们从linux基础入手,强化了c语言编程,学习了linux系统编程和网络编程。时间虽短,但成长很快,无论是理论知识还是实践能力都得到了大幅度的提高。在这里将理论和实践相结合,相互促进,相互补充,使得学习更加透彻。通过用不同方法实现同一个项目,不断深入,层层推进,学以致用!
在易嵌的这个暑假,我过得充实而快乐。在这里有着同学间的探讨、师生间的互动和魔鬼般的训练!在我丰富多彩的人生路上留下了永远亮丽与难忘的记忆!
实践报告正文:看着四年的大学生活就快要结束了,心中隐隐有一种伤感与失落,我陷入了沉思:该挺直腰杆走自己的路了!学习嵌入式是我的梦想,我很羡慕能够在嵌入式方面独档一面的高手,希望有一天我也能像他们那样自信自如的在嵌入式这片热土上挥洒着自己的青春和浪漫。
当我决定好好利用这个暑假,学习我一直都想去学的嵌入式的时候,就注定要在我丰富多彩的人生路上留下永远亮丽与难忘的记忆!算算毕业的时间,我已经闻到了离别的气息,在这即将远离大学时代的时刻,才真正懂得回眸的意义。想想走过的路,想想现在的路,想想来时的路,不知道未来能否成功,既然选择了远方,就注定要风雨兼程!带着无比豪迈的心情和缤纷的梦想来到易嵌学习嵌入式,希望在这崭新的一页留下人生的美好!在新的老师、新的同学和新的环境中,我开始了我的嵌入式学习,开始了新一轮的拼搏。
无论现在多么努力都无法追回失去的金色年华,所以在开班典礼的时候,我便为自己制定了目标!我将好好利用最后一个暑假,多学些知识锻炼自己,为自己储备一些精神食粮并不断开拓视野和提升自己的能力,让自己能够在毕业的时候成为学校的骄傲!
在易嵌短暂的两个月,我们从linux基础入手,强化了c语言编程,学习了linux系统编程和网络编程。时间虽短,但成长很快,无论是理论知识还是实践能力都得到了大幅度的提高。
通过对linux操作系统的学习,我初步掌握了linux基础。刚开始我对linux只是有一点儿了解,但并没有真正的去接触。在这段时间里,从linux系统安装开始着手,了解linux的发展,相比其他系统,它有很多优点。在安装好系统后,学习了linux的分区命名、linux的常用命令、文本编辑器vi、shell的使用、源代码的.编译和调试、多模块的编译和链接以及管理工具。通过这些学习,我基本能够在linux系统下通过vi编辑器编写c语言程序,通过一些常用命令来调试、查看程序。
能够在这么短的时间内初步掌握linux,与在学校学习一门课程意义完全不同,通过老师的讲解,自己的练习,同学之间的交流,能够加深印象,熟练操作。
学习linux基础只是我嵌入式学习历程的一个开始,虽然有好多命令还不太熟悉,有好多命令都还没有去尝试过,但我相信随着后期的学习,我将逐渐熟练掌握。在c语言学习阶段,我学到了很多新的知识,变量、函数、数组、指针、指针函数、函数指针、指针数组、数组指针、结构体、结构体指针数组、关键字……,从模块到整体,从写代码的风格到代码优化……,通过这段时间的学习,我感觉自己写出的代码比以前更直观,更注重细节,bug也更少了!
在半个月时间的c语言学习中,我从刚开始的重温c语言到后来的位运算、堆栈、单向链表、双向链表以及list_head。新知识以及注意点渐渐增多,在这段时间,我创造了很多个记录,比如11小时完成30道编程题,独自完成一个功能比较齐全的学生选课管理系统等,特别是刚接触到链表和list_head的时候,不在像前面那样轻松了,还记得那段时间,每到晚上热醒的时候,又想起了我的学生管理系统,本来就少的可怜的睡觉时间,又被……,真可谓苦我心志矣!
不过,等我美美的睡上一觉,醒来回想起这段时间的学习,真是一个大丰收!虽然不能说是很精通c语言,至少可以说真的入门了……,我又向自己的目标迈出了坚实的一步!这段时间,我时常会想,如果一切可以重来,我会选择另外一种学习方式,从一开始就夯实基础!可是这是不现实的,经历了无数次的风雨后,柔弱的我早已学会了坚强。通过不断的交流与学习,我懂得了生活,懂得了学习,懂得了时间,懂得了成长,懂得了奋斗和拼搏。现在知道,为时不晚,从现在开始,我将为自己开辟一条适合自己的道路。
伴随着烈日,我们又开始了新的征程,开始深入学习linux系统程序设计,在这个阶段,我们学习了操作系统基础、并发性、linux系统接口、进程和线程以及进程间的通信。通过这阶段的学习,我对linux有了更加深入的了解,能
够熟练进行多线程多进程的操作。
紧接着就进入了网络编程学习阶段,从网络基础到linux网络编程,我更加深入的学习了tcp/ip协议和osi模型,理解了数据报的传输过程,对网络在嵌入式方面的应用进行了深入的学习,学会了socket编程。学完后重新对学生选课管理系统进行了改写,用c/s模型改写成多用户登录,利用线程实现资源共享。在项目改写中,不仅融合了前面的c语言知识,还充分的应用了linux系统编程和socket编程,将理论和实践相结合,相互促进,相互补充,使得学习更加透彻。通过用不同方法实现同一个项目,不断深入,层层推进,学以致用!
在易嵌的这个暑假,我过得充实而快乐。在这里有着同学间的探讨、师生间的互动和魔鬼般的训练!军队通过扎实的训练培养出来一代代革命军人,相信不久的将来,我也会成为一名优秀的嵌入式工程师!
通过嵌入式控制系统的实习,使我们了解并掌握根据嵌入式控制系统项目要求,如何设计符合控制逻辑的原理图,复合原理图及电子电气EMC的PCB图,学习电子元器件的`焊接,PCB板的调试等,最终掌握嵌入式控制系统的设计及工艺等。
一、设计实习任务
1. 焊接ARM7(LPC2132)最小系统PCB。要求仔细认真焊接,并调试使其能正常工作(提供最简易测试程序)。
2. 设计数码管动态扫描显示电路,三个按键的键盘电路,模拟电压取样电路等。要求原理图设计合理,要求有与最小系统板的接口,正确焊接,调试后能正常工作。
3. 控制软件设计
在嵌入式控制系统的设计中,系统控制软件的设计是一项非常重要且艰巨的工作,系统能否正常可靠的工作,成败在此一举。因此要求同学们认真仔细的设计、调试控制软件。要求软件语句精炼,整体健壮,有一定的抗干扰能力。
二、数码管动态扫描显示电路控制软件设计
要求显示电路能正常显示数据,数码管无闪烁,明亮,可随时刷新显示的数据,参考流程图见图1。
图 1
三.键盘识别软件设计
嵌入式控制系统一般的是配备简易键盘,即根据需要设3~4按键基本能满足使用要求,因此键盘控制软件也是必须的,参考下图
四、ADC控制软件设计
五、 电路与程序
六、程序源代码
#include "LPC2294.h" 图 3
typedef unsigned int U32; //无符号32位整型变量
typedef unsigned char U8; //无符号8位整型变量
//typedef signed char int8; //有符号8位整型变量
typedef unsigned short U16; //有符号8位整型变量
#define Fpclk 11059200
#define DIS_1 0x06 //个位选通
#define DIS_2 0x05 //十位选通
#define DIS_3 0x03 //百位选通
#define KEY1 0x04 //+
#define KEY2 0x02 //-
#define KEY3 0x01 //ok
U16 cunt;
U16 data_dis,data_set;
U8 dis3=10,dis2=10,dis1=10;
U8 flag_dis,dis_n;
U8 timeout;
const U8 led_seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xff,0x00}; //段吗: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 all_l 关显 void __irq Timer0_ISR(void);
void cpu_init(void)
{
PINSEL0 = 0x00;
IO0DIR = 0x3FF; //显示分配在P000~P010 ,段码P000~P007,位码P008~P010 //健P016~P018
//定时器0
T0TC = 0;
T0PR = 0;
T0MCR = 0x03;
T0MR0 = Fpclk/1000; //定时1mS
T0TCR = 0x01;
VICIntSelect = VICIntSelect&(~(1<<4));
VICVectCntl0 = 0x20|4;
VICVectAddr0 = (U32)Timer0_ISR;
VICIntEnable = (1<<4);
}
void updata(void)
{
U16 temp;
// u8 temp1,temp2,temp3;
//WDT_CONTR=0x3c;
if(data_dis<=999)
{
dis3=temp/100; //百位
temp=temp%100;
dis2=temp/10; //十位
dis1=temp%10; //个位 }
}
//====================================== // Timer0_ISR
//====================================== void __irq Timer0_ISR(void)
{
cunt++; if(cunt%10==0) flag_dis=1; if(timeout > 0) timeout--;
}
//====================================== //display共阳极动态扫描显示
//====================================== display()
{
//WDT_CONTR=0x3c;
dis_n++;
switch(dis_n)
{
case 1:
IO0PIN=led_seg[dis1] | DIS_1<<8; //显示个位 break;
case 2:
IO0PIN=led_seg[dis2] | DIS_2<<8; //显示十位 break;
case 3:
IO0PIN=led_seg[dis2] | DIS_3<<8; //显示百位 break;
}
if(dis_n>=3)
dis_n=0;
}
//=========================
// key_do
//按键接于P0.16~18
//=========================
void key_do(void)
{
U8 key,key_d;