单片机论文心得体会

心得体会 时间:2018-01-21 我要投稿

  单片机论文心得体会(一)

  随着大规模集成电路的出现及其发展,将计算机的CPU 、RAM 、 ROM 、定时/数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机 。

  单片机是微型计算机应用技术的一个重要分支,近年来在工业智能仪器仪表、光机电设备、自动检测、信息处理、家电等的得到广泛应用和迅速发展。

  单片机是自动地进行运算和控制,把实现计算和控制的步骤一步步地用命令的形式,即一条条指令预先存入到存贮器中,单片机在CPU的控制下,将指令一条条地取出来,并加以翻译和执行,得到你要的东西。

  这学期在老师的带领下,我从对单片机一无所知的到现在终于有点了解,这期间虽然没有在这方面下很大的功夫,但是也学到了一点知识,从点亮一个灯,到流水灯再到数码管的显示以及后面独立按键。

  这都是我以前无法想象的。

  单片机这门课是一科非常重视动手实践的科目,不能总是看书,但是也不能完全不看书。

  单片机并不象传统的数字电路或模拟电路那样比较直观,原因是除了“硬件”之外还存在一个“软件”的因素。

  正是这个“软件”的原因使得许多初学者怎么也弄不懂单片机的工作过程,怎么也不明白为什么将几个数送来送去就能让数码管显示一串字符或控制一个电机的变速。

  对初学单片机的人来说,需要从书中大概了解一下单片机的各个功能寄存器,如果看的多了反而容易搞乱,现在市场上大多数讲单片机的书一开始就讲解较复杂的内存、地址、存储器什么的,更让初学者感到不知所云、难以入门。

  如果按教科书式的学法,上来就是一大堆指令、名词,学了半天还搞不清这些指令起什么作用,能够产生什么实际效果,那么也许用不了几天就会觉得枯燥乏味而半途而废。

  简单的说,使用单片机实际上就是用我们自己编写的软件去控制单片机的各个功能寄存器。

  再简单些,就是控制单片机哪些引脚的电平什么时候输出高电平,什么时候输出低电平。

  由这些高低变化的电平来控制外围电路,实现我们需要的各个功能。

  学习单片机首先用到c语言,提到C语言源文件,大家都不会陌生。

  因为我们平常写的程序代码几乎都在这个XX.C文件里面。

  编译器也是以此文件来进行编译并生成相应的目标文件。

  作为模块化编程的组成基础,我们所要实现的所有功能的源代码均在这个文件里。

  理想的模块化应该可以看成是一个黑盒子。

  即我们只关心模块提供的功能,而不管模块内部的实现细节。

  在大规模程序开发中,一个程序由很多个模块组成,很可能,这些模块的编写任务被分配到不同的人。

  而你在编写这个模块的时候很可能就需要利用到别人写好的模块的借口,这个时候我们关心的是,它的模块实现了什么样的接口,我该如何去调用,至于模块内部是如何组织的,对于我而言,无需过多关注。

  而追求接口的单一性,把不需要的细节尽可能对外部屏蔽起来,正是我们所需要注意的地方。

  谈及到模块化编程,必然会涉及到多文件编译,也就是工程编译。

  在这样的一个系统中,往往会有多个C文件,而且每个C文件的作用不尽相同。

  在我们的C文件中,由于需要对外提供接口,因此必须有一些函数或者是变量提供给外部其它文件进行调用。

  假设我们有一个LCD.C文件,其提供最基本的LCD的驱动函数 。

  在当前位置输出一个字符 而在我们的另外一个文件中需要调用此函数,那么我们该如何做呢? 头文件的作用正是在此。

  可以称其为一份接口描述文件。

  其文件内部不应该包含任何实质性的函数代码。

  我们可以把这个头文件理解成为一份说明书,说明的内容就是我们的模块对外提供的接口函数或者是接口变量。

  同时该文件也包含了一些很重要的宏定义以及一些结构体的信息,离开了这些信息,很可能就无法正常使用接口函数或者是接口变量。

  但是总的原则是:不该让外界知道的信息就不应该出现在头文件里,而外界调用模块内接口函数或者是接口变量所必须的信息就一定要出现在头文件里,否则,外界就无法正确的调用我们提供的接口功能。

  因而为了让外部函数或者文件调用我们提供的接口功能,就必须包含我们提供的这个接口描述文件----即头文件。

  同时,我们自身模块也需要包含这份模块头文件(因为其包含了模块源文件中所需要的宏定义或者是结构体,好比我们平常所用的文件都是一式三份一样,模块本身也需要包含这个头文件。

  接着我学习到了中断系统。

  中断装置和中断处理程序统称为中断系统。

  中断即单片机在执行某一段程序的过程中,由于单片机系统内部或者外部的某种原因,有必要中止原程序的执行,而去执行相应的处理程序,待处理结束后,再返回来继续执行原程序的过程。

  中断处理过程分为中断请求、中断响应、中断处理和中断返回。

  中断使单片机对外部或内部随机发生的事件具有实时处理的能力。

  大多数中断系统都具有如下几方面的操作,这些操作是按照中断的执行先后次序排列的。

  ①接收中断请求。

  ②查看本级中断屏蔽位,若该位为1则本级中断源参加优先权排队。

  ③中断优先权选择。

  ④处理机执行完一条指令后或者这条指令已无法执行完,则立即中止现行程序。

  接着,中断部件根据中断级去指定相应的主存单元,并把被中断的指令地址和处理机当前的主要状态信息存放在此单元中。

  ⑤中断部件根据中断级又指定另外的主存单元,从这些单元中取出处理机新的状态信息和该级中断控制程序的起始地址。

  ⑥执行中断控制程序和相应的中断服务程序。

  ⑦执行完中断服务程序后,利用专用指令使处理机返回被中断的程序或转向其他程序。

  接着又了解了定时器。

  定时/计数器是单片机的一个重要组成部分,为设计者提供了与时间有关的功能的实现方法。

  定时、计数是同一个部件不同功能的体现:定时,是对单片机内部系统时钟作用下产生的固定时间间隔的脉冲进行计数来实现定时;计数,是对单片机外部引脚上触发的脉冲进行计数。

  HT46R232 有两个定时/计数器(TMR0,TMR1)。

  定时/计数器0 是16 位向上计数的,其时钟来源可以是外部信号输入或内部时钟,内部时钟为fSYS。

  定时/计数器1 是16 位向上计数的,其时钟来源可以是外部信号输入或内部时钟,内部时钟为fSYS/4。

  定时器有几种工作模式。

  1、定时模式(即普通的定时器)用来定时固定的时间间隔,当定时器溢出时,产生一个内部中断信号。

  写入TMR0L(TMR1L)只能将数据写到低字节缓冲器(8 位) ,而写入TMR0H(TMR1H)会把指定数据和低字节缓冲器的数据分别写到TMR0H(TMR1H)和TMR0L(TMR1L)预置寄存器中,定时/计数器0/1 预置寄存器的内容只有在写入TMR0H(TMR1H)时才会被改变。

  读取TMR0H(TMR1H)会把TMR0H(TMR1)的内容送至目标单元,而TMR0L(TMR1L)的值被送至低字节缓冲器中;读TMR0L(TMR1L)将读取低字节缓冲器的值。

  无论是定时模式还是外部事件计数模式,一旦开始计数,定时/计数器会从寄存器当前值向上计到0FFFFH。

  一旦发生溢出,定时/计数器会从预置寄存器中重新加载初值,并开始计数;同时置位中断请求标志。

  T0ON/T1ON只能用指令清除。

  在定时/计数器停止计数时,写数据到定时/计数器的预置寄存器中,同时会将该数据写入到定时/计数器。

  但如果在定时/计数器运行时这么做,数据只能写入到预置寄存器中,直到发生溢出时才会将数据从预置寄存器加载到定时/计数器寄存器。

  读取定时/计数器时,计数会被停止,以避免发生错误;计数停止会导致计数错误。

  2、外部事件计数模式,测量外部引脚的逻辑电平改变的次数。

  3、脉冲宽度测量模式,一次测量一个外部引脚的脉冲宽度。

  后来还学习了A/D转换。

  即将模拟量转换为数字量。

  首先将输入的模拟电压信号按照某一时间节拍进行采样,并将采样结果进行保持,在保持的时间内将采样的电压量化为数字量,并按一定的编码形式给出转换结果。

  HOLTEK MCU的A/D转换器采用的是逐次逼近式A/D转换方式。

  逐次逼近法的A/D转换器是由一个比较器、D/A转换器、缓冲寄存器及控制逻辑电路组成。

  基本原理是从高位到低位逐位试探比较,好像用天平称物体,从重到轻逐级增减砝码进行试探。

  逐次逼近法转换过程是:初始化时将逐次逼近寄存器各位清零;转换开始时,先将逐次逼近寄存器最高位置1,送入D/A转换器,经D/A转换后生成的模拟量送入比较器,称为 Vo,与送入比较器的待转换的模拟量Vi进行比较,若Vo然后再置逐次逼近寄存器次高位为1,将寄存器中新的数字量送D/A转换器,输出的 Vo再与Vi比较,若Vo重复此过程,直至逼近寄存器最低位。

  转换结束后,将逐次逼近寄存器中的数字量送入缓冲寄存器,得到数字量的输出。

  逐次逼近的操作过程是在一个控制电路的控制下进行的。

  接着又学到了PWM输出,脉宽调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

  简而言之,PWM是一种对模拟信号电平进行数字编码的的方法。

  通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。

  PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。

  电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。

  通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。

  只要带宽足够,任何模拟值都可以使用PWM进行编码。

  PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。

  让信号保持为数字形式可将噪声影响降到最小。

  噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。

  HT46R232(28脚封装)有2个通道(6+2)/(7+1)位的PWM输出(由掩膜选项决定),与PD0/PD1共用引脚。

  PWM 计数器的时钟来源为系统时钟(fSYS),由数据寄存器PWM0(1AH)、PWM1(1BH) 来控制输出。

  一旦PD0/PD1选择为PWM 输出,并且PD0/PD1为输出模式(PDC.0/PDC.1=“0”),则向PD0/PD1 寄存器写“1”能够产生PWM 输出,向PD0/PD1 寄存器写“0”会使PD0 输出保持为“0”。

  通过这一学期的学习,从面临的问题的模糊认识到最后能够对该问题有深刻的认识,我体会到实践对于学习的重要性,以前只是知道一点很表面、很狭隘的知识,没有经过实践考察,对知识的理解不够明确,通过这次从网上找这方面的材料、科研论文,本文由论文联盟http://www.LWlm.cOM收集整理,以及仿照编程,真正体会到单片机的无穷魅力与博大精深。

  要做好一个完整的事情,需要有系统的思维方式和方法,对待要解决的问题,要耐心、要善于运用已有的资源,以及主动搜集资料来解决问题、从而深化学习、充实自己。

  同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样才能更加有效。

  单片机论文心得体会(二)

  最近自己对单片机特别的感兴趣,因为看到它能控制电机的转动,自己觉得很神奇。

  就想弄清楚它到底是怎么做到的?

  我看到书上讲:单片机可以用两种语言编写,一种是c语言,另外一种是汇编语言。

  汇编语言是一种机器语言,且代码繁琐,不易记忆。

  需要掌握单片机的内部结构和逻辑结构,通过看了几本书让我了解认识到汇编确实太繁琐,不过我学习过c语言,也参加了全国计算机二级考试,觉得自己在一方面具有优势,能很快学好它。

  不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。

  我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。

  单片机是一门很好的学问,需要我去钻研它。

  时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。

  俗话说“好的开始是成功的一半”。

  说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。

  其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。

  最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

  虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。

  硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。

  当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。

  第二,是在学习态度上,这次课设是对我的学习态度的一次检验。

  对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。

  我们这次实习所遇到的多半问题多数都是由于我们不够严谨。

  第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

相关推荐