5年单片机学习总结-ED China【转】

人的一生是一个不断学习不断成长的过程转眼间,研究生的学习生涯结束了,走上新的工作岗位回头看看,发现自己不知不觉已经走过了五年的单片机学习之旅

在2003年最初接触单片机的时候,在我心中觉得51就是单片机,单片机就是51,根本不知道还有其他单片机的存在那时候老师只教会了我们汇编语言,根本不知道用C语言也可以进行单片机开发幸运的是,我加入了单片机兴趣小组,在老师的指导下,做了一系列实验,有基于DS18B20的温度采集系统有基于164的移位寄存器的灯光控制系统有步进电机和直流电机的控制系统这时候我才发现,这是学习单片机的一个最好途径在实践中领悟理论,用理论指导实践在上课的整整一个学期中,虽然老师讲得很详细,但是大部分概念都是到了实际动手做东西的时候才弄明白的而且在经历了迷惑之后再搞清楚,印象就特别深刻直到现在我对那些概念和接口都非常清晰其实我也很庆幸学习和使用了两年多的汇编语言由于有这些锻炼,我对单片机底层结构和接口时序就弄得很清楚在使用C语言开发的时候,优化代码和处理中断也就不会太费劲我觉得,虽然现在绝大部分单片机开发都使用C语言,甚至有些公司还推出了图形化编程的工具,这样对于项目的开展从时间上快了很多,在管理上也规范了不少,但是从学习和想深入掌握单片机精髓的角度来说,还是需要熟练掌握汇编语言的使用

机会总是青睐于有准备的人也许有了前面一段时间的理论和实践的积累,我才慢慢得到了一些参加科技竞赛和参与科研项目的机会在参加第一届浙江省机械设计竞赛的时候,我们设计的由多单片机系统协调控制的月球车机器人夺得了唯一的一个特等奖这个竞赛给我最大的收获是我对单片机的认识改变了,它不再仅仅是一门学科了,它是一个可以让你的创意得到充分发挥的平台后来参与了基于视频分划技术的钢卷尺自动切零位机电能表涡杠涡轮啮合深度检测系统基于公共电话网的水表集抄数据路由器高精度电感微位移测量系统等一些实际的项目在这些过程中,我发现只是精通单片机技术还不能很好的解决问题体会最深的是,单片机只有融合到各种应用领域中,才能展现它的最大活力然而单片机仅仅是一个工具而已,要做好单片机系统还需要各种应用领域的专业知识的支持例如,在基于视频分划技术的钢卷尺自动切零位机中,就需要搞清楚全电视信号的时序,弄明白钢卷尺切零位机的工作原理,懂得怎么利用叠加在视频信号中的横竖线来进行刻度的瞄准等没有这些专业知识,就算单片机技术再厉害也不可能做好这个项目脱离应用背景的单片机开发,就像一个没有灵魂的躯体一样
随着ARM的出现,我曾经认为,8位单片机可能在32位单片机的冲击下就此走进历史,可是很快就认识到我是错误的随着技术的革新和时间的推移,各大单片机公司纷纷将单片机朝着片上系统这个方向发展,集成了现在各种流行的技术和常用的模块我相信,在当前国内和国外的这个市场中,
8位单片机应用的市场仍然是充满生机,活力无限在市场的不断变化和技术的不断更新过程中,8位单片机也会顺应潮流不断革新

从我五年走过的路来看,单片机学习的过程应该是一个循序渐进不断学习不断积累的过程,可以分为三个阶段

第一阶段:掌握开发单片机的必备基础知识首先是熟练掌握单片机的基本原理,其实各家各门的单片机其基本结构和原理都差不多,特别是共有的知识需要好好理解和掌握例如,内核结构内存分配中断处理定时计数串行通信端口复用等一些最基本的概念和原理除此之外,我们还需要具备模拟电子数字电子C语言程序开发知识以及原理图和PCB设计等一些技能在进行系统开发的时候,进行原理设计PCB布板程序编写系统联调这些工作都是在所难免的

