单片机学习心得范文.docx

上传人:坚持 文档编号:1489042 上传时间:2019-03-03 格式:DOCX 页数:14 大小:22.85KB
下载 相关 举报
单片机学习心得范文.docx_第1页
第1页 / 共14页
单片机学习心得范文.docx_第2页
第2页 / 共14页
单片机学习心得范文.docx_第3页
第3页 / 共14页
单片机学习心得范文.docx_第4页
第4页 / 共14页
单片机学习心得范文.docx_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、单片机学习心得范文第一节:跟我学单片机到底是学什么?我的两个比喻和一个规则。开篇第一节,我问大家一个问题,跟我学单片机到底是学什么?我的回答是像驾驶汽车一样驾驭单片机。我教给大家的是驾驶汽车的技术而不是研发汽车的技术。因此每当别人问我学 51 单片机,PIC,AVR,stm32 哪个更加有前途,应该先学哪个再学哪个时,我的回答是既然你是学驾驶技术,那么你用桑塔纳车来学还是用宝马车来学有差别吗?差别很小的,它们只是不同的厂家而已,只要会一种其它的就触类旁通了。把学单片机当作考驾照这是我所说的第一个比喻。学单片机最核心的是程序,程序跟单片机芯片是什么关系?我的回答是像歌曲跟 MP3 播放器的关系。

2、我们写的程序就像预先录制好的歌曲,单片机芯片就是一个 MP3 播放器。把不同的歌曲下载到同一个 MP3 里就可以播放出不同的美妙音乐,当前下载的歌曲决定了 MP3 可以播放的音乐。所以我们当前编写的程序下载进单片机之后,就决定了单片机能干哪些工作,“下载程序”也俗称“烧录程序”。把单片机芯片当作 MP3 播放器是我第二个比喻。 单片机芯片内部细节的工作原理是什么,为什么它能实现那么神奇的功能?我的回答是不用纠结这个问题,因为这不是我们学习的方向。考驾照的也只能告诉你汽车是由四个轮,发动机,制动系统,离合器,方向盘等部分构成,其它内部细节的原理恐怕也不会教你,不是不想教你,而确实是两个不同的学习

3、方向。学单片机的也只能告诉你它内部是由运算器,寄存器,IO 口,复位电路,晶振电路,程序存储器 ROM,数据存储器 RAM 等部分组成,至于运算器的原理和构成也不是我们的学习方向。所以尽管我搞单片机有很多年,但是我并不是完全理解它最本质的原理。尽管我与人打交道有 30 多年,但是人为什么能通过大脑来灵活控制双手去活动对于我来说仍然是个迷,我只知道人是由脑袋,心脏,四肢等构成。每当有这样疑惑的时候该怎么办?我的回答是用“游戏规则”这个概念去应付它。因为游戏规则是不需要解释的,只要遵守就可以了。在应用的技术领域,把暂时不解的东西当作一种游戏规则来解读和遵守是我常用的思维方式,这个游戏规则的概念就是

4、我所说的一个规则。 下一节预告,我眼中学习单片机的四个阶段。第二节:我眼中学习单片机的四个阶段。第一阶段:学会 C 语言的常用语法,熟悉 51 单片机开发平台软件 keil 的操作,了解单片机的大概原理特性,能读懂按键,数码管,跑马灯,串口的简单程序,能熟悉几个常用的外围芯片驱动。网上这方面优秀的教程很多,我正在写的这个连载从业十年,教你 51 单片机入门基础也是属于这类入门教程之一。第二阶段:我认为这个阶段是四个阶段中最重要的阶段。很多初学者完成了第一阶段的学习,真正去面对一个小项目的时候,还是无从下手。他们不知道按键,显示,通讯,应用程序之间是如何关联起来的,他们一旦遇到多任务项目的时候不

5、知道如何并行处理,他们最缺的是程序的框架思路。网上有很多热心牛人分享的程序框架思想,都值得大家学习和借鉴。我平时做项目是用状态机的思路,就是用 switch语句实现多任务的切换,再外加一个定时中断产生不同的时间计时,有兴趣的朋友可以看看我去年在本论坛写的连载贴子从业将近十年,手把手教你单片机程序框架。第三阶段:大家在做项目时,除了写单片机的软件,还不可避免的要跟整个电路的硬件打交道,掌握一些常用的硬件电路知识就显得尤其重要。电阻,电容,电感,二极管,三极管,光藕的应用,电压差和参考地的关系,两系统通信时需不需要共地的原因,隔离与非隔离的本质,常见的变压整流电路,常见的外围驱动电路等等。这方面优

6、秀的电子基础教程很多,大家应该主动找这方面的资料来学习学习,我过一两年后也打算写写这方面的连载贴子从业十年,单片机常用硬件知识讲解。第四阶段:有了前面三个阶段的主动学习和积累,就可以去做项目了,在项目中学习。根据工作的需要来选择学习哪个厂家的单片机,比如PIC,AVR,stm32 等单片机厂家;根据工作的需要来决定是否需要学习汇编语言,有一些台湾厂家的单片机并不能用 C语言开发,只能用汇编;根据工作的需要来深入研究相关行业所需的硬件电路知识;根据工作的需要来学习相关的外围芯片驱动程序,这个阶段的学习正如郭天翔老师所讲的“缺什么补什么”。我本人也打算过两三年后写写这方面的贴子,作为大家项目开发时

