完整版电子信息专业毕业实习日志.docx
《完整版电子信息专业毕业实习日志.docx》由会员分享,可在线阅读,更多相关《完整版电子信息专业毕业实习日志.docx(11页珍藏版)》请在冰点文库上搜索。
完整版电子信息专业毕业实习日志
河南理工大学
毕业实习日志
姓名:
xxxx
学号:
xxxxxxxxxxxx
专业班级:
电信07-2班
指导老师:
xxxxx
所在学院:
电气工程与自动化学院
2011年3月22日
2011年3月1日星期二晴
开学都两天了,不过都是在学校过的,趁着还有时间,就到图书馆借了关于毕业设计的资料,都是AT89S52一类的单片机。
由于我选的毕业设计题目是“语音智能药品提醒盒”,所以我打算选用AT89S52为控制芯片,查了一些关于单片机AT89S52的资料,它具有低电压供电和体积小等特点,四个端口只需要三个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电,此处我们采用USB接口供电,省去了大量空间,更适合于便携式产品的应用。
AT89S52主要特性:
与MCS-51单片机产品兼容,4K字节在系统可编程Flash存储器;
1000次擦写周期,全静态工作:
0Hz—33MHz;
32个可编程I/O口线,2个16位定时器/计数器;
6个中断源,全双工UART串行通道;
低功耗空闲和掉电模式,掉电后中断可唤醒;
看门狗定时器,双数据指针;
灵活的ISP编程,4.0---5.5V电压工作范围。
其内部结构可以划分为CPU、存储器、并行口、串行口、定时/计数器和中断逻辑几个部分。
设计时需要注意的几个端口:
P0口(39—32):
是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。
可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入输入端用。
在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。
P3口(10—17):
是一组带有内部上拉电阻的8位双向I/O口,,P3的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。
作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能。
部分控制总线的功能:
/Vpp(31):
内部和外部程序存储器选择线。
=0时访问外部ROM0000H—FFFFH;
=1时,地址0000H—0FFFH空间访问内部ROM,地址1000H—FFFFH空间访问外部ROM。
本次设计
接高电平。
XTAL1(19)和XTAL2(18):
使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。
RST/VPD(9):
复位信号输入端。
AT89S52接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。
第二功能是VPD,即备用电源输入端。
当主电源Vcc发生故障,降低到低电平规定值时,VPD将为RAM提供备用电源,发保证存储在RAM中的信号不丢失。
单片机最小系统是有系统时钟电路和复位电路组成,具体资料如下:
系统时钟电路设计
T89S52时钟有两种方式产生,即内部方式和外部方式。
AT89C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电路。
外接石英晶体(或陶瓷部时钟,采用外部时钟。
在这种情况下,外部时钟脉冲接到XTAL1端,既内部时钟发生器的输入端,XTAL2悬空。
由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。
本次设计采用内部震荡电路,瓷片电容采用30P,晶振采用12MHZ。
复位电路设计
单片机系统的复位电路在这里采用的是上电+按钮复位电路形式,其中电阻R采用10KΩ的阻值,电容采用电容值为10μ的电解电容。
2011年3月3日星期四晴
C语言是作为一名软件工程师必须的一本书,这两天又看了C语言和数据结构,两年没有学了,才发现很多知识都已经遗忘了。
这两天学的重要知识点如下:
①不同类型数据在算术运算时的变化,赋值运算的强制转换。
②用printf()函数输出保留小数点后两位,第三位采用四舍五入的浮点型数据,前都没有注意这个知识点,导致我在考计算机等级考试被这一题给拦住了。
③输入函数scanf()和gets()之间的区别,scanf函数输入字符串时,以空格、表或回车符作为字符串间隔的符号,而gets函数可以完整地读入带有空格的字符串。
④运算符的优先级,尤其是算术运算符、关系运算符及逻辑运算符之间的优先级。
⑤不能把结构体数组元素作为一个整体直接进行输入输出,只能以单个成员为对象进行输入输出。
2011年3月5日星期六晴
昨天做了一套C语言试题,虽然已经看了两天的书,但是还是有许多的知识点不会,结果将近一半的题目做错了,像指针、数组等,以及它们之间的区别!
总结了一下这两天学的知识点:
①数组元素不能整体应用,且数组元素实质就是变量名,代表一个内存单元。
②C语言没有定义字符串变量,字符串的存储完全依赖于字符数组。
③数组名是一个地址常量,不能更改,而指针式一个地址变量,可以更改它的内容。
④static型数组元素不赋初值,系统自动赋以0值。
⑤在数组中,数组是不能相互赋值的,而结构体类型变量可以相互赋值。
不能将一个结构体类型变量作为一个整体加以引用,而只能对结构体类型变量中的各个成员分别引用。
2011年3月7日星期一晴
这两天查了一些毕业设计的资料,我做的毕业设计题目是“语音药品提醒盒”。
我的总体设计是把它分为5个模块:
语音模块、定时模块、输入模块、显示模块和单片机最小系统。
通过最小系统促使单片机工作,通过输入模块把吃药的时间输入给系统,由定时模块设置好时间,最后由语音模块发出声音告诉病人该吃药了。
而语音模块、定时模块和输入模块都和单片机的部分引脚相连,通过引脚向设备发出指令,做出相应的动作。
2011年3月9日星期三晴
这两天就语音模块查了一些资料,在此毕业设计中,我查了关于ISD400x系列语音芯片的资料,它工作电压为3V,单片录放时间,音质好,适用于移动电话及其他便携式电子产品。
芯片是采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存储阵列。
芯片设计是基于所有操作必须由微控制器控制,操作命令可直接串行通信接口送入。
芯片采用多电平直接模拟量存储技术,每个采样值直接存储在片内闪烁存储器中,因此能够非常真实、自然地在现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。
采样频率可为4.0kHz,5.3kHz,6.4kHz,8.0kHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于闪烁存储器中,可在断电情况下保存100年以上,反复录音10万次以上。
大多数操作ISD00x系列语音芯片的用户都习惯使用51系列单片机芯片,该系列单片机可与ISD22000,4000系列语音芯片非常方便地连接,ISD芯片需要3V电源供电,但信号线可直接与5V单片机系统连接。
2011年3月11日星期五晴
来南京已经三天了,在我们正式开课之前,学院考虑到我们的基础很差,就先补习了一点C语言的知识,其中我以前没有注意到得知识点有:
①逗号运算符的结合性为从左到右,最后一个表达式的值就是逗号表达式的值,逗号优先级在所有的运算符中是最低的。
②一种新的数据类型—布尔类型bool,它只有两个值:
零和非零。
③continue只结束本次循环,转入下一次循环条件的判断和执行。
而break语句结束整个循环过程,不在判断执行循环的条件是否成立。
④逻辑&&运算时,当左边为假时,右边不在判断,等式为假;逻辑||运算时,当左为真时,右边不在判断,等式为真。
⑤在使用scanf函数时,输入数据的类型必须和定义是的类型保持一次,否则会导致数据丢失。
2011年3月13日星期日阴
这两天是周末时间,学院不安排学生上课,就想了一下毕业设计中的定时模块,基本的MCS-51单片机内部有两个16位可编程的定时器/计数器T0和T1。
它们各自具有4种工作状态,其控制字和状态均在相应的特殊功能寄存器中,可以通过软件对控制寄存器编程设置,使其工作在不同的定时状态或计数状态。
以定时器/计数器T0为例,在方式0下,TL0的低5位和TH0的8位构成13位计数器,因此计数工作方式时,计数值的范围是:
1~8192(213)。
当设定为定时工作方式时,定时时间的计算公式为:
(213-计数初值)×晶振周期×12 或 (213-计数初值)×机器周期
通过设定单片机内部的定时功能,对定时中断模块进行初始化,由独立按键输入时间,再通过中断实现单片机的定时功能,进而引起单片机引脚电平做出相应的变化,控制语音模块发出声音和液晶显示器显示出提示信息。
2011年3月15日星期二晴
还是补习C语言知识,这两天主要是将讲数组和指针,以及它们之间的差别。
其中比较重要的知识点有:
①指针变量是用来存放地址的变量,而指针只是一个地址量,数组名是一个地址常量,不能修改它的内容,而指针在声明时,还能赋初值。
②指针数组指的是数组中的元素是指针变量,它是一个数组,元素是指针,元素相当于二位数组的行名。
③在C语言中,数组不能作为一个整体参与任何运算,数组的处理是通过逐个处理其元素来实现的。
④注意for循环的控制语句,由于人工计算容易出错,因此可以让计算机来计算数组的大小,预算符sizeof给出其后的对象或者类型的大小(以字节为单位)。
整个数组的大小除以单个元素的大小就是数组中元素的数目。
⑤数据在内存中存储的方式具体有四种:
自动、静态的、寄存器的和外部的。
其中用静态声明的局部变量,函数中局部变量的值在函数调用结束后不消失,而是保留其原来的值,即占用的存储单元不释放,在下次调用时,该变量的值就是上次调用后的值。
2011年3月18日星期五晴
终于结束了C语言的补习,正式进入Linux的学习,主要讲了Linux的发展,各种Linux的发行的各种版本,Linux的体系结构,vi编辑器。
①嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
②Linux内核支持多用户、多任务模式运行。
③vi编辑器基本上可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode)。
注意,就是您进入vi之后,是处于命令行模式(commandmode),您要切换到「插入模式(Insertmode)才能够输入文字。
对于第一次用vi,有几点注意要提醒一下:
①用vi打开文件后,是处于命令行模式(commandmode),您要切换到插入模式(Insertmode)才能够输入文字。
切换方法:
在「命令行模式(commandmode)下按一下字母i就可以进入插入模式(Insertmode),这时候你就可以开始输入文字了。
②编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:
按「ESC」键。
③保存并退出文件:
在命令模式下输入:
wq即可!
(别忘了wq前面的:
)
2011年3月20日星期日小雨
又是周末时间,趁这个时间,把这一周关于毕业设计的想法重新整理了一下思路,主要是关于输入模块和显示模块。
其中输入模块是由三个按键组成,显示模块由1602显示。
输入模块的4个按键,主要是完成设定吃药的时间,第一个按键功能是切换,可以切换到设定模式和显示时间两种模式,第二个按键功能是切换时、分、秒,第三个按键功能是实现加1,第四个按键功能是实现减1.通过这四个键完成吃药时间的设定。
液晶显示器的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。
各种型号的液晶通常是按照显示字符的行数或液晶点阵的行、列数来命名的。
液晶体积小、功耗低、显示操作简单,但是它有个致命的弱点,其使用的温度范围很窄,通用型液晶正常工作温度范围为0到55度,存储温度范围为-20到60度,即使是宽温级液晶,其正常工作温度范围也仅为-20到70度,存储温度范围为-30到80度,在设计时选用合适的液晶。
显示模块有1602来实现,1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
2011年3月22日星期二晴
这两天主要学了Shell的基本命令和Linux文件系统,其中Shell主要学习了Shell的命令格式与编辑、Shell特殊字符、Shell基本系统命令、用户管理和进程管理,而Linux文件系统主要学习了文件系统的类型、文件系统结构、文件系统导航、文件资源管理,文件内容显示,连接文件创建和文件压缩和打包。
了解到Shell是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互,它是一个命令行解释器,当需要重复执行若干命令,可以将这些命令集合起来,加入一定的控制语句,编辑成为Shell脚本文件,交给Shell批量执行。
Shell的作用就是遵循一定的语法将输入的命令加以解释并传给系统,它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至编写一些程序。
知道了了Linux是用于组织和管理计算机存储设备上的大量文件,并提供用户交互接口。
用户既可以使用界面友好的Nautilus图形文件管理器,也可以使用功能强大的Shell文件系统管理工具。
2011年3月24日星期四晴
昨天我们学习了Linux网络配置管理,主要内容是网络配置基础、静态IP地址、查看网络连接状态、配置TFTP服务和配置NFS服务,实现Linux网络配置的惟一目标就是修改系统中众多的网络配置文件,而网络命令式进行网络配置的基本工具。
今天学习了Shell编程基础,主要内容是Shell基础、Shell变量及环境变量、Shell测试语句、Shell控制语句、Shell函数和Shell编程调试方法。
Linux具有强大的网络功能,它提供了许多完善的网络工具,可以帮助用户轻松完成各种复杂的网络配置,实现任何所需要的网络服务。
用户既可以通过命令行的方式,也可以通过友好的图形界面,轻松完成网络配置。
实现Linux网络配置的惟一目标就是修改系统中众多的网络配置文件,而网络命令是进行网络配置的基本工具。
NFS(NetworkFileSystem)主要实现了Linux系统之间的资源共享,它是将某台Linux主机的若干目录共享出来,交由其他Linux主机直接使用。
NFS是一种分布式文件系统,采用了典型的服务器、客户机工作模式。
在数据传送过程中,使用了远程调用RPC(RemoteProcedureCall)协议。
NFS所提供的共享文件服务是建立在高度信任基础上的,所以在向其他用户释放共享资源之前,一定要确保对方的可靠性。
shell是操作系统的最外层。
shell合并编程语言以控制进程和文件,以及启动和控制其它程序。
shell通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。
shell向提供了与操作系统通信的方式。
此通信以交互的方式(来自键盘的输入立即操作)或作为一个shell脚本执行。
shell脚本是shell和操作系统命令的序列,它存储在文件中。
Shell脚本语言是解释型语言,它的本质是Shell命令的有序集合。
通过对Shell编程的学习发现,Shell语言和C语言的思想没有变化,改变的只是格式,只要学过C语言的同学,Shell语言也就很容易上手。
实习总结
为期四周的毕业实习结束了,总体感觉是这次我们很好地完成了实习内容,达到了实习的目的。
这次实习的针对性特别强,积累了部分基础知识,为下一步的毕业设计打下了很好的基础。
这次实习是大学期间最后一次实习了,回想以前,经历了大大小小很多次实习,可每次实习都会上升一个层次去思考,同样去一个地方,所思考的问题更深了;同样看一个设备所关注的东西更专业化。
因此每次实习的收获都是不一样的。
学校规定的实习时间已经结束了,但是我的实习时间才是刚刚开始。
虽然还没有踏入社会,但已经感觉到社会给我带来的压力,正是因为压力,我才会选择来到南京培训,虽然给别的同学感觉我这并不叫做实习,其实不然。
因为在这里来培训的大部分都是已经参加工作的人,他们大多都有一年以上的工作经验,有的甚至是研究生,相比我们本科生,我才发现自己知道的太少了,学的东西也是太少了,书上的东西都是死的,能否正确运用关键在于我们自己。
他们给我带来了很多压力,但也有很大的动力。
因为他们都进入过社会,有工作经验,所以他们动手能力都很强,自学能力也是相当不错的,而我要想赶上他们,就必须变压力为动力,好好学习,向他们请教,这样才能缩小与他们之间差距。
这短短的一个月生活是我认识到学习的重要性,尤其是怎样学习,怎样利用好身边的优势资源,以为我所用。
就在上周周末,我们校区的负责人请来了一位08级学嵌入式的师兄,他已经工作两年了。
他告诉我们,在这里学习,老师只是起着领导的作用,能否学到知识关键在自己,他向我们提问了三个问题:
自己的兴趣?
自己的优点和缺点?
现在的IT技术发展状况?
对这三个问题,确实值得深思。
我们只有认清自己,对环境作出分析,才能结合自己的情况选择相应的技术,才能更好的学习。
好问的人只做五分钟的愚人,耻于发问的人终身为愚人。
在学习中,我们要学会发问,不懂得问题及时向老师请教,不要托,否则越拖越多,直至不会。
而且我们还要学会利用身边的资源,周围的同学都有自己的学习方法,接受能力也不同,我们不懂,他们可能懂,要敢于问,学会相互请教。
况且现在网络技术这么发达,网上什么资料都有,我们要善于利用网络资源。
他还告诉我们,学院发的书并不能满足我们学习,我们要多看书,像《编程之美》、、《C陷阱与缺陷》、《嵌入式编程》《鸟哥的Linux私房菜(第三版)》等,这些书写的都不错,且是被公司笔试青睐的题目,只要我们自己利用好时间,多看多练,提升自己,这样未来才有我们的发展空间。
走出学校,我们才是进入社会。
为了能更好的适应社会,我选择了培训。
在这里,由于每天都要上课、实验,因为接触了一门新的知识,所以很多知识都不会,我正在学习自学,学习向老师请教,向同学请教,向网上的论坛高手请教。
总之,在这短短的一个月中,我学会了很多东西,这也是指导老师给我们的机会,放我们自己去飞,在此真诚地感谢带我们实习指导老师!