写给学电子的大学文档格式.docx
- 文档编号:17021622
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:14
- 大小:35.41KB
写给学电子的大学文档格式.docx
《写给学电子的大学文档格式.docx》由会员分享,可在线阅读,更多相关《写给学电子的大学文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
理解与思考。
你学这些是为以后的应用,不是考多少分,不理解,开发时肯定会遇到很大困难。
一开始理解不透很正常,但要认真去体会。
整体把握后,在实践中去验证你的理解,你一定会有所体会。
比如,电容充放电,高中就讲过,但它有什么作用呢?
如果搭一个电路,不工作,并一个电容,工作了,你就会意识到“电容使电路保持工作状态”,再根据充放电的性质,可以分析出,电容先被充电,负载工作,电压下降,电容放电,使电压保持在负载的工作电压范围内。
上网一搜上拉电阻的作用,一大推,看完是不是会有些茫然呢。
直到有一天,你的控制器输出一个信号,负载却没反应,你加个上拉电阻,负载有动作了。
一测电压,有明显上升,于是,你意识到,上拉电阻增大了电压幅度。
不多说了。
先在理论上认识一下,再在实践中去体会。
这些方法源于我自己开发的小东西,不多,主要是针对检测问题的。
(1)模拟法。
系统运行过程中,可能会在短时间内执行很多动作,现象的变化也比较快,难以准确识别。
这时,可以分析一下这个过程,看看能不能手工模拟出这个过程,真正需要研究的往往是一个小的过程,或者可以分解成一个个小过程,不会涉及太多次反复性变化。
可以试着人工模拟,看系统到底识别到什么内容。
比如,小车运行,靠近边缘的一条黑线,到那一侧的检测电路(比如有至少两个传感器)清晰而稳定地检测到下方是黑线。
这个过程,这几个传感器都检测到什么组合信号,又是以怎样的顺序出现?
这个就可以模拟一下,尽管与实际速度不同,但可以得到清晰的变化过程,可以发现一些东西,对确定和修改检测程序很有价值。
模拟的思想就是认为创造系统运行会出现的过程,通过控制一些量,使信息可以清晰的呈现出来。
对过程分析有所帮助,当然,要考虑模拟与实际中的不同的因素对结果的影响。
(2)原理分析法。
有的过程,很难通过一些方式,把变化清晰地呈现出来。
这时,可以从原理出发,看看能不能推出实际结果。
分析原理,要明确因果关系,这点很重要。
对于电机,我懂得不多,有一点小的体会。
电机性能与磁场分布、强度,线圈电阻率、绕法等因素有关。
我接触过这样的电机,在电压和脉冲信号一样的情况下,由于外力被迫停止转动时的,尽管电流增大,但平均电压还是小于转动时的值,参数满足一定条件时,这两个电压的差别是比较明显的。
我想通过比较超过某个电平的脉冲的频率,来判断电机是转动还是被迫停止。
但我却发现,参考电平怎么调,都不能出现明显的不同的频率。
如果峰值不同,差异不会小到那种程度。
后来,我分析,电机转动的过程。
通电导体在磁场中受力。
我意识到,电机转动了,只是刚转一点就因外力而停止。
手很难控制得特别牢固,况且,齿轮之间的间隙也为电机转动提供了小的空间。
电机在外力作用下,每次都发生微动,电平达到了转动的值。
两种情况的频率是一样的。
只比较峰值频率是看不出区别的。
(3)对比法。
这是一个很经典的方法,不再举例。
一定好控制好各个变量。
有时陷入困境,思路可能打不开。
不要忘记它
(1)计划。
做一件事情之前,一定要有计划。
就算开始订不好,也要订。
计划各段时间应完成的内容,你就有意识要在那个时候达到某个进度,而不是大脑中,只有继续做的思想。
做一个流水灯模块,比较简单。
不必分太细。
①程序到什么时候写完。
②电路到什么时候搭完。
③调试程序,到什么时候完成。
不要以为,这么简单还计划什么。
这是一种习惯,当任务复杂的时候,作用就体现出来了。
计划确定了一个顺序,制定计划过程要考虑到前后的关联性。
尽量避免出现做了一个内容,却发现应该在之前做另外一件事情,进程遭到破坏。
(2)紧迫感。
和计划相似,但有所不同。
在时间比较紧,任务还比较多时,更能体现出它的作用。
在你需要在短时间内万年场一个任务时,这一点一定要努力把握。
比如,焊一个模块,看一下表,再看一下当前要焊的元件。
告诉自己:
要在XX时把它焊完!
带着这种意识,你的动作和反应速度都会加快。
每个环节省一点,累积起来就能省很多时间。
紧迫感,还会增加你动作的协调性,减少等待。
比如,把电阻放好,烙铁还未热,可以先在相关位置涂抹助焊剂(如果需要),还不热,做几个标签,稍后会贴到一些导线上,便于识别。
激起紧迫感,晚上意识到未完成任务而疯狂地追赶,白天为什么不抓紧呢?
夜之痛。
当一天刚开始的时候,你很难意识到今天晚上可能会完不成任务,只有你真的到了晚上,才意识到,体会得那么清晰。
可是第二天,你就忘记了,于是重蹈覆辙,这就是人性的弱点吧。
记住它吧,当你在阳光下研究的时候,想想那灯光下的夜之痛吧。
你还能放任自己吗?
说明一下,不是一定要完成当天任务,但一定要避免因为白天时间利用不充分而导致为未完成任务。
你的大脑里,要装着两件事。
①现在要做什么②什么时候完成它。
让自己对当前状态有一个清晰的认识。
随着进展,这两件事会发生变化,但一定要装着,直到你完成整个工程。
(3)问题处理的方式。
测试过程,发现现象不对,有地方出了问题。
怎样测,是先测可疑硬件电信号,还是改程序,用现象反映情况?
有时,可能会有多种考虑方式。
你可以先分析一下,出现哪种问题的可能性大,怎样检测更容易,更快捷。
(4)假设完成法。
意外,随时可能出现。
比如,元件损坏,或研究过程中,发现需要新器件,要网购了。
东西邮到之前,这个工作不能做。
但不要松懈,看看你是不是还能做点别的。
哪怕是一点准备工作。
假设东西已经到了,比如,需要换件,你可以先把待换器件拆下来,等新的到了,换上。
而不是,件到了,发现需要先拆原来的件。
(5)注意力。
有时,进展很不顺利,这时又出现问题,就可能反应迟钝。
这时,你要告诉自己:
迅速解决这一问题!
这句话,不一定能帮助解决问题,但你大脑里要保持这个意识,避免发呆之后,思绪飘向远方。
甚至,你会突然间忘记刚才的事情。
这个时候,慢慢地回忆:
刚才发生了什么?
你可能没有心情立即去解决它,但即使如此,你也可以把它认真地记下来。
这些和具体研究内容关系较大,有些杂。
程序
(1)多次用到的数据定义成变量,多次用到的语句定义成函数,使程序简洁,增强可读性。
一些不易于区分的数据,用明显的名称代替。
(2)测试函数,用特有的明显的现象表现出来,从而能容易地判断是否执行了这个函数。
(3)同步性。
定义一个变量,要知道它的含义,表示的是什么,有时,它有对应的标志量。
比如,改变timer输出的脉宽,对应改变一个标志量,下一次,查标志量就可以知道脉宽,这样有时可以带来很大方便。
但一定要保持同步性。
当你改变一个量时,要考虑这个量是否有对应的标志。
只改量不改标志,二者失去同步性,对后面的程序的执行可能会带来麻烦。
尤其是在调试过程中,发现一个新的地方需要改那个量,这个地方本不在原来的考虑范围内,就容易忘记修改对应的标志量,再查询标志量,就容易出现问题。
(4)简约之美。
这是编程的一种风格,有些时候可以考虑这种思想。
用最简单的方法解决问题。
检测一个状态的切换,从一个状态进入另一个状态,不一定十分干脆,获得的信号不一定十分清晰、明确,可能会发生包括反复出现在内的一系列变化。
如果细致地描述这一过程,可能会写出一个很复杂的判断函数。
不仅容易出现逻辑错误,一旦出现问题,很难找到具体位置。
尽量避免出现一大群switch、if、while在一个函数里尽情地舞蹈的情况。
用最简单的方法解决问题,分析过程,寻找新状态与原状态最大的区别,或是特别的一个简单的变化,抓住它。
一个函数,可以有很多行,但结构、实现的功能以及思路一定要清晰。
这就是简约之美。
可以考虑一下。
(5)完整性。
不能忽略意外的情况,有if,后面要有else,最好有对应的动作,即使你认为不会出现,意外就是出现了你认为不会出现的情况。
运行不完整的程序,一旦出现了你没有考虑到的情况,很容易对现象进行误判。
硬件。
(1)显示模块。
这个太重要了。
不能完全依靠电脑显示,很多时候,系统需要单独运行。
这个模块应简单,并能清晰地反映多种现象,以便区别多种情况。
(2)电源指示灯。
反映控制器是否上电,避免每次现象不对,都去测控制器电源电压。
(3)器件个体的选择。
对一个含有多个相同型号的电路,焊接之前,可检测每个元件的特性。
选择特性最接近的个体,以增强输入输出的整齐性,提高个体间功耗的均衡性。
一个模块个体间功耗差异越大,模块稳定性越差。
(4)确定清晰的检查思路。
出现问题,立即测量,却没有发现问题之所在。
这时,需要整理思路,列出所有的可能,根据可能性及检测难度,确定检查顺序,进行检测。
(5)现象突变。
在你认为没有做任何改变的情况下,现象突然发生变化。
你或许会想:
“怎么会这样?
上次明明还没事啊。
”我可以很肯定地告诉你,一定发生了变化,或在程序,或在硬件系统本身(包括电池电量等),或在外部环境。
一定至少有一个发生了变化。
有些细微的变化会在你不知不觉中发生,踏下心来,去寻找它!
可以考虑,顺着现象,逐步逆推,认真分析任何可能的影响因素。
(6)当你不能控制一个器件,那是因为你没有充分了解它的特性。
最基本的资料是手册。
认真读手册,建议尽量读英文的,只要你对英语不反感,我指的是不反感,不是有没有好感。
翻译的毕竟不如原版。
它不难,你能做英语阅读,就能做它。
看不懂不是理由,认真地看下去,一点点,坚持着分析。
从最简单的开始,一直看,你一定可以。
当时,我同学看我看时,感觉了不起,其实那没什么,他看他也懂。
认真阅读,体会他的描述,当然,网上典型应用电路域程序也有参考价值,但手册还是第一位的,也有一些几乎不能找到手册的产品,那就从网上找通用的方法吧。
首先,确定产生了那个控制信号,再从电压电流上考虑值是否合适。
同时,注意影响因素,有的器件对一些物理量很敏感,要发现这些量,格外注意它们的变化。
考虑是否需要采取措施控制一下,避免可能会出现的麻烦。
(7)硬件的偶然性。
硬件不同于程序,再复杂的程序,只要逻辑正确,就能得到预期的结果。
硬件不同,它有物理上的输入输出,这些信号不都是准确的数字量。
可能会出现错误。
比如一个光电开关,调到某个检测距离。
摆好位置,使初始状态没有障碍物。
程序这样,一直检测,出现障碍物,立即执行一个明显的动作。
可能会出现这样的情况,明明没有障碍物,却执行了那个动作,而且多次发生。
注意一下检测频率,如果很高的话,降低频率看一下。
这个情况或许立即消失。
过于频繁的检测使单片机检测到了不稳定的信号。
一个小延时就能解决问题。
这种偶然性也出现在其他的一些传感器当中。
(8)捕获特点。
有时需要反馈调节,要得到一个变量,并进行相应的操作。
但变量可能是一个很难直接测量的电压或电流。
这时,需要捕捉到这个特点,用一种方式获取一个量,使它能反映这个量的变化,而这个量可以比较容易地识别和处理。
(9)听别人的建议。
别人提出建议,认真听。
可以不采纳,但也别否定,人家说的往往是有道理的。
(10)不要被名字、符号所限制。
这其实也是理解的一种体现,有时,手册或其它一些地方会有一些误导性的名称,一定要体会它的结构、功能,分析各个引脚的含义,不要单纯地看符号,可能导致错误理解。
(11)关于为什么。
你可能会在研究过程中看到一些奇妙的现象,激发求知欲。
要不要问为什么,暂时放下现有的进度,转而分析这个呢?
看当前情况,如果时间比较紧张,最好不要深究,一旦进去,可能会占有大量时间,避开它,保持进度就可以了。
如果时间比较充足,可以试试,但可能因为相关知识不足而耗去大量时间,也不一定会有好的答案。
要有这个准备。
发现一个新的现象、定理,不是不可能,但实际上微乎其微。
真想研究它,就坚定地做下去!
(12)快递。
了解你学校周围快递服务情况。
各地可能有所不同,选择廉价而较快的快递,一定要要快递!
否则,买家用个垃圾快递,你就痛苦地等待吧。
别省那两块钱,多花两天时间不值。
除非你不急着用。
发现需要器件,立即购买,别总因为几块钱犹豫不决。
(13)保持怀疑。
一切皆有可能。
当现象总是不对时,问题有可能在你认为不会出现的地方,打开思路,考虑那些你不曾怀疑的地方。
用电路或程序进行测试。
程序简洁,现象清晰,或许,你会豁然开朗。
为什么会出现这个,还是知识不足,理解不够,拿一个控制器(单片机)来说,它的内部结构是相互关联的,一个结构被操作就可能影响另一个结构。
但你从程序上根本看不出来,只有理解了这个操作的含义,你才知道那些语句到底使内存或外设发生了怎样的变化。
(14)注意对器件的每一步操作与变化。
不要认为器件具有自我保护机制,电位器怎么转,信号怎么给都没事,可能造成不可恢复的损坏。
测试一定要谨慎,调到安全性最高的状态,一旦出现异常,回想当时正常时,进行了什么操作。
(15)出错的一种检测法。
如jtag问题,可以人为地制造错误,看能否出现相同的错误提示,为找到错误提供一种思路。
(16)焊接。
先考虑一下布局,可以适当留出空余,万一后来发现需要有小的改动,避免大拆大卸。
避免大锡疙瘩,难看放一边,容易造成连接不充分,难以改动。
比如地线一些公共点,可以适当分成几个点,分别相连。
(17)芯片的保护。
了解一些基本保护电路。
diy的系统有时会出现一些不稳定的变化,容易导致芯片过压或过流,造成损坏。
当某个芯片连续损坏时,你应该引起重视了。
(18)记录的准确性。
出现一个现象或是进展到某个程度,需要记录下来。
一定要十分认真,完整而清晰的记录。
比如电路,每个元件完整的型号名称,清晰的连接方式,电源信号等。
(19)器件选型。
接触不多,当需要去实现一个功能,确定电路的基本结构,却没有元件具体型号时,要考虑这个。
根据功能,分析器件参数,看输出能不能满足需求,同时保证输入在器件承受范围之内。
(20)裸线必粘。
有一些情况,系统各个模块不能都放在一个电路板上,这时需要导线连接。
注意那些外露的金属,尤其是和电源地线关系比较大的。
一定要格外注意。
意外的触碰可能会带来很大的麻烦,这种金属头一定要好好保护。
主要是导线的头和板上一些突出的带电金属部分容易接触。
(21)器件的损耗。
任何器件都是有寿命的,如果研发时间比较长,就可能遇到这一问题。
不是说非要怎么预防,但最好有这个概念。
注意系统的各个部分,纯电路部分,在芯片质量没问题的情况下,一般不易出现问题。
涉及其它方面时,比如机械,这种损耗就比较明显了。
损耗可能导致不能工作或性能下降。
注意它的表现,动作、声音等方面是否发生了变化。
模块稳定性下降,一下降低了系统的稳定性。
本来调的差不多了,突然开始出现各种各样的问题,看看是否和一个损耗性较强器件有关系呢。
另外,性能下降的同时,还可能增大功耗。
最大功耗增大,容易导致某个时刻,个别负载得不到充足的电压,从而出现错误。
(22)减少导线串接。
尽量避免多条导线串接。
这会增加出现问题的可能性。
(23)购买芯片前,至少要了解它的功能和基本应用电路,一定要认真阅读,避免错误理解或多次购买。
(24)规整性。
比如连接上,一组导线可以用排线,就算单条导线,也应该固定在一起。
尽量保持清晰。
(25)
5、学习过程
(1)观察你的学校。
校园文化对一个学生的学习是很有影响的。
虽然你很难改变它,但你要充分的了解它。
看看你的专业在学校是一个怎样的状况。
周围有没有和你志同道和的同学,有没有可以求教的老师。
有没有相关的科研室。
学校是不是组织或参加一些比赛。
了解之后,你要根据实际情况,制定一个基本计划。
同时,好好利用网络学习。
(2)基础。
前面已经提到,根据课程安排及自己的需求,确定学习方案。
说明一点。
学习过程中,有两方面特别重要,那就是理解与思考。
它们要贯穿你学习的整个过程。
在你没有同伴时,这两个能力显得尤为重要。
一定要好好锻炼。
既要努力的去理解,体会,还不能因为某个问题总也想不通,就总在那卡着,这个慢慢去把握吧。
(3)当你基本完成基础知识的学习后。
开始动手了。
买一个开发板。
一般的教材讲的都是51单片机,先买51的。
循序渐进啊。
这一点太重要了。
学习过程中,除了贯穿的那两个,还需要格外注意的就是这个。
一定要一步一步走,每一步,你可以努力的快走,但不能减少步数。
否则,你会陷入困境,因为没有达到那个水平,却要去完成那个任务。
意志不强,就认输了。
意志强,就会面对解决不完的问题,心里一点底都没有,熬得难以继续。
当你学习开发板的时候,你应该已经对51单片机有了一个整体的认识和把握。
下面就是在实际操作中加深理解与运用。
板子随便买个就行,外设有一些就够了,你要做的是学会基本编程方法,能控制一些简单外设。
做到这两个,开发板就发挥了它的价值。
认真学习实例,好好理解,下载例程,你会看到,闪烁的led点亮了希望。
下一步,可以下载第二个例程,但也可以这样,分析第一个例程的代码,研究功能如何实现,根据理解,想出另一个现象,改程序去实现它。
这个过程有助于你对控制语句的进一步理解。
还可能让你看到你程序中的问题,建立编程思想。
以后的例程也应该这样去做。
当你比较熟练时,可以不看例程,直接分析外设特点,自己写程序去控制它。
这点外设弄得差不多了,你可以综合一下。
看看能不能达到预期的效果。
如果你还想丰富一下,可以研究一下工程的组成,分析一下程序各部分和内存的对应关系,当然,以后遇到了,再研究也行。
(4)当你完成这两个内容的学习以后。
可以考虑做一个小作品了。
这个作品是锻炼你简单系统的设计能力和焊接技术。
因为之前的开发板上,都是人家给你做好的。
题目不要太难,系统不要太复杂。
关于电路板,看看学校有没有制板机,能不能接触到,可以考虑做pcb。
不过,这个可能需要学习布线,看看这个是不是你学习的重点。
如果没有专用工具,建议不要手工制作,耗费大量时间,很难达到好的效果。
说明一点,程序尽量自己写,之前谈到不看例程,用自己的程序控制外设就是为这个做准备。
你可以回顾一下,开发板的最初的那些例程,代码都很简单的,你认真分析一定可以自己写出来。
你要培养写程序的能力。
如果开始不培养,习惯了“粘贴+修改”模式。
总有一天,你会发现,你没有编程的能力,那时你还需要自己写代码,悔之晚矣。
开始就有这个意识,一直坚持,就能练出一定的编程能力。
这个作品完成的速度和效果,与你之前基础知识的理解很有关系。
如果有同伴还好一点,要是没有,你忽略或没有正确认识一个问题可能会让你耗很长时间。
即使如此,也要勇敢地做下去。
还有一点,你可能会用到proteus,关于这个软件,我认识不多。
个人理解是,可以检查程序中,一些逻辑上的错误,io口模拟的通信协议是否正确。
库里面,很多器件是没有的,尤其是一些传感器。
可以理解,传感器接收的信号很复杂,难以用软件准确描述。
而且,情况过于理想化,仿真出来,实物出不来,太正常了。
差别体现在两方面,软件模拟毕竟是纯软件,不一定与实际执行完全准确对应。
另一方面,已提到,那是一个完全理想的状态,根本没有考虑电源输出能力,负载消耗,电磁干扰等多种因素。
(5)看看你学校的情况吧,如果有条件,看看能不能进科研室或是参加一些小比赛。
如果没有这些。
现在,有两个方向(中间可以再做一两个小东西),一个是做一个复杂些的系统,另一个是学一个先进一些的单片机。
看着选吧,做复杂系统锻炼你系统设计能力。
学先进单片机让你打破51的限制,感受高性能单片机的优越性。
可以先学先进单片机再做复杂系统,这是一个思路。
先进单片机的学习。
还是先买开发板,思路基本相同。
这个控制器的手册应该比51的教材内容要多。
还是那个思想,整体把握。
注意体会前后的联系。
它本身是一个系统,内部结构是相互关联的,一定要有这个意识。
看看它的片上外设,常用外设一定要好好学习。
这是它比51先进的一个重要体现。
此时,可以用库函数,它们是对外设的基本操作。
要实现特定功能,还需要自己去写应用函数。
例程可能给的是一个特别简单的操作。
如果时间允许,最好自己去实现一个稍微复杂一点的功能。
这是对你根据手册描述,运用库函数实现外设的某个功能的能力的锻炼。
从中,可以看出你对控制器的理解程度。
一旦出现问题,就要特别认真地去读手册上关于这个外设的描述,虽然可能会有一些印刷错误,但功能还是清楚地描述了。
也许,其中的某一句话就能使你的问题迎刃而解。
注意,不要一开始就过分细致地读手册,从头到尾读完,再拿开发板练习。
那样会耗掉大量时间,也难以消化。
复杂系统的设计。
这个复杂是相对之前的小东西而言的。
六、七个模块差不多,这只是一个参考。
如果之前,所做的东西多是借鉴的别人的方法,这次应该以自己设计为主了。
说明一下,不要为做复杂系统而去做它,而是为实现某些功能而去做,这是一个系统,各个模块要相互协调,实现某种功能。
硬件上可以是这样的一个顺序:
功能->模块->各块具体实现->整合。
对于一个偏硬(这是我个人的说法。
游戏机,我认为是一个偏软的系统,大量程序用于处理键盘和屏幕之间的内容。
输入端有多种传感器,输出端驱动多种负载产生各自的动作,这是一个偏硬的系统)的系统,硬件部分的工作量相对可能会大一些。
要在开发之前,就作好计划。
先建立一个清晰的思路,让这个系统已经在你的大脑里形成具体而清晰的形象。
如果连一个清晰的思路都没有,怎么保证硬件系统能按时完成呢。
软件方面。
在设计硬件的时候,应该已经考虑了各个内容对应方案的选择,根据方案,完成各个模块的程序。
整体运行时,可能会出现一些问题,这就看排查问题的能力了。
抓住三点:
程序的逻辑、硬件的状态和现象。
根据这三点,推出可疑的地方,再进行检测。
程序的逻辑,编程时就应保持清晰,检查时,如果直接分析找不到可疑点,就让现象去告诉你吧。
注意,所作的改动(比如添加现象)对原有逻辑的影响。
把整个过程分成几段,逐段检测,逐渐细化。
硬件的状态,一方面要清楚硬件的特性,还要分析电源、输入、输出都是怎样的状态,抓住影响因素。
做一个题目,要清晰地看到自己当前的能力,和这个题目的难度,应该是基本可以完成或者稍微超点负荷可以完成才去做。
因为实际情况往往比你预想的更困难。
真做了,发现每一步都很费劲,就会陷入困境,即使意志很强,也不知要熬多久,时间恐怕不允许了。
当你独立完成这样一个系统,并使之稳定工作时,应该可以认为有一点水平了。
再往后,就根据你的目标进行规划吧。
把握自己
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 写给 电子 大学
![提示](https://static.bdocx.com/images/bang_tan.gif)