7、的参考工具书来用,叫从业十年,单片机常用外围驱动程序集。下节预告,单片机一个最重要的特性。第三节:单片机一个最重要的特性。“道生一,一生二,二生三,三生万物。”道德经认为,世间万物,缤纷多彩,它们都起源自一个东西,这个“一”的东西就是“道”。电子世界也存在“一”这个东西,这个“一”繁衍出手机,电脑,电视机,机器人等丰富多彩的电子世界。这个“一”就是单片机一个最重要的特性:程序下载进单片机的内存后,可以识别管脚上的高低电平信号,管脚也可以输出不同时间长度的高低电平。下面我把这句话的 5 个重要关健词提取出来,详细解读它的含义。 程序。有 3 种,C 程序,汇编程序,机器程序。能下载进单片机的只有

8、机器程序,C 程序和汇编程序都不能直接下载进单片机,所以 C 程序和汇编程序最终要经过专用编译软件翻译成机器程序后,才能下载进单片机执行。程序就是语言,语言就是用来交流的,交流就必须存在两个对象,这两个对象分别是程序员和单片机。程序员用 C 语言或者汇编语言,单片机只用机器语言,他们两者交流就必需一个翻译家,这个翻译家就是编译软件,俗称编译器,它专门把 C 语言或者汇编语言翻译成单片机能识别的机器语言。现在单片机开发的主流是用 C 语言,我本人出来工作后就从来没有用过汇编语言,所以我的观点是,C 语言是必修课,汇编语言是选修课;C 语言是白话文简单易懂,汇编语言是文言文繁琐难读。当然汇编也有它

9、的优点和不可替代的场合,汇编的翻译效率高,往往是一句汇编语言对应一句机器语言,而一句 C 语言有可能对应几句机器语言,所以很多嵌入式系统某段要求简洁高效的源代码都是用汇编来写的,也有少数一些很便宜的单片机不提供 C 编译器,只能用汇编语言开发。所以要不要学汇编,我的建议是最好根据个人的工作需求来决定。内存。既然程序可下载进单片机,那么单片机必然有一个存储程序的内存。单片机内存包括 ROM 和 RAM 两部分。ROM 的优点是掉电后存储的内容不会丢失,缺点是除非在烧录(下载)过程中,否则上电后它存储的内容也不能更改。并且,虽然 ROM 在烧录(下载)过程中可以更改内容,但是更改的次数有限制,也就

10、是烧录(下载)的次数有限制,一般最大次数是 10 万次,当然这里所说 ROM 是指 FLASH 的单片机,如果是 OTP 的单片机,那么最大次数是 1 次。而 RAM 恰好反过来,RAM 的优点是上电后存储的内容可以被程序指令随时更改,而且还没有更改次数限制,缺点是掉电后内容会丢失。正因为 ROM 和 RAM 各有特点,所以它们的分工有所不同。程序包括指令和数据两部分。指令是指程序中的判断,跳转,赋值等指令,这些内容是程序烧录进单片机时就固定下来的,不可更改的,所以存储在 ROM 中。数据也分两种,程序指令可更改的数据和程序指令不可更改的数据。程序指令可更改的数据存储在 RAM 中,程序指令不

11、可更改的数据存储在 ROM中。那么谁在幕后进行这些分类存储?是编译器软件和下载器(烧录器)。编译器除了把 C 语言翻译成机器语言之外,还帮我们分好了类,分配好了存储的地址和位置,下载器(烧录器)再根据这些信息把程序存储到内存中。管脚。它是单片机与外部电路进行能量和信息交互的桥梁。有电源,复位,晶振和 IO 口这 4 种类型管脚。第一种电源管脚。是给单片机内部电路供电的接口。单片机有两种常用的供电电压,一般不是 3.3V 就是 5V,有的单片机两种电压都兼容。第二种复位管脚。单片机上电后需要外部电路给它一个瞬间高电平或者低电平的复位信号,才能启动工作。这类外部的复位电路通常是用电容和电阻组成的充

12、电电路来实现,也有一些系统是用专门的复位芯片来实现。第三种晶振管脚。任何单片机想要工作必须要有晶振。单片机执行程序指令是按一个节拍一个节拍来执行的。而晶振产生固定频率的脉冲就是这个节拍的基础源泉。所以把晶振比喻成单片机的心脏是非常恰当的。当然,现在很多单片机都把晶振集成到内部了,不用再外接晶振。第四种 IO 口管脚。这是跟我们编写程序关联最密切的管脚。前面提到的电源,复位,晶振这 3 种管脚是为了让单片机能工作,俗称单片机工作的三要素。而单片机工作的具体内容就是通过 IO 口管脚来体现的。比如,IO 口能识别按健的输入,也能驱动继电器的开关,也能跟外围器件进行通信。电平。单片机 IO 口管脚检