第二阶段:在掌握好一款单片机原理和应用的基础上,开始学习其他各家单片机的独有技术,学不了那么多也要多了解了解同时尽可能多地掌握单片机的一些外围器件和常用电路,以备不时之需有时候客户要求低成本,那我们只好选用合钛义隆华邦等这类台湾芯片;如果客户要求工业级的性能,那么我们就得从PICNEC飞思卡尔NXP等这些欧美和日式单片机中选择;若要进行功耗的开发,选用MSP430系列应该有一定优势;在进行测量仪器设计的时候,C8051和AduC842这类数模混合芯片就显得比较方便所以说最好每个类型的单片机都会一两款,在实际项目选型中可以更加灵活另外,要注意平时的技术积累比如,在项目开发过程中将一些常用的接口程序和控制算法整理成模块或者函数,在其他的项目开发中,有同样或者接近的需求时马上就可以使用,又快又好

第三阶段:在实际的项目开发过程中,不断深化单片机应用技术,不断积累应用行业的专业知识例如,我完成了高精度电感微位移测量系统,就会对电感传感器的测量机理和信号特性测量电路的设计电磁兼容处理误差修正和非线性处理等测控方面的专业技术有很深的认识以后碰到类似的项目时,很多东西就可以直接利用了有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法,再结合实际的应用背景,那么就可以随心所欲,设计出性能最优结构最合理的单片机应用系统这是我最大的奋斗目标,我觉得这也应该是单片机应用的最高境界吧

在这五年的学习中,有感慨有遗憾有憧憬有希望,更重要的是我对单片机应用这个领域充满热情由于才疏学浅涉世未深,希望能与行业里的各位老师多多交流,不断学习,不断成长

随着ARM的出现,我曾经认为,8位单片机可能在32位单片机的冲击下就此走进历史,可是很快就认识到我是错误的随着技术的革新和时间的推移,各大单片机公司纷纷将单片机朝着片上系统这个方向发展,集成了现在各种流行的技术和常用的模块我相信,在当前国内和国外的这个市场中,
8位单片机应用的市场仍然是充满生机,活力无限在市场的不断变化和技术的不断更新过程中,8位单片机也会顺应潮流不断革新

从我五年走过的路来看,单片机学习的过程应该是一个循序渐进不断学习不断积累的过程,可以分为三个阶段

第一阶段:掌握开发单片机的必备基础知识首先是熟练掌握单片机的基本原理,其实各家各门的单片机其基本结构和原理都差不多,特别是共有的知识需要好好理解和掌握例如,内核结构内存分配中断处理定时计数串行通信端口复用等一些最基本的概念和原理除此之外,我们还需要具备模拟电子数字电子C语言程序开发知识以及原理图和PCB设计等一些技能在进行系统开发的时候,进行原理设计PCB布板程序编写系统联调这些工作都是在所难免的

第二阶段:在掌握好一款单片机原理和应用的基础上,开始学习其他各家单片机的独有技术,学不了那么多也要多了解了解同时尽可能多地掌握单片机的一些外围器件和常用电路,以备不时之需有时候客户要求低成本,那我们只好选用合钛义隆华邦等这类台湾芯片;如果客户要求工业级的性能,那么我们就得从PICNEC飞思卡尔NXP等这些欧美和日式单片机中选择;若要进行功耗的开发,选用MSP430系列应该有一定优势;在进行测量仪器设计的时候,C8051和AduC842这类数模混合芯片就显得比较方便所以说最好每个类型的单片机都会一两款,在实际项目选型中可以更加灵活另外,要注意平时的技术积累比如,在项目开发过程中将一些常用的接口程序和控制算法整理成模块或者函数,在其他的项目开发中,有同样或者接近的需求时马上就可以使用,又快又好

第三阶段:在实际的项目开发过程中,不断深化单片机应用技术,不断积累应用行业的专业知识例如,我完成了高精度电感微位移测量系统,就会对电感传感器的测量机理和信号特性测量电路的设计电磁兼容处理误差修正和非线性处理等测控方面的专业技术有很深的认识以后碰到类似的项目时,很多东西就可以直接利用了有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法,再结合实际的应用背景,那么就可以随心所欲,设计出性能最优结构最合理的单片机应用系统这是我最大的奋斗目标,我觉得这也应该是单片机应用的最高境界吧

在这五年的学习中,有感慨有遗憾有憧憬有希望,更重要的是我对单片机应用这个领域充满热情由于才疏学浅涉世未深,希望能与行业里的各位老师多多交流,不断学习,不断成长

Designed
by Rovin

时间: 2024-10-13 18:54:36

5年单片机学习总结-ED China【转】的相关文章

义隆单片机学习笔记之(四) 编程及烧录

