精华内容
下载资源
问答
  • AVR单片机学习经验

    2020-07-19 13:52:20
    AVR 与传统类型的单片机相比,除了必须能实现原来的一些基本的功能,其在结构体系、 功能部件、性能和可靠性等多方面有很大的提高和改善。 但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,...
  • 单片机 学习 经验-感受 单片机 学习 经验-感受单片机 学习 经验-感受
  • 单片机学习经验

    2014-07-01 18:47:28
    单片机学习经验  

    单片机学习经验

    座右铭:既然选择了,就不要给自己留退路

    单片机知识不一定在大学里读相关的专业才能学好,走在社会上的人同样可以学的很精。万事开头难,迈出第一步是成功的一半。既然选择了就不要给自己留下退路,这样你一定会成功。我本身就是一个很好的例子:两年前从学校毕业出来,我对单片机知识就是一个白痴,对其毫无概念。我读的师范专业,但是毕业后不想当老师,带有一点C语言基础知识的我最后选择单片机嵌入式开发的工作方向。经过熟人介绍我进了一家电子产品开发公司,由于不懂单片机,不懂编程,我只能做测试。边工作边学习单片机知识,这就是我的开始!以下就是我学习单片机学习的经验。分三部分:

    第一部分:整体认识单片机

    第二部分:模块化编程学习

    第三部分:单片机编译原理

     

    第一部分:整体认识单片机

    刚接触单片机时,是从看《单片机原理及运用》这本书开始。当时非常认真地一字一字的看,先看单片机基础知识、单片机系统架构、时钟、中断等等。由于对单片机没有一个总体的了解,不知道单片机是做什么,所以看起书来都是不懂,容易犯困,非常痛苦。即使多次重复看后知道时钟,定时器,串口等模块的原理但是也不知道怎么用。弄得各单片机各模块的原理也不是件容易的事,当然这只是相对于没有单片机相关知识的人来说的。其实这是麻木看书的一种表现,这种学习方法效率非常低。甚至这时候我还是不知道C语言怎么运用到单片机上。最后我自己总结原因主要是缺乏对单片机整体的了解。

    想避开低效率的学习应该从整体认识再到模块的学习。具体可分为以下几点:

    第一:单片机的运用;

           想从整体了解单片机就应该知道单片机能做什么,单片机在生活中的运用。单片机的运用在生活中的电子产品无处可见。例如:手上带的电子表,使用单片机中的定时器模块;家用电饭锅,使用单片机中的AD模块检测热敏电阻阻值;洗衣机,空调等等这些电子产品至少都含有一块甚至多块单片机。举多点例子,详细介绍各个例子中包含的单片机模块的使用。这样可以加深对单片机的总体认识,甚至会引起对学习者的兴趣。

    第二:单片机的概念;

           总体认识单片机之后就应该知道单片机是什么,从概念入手。单片机全称单片微型计算机,又称微控制器,是把中央处理器、存储器、定时/计数器、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。这里不比对每个模块的原理的展开,只需要讲解每个模块的功能。例如:中央处理器主要是执行指令和处理数据,就像人的大脑;存储器顾名思义就是用来存储东西的,这里的东西主要指的是中央处理器需要执行的指令和数据;定时器是用来计时间的,计数器是用来计数;输入输出接口就是IO口,主要用来交流数据,就像电饭锅单片机需要是AD读取热敏电阻阻值时就是通过IO获取数据的。认识单片机含有什么模块及其相应的功能。

    第三:如何操作单片机;

           单片机的操作是学习单片机的重点。

           单片机又称为微控制器,所以说操作单片机也就是控制单片机。那么如何控制单片机,根据什么控制单片机,用什么控制单片机。这时不必急着就去学习如何控制,用什么东西去控制。先是让学习者有一个初步认识如何操作单片机的过程。那最直观的方法就是有经验者演示一个操作单片机的例程或者看操作视频,我觉得这个非常有用,而效果也非常好。演示的例程要尽量详细,包括分析原理图,如何搭建开发环境,使用的高级语言等等。这演示过程只是让学习者有个认识,可以不懂。想起当时我自己学习了很长一段时间后,包括对单片机的每个模块的原理都有些了解,也尝试编写C语言操作单片机,但是对单片机的操作还是很模糊。后来就是看了单片机操作每个模块的相关教学视频,我的思路非常清晰,在思想和认识上提升了一个台阶。(我这里还保存着相关的教学视频)。演示或者看完视频,学习者很自然就知道如何操作单片机,知道根据原理图控制单片机、使用高级语言控制(一般使用C语言)、还知道需要一个开发环境等等。这三点或许会让初学者少走一些弯路。

     

    第二部分:模块化编程学习

    从操作单片机演示的过程中可知道单片机编程应具有哪些工具和应具备哪些基础知识:具有的工具:

    最起码要有一块单片机模块比较齐全的开发板。比较简单、容易入门的就是51单片机。当然还要有一份单片机相应的规格书,否则我们不知道如何操作它。

    具备的基础知识:

    编程语言、开发工具的使用、电路原理图的分析。编程语言一般我们都是使用C语言,C语言基础知识独立学习;电路原理图先只要求懂的分析原理。这里我们可以先弄懂手上开发板的原理图,可以整体上认识原理图对我们编程的作用;开发工具的使用,例如keil,我们需要知道如何搭建环境,建立一个新的工程,添加文件,编译,链接,烧录等。对于编译原理可以暂时不深入了解,对我们编程操作单片机没有影响,这部分的工具开发工具会帮我们处理。

    了解这些之后,我们操作单片机的思想、步骤和目标就很明确。下面分模块编程讲解如何控制单片机,让单片机实现我们的要求。

    建立一个工程是编程的开始。所以我们编程之前一定要懂得如何建立一个新的工程,刚接触这个一定要自己动手去操作两三遍。这里的步骤细节我不展开,可以去看教学视频等等。

    模块的学习从易到难:控制IO口的输出,按键,主时钟的分频 ,定时器,中断,串口,IIC通讯,·····例如控制IO口输出最简单的运用就是点亮一个LED灯,再到流水灯。这里很明显我们肯定会有一个疑惑——我们如何操作IO口的输出。 所以这时最需解决的问题就是理解单片机IO口模块的原理。

    单片机模块化编程学习应分为以下步骤:

    第一:理解模块的原理

    第二:理解模块运用原理图

    第三:对照模块原理进行编程

    第四:编译(包括链接)生成目标文件

    第五:烧录生成文件验证功能

    理解模块原理:

    任何事物都一样,运用它必须要知道其原理,单片机也不例外。控制单片机模块必须要知道原理,否则无从下手。模块原理包括其控制寄存器的操作,模块的功能。例如,IO模块:需要了解该模块的功能,驱动,控制寄存器,IO输入输出的电压,输入输出的频率和形式。比如推挽输出,上拉输入,中断,IO的控制使能等等。当然,由于51单片机比较简单,没有输入输出的频率。

    理解模块运用原理图

    单片机模块的操作还要有一份原理图,原因很简单:我们都知道单片机芯片都是用引脚与外部链接的,而且每个引脚的功能可能都不一样,那到底哪个引脚链接哪个外部器件必须要有相应的图纸吧,也就是原理图。就好像用IO控制LED,那我们也要知道哪个IO口连接了LED灯。所以我们原先也要分析好原理图。对于嵌入式软件编程员会分析即可,因为出原理图的工作可以说是电子工程师做的。

    对照模块原理进行编程

    如果理解了模块的驱动和操作原理,对照相应的功能编写驱动那接下来就是编写C语言的工作啦。如果C语言学的过关的话,就比较简单。建议初学者把模块的每个功能都要C语言编程控制一下,看看效果,会有个全面的认识。把每个功能都操作后,再回头看看模块的原理,加深影响。

    编译生成目标文件

    编译就是对我们编写的C程序进行编译,至于为什么要编译然后生成目标文件这里暂时不讲。其实这个编译过程很复杂,但是这些工作都交给了开发环境中的编译器处理。我们要知道开发环境中的最基本的开发工具的使用,包括当前文件编译和工程所有文件编译的操作、编译信息的查找、调试等。这些辅助工具可以缩短我们的开发时间,提高效率。

    烧录生成文件验证功能

    编译源程序之后编译器就会生成一个目标文件,如果是keil开发环境编译后会有一个hex文件,我们必须还有把这个文件烧写进单片机内部才能达到控制单片机的效果。同时也可以验证单片机是否实现我们原先的设计要求。这部分需要了解如何把hex文件烧写进单片机存储器中。

    学习完所有单个模块后,接下来就是使用更多的模块组合在一起编写一个小项目。熟悉灵活的运用各个模块的功能。如果你走到这一步,恭喜你基本可以开发项目。很可能你在开发的过程中你会遇到很多很多问题,不过没关系慢慢积累经验问题就会越来越少。积累项目经验的途径很多:可以通过网上学习别人的项目经验分享,可以学习有经验者开发的项目程序,可以从自己编程时解决问题的方法中积累经验。

     

    第三部分:单片机编译原理

    学习单片机编程原理之前,要对单片机系统的和框架有个系统的认识,建议找一本有关单片机原理书看一遍。这时候看书你会比较容易理解,肯定不会像我一样,开始就麻木毫无效率的拿着书本在吭。

    单片机编译原理可以分成5部分:

    第一:程序编程(软件开发)

    第二:源程序编译

    第三:目标文件链接

    第四:Hex文件烧录

    第五:单片机运行指令

    对于单片机编译原理这5过程,我觉得应该先用逆向思维来认识之后再从头开始进行深入的理解。好比:单片机实现功能要CPU运行二进制指令和处理数据,单片机内部要知道指令和数据放在那里才能获取;接着就要解决单片机内部指令和数据从那里来,这就是hex文件的烧录,想知道指令和数据应该放在单片机内部哪个位置,第一个要知道的就是hex文件的内容;然后就是hex文件从哪里来的,当然就是编译器编译源程序而产品的目标文件。而为什么要用编译器把源程序进行编译,这就是因为单片机执行的是二进制代码,而我们编写的源程序是C语言,单片机无法识别直接识别C语言,所以就要进行编译。而编译器是怎么编译的,这就是编译原理。然后我们又回到源程序上,为什么要这样编程,答案肯定是根据现实功能的需求来操作单片机的模块驱动而编的。这就是上面5个过程的逆向认识。但是对于单片机编译原理,第一个过程我们在第二部分已经讲解过,在此不做重复。最主要是下面的4个过程。

    在此不张开介绍,以后会继续补充详细讲解。


     

     

     

    展开全文
  • 51单片机学习经验

    2013-04-12 20:28:09
    51单片机学习经验,51单片机,单片机,学习经验,嵌入式
  • 我学51单片机的一些经验,加密的,密码19880927,共包括几个部分,有LED,数码管,AD,DA,按键识别,LCD1602,串口通信,实时时钟DS1302,温度传感器DS18B20,还有一本学51C编程的书籍,觉得不错,有兴趣的看看,如果...
  • 我学51单片机的一些经验,加密的,密码19880927,共包括几个部分,有LED,数码管,AD,DA,按键识别,LCD1602,串口通信,实时时钟DS1302,温度传感器DS18B20,还有一本学51C编程的书籍,觉得不错,有兴趣的看看,如果...
  • 总是见到一些菜鸟们在大叫:“我想学单片机”,“我要学单片机”,“如何 入门啊?”,“你们怎么这么厉害,是怎样学的??”等等等等一系列的问题,实在是看 ...篇单片机学习心得,让菜鸟们勇敢地跨出第一步。
  • 我学51单片机的一些经验,加密的,密码19880927,共包括几个部分,有LED,数码管,AD,DA,按键识别,LCD1602,串口通信,实时时钟DS1302,温度传感器DS18B20,还有一本学51C编程的书籍,觉得不错,有兴趣的看看,如果...
  • 我学51单片机的一些经验,加密的,密码19880927,共包括几个部分,有LED,数码管,AD,DA,按键识别,LCD1602,串口通信,实时时钟DS1302,温度传感器DS18B20,还有一本学51C编程的书籍,觉得不错,有兴趣的看看,如果...
  • 我学51单片机的一些经验,加密的,密码19880927,共包括几个部分,有LED,数码管,AD,DA,按键识别,LCD1602,串口通信,实时时钟DS1302,温度传感器DS18B20,还有一本学51C编程的书籍,觉得不错,有兴趣的看看,如果...
  • 我学51单片机的一些经验,加密的,密码19880927,共包括几个部分,有LED,数码管,AD,DA,按键识别,LCD1602,串口通信,实时时钟DS1302,温度传感器DS18B20,还有一本学51C编程的书籍,觉得不错,有兴趣的看看,如果...
  • 我学51单片机的一些经验,加密的,密码19880927,共包括几个部分,有LED,数码管,AD,DA,按键识别,LCD1602,串口通信,实时时钟DS1302,温度传感器DS18B20,还有一本学51C编程的书籍,觉得不错,有兴趣的看看,如果...
  • 我学51单片机的一些经验,加密的,密码19880927,共包括几个部分,有LED,数码管,AD,DA,按键识别,LCD1602,串口通信,实时时钟DS1302,温度传感器DS18B20,还有一本学51C编程的书籍,觉得不错,有兴趣的看看,如果...
  • 单片机作为一种简单的控制器在生活中有这广泛的应用,当然在工业型单片机在生产中也扮演着很重要的角色,所以对于一个学习自动化的工控人来说,学习单片机是非常有必要的。
  • 怎样学好单片机很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。
  • 单片机初学者学习之路—经验
  • 本人从事单片机相关工作多年,首先是从51系列单片机开始学习的。自己想把学习经验写下来,与大家共同探讨学习单片机的捷径。
  • 怎样才能学习单片机?本文由资深工程师刘平分享其学习单片机的六点经验,希望能和大家共勉,最好是达到心灵上的共鸣。
  • 本教程可用于飞思卡尔单片机初学者用来学习入门,本教程上所讲的知识都是一些基础的应用知识,简单易懂,很适合初学者,如果有51单片机经验学习起来会容易很多……………………
  • 单片机学习经验总结

    千次阅读 2013-11-14 20:17:22
    单片机学习是嵌入式中的裸机开发,也就是不基于操作系统的开发过程,你只要把自己学的程序下载到单片机内执行即可(这个过程有个专业术语:烧写), 在这个过程中,你所写的程序,主要是控制作用。然而基于操作...

             单片机的学习是嵌入式中的裸机开发,也就是不基于操作系统的开发过程,你只要把自己学的程序下载到单片机内执行即可(这个过程有个专业术语:烧写)在这个过程中,你所写的程序,主要是控制作用。然而基于操作系统的开发过程,对于我们计算机专业的学生来说,主要是开发进行嵌入式应用程序和驱动这两个方面,这时候我想才是真正的嵌入式开发过程,说到这你可能会发出这样的问题:那为什么我们还要学单片机?直接学arm这类真正的嵌入式开发不就行了吗?这就牵扯到学单片机的意义,其实从嵌入式开发的历史来看,刚开始就是简单地裸机开发过程,不涉及到基于嵌入式操作系统的开发过程,所以从单片机入手学习嵌入式,第一,你可以从这个行业的起点开始,真正使自己的知识系统化。第二,在学完单片机之后,可以加快你学习arm的速度。接下来我将从三个方面讲怎样学习单片机。

     

       准备篇:刚开始,你可以不用急着写程序,你可以把什么是单片机这个概念搞懂,你可能已经看到过一块单片机开发板,记住:我这里强调的是单片机开发板,而不是单片机。单片机是由微处理器、存储器和I/O接口电路构成,同时它也有自己的内部资源:定时/计数器、中断源、优先级查询电路以及内部总线(C51是单总线结构),。单片机微处理器一般是8位的,存储器分为ROMRAM,在C51中,有4KROM128字节的RAM,它们各自的容量要根据不同的单片机型号而定,我认为现在的单片机的存储器相比以前已经拓展的很大了,例如STC12C5A 系列,他们的ROM已经是64KRAM1028B,相比传统的C51,你说这容量是不是很震撼。我想也是的。当然了,如果你足够牛,你也许会碰到这样一个情况:为什么我写个一个全板测试测序为什么在C51上下载不进去呢?因为你的程序大小已经超过了4K了,呵呵。。。。在刚刚介绍单片机的内部资源时,你也许已经发现了,为什么我没有把内部资源写的那么具体,因为不同单片机的内部资源是有所不同的,但是都是大同小异,所以当你拿到一个开发板时,首先就要看他的数据手册,看看它的内部资源是哪些,心中要有个数。。。。由单片机再加上外围设备(简称外设)就可以叫:单板机了,也就是人们常说的单片机开发板。外设是很活的东西,因为外设的添加不是那么固定,这要根据开发单片机板子的工程师怎样设计了。。。但是现在基于C51内核的单片机开发板,其添加的外设都是差不多的,例如用于时钟的DS1302,温度传感器18b20,数码管,显示器160212864以及TFT彩屏,还有大多数基于IIC总线的PCF8591EEPROM,键盘(独立和矩阵)等等。。

    这时候,你可以不用着急忙于学外设,你主要的任务是掌握单片机的运作过程,当实现一个小功能的程序时,你可以想想这个程序涉及到哪些硬件资源,这个资源怎样工作的?即使不太懂也不用着急,毕竟这个时期主要是掌握单片机内部原理,具体的思路你可以结合“模拟电路”,“数字电路”“计算机组成原理”“汇编语言”的知识获得,学习单片机我认为是一件很幸福的事,为什么这样说,它本身就可以看做是一个早期的“电脑”,你可以知道各个指令的运行实质(结合计算机组成原理中的“指令执行过程”),这样当你在写代码的时候,心里不会感觉那么“虚”。。。。。说的有点远了。说说汇编吧,我认为学习汇编目的也就是为了更好地了解单片机里面的内部资源:寄存器。因为C语言里面涉及到寄存器编程的很少,但是汇编就不同了,它对寄存器和物理地址都要掌握才能够编程,这点对于单片机的学习还是很有好处的,因为你可以对“控制”这个概念有个很好的感性认识。。。说到现在,就是要告诉你,掌握单片机原理。但是难点还是有的,例如中断响应部分,各个I/O口结构的特点,这方面在编程时会涉及到,有时候你忽视它,可能会造成不是自己想要的结果。当然了,在这个阶段,你不光要掌握单片机原理,还要把数字电路和C语言回顾一下。。。。。。

     

       入门篇:这个阶段你可以用C语言写代码往里面烧写程序了,记住这个阶段有很重要的一点:不要放过任何一个程序,在这个时候你编写的程序,有时候会碰到各种错误,但是正是这种错误才能锻炼你的能力,所以尽量写代码。你可以先从内部资源的编程着手,例如学会熟悉各个引脚的控制,熟悉中断的编程,用各种方法实现流水灯(方法一:利用循环左移(分为调用函数方式和P0=~0x01<<j;j++方式);方式二:利用数组;方式三:用扩展I/O中的38译码器74HC138)。这些是我自己想的,你也可以用自己想到的方法去实现。相信自己。当自己熟悉了编译环境后,最好找个源程序,把调试部分熟悉一下,毕竟编译环境的熟悉在调试中还是有点必要的。。。当你不会因一些小问题或软件的故障而纠结时,你就可以开始对外设的编程控制了,这时候你就要掌握看开发板的原理图,在碰到这个模块时,首先要知道它是干什么的?然后记住它的各个接口怎么和单片机I/O相连的再了解他的各个电气特性,记住是了解而不必深究,因为关于各个模块的设计和电器特性,对于我们来说不是why 而是remember!  当然了,当你涉及到通信:UARTIIC时你应该参照时序图,把底层代码看懂,看着看着你就会了,毕竟他们的底层代码也不多。。。记住时序图一定要会看。这时候,不要把各个源代码下载进去仅看看现象,然后跟看电影的一样,我想这样你还不如真的去看电影,因为你的主要任务就是写代码,你这种方式放弃了你的主要学习部分!!所一定要学会写程序。。。。当你把各个模块都编程了一遍后,我想你还差很大的火候,因为你没真正的去做:“想-----调试-------调试-----实现”这样的项目实现,如果你能达到这个地步,我想说:你入门了!!!

     

        提高篇:这个阶段,我想你应该开始找小的项目做了,例如在TFT上做个温度变化趋势图,做个模拟闹钟什么的。。。要实现这里的每一个小项目,我感觉还是值得你去花一两天认真的去钻研的。。。。毕竟这时候是你“自己想到,自己做到”的过程,(想想是不是很好玩?当你做出这些项目的时候,你的快乐是别人所不知道的,呵呵),这个时候你可以尽量把板子上的资源综合起来编程,尽量做个全板测试程序。。。学到这里,我想你不是菜鸟了,但是还不是高手,因为单片机的学习,对于我们计算机专业的来说,我们还是仅仅专研的是软件部分,硬件仅仅涉及到模块的接口,时序部分。。。。所以能走到这里,恭喜你:你不是菜鸟了。。。。。。。后来的路其实我在这里不用说了,因为你学到这里,自己自然之道自己怎么走了,

    如果你想以后从事嵌入式行业,你可以用基于操作系统的开发板学习了我认为,在几个流行的嵌入式系统中:WIN CE,LINUX 以及VXWORK中,我认为你可以选择WINCE 或者LINUX,在开发板上,有ARM,PPC以及MIPS,我认为可以毫不犹豫的选择ARM ,所以买个开发板吧,向终极菜鸟进军。。。。。

     

            最后,就说说单片机比赛,按照安徽省单片机比赛的趋势来看,我想板子里面的源代码他会给你的,所以你不必纠结于一些不必要的底层实现上,例如TFT彩屏的GUI,你有必要写吗?我想是没必要的,即便在你工作时,你从事的不是写GUI,而是基于GUI写应用程序。但是在把底层代码输进去的时候,一定要保证它是对的,不然比赛时,你哭都没办法,真的!!还有你比赛时的速度取决于你平时能把板子上资源掌握的有多熟悉,因为比赛的赛题,不可能是单个模块的编程。。。。还有队友间的合作很重要,一定要把任务分工明确,不然会有一个干的是无用功。。。。在比赛的准备阶段,不要忘记收集好的历程和思想,因为比赛有时真的可以用到。。。。。

     

    展开全文
  • 文章内容为12点高级硬件工程师的学习单片机的方法。
  • 单片机设计经验分享

    2020-08-30 17:31:59
    很多单片机初学者在与我交流的时候总是的一句话是我现在是单片机初学者,我怎样才能更快的学好单片机学习单片机有市场不,对于这个问题现在就我自己如何学单片机,如何入门,如何熟练,整个过程谈谈自己的想法。
  • 学习51单片机的基本调试经验
  • 使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还采用和沿袭以前传统的硬件和软件设计思想和方法的话,是不能用好AVR的,甚至也不能真正的了解AVR的特点和长处。
  • 到现在已经有4年的时间了,在这期间学习和使用了51单片机、飞思卡尔单片机,LPC2138,PIC16F887等系列的单片机,每接触一款单片机,都会经历熟悉其基本开发,然后将其用于项目中的过程,对于如何学习一款单片机,...
  • 本文将讨论学习51单片机的基本调试经验
  • 单片机学习心得体会_经验总结

    千次阅读 2020-09-15 10:48:45
    一、单片机简介  单片机主要由运算器、控制器和寄存器三大部分构成。其中,运算器由算术逻辑单元(ALU)、累加器、寄存器等构成,首先累加器和寄存器向ALU输入两个8位源数据,其次ALU完成源数据的逻辑运算,最后将...

    一、单片机简介

      单片机主要由运算器、控制器和寄存器三大部分构成。其中,运算器由算术逻辑单元(ALU)、累加器、寄存器等构成,首先累加器和寄存器向ALU输入两个8位源数据,其次ALU完成源数据的逻辑运算,最后将运算结果存入寄存器中;控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等构成,是一个下达命令的“组织”,用于协调整个系统各部分之间的运作;寄存器主要有累加器A、数据寄存器DR、指令寄存器IR、指令译码器ID、程序计数器PC、地址寄存器AR等。

      在微处理器内部运算器、控制器、寄存器之间是相互连接的,由控制器向各部分发布操作命令,运算器接到命令后进行相应运算,并将运算后结果存入相应的寄存器中。

    二、单片机的基本工作原理

      单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。

      为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。

      程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。

      单片机学习心得体会_经验总结

    三、单片机要学习的内容

      第一步:数字I/O的应用

      在大多数的单片机实验中,跑马灯实验正是数字I/O的典型应用,也是跑马灯的实验被安排第一个的原因。通过将单片机的I/O引脚位进行置位或清零来点亮或关闭LED灯,虽然简单,但是这就是数字电路中的逻辑功能。数学I/O应用的实验还有按键实验,当按下某键时,某LED灯被点亮。数字I/O实验教会我们单片机的编程思想,必须首先对单片机的相应寄存器进行配置,以初始化I/O引脚,这样才能使该引脚具备数字输入与输出功能。 单片机的一个内置或外置功能的使用,就是对该功能相关的寄存器进行设置,初始化,而这便是单片机编程的特点。少则4、5个函数搞定,多则十几行程序,要有耐心,别怕麻烦,所有的单片机都是这样。

      第二步:RS232串口通讯

      单片机都有UART接口,这个简单、古老的通讯方式可以与我们PC机的RS232接口直接连接通讯,当然,因为它们两者电平逻辑不同,必须要使用一个RS232电平转换芯片才能与PC机连接,例如Max232芯片。

      UART接口的使用是非常重要的,通过这个接口,我们可以使单片机与PC机之间交换信息,“接口”概念的学习也便由此引入。使用UART接口也会学习到目前最为简单与常用的通信协议等知识。我们也可以通过PC机的串口调试软件来监视到单片机实验板的数据,想一想,这会是一个多么神奇的事情啊~~

      第三步:定时器的使用

      学会定时器的使用,就可以利用单片机来实现典型的时序逻辑电路。时序逻辑电路的应用是最强大、最广泛的。例如,在工业的控制中,我们让某个开关每隔1秒钟打开与关闭一次。这个方案可以通过普通的数字集成电路实现,也可以通过PLC来实现,也可以通过CPLD或FPGA来实现,但是只有单片机的实现是最简单,成本也是最经济的。定时器是单片机内部资源里最为重要的一个,更是逻辑与时间控制实现的基础。

      第四步:中断

      在单片机软件设计架构中,一段程序循环执行是其一个特点,也是一个弊端。每个操作指令的执行都需要一定的执行时间,如果程序没有执行到该指令,则该指令的动作就不会触发,这样就会忽略许多快速发生的事件,例如方波频率检测的上升沿。针对在单片机程序正常运行时能够对外部事件立即做出响应而设计了中断功能。当中断功能执行时,单片机优先处理中断程序,当中断处理完成后,再回到单片机的正常程序执行中。中断的机理是比较容易理解的,但是什么时候打开中断,什么时候关闭、屏蔽中断,需要如何配置才能使能中断的某些功能,中断里要执行哪些程序,这些程序的要满足哪些要求就需要花些时间去理解与实践了。中断学会后,就可以编写复杂结构功能的程序,可以一边闪着小LED灯,一边扫描着按键,一边发送着数据,也可以干着多个事情……打个比喻,中断功能可以使单片机吃着碗里的,看着锅里的。根据传说中的8020定律,如果您掌握了上面提到的这四步,那么,您已经学会了80%的内容了。

      第五步:I2C、SPI通讯接口

      单片机系统毕竟资源有限,而利用I2C、SPI通讯接口进行扩展外设是最常用的方法,也是非常重要的方法。这两个通讯接口都是串行通讯接口,典型的基础实验就是I2C的EEPROM实验与SPI的SD卡读写实验。

      第六步:比较,捕捉,PWM功能

      比较,捕捉与PWM功能可以使单片机更加适合电机控制,信号检测,实现电机速度与步长的调节。PWM波现在又是LED调光的主要手段。这里已经初步接触了数字电路里的模拟电路部分。

      第七步:A/D模数采集

      单片机目前基本都自带多通道A/D模数转换器,通过这些A/D转换器可以单片机获取模拟量,用于检测电压、电流等信号。学习时要分清模拟地与数字地,参考电压,采样时间,转换速率,转换误差等重要概念。这一步学会了数字电路控制模拟电路部分,而最简单的A/D模数转换器就是电压表实验。

      第八步:学习USB接口、TCP/IP协议、工业总线

      目前主流的通讯协议为USB协——下位机与上位机高速通讯接口;TCP/IP——万能的互联网使用的通讯协议;工业总线——诸如Modbus,CANOpen等工业控制各个模块之间通讯的协议。这些都会应用在未来的项目里,集成入单片机里的固件,并且也是当前产品开发的一个发展方向。

    四、学习单片机的心得体会

      首先,学习单片机要有必须的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,个性是数字电路;编程语言要求汇编语言或C语言。要想成为单片机高手,推荐初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为看了某某的视频教程就以为掌握了C语言,那只是C语言的一部分。在那里给大家推荐一本单片机C语言程序设计参考书,马忠梅等著,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,推荐学习清华大学谭浩强编写的C语言程序设计,这本书写的不错,通俗易懂。

      其次,是单片机教材选取。单片机是一门十分重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有必须地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。此刻单片机应用广泛,因此各个厂家分别推出了自己的单片机,按内部结构体系派系分:51系列、PIC系列、AVR系列、摩托罗拉等等……我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有必须的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们要选取一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编MCS-51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。

      然后,是开发工具和开发环境的选取。选取一块适宜的学习板,对于初学者来说一般无力理解,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、AD或DA、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是十分宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。随便推荐一下,学林电子的51tracer仿真器,有兴趣的朋友可关注一下。有了单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自己多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自己的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得十分兴奋,比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞

      定某个实验,就恭维的告诉你一声”恭喜你,学会了”自己学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了必须了解和会使用它了。但是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品。因此除了入门外,精通可千万别轻易说出口。

      最后,在熟练掌握和应用后,那能够说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。最终,自己完全设计具有个人风格的电路,产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。时下多家电子类的报刊杂志如:《电子制作》《无线电》《电子报》《电子世界》都开设了详细的单片机教程专栏,对于想学习单片机的朋友来说帮忙很大,能够说此刻的单片机教程环境是最好的,有网络,有书籍,有报刊杂志,还有视频教程,元件的采购方面也十分充足,相关的器材又多有便宜。如果每一天能抽出两小时的时间去学习,快的一个月,慢的三个月就入门拉。

      单片机学习心得体会_经验总结

     五、经验总结

      (1)学习单片机没有捷径,别指望两三天就学会,要坚持不懈,重在积累。

      (2)别崇拜高手,别相信天才,大部分人都不是天才(相信你也不是)!

      (3)单片机是一门应用性和实践性很强的学科,要多动手,多做实验。

      (4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程潜力。

      (5)碰到问题能够借助网络来搜寻答案和对自己有帮忙的问题,能够大大减少你的开发时间。

      (6)要多交一些朋友,多交流。技术是靠不断的积累和交流才会进步的,封闭自守只会更加落后。

    免责声明:转载文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

    展开全文
  • 单片机裸机开发经验

    2021-01-19 18:23:04
     也许是学习单片机出身的原因,我有一个毛病,就是对别人的代码不放心、凡事非得扣到底层。 一开始我看天嵌的裸奔三部曲,有一个体会——越看越迷茫。尤其是简单地修改了天嵌的程序,实现了显示几个自定义图片的...
  • 51单片机学习经验(附学习总结).pdf
  • 单片机学习资料,入门知识你会了吗,这里讲解下防干扰经验 在电子系统设计中,为了少走弯路和节省时间,应充分考虑并满足抗干扰性的要求,避免在设计完成后再去进行抗干扰的补救措施。形成干扰的基本要素有三个:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,699
精华内容 4,279
热门标签
关键字:

单片机学习经验