13、测到的电压低于或等于 0.8V时是低电平,程序里读取到的是 0 数字。检测到的电压高于或等于 2.4V 时是高电平,程序里读取到的是 1 数字,当然IO 口输入的最大电压不能超过单片机的供电电压。单片机输出的低电平是 0V,单片机输出的高电平等于它的供电电压值。时间。时间是单片机程序必不可少的一个元素。跟外围芯片通信的时序节拍需要时间,驱动发光二极管闪烁需要时间,工控自动化的某些延时需要时间。单片机的时间来源自两方面。第一方面源自指令的周期时间。单片机是根据节拍来执行程序指令的,所以每执行一条指令都要消耗一点时间,只要让程序执行一些无实际意义的指令,并且通过调整所执行指令的条数就可以得到所需要

14、的时间长度。第二方面源自单片机内部自带的定时器。假如设置定时器每 20 毫秒产生一次中断,现在要获取 10 秒钟的时间,只需程序统记 500次定时中断就可以了,因为 1 秒等于 1000 毫秒。下节预告,平台软件和编译器软件的简介。第四节:平台软件和编译器软件的简介。C 语言代码写在哪里,谁负责把它翻译成 Hex 格式机器码?这就涉及到编辑和编译,从而诞生了平台和编译这两种软件。平台软件负责编辑源代码,编译软件负责把源代码翻译成 Hex 格式的机器码。不同厂家的单片机,它所用的平台和编译器软件都不一样。即使是同样一个厂家的单片机,它也有可能存在多种不同的第三方平台软件和编译器软件,下面列举的一

15、些例子只是主流的平台和编译软件,并不是说它们是唯一的。PIC 单片机的平台软件是 MPLAB,8 位单片机是 PICC 编译器,12 位单片机是 PIC18 编译器,16 位单片机是 C30 编译器。这个例子从侧面也说明了一个平台软件可以嵌入多种不同的编译器软件,平台软件和编译器软件存在一对多的关系。51 单片机的平台软件是 keil,编译器是 C51。以上所述,单片机程序开发需要用到两种软件,但是实际项目开发的时候,我们只是跟平台软件打交道就可以了,因为编译器软件是当做一种独立配件嵌入到平台软件里,统一受平台软件控制。我在用 PIC 的 8 位单片机时,需要安装一次 MPLAB 平台软件,也

16、需要独立再安装一次 PICC 编译器软件,然后运行 MPLAB 平台软件,在里面操作某个菜单设置选项,把 PICC 编译器跟 MPLAB 平台软件关联起来,也就是我所说的把 PICC 编译器嵌入到 MPLAB 平台软件里,统一接受平台软件的控制,但我写代码只需要跟 MPLAB 平台软件打交道就可以了。我早期在做 51 单片机开发时,也是需要把keil 平台软件和 C51 软件分开安装,然后再把它们关联起来,但是现在从 keil2 版本开始,在安装 keil 平台软件时就已经默认把 C51 安装好了,并且自动把 C51 嵌入到了keil 平台软件。我现在用 keil4 这个版本的平台软件,只需要

17、安装一次 keil 平台软件就可以了,不需要像早期那样再单独安装 C51 编译器。第五节:用 keil 软件新建,关闭,打开一个完整工程的操作流程。Keil 平台软件的安装我就不多讲了,网上这方面的资料很多,大家可以百度一下如何安装 keil 的教程。下面开始讲解用 keil 软件新建,关闭,打开一个完整工程的操作流程。第一步:新建一个工程文件夹。先在电脑 D 盘目录下新建一个文件夹,取名为“stc89c52rc”。有 2 个地方需要解释:(1)文件夹以及后面所取的文件名不要用中文,请全部用英文,数字,或者下划线这些字符。keil 软件支不支持中文名无所谓,但是在单片机这个行业,有一些单片机厂

18、家的平台软件,某些版本是不支持中文名的,所以大家养成这个习惯,以后可以避免遇到一些不必要的麻烦。(2)新建的文件夹请直接放在某盘的根目录下,而不要放到某个已有文件夹的目录下。一方面是因为已有的文件名往往带有中文字,另外一方面是有一些单片机厂家的平台软件不支持嵌入层次太深的文件目录,所以大家养成这个习惯,以后可以避免遇到一些不必要的麻烦。第二步:启动 keil 软件。双击桌面”keil uVision4”的图标启动 keil 软件。第三步:关闭默认被打开的已有工程。打开 keil 软件时,如果发现此软件默认打开了一个之前已经存在的工程,请先关闭此工程。如果默认没有打开已有工程,这一步可以忽略跳过。关闭已有工程的操作是这样子的:点击上面”Project”选项,在弹出的下拉菜单中选择“Close Project”即可。第四步:利用工具向导新建一个工程。点击上面”Project”选项,在弹出的下拉菜单中选择“new uVision Project.”,在弹出的对话框中,选择保存的目录是刚才第一步新建的文件夹“stc89c52rc”目录下,输入跟文件夹名称一样的文件名“stc89c52rc”,然后单击“保存”按键,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 公文范文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。