工具说明: 1.UIDE,编程环境 2.UWriter:烧录软件 下载地址: (见官网) 一 UIDE  1.1 创建工程: 1.2 选择型号: 1.3 编程及编译 二 UWriter 2.1 安装 (Serial number在购买烧录器的时候,从代理经销商处获得!) 2.2 选择目标芯片  2.3 配置选择 (注:由于是OTP,很多功能都是在配置的时候指定,所以这里非常重要.晶振.时钟的选择,延时程序要与之对应: 是否需要保护等,根据自己的需要而定) 编译之后生成的.map文件,详细的描述了

[51单片机学习笔记ONE]-----LED灯的多种使用方法

一.交替闪烁8个LED灯,时间间隔为1s 1 /****************************************************** 2 实验名称: 交替闪烁8个LED灯,时间间隔1s 3 实验时间: 2014年12月2日 4 ******************************************************/ 5 6 #include <reg51.h> 7 8 void delay(unsigned char a); 9 10 void m

义隆单片机学习笔记之(三) 应用例程

常用寄存器: 0x01 (R1) 计时器 0x02 (R2)程序计数器 PC 0x03 (R3)状态寄存器 0x04 (R4)间址寄存器 0x05 (R5)IO PORT 5 0x06 (R6)IO PORT 6 ----- (IOC5)P5的输入输出配置 ----- (IOC6)P6的输入输出配置 0x0f (ISR,读)中断信号指示寄存器(第三位有效,分别对应于3个中断源) 0x0f (IOCF,写)中断屏蔽标志 0x0E (IOCE)(IO60作为中断输入的配置与看门狗的开关在一个寄存器中

[51单片机学习笔记TWO]----蜂鸣器

蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来驱动振动膜发声的.因此需要一定的电流才能驱动它,而单片机I/O引脚输出的电压较小.单片机输出的TTLK电平基本驱动不了蜂鸣器,因需要增加一个放大电路.这里用三极管作为放大电路.下面是原理图: 我这里的J8端是跟芯片的P1^5端口相连,当P1^5输出高电平时,三极管截止,蜂鸣器不发声,反之,输出低电平

单片机学习之:C语言基础——宏定义(#define)

例如: #define uint unsigned int //用uint来代替(表示)unsigned int,语句前有#,后面无须加分号“;” uint可为除关键字以外的任意字符,以方便书写.同理:#define uchar unsigned char 单片机学习之:C语言基础--宏定义(#define)

单片机学习之:C语言基础——if 用法

//========if 用法(一)========= //*用法格式: if (表达式)    语句; //if判断语句,若表达式为真,则执行语句,否则不执行.且if仅能控制一条语句. ×××××××××××××××××××××××××××××××××× //==========if 用法(二)=============//用法格式: if (表达式)    {        语句1;        语句2;        语句N;    }  //if判断语句,若表达式为真,则执行大括号内所

单片机学习之:C语言基础——while循环

=======while循环用法======语法格式: while(表达式) { 循环体; } 功能:进入while语句后,反复判断表达式真假,若为真(为假则跳出循环),则执行循环体内语句. 实例: #include<stdio.h>int main(){ int i = 0; while(i < 5) { printf("i = %d\n",i); i++; } return 0;} 在VC++6.0中输出结果为: i = 0i = 1i = 2i = 3i = 4

STM32单片机学习(11) DS18B20温度传感器实验

STM32单片机学习(11) DS18B20温度传感器实验 本程序主要实现 DS18B20温度传感器数据获取,并利用串口通信把温度数据传至计算机 注:使用普中科技开发板测试时,需要拔掉Boot1插口,因为用到的是PA15管脚, 由开发板电路图可知,需要改变PA15 管脚的映射,将其设置成普通IO口 参考资料 DS18B20中文手册.pdf   http://download.csdn.net/detail/leytton/7742193 STM32-外设篇 视频教程(Cortex-M3)-主讲人

单片机学习之:C语言基础——for循环及for嵌套

==========for循环及for嵌套=========- for循环语法格式: for(表达式1;表达式2;表达式3) { 循环体; } //功能:进入for语句时,先执行表达式1(只执行一次!),然后对表达式2进行真假判断,若为真(若为假则退出for循环),则执行一次循环体内容,后执行表达式3,表达式3执行完之后,重新对表达式2进行真假判断. 例如: #include<stdio.h>int main(){ int x; for(x=0; x<5; x++) { printf(&