佩服楼主。我也在学习中,个人的心得是:实践才可以把电子学好;而实践的窍门不是“做的多”,而是把做的东西“做的精”。
1、可以从基本的运放电路搭建起,做功放——从集成应用的改良到 自己用分立元件搭建;(分立元件的认识、常见电路的积累)
2、可以做数模电路的混合应用,你设想一下:自己用电路驱动小电机的同时,搞不好会“使得单片机经常死机”,但是你还要把音频系统和电机驱动系统结合,然后做到 噪声不可以进入音频系统,那该如何办?(数模混合、微小信号保护)
可以真正做到1、2后,想必硬件有一点功底了,那么就必须注重理论功底的提升:电路与系统、模电、数电、信号与系统这几本书再看一次,相信你会看到很多之前看不到的知识(信号与系统我现在都还···惭愧)——内功又有了新的提升。
3、做一下开关电源?看看怎么把它做好(上电瞬间负载很重:例如电机、灯泡等负载如何应对瞬间电流),同时把EMC也降下来。
4、读一下EMC相关的书籍,那么就会对“地”有一个更加完整的理解;然后可以往高频、高速探索(好难);这是你可能看到的一个波形不再是示波器上的一个波形了,你会自然而然的把波形在大脑中给它分解了,而且信号不会单向的了,而是形成了一个回流、耦合和辐射的概念。
5、在程序方面,在用单片机 C语言写了一些简单的驱动(例如流水灯、DS1302在 1602屏上的显示)这些模块后,
(1)尝试写一个2千行左右的大程序,规划这个程序的时候,做好是一个多任务、时序要求比较紧的系统(比如只有一个单片机,要驱动 单数据总线的芯片 和一个32*32的点阵屏——屏不可以有闪烁感、单数据总线时序要求还算严格)。这样做的好处是:锻炼你在写 系统资源很少、时序很紧、任务调度繁杂的情况下,对程序整整体的把握。
(2)在(1)后,一般感觉写的很吃力——程序模块化和程序的速度不可兼得、程序的空间利用率和程序的运行速度也往往是一个矛盾;而且你会对for 循环深恶痛绝;对C语言有一点点不满,时不时跑去汇编看一下程序的效率;——这时应该说你的程序功力开始上台阶了,那么可以进行下一个环节锻炼:
(3)还是搞一个多任务的电子系统(这个不是别人的系统,不是Linux和Windows这类嵌入式系统,而是你自己写的简单的能动起来的程序组合),比如有屏幕显示、音乐播放等,而屏幕亮度、音量大小可以 数控调节,而调节的元件可以是 电位器、按键、涡轮旋钮等;屏幕更换12864、1602、数码管等元件时,程序也可以很容易改动。
——那么这时将会锻炼你程序模块化的功力。
(4)写完后,你开始有很大的感触:程序关键不是代码,关键是思想。其中蕴含了无数的哲理。是不是你有这种感觉——靠,原来C++还真是好东西,可惜我没学!
注意:1、我的工作是硬件,所以偏向讲硬件。
2、我现在很久没写程序了,谈的程序是我之前大学时的感受,只做参考。
推荐几本书:
一、理论:
1、基础:电路与系统、模拟电路基础(童诗白——这本书有些人说不好,我也曾被误导,但是后面慢慢基础好点后发现 原来自己读死书而已,书本来并没有过错)、数字电子技术基础。
2、扩展:晶体管电路设计(有上下2本)、OP放大电路100例(好像是这个)、测量电子电路设计等等(因为这些书都是 日本人写的,而且实践性会比较强,通俗易懂)。
3、深一点的基础提升:信号与系统。
4、扩展深入:郑军奇(还是郑奇军)写的EMC的书籍,忘了名字。
二、PCB实践:
郑诗卫写的 关于PCB设计的书,也是忘了名字,书是80年代写的,很多工艺过时了,但是郑老前辈的“防止”共阻干扰的思想还是挺值得学习的。
还有高级点的:高速电路设计。对PCB布线还是很有好处。
好,本人也是菜鸟一个,写点个人感想而已。言仅于此。