单片机学习心得体会范文(精彩4篇)
【导言】此例“单片机学习心得体会范文(精彩4篇)”的公文资料由阿拉题库网友为您分享整理,以供您学习参考之用,希望这篇资料对您有所帮助,喜欢就复制下载支持吧!
有关单片机心得体会【第一篇】
一、生产实习的目的和意义:
生产实习是培养本科学生理论联系实际,提高实际动手操作能力的重要教学环节。本专业的生产实习旨在使学生广泛了解实际电子产品生产的全过程,熟悉电子产品的主要技术管理模式,并在实习的操作过程中学习、掌握电子产品的焊接、安装、调试的实际操作技能。巩固和加深理解所学的理论,开阔眼界,提高能力,为培养高素质大学本科人才打下必要的基础。通过学习,是理论与实际相结合,可以使学生加深对所学知识的理解,并为后续专业课的学习提供必要的感性知识,同时使学生直接了解本业的生产过程和生产内容,为将来走上工作岗位提供必要的实际生产知识。
二、实习的基本内容:
集中授课,进行相关知识的学习。
学习、掌握电子产品的独立性设计与安装、调试的能力;进一步掌握电子测量仪器的正确使用方法,电元器件的测量与筛选技术。
初步了解电子整机产品的工艺过程。
为能使学生得到充分的锻炼,较大的提高学生的实际动手能力,本次生产实习安排每一位学生独立完成全部系统的设计与安装工作。
本实习环节,学生要独立使用电焊铁及各种电子测试设备电路安装与调试,要学生严格遵守电器设备的使用安全,遵守实验室的各项规章制度。
三、基本要求:
在教师的指导下练习在测试电路德核心板上焊接元件,掌握焊接要领。
熟悉元器件的性能及管脚分配。
在给定的pcb板上焊接跳线,ic插座,电阻,电容,led器件等。
检查焊接是否正确。
插上元器件,运行系统,并观测系统工作是否正常。
四、总体设计电路思想和原理:
本次生产实习用到的开发板和模块共7块,分别为:单片机核心板,电子钟模块,mp3模块,rfid模块,无线传输模块,脉搏传感模块,gps模块。
各模块相互组合,其所能实现的基本功能如下:
单片机核心板+电子钟模块:实现时间的显示,温度的测量,且可通过遥控器调时、定闹等。
单片机核心板+无线传输模块:实现数据的近距离无线传输。
单片机核心板+mp3模块(含sd卡):实现mp3播放功能。
单片机核心板+rfid模块:实现地铁检票系统的模拟。
单片机核心板+脉搏传感模块:实现人体脉搏传感的测量。
单片机核心板+gps模块:实现gps卫星定位功能。
(一)核心板电路设计
单片机核心板电路主要包括stc12c5a60s2单片机,电子钟模块接口电路,mp3接口电路,无线传输模块接口电路,脉搏传感模块接口电路,gps模块接口电路,串口扩展电路,电源供电电路。该系统的单片机是宏晶科技生产的单时钟机器周期(it)的单片机,是高速、低功耗、超强干扰的新一代8051单片机。通过使用stc-isp软件,该单片机可实现串口在线编程,无需编程器,无需仿真器。
核心板电路的设计思想主要是围绕单片机芯片的工作原理和特点,为其实现合理的设计出外围电路:包括电源电路,显示电路部分,复位电路部分,串行口通信电路,按键电路等。
(二)电子钟模块电路设计
该模块主要用到的芯片有:时钟保持芯片ds1302,单总线数字温度传感器ds18b20,红外遥控解码器tl1838a。
该模块电路设计的思想是了解这三种芯片的工作电压,ds1302的工作时钟频率以及三种芯片与单片机之间的硬件连接。
(三)mp3模块电路设计
该模块用到的主要芯片有mp3音频解码芯片vs1003,电压转换芯片,电压转换芯片。
该电路的设计思想主要是了解芯片的作用和特点,寻找各芯片之间的联系,vs1003芯片是该模块的主要部分。单片机设有单独解码mp3文件的功能,而单片机可与通过vs1003的接口电路的连接,进行mp3的解码,实现音频的输出。通过芯片各引脚的功能和特点,合理的设计出相应的外围电路。
(四)rfid模块电路的设计
该模块的电路所用到的主要芯片为的非接触式通信读卡芯片fm1702。该芯片是基于iso/4443标准的非接触卡读卡机专用芯片,采用微米cmos 、eeprom工艺,支持频率下的type a非接触式通信协议,
支持多种加窗算法,兼容philips的mfrc530(spi接口)读卡机芯片。
该模块的电路设计思想是基于fm1702各引脚的功能和特点,合理的设计芯片的外围电路,其中的电容和电感所构成的天线是芯片与s50卡通信的工具。
五、单元电路设计:
单片机核心板电路分析
单片机核心板是本次实习中最重要的部分,它是实现各种模块功能的基础部分。单片机核心板的核心是stc12c5a60s2单片机芯片,围绕该芯片设计出相应电源供电电路,蜂鸣器驱动电路,按键电路,串行口通信电路,复位电路,液晶屏驱动电路以及各模块的接口电路,由以上的电路部分就构成一个核心板电路系统。
电子钟模块电路分析
电子钟模块配合单片机核心板,可在lcd1602液晶屏上显示当前的日期(年月日)时间(时分秒),环境温度值,和红外遥控解码值。用户可通过遥控器或单片机核心板上的按键来进行日期和时间的设置。
通过遥控上的“eq”键,可控制led显示界面在时间、温度、红外解码之间的切换。如果想调整时间,需要首先使用遥控器的“eq”键将lcd显示调制时间界面;之后通过按“播放停止键”将时间停止;然后再按“左快捷键”向右切换;最后按“加减键”可以进行数值的加减操作,调整完成后,再次按“播放停止键”,时间开始运行。另外通过单片机核心板上的k1-k4键也可以完成时间的调整:其中k1键对应遥控器的“右快捷键”,即实现向右切换年月日时分;k3键对应遥控器的“加键”,即实现年月日时分的加1;k4键对应遥控器的“减键”,即实现年月日时分的减1。
mp3电路模块分析
是一单芯片mp3/wma/midi音频解码和adpcm编码芯片,其拥有一个高性能低功耗的dsp处理器核vs-dsp。5k的指令ram,的数据ram,串行的控制和数据输入接口,4个通用io口,1个uart口;同时片内带有一个可变采样率的dac,一个立体声dac以及音频耳机放大器;vs1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。
与单片机连接的引脚主要有7个,分别为:so、si、sclk、xdcs、xreset、dreq、mosi,只有保证它们与单片机正确可靠的连接,才能对vs1003进行有效的操作与控制。另外,vs1003各部分的供电电压与输出电压值是不同的。
芯片各部分供电电压如下表:
供电部分最小电压推荐电压最大电压
模拟)
数字)
卡是一种大容量,性价比高,体积小,访问接口简单的存储卡。sdimmc卡大量 应用于数码相机、mp3、手机、大容量存储设备。作为这些便携式设备的存储载体,它具有低功耗,非易失性,保存数据无需消耗能量的特点。
卡只使用了1-7触点。对于1号引脚(cd/dat3)扩展的dat线(dat1-dat3)在上电后处于输入状态,它们在执行set-bus-width命令后作为dat线操作,当不用dat1-dat3线时,主机应使自己的dat1-dat3线处于输入模式,这样定义是为与mmc卡保持兼容。上电后,cd/dat3作为带50k上拉电阻的输入线(可用于检测卡是否存在或选择spi模式)。用户可以在正常的数据传输中用set-clr-card-detect(acmda口)命令断开上拉电阻的连接。mmc卡的该引脚在sd模式下为保留引脚,在sd模式下无任何作用。对于2号引脚cmd,mmc卡在sd模式下为io/pp/oo,mmc卡在spi模式下为i/pp。
关于电压匹配问题,sd卡的逻辑电平相当于 ttl电平标准,而单片机的逻辑电平为5v。因此,它们之间不能直接相连,否则会有烧毁sd卡的可能。解决逻辑器件接口的电平兼容问题,原则主要有两条:一为输出电平器件输出高电平的最小电压值,应大于接受电压器件识别为高电平的最低电压值;二为输出电平器件输出低电平的最大电压值,应小于接受器件识别为低电平的最高电压值。考虑到sd卡在spi协议的工作模式下,通讯都是单向的,于是在单片机向sd卡传输数据时采用晶体管加上拉电阻法的方案。在sd卡向单片机传输数据时,可以直接连接。因为它们之间的电平刚好满足上述的电平兼容原则,既经济又实用。该方案可以双电源供电(一个5v电源,一个电源供电),电源可用asl1117稳压管从5v电源稳压获取。
rfid模块电路分析
基于fm1702sl的非接触式ic卡读写器,只要稍加改动就能开发成不同的射频识别应用系统,如考勤系统,门禁系统,公交车收费系统等。s50非接触式卡符合mifare的国际标准,容量8k位,数据保存期10年,又可改写10万次,读无限次。s50卡不带电源,自带天线,内含加密控制逻辑电路和通用逻辑电路,卡与读卡器之间的通讯采用国际通用des和res保密交叉算法,具有较高的保密性能。
单片机与fmitdisl通用spi总线通信,采用中断工作模式,在fmitdisl复位后,必须进行一次初始化程序以便初始化spi接口模式,而且可以同步实现单片机和fmitdisl的启动工作。信息存储在mifarse卡里,读写器与卡通过各自的天线建立起二者之间非接触信息传输通道。当卡进入系统的工作区时,读写器向卡发射一组固定频率的电磁波,卡内有一个lc串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,lc谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端接有一个单向导通的电子粟,将带内容内的电荷送到另一个电容内存储,当所有积累的电荷达到2v时,此电容可做到电源为其它电路提供工作电压,将卡内数据发射出去或读取读写器的数据。
根据互感原理可知,读写器天线半径越大,匝数越多,读写器上的天线和卡上的天线的互感系数就越大。根据国际标准的要求,卡和读写器的通信距离为10cm,通过调整天线驱动电压可以改变通信的最长距离。天线的传输带宽和品质因数成反比关系。过高的品质因数会导致带宽减小,从而减弱读写器的调制边带,会导致读写器无法与卡通信。
无线传输模块分析
是一无线通信芯片,采用fsk调制,可以实现点对点或是1对6的无线通信。无线通信速度最高可达2mbps,只需为单片机系统预留5个gpio,1个中断输入引脚,就可很容易地实现天线通信的功能,非常适合用mcu系统构建无线通信功能。
具有收发模式,待机模式和掉电模式,四种工作模式,并由ce、寄存器内部pwr、vp和prim、rx共同控制。nrf24l01所有的配置都由配置寄存器来定义,这些配置寄存器可通过spi口访问。spi接口由sck、mosi、miso及csn组成,在配置模式下单片机通过spi接口配置nrf24l01的工作参数,在发射或接收模式下单片机spi接口发送和接收数据。
单片机的控制指令从nrf24l01的mosi引脚输入,而nrf24l01的状态信息和数据是从其miso引脚输出并送给单片机的。利用spi传输数据时,是先传输低位字节,再传输高位字节,并且在传输每个字节时是从高位传起。
六、单片机软件系统工作流程
通过使用stc-isp软件,stc12c5a60s2单片机可实现串口在线编程。由于现在大的数据计算机都不存在提供单独的串口,所以需要usb转rs232串口线。
usb转rs232串口设备驱动程序的安装
stc-isp v483串口下载软件
七、实习过程心得:
新学期伊始,就迎来了为期四周的单片机生产实习。在这次生产实习过程中,我受益颇多。这是我们经历的第一次广泛了解实际电子产品生产的全过程。从最初的设计,到焊接,安装,调试,我们都是逐一亲自动手操作完成的。在这次实习中,我们遇到了不少问题,但正是因为有了这些问题,才有了我们更加深入学习的机会。为了解决这些问题,我们查资料,探讨,请教老师,充分利用自己身边的一切资源来学习。这样的学习过程让我们对所学内容理解的更深刻,而且大大提高了我们的团结协作能力。()在实际操作焊接的过程中,我们从笨拙到熟练,动手能力不断提高,有了很大的进步。这为我们以后步入工作岗位做了良好的铺垫。
总之,通过这次生产实习,我受益匪浅,各方面的能力都有了提高。最后,感谢在实践过程中悉心指导的每一位老师!
单片机学习心得【第二篇】
在过去的二十多天里,我通过自学的方式,在哈尔滨工程大学郭天祥老师的视频为辅导下。自己借了同学的一块单片机学习实验板,从单片机最基础的部分学起,感觉收获不少,现将我最近的学习心得分享给大家,也希望那些在单片机外面迷茫的同学们能够快速入门。以获得更高的知识储备。
以前的我对单片机不知迷茫,甚至恐惧。但是现在我发现喜欢上了单片机。单片机用途太广泛了,我才发现基本上没有哪个领域能离开单片机了。单片机非常好玩,真的能让人上瘾。本着不想虚度大学生活的想法,我试着开始接触单片机,现在感觉已不能自拔。郭天翔老师的单片机教学视频非常的棒,真的。很感谢郭老师能把这么好的学习方法和大家分享。在这个视频的辅助下,我基本上已经对单片机入门了。从点亮第一个LED灯开始,到现在对液晶的熟练使用。一点一点剖析单片机的内部结构。就像郭老师说的一样,实践真的很重要,有理论没实践的摸索,很困难,而且很枯燥,很难有毅力坚持下去。经济能力许可的话最好买一个单片机快速开发板或者自己做一个都行。把每一个理论从单片机上显示出来。你就会越学越想学,越来越感觉自己会的东西太少了,你就会像饿狼一样不停的去咀嚼每一个知识点。越学越有意思。
单片机外围电路的实验,可以通过proteus或Altium—design去仿真实现,这些软件非常好用,也非常好学。更进一步的话,如果学校实验室条件许可的话,也可以去实验室学习,在这里回收的更多,里面的牛人很多的。因为之前汇编学的不是太好,我现在直接用的C语言去编写程序。紧凑程度,方便阅读,可移植性都是其他语言不能比拟的,而且对帮助快速入门单片机很有帮助。编译器是KEIL51。可编程,也可软件仿真。
单片机真的不是太难,但是要学的东西真是太多了。也希望你能掌握正确的学习方法,学习顺利,获得更高的知识储备。
单片机学习心得体会【第三篇】
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机课程也结束,但通过这次单片机的学习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
当今社会随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。本学期我们就学习了单片机这门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。
刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。通过学习才大体知道了单片机的一些知识。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。由中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。它的应用范围很广,在工业自动化中应用有数据采集、测控技术。在智能仪器仪表中应用有数字示波器、数字信号源、自动取款机等。在消费类电子产品中应用有空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。在通讯方面应用有手机、小灵通等。在武器装备方面应用有飞机、坦克、导弹、航天飞机、智能武器等。刚开始学习时只能抄写别人做成功的程序,一遍一遍的写,从简单的入手,逐步的积累,一步步的能够将小的程序结合到一起,拼接成较为复杂一些的程序。但是程序不要只是看别人得,一定要自己写过才是自己的。只有当你自己能写出来的时候说明你真懂了。刚接触KEIL时确实很让人头疼,使用 KEIL不会建项目、不会使用实验板。然后可以参考已经成功的程序,抄过来,写一个最简单的,让它运行起来,先培养一下自己的感
觉,先建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成HEX,刷进单片机中、运行。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人,自己一定要掌握解决问的方法和思路。对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。应该先想一下程序的构架,想想如何来完成。然后自己动手去写,理清自己的思路这样更容易提高自己。
熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计(随便说一下,很多书中的电路设计已经过时,并且有些程序还是错误的)。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,虽然单片机的课程只上了几节就去上班了,但在学习的过程中有了一定的了解。下面就本人学习单片机的过程和经验做简要介绍。
首先,学习单片机要有一定的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,特别是数字电路;编程语言要求汇编语言或C语言。要想成为单片机高手,建议初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为看了某某的视频教程就以为掌握了C语言,那只是C语言的一部分。在这里给大家推荐一本单片机C语言程序设计参考书,马忠梅等著,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,建议学习清华大学谭浩强编写的C语言程序设计,这本书写的不错,通俗易懂。
其次,是单片机教材选择。单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,
但这并不要紧,因为你还缺乏实践经验。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们要选择一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编MCS-51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。
然后,是开发工具和开发环境的选择。选择一块合适的学习板,对于初学者来说一般无力接受,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、AD或DA、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是非常宽裕的人来说是不小的`开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。随便推荐一下,学林电子的51tracer仿真器,有兴趣的朋友可关注一下。有了单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自己多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自己的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得非常兴奋,比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞定某个实验,就恭维的告诉你一声”恭喜你,学会了”自己学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了一定了解和会使用它了。但是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品。因此除了入门外,精通可千万别轻易说出口。
最后,在熟练掌握和应用后,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计开发各种课题,不断的积累经验。最终,自己完全设计具有个人风格的课题,产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,这大家可能都听过。
有时候单片机的学习很单调,有些知识学起来很抽象,不容易理解,只能慢慢适应,一边学习理论知识,一边编写程序,将程序刷入单片机进行调试,通过这种方式才能更快速的学习单片机。要坚定自己的学习信心,在付出持之以恒的努力,我相信自己能进一步加深对单片机的了解,在单片机的学习道路上走得更远!
单片机学习心得【第四篇】
经常在群、论坛里看到有人问:怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。
05年的时候,因为制作FM发射电路采用了BH1415的芯片,需要用到单片机控制,所以开始接触使用单片机,虽然以前读书时作为一门功课学过,不过也快丢荒了10年了,基本上都忘光了,也算是从头学起了吧。我当时是买了一块实验板,很简单的功能,比论坛实验板还要少功能,还有一个仿真器,也是比较简单的,SST芯片的。然后开始从大家都知道的流水灯写起,万事开头难,第一个程序基本上就抄人家的,翻查了一份快速入门的学习资料,写下第一个程序。然后,在仿真机是单步的看运行结果,从每一步执行,都硬件上反应出来的效果,很快,对单片机的运作有了一个非常感性的认识,这跟只看书然后自己想象运行是完全两码事。然后,是进一步的其它程序学习,一个月时间,基本上已经熟悉了51的各种硬件资源。把流水灯,数码管动态扫描,中断等等的学习了,然后就是写综合性的程序,也就是我发在论坛里的时钟。通过这个程序的编写,使自己的编程水平有了很大的飞跃。之后,就是逐步学习编写更多的程序,各种外围器件的控制等等,通过编写程序使自己不断的提高。在学过汇编之后,我又转到了C语言学习,因为以前没有学习过C语言,一切都很陌生,所以自己沿用了学习汇编的方法,大约花了3天功夫基本就对C语言有了初步的了解,然后就是尝试写上面所说的时钟,以汇编程序的思路作为参考,以C语言来编写,花了几天功夫完成了这一程序,也实现了从汇编编程为主到C编程为主的转变。然后,就是以C语言编写外围器件的控制程序,以此来熟悉C的编程风格,一直到现在,基本上就是C语言编程,汇编已经是作为调试程序的辅助。
下面我概括了几点我的学习经验和心得体会:
1、万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口,说KEIL不会建项目啦、没有实验板啦之类的。遇到困难要一件件攻克,不会建项目,就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少,总得建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成HEX,刷进单片机中、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。
2、知识点用到才学,不用的暂时丢一边。厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。
3、程序不要光看不写,一定要自己写一次。最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距……当你自己能写出来的时候,说明你就真的懂了。
4、必须学会掌握调试程序的方法。不少人写程序,把代码写好了,然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习调试程序的方法,比如KEIL里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。
5、找到解决问题思路比找到代码更重要。我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。我几乎不怎么看人家的代码,多数时候是看别人[]的思路,有方框图最好,没有的话文字说明也可以,要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人,所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道了。当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。举个例子:数码管动态扫描,没写过的初学者可能搞不清是怎么回事,其实,就是分时让每一时间段时只控制一只数码管显示数字,几只数码管轮流显示,由于速度很快,人眼的看起来是全部数码管都亮的。明白是这么一回事,事情就好办了,剩下的事情,无非是你安排让一只只数码管轮流显示出相应的数值。显示数字,然后延时一下,再下一只显示数字,延时,知道是这样,我们实际程序上只要做到这样就可以:往段口送段码,然后打开位选显示一只,延时一下,再关闭位选,再送出段码,再打开另一只位选仅此而已。有了解决问题的思路,我们就能问题拆分开来,然后逐一的解决,如果动态扫描的原理都没懂,不知道如何做,那么这个程序是怎么也写不出来的。
6、开动脑筋,运用多种方法,不断优化自己的程序。想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。
7、看别人的代码,学习人家的思路。这个在学习初期是很有用,通过看别人的代码,特别是有多年编程经验的人写出的具有一定水平的代码,可以使自己编程水平得到迅速的提高,同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的代码,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。
8、尝试编写一下综合应用的程序。从流水灯学起,到动态扫描,再到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有按键(IO读取)、动态扫描(IO输出)、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易,因为你的程序啥也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。
9、着重于培养解决问题的能力,而不是具体看自己编写了多少代码或者做过什么。“学单片机重点在于学习解决问题的思路,而不是局限于具体的芯片类型和语言”这一直是我的座右铭,是我学单片机多年来感悟出来的。经常看到有人说“你会驱动XX芯片,真牛啊”“你搞过XX项目,真厉害”之类的话,其实这是非常片面的,搞过XX芯片,搞过XX项目,只能说明你做过这一项目,它只是你的业绩,并不是代表能力就一定高。真正的能力应该是:“遇到没有解决过的问题或器件,能利用自己已学的`知识,迅速找到解决问题的方法。”这个才是能力。写程序的过程就是一个创造的过程,几乎没有完全一样的项目,每次你遇上的几乎都不相同,所以你拥有的必须是你面对新项目时的创造能力,而不是标榜着你以往做过多少项目。当然,业绩也能从另一侧面反映你的经验和水平。
10、如果有可能,多学习计算机专业的知识,比如数据结构等。这些是你解决问题的基础知识,你把这些知识应用得越好,就会发现越容易找到解决问题的方法,这就是为什么一个学计算机专业的人编的程序和一个非计算机专业的人编的程序有差异的原因。也是一个菜鸟进军到高手所要配备的知识。如果我们把编程分为宏观编程和微观编程,那么微观编程就是写具体的代码,比如控制某某器件的语句;而宏观编程就是如何对整个程序进行布局、安排,使功能模块以你想要的方式去运行,得出你想要的结果。如前所说“会控制XX器件”这些只能算是微观编程,能做到这一步还只能算是菜鸟级别,如果面对一个新的器件,你心里没底,没把握去写这个控制程序,那说明你还是一个初级的菜鸟。当你有了一定的编程经验,控制过相当数量的器件之后,你就会发现,控制器件这些工作都是相似的、重复的工作,体现不出编程的水平,最多也是写得好与不好的差别,只能算是一些小技巧的应用。而对整个程序进行布局、安排这些才是最头痛的事情,能达到宏观编程和微观编程都做好才是真正的高手。对于规模越大的程序,越能体现出这一点。
11、面对一个新项目时,多自己开动脑筋,不要急于找别人的程序。有不少人面对一个新项目时,第一步想到的就是网上找别人写过的代码,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个新项目时,应该先自己构思一下整个程序的架构,想想如何来完成,有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教别人,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路,如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。
12、多利用网络的搜索,学会提问题。一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。
上一篇:工作总结范文展望【优质5篇】
下一篇:军训心得体会范文【优推4篇】