16
开发板学习经验(入门篇) 单片机开发板学习入门我认为有这样几点,以下是我 的总结: 一:有一块除单片机最小系统外加一些常用模块的开发板 二:一本单片机 C 语言编程的书,个人推荐郭天祥的《十天学会单片 机和 C 语言编程》,好的学习习惯从此做起!最好不要使用和开发板 对口的书,不然会养成依赖现有资料的习惯,那样没进步的 三:好好利用网络资源,好多非常好的电子类论坛和群值得你的加入, 一个人是玩不动的!带着创新精神亲手山寨一下前人做的玩意,推出 自己的升级版 四:到达这个境界你就是高手了,可以独立用单片机做一些玩意,能 够有意识的升级自己的作品 我的启蒙网站,一个大学生开的!学习 从动手 DIY 做起! 萬用電路板 http://www.jiangx.com/about/

开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

开发板学习经验(入门篇)

单片机开发板学习入门我认为有这样几点,以下是我

的总结:

一:有一块除单片机最小系统外加一些常用模块的开发板

二:一本单片机 C 语言编程的书,个人推荐郭天祥的《十天学会单片

机和 C 语言编程》,好的学习习惯从此做起!最好不要使用和开发板

对口的书,不然会养成依赖现有资料的习惯,那样没进步的

三:好好利用网络资源,好多非常好的电子类论坛和群值得你的加入,

一个人是玩不动的!带着创新精神亲手山寨一下前人做的玩意,推出

自己的升级版

四:到达这个境界你就是高手了,可以独立用单片机做一些玩意,能

够有意识的升级自己的作品

我的启蒙网站,一个大学生开的!学习从动手 DIY 做起!

萬用電路板 http://www.jiangx.com/about/

Page 2: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

网站里的作品预览:

LED3216多功能电子钟

数字电路点阵流水彩灯

送给 GF最好的生日礼物-LOVE彩灯

Page 3: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

开发板/实验板 AVR 单片机开发板

爱板网 http://www.eeboard.com/bbs/forum.php

在这里你注定不会平凡,趣味多多,学习快乐

无极限!这理有有和你一样有着热情学习的朋友,有

给你解答各种疑难问题的热心工程师,更有非常多的

Page 4: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

有奖活动等待你来参加!

贪吃蛇+俄罗斯方块+万年历

Page 5: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?
Page 6: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

给学51的童鞋一点刺激,51单片机做的遥控小车!

[原创]【PSoC3心得】LCD5110动态显示之模仿 windows屏保特

Page 7: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

[原创] 疯狂抢楼,免费得 RaspberryPi

抢中楼层的网友将免费获得 Raspberry Pi一块!

file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image015.jpg

Page 8: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

以下是学习开发板的具体详细说明,这里不再

分享同类我的心得了,这是来自一个高手的心得,很

详细,精辟,值得我们学习!

很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今

天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。

先说说单片机,一般我们现在用的比较多的的 MCS-51的单片机,它的资料比较多,用的人

也很多,市场也很大。就我个人的体会怎么样才能更快的学会单片机这门课。单片机这门课

是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中

你需要大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件

去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管脚的电平什么时候输

出高,什么时候输出低。由这些高低电平的变化来控制你的系统板,实现我们需要的各个功

能。至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,

第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。所以我总是说,学单片

机看书看两三天的就够了,看小说你一天能看五六本,看单片机你两三天看两三遍就够了,

可以不用仔细的看。推荐一本书,就这一本就足够,书名是《新编 MCS-51单片机应用设计》,

是哈尔滨工业大学出版社出的的,作者是张毅刚。大概了解一下书上的内容,然后实践,这

Page 9: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

是非常关键的,如果说学单片机你不实践那是不可能学会的,关于实践有两种方法你可以选

择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你

买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、

独立键盘、矩阵键盘、AD 或 DA(原理一样)、液晶、蜂鸣器,这就差不多了。如果上面我

提到的这些,你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自

己练习设计电路,不断的积累经验。只要过了第一关,后面的路就好走多了,万事开头难,

大家可能都听过。方法二:你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单

的最小系统板。对于高手来说,做个单片机的最小系统板只需要一分钟的时间,而对于初学

者可就难多了,因为只有对硬件了解了,才能熟练运用。而如果你身边没有这样的高手,又

找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后

做单片机类的小实验时都能用得上,还省事。

有了单片机学习板之后你就要多练习,最好是自己有台电脑,一天少看电影,少打游戏,把

学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流

水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单

片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你

的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电子类的人真的会上瘾。然后让

数码管亮起来,这两项会了后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了。

就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别

人,当得到解答后你会记住一辈子的,知识必须用于现实生活中,解决实际问题,这样才能

发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

是不是为了期末考试而忙碌呢?考完得了90分,哈哈哈好高兴啊,下学期开学回来忘的一

干二净,是不是?你学到什么了?但是我告诉你单片机一旦学会,永远不会忘了。另外我再

说说用汇编和 C 语言编程的问题。很多同学大一二就开设了 C 语言的课,我也上过,我知

道那时天天就是几乘几,几加几啊,求个阶乘啊。学完了有什么用?让你用 C 语言编单片

机的程序你是不是就傻了?书上的东西我们必须要会运用。单片机编程用 C 语言或汇编语

言都可以,但是我建议用 C 语言比较好,如果原来有 C 语言的基础那学起来会更好,如果

没有,也可以边学单片机边学 C 语言,C 语言也挺简单,只是一门工具而已,我劝你最好学

会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点 C 语

言都不会那你将来会吃苦头。汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其

是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完

全不需要那么高效率的代码,因为有高频率的时钟,单片机的 ROM 也在不断的提高,足够

装得下你用 C 语言写的任何代码,C 语言的资料又多又好找,将来可移植性非常好,只需要

变一个 IO 口写个温度传感器的程序在哪里都能用,所以我劝大家用 C 语言。

步骤:1.找本书大概了解一下单片机结构,大概了解就行。不用都看懂,又不让你出

书的。(三天)

2.找学习板练习编写程序,学单片机就是练编程序,遇到不会的再问人

或查书。

3.自己网上找些小电路类的资料练习设计外围电路。焊好后自己调试,

熟悉过程。 (十天)

4.自己完全设计具有个人风格的电路,产品,。。。你已经是高手了。。。。。

Page 10: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

如果是新手那你就由 C51开始吧,C51单片机是最基

础的单片机也上最有用的单片机,学好他很重要。

何谓单片机 一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控

制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。

在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单

片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而

且有一些单片机中除了上述部份外,还集成了其它部份如 A/D,D/A 等。

天!PC 中的 CPU 一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块

芯片也得非常大了。 不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般

用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个

或20多个引脚,有的甚至只8只引脚。为什么会这样呢? 功能有强弱,打个比方,市场上

面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种芯片的生

产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。 既然如此,

单片机的功能肯定不强,干吗要学它呢? 话不能这样说,实际工作中并不是任何需要计算

机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用 PIII?应用的

关键是看是否够用,是否有很好的性能价格比。所以8051出来十多年,依然没有被淘汰,

还在不断的发展中。

2、MCS51单片机和8051、8031、89C51等的关系我们平常老是讲8051,又有什么8031,现在又有89C51,它们之间究竟是什么关系?MCS51是指由美国 INTEL 公司(对了,就是大

名鼎鼎的 INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机

都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼 MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。

INTEL 公司将 MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核

心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在

我国非常流行的单片机,它是由美国 ATMEL 公司开发生产的。

一、单片机的外部结构

拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们

Page 11: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。1、

电源:这当然是必不可少的了。单片机使用的是5V 电源,其中正极

接40引脚,负极(地)接20引脚。2、 振蒎电路:单片机是一种时

序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振

荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上

就可以了,按图1接上即可。3、 复位引脚:按图1中画法连好,至于

复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA 引

脚:EA 引脚接到正电源端。 至此,一个单片机就接好,通上电,单

片机就开始工作了。存储器的工作原理:

1、存储器构造

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,

它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们

的一个谜团就解开了,计算机也没什么神秘的吗到它的工作位置,就不能随便改写了。

2、存储器译码

那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元元的控制

线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线

的数量。我们有一种方法称这为译码,简单介绍一下:一根线可以代表2种状态,2根线可

以代表4种状态,3根线可以代表几种,256种状态又需要几根线代表?8种,8根线,所以65536种状态我们只需要16根线就可以代表了。

3、存储器的选片及总线的概念

至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线

是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器

之外,还要接其它的器件,如图4所示。这样问题就出来了,这八根线既然不是存储器和计

算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中

的数值是0FFH 另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?

岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电

Page 12: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

路的引脚进来后,不直接接到各单元去,中间再加一组开关(参考图4)就行了。平时我们

让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开

关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片

中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。

如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。注意图4,读和

写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片

选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不同时选中两片芯片呢?

只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出

现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。

从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共

用的,所以我们称之为数据总线,总线英文名为 BUS,总即公交车道,谁者可以走。而十六

根地址线也是连在一起的,称之为地址总线。

半导体存储器的分类

按功能可以分为只读和随机存取存储器两大类。所谓只读,从字面上理解就是只可以从里面

读,不能写进去,它类似于我们的书本,发到我们手回之后,我们只能读里面的内容,不可

以随意更改书本上的内容。只读存 储器的英文缩写为 ROM(READONLY MEMORY)

所谓随机存取存储器,即随时可以改写,也可以读出里面的数据,它类似于我们的黑板,我

可以随时写东西上去,也可以用黑板擦擦掉重写。随机存储器的英文缩写为 RAM

(READRANDOM MEMORY)这两种存储器的英文缩写一定要记牢。

注意:所谓的只读和随机存取都是指在正常工作情况下而言,也就是在使用这块存储器的时

候,而不是指制造这块芯片的时候。否则,只读存储器中的数据是怎么来的呢?其实这个道

理也很好理解,书本拿到我们手里是不能改了,可以当它还是原材料——白纸的时候,当然

可以由印刷厂印上去了。

顺便解释一下其它几个常见的概念。

PROM,称之为可编程存储器。这就象我们的练习本,买来的时候是空白的,可以写东西上

去,可一旦写上去,就擦不掉了,所以它只能用写一次,要是写错了,就报销了。

EPROM,称之为紫外线擦除的可编程只读存储器。它里面的内容写上去之后,如果觉得不

满意,可以用一种特殊的方法去掉后重写,这就是用紫外线照射,紫外线就象“消字灵”,可

以把字去掉,然后再重写。当然消的次数多了,也就不灵光了,所以这种芯片可以擦除的次

数也是有限的——几百次吧。

FLASH,称之为闪速存储器,它和 EPROM 类似,写上去的东西也可以擦掉重写,但它要方

便一些,不需要光照了,只要用电学方法就可以擦除,所以就方便许多,而且寿面也很长(几

万到几十万次不等)。

再次强调,这里的所有的写都不是指在正常工作条件下。不管是 PROM、EPROM 还是

FLASHROM,它们的写都要有特殊的条件,一般我们用一种称之为“编程器”的设备来做这项

Page 13: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

工作。现在也说不清楚。

很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今

天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。

先说说单片机,一般我们现在用的比较多的的 MCS-51的单片机,它的资料比较多,用

的人也很多,市场也很大,我们平时说的 C51,C52,S51,S52都是51内核的,只是内存容

量有差别,或是烧写程序的方法不同。只要你学会了51,那什么凌阳,AVR,什么样原理都

是一样。触类旁通。

先说说就我个人的体会怎么样才能更快的学会单片机这门课。单片机这门课是一项

非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要

大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件去控制

单片机的各个功能寄存器,再说明白点,就是控制单片机那些管角的电平什么时候输出高,

什么时候输出低。而由这些高低电平的变化来控制由单片机为核心的系统板。从而实现我们

需要的各个功能。对于看书,我们只需大概看看了解一个单片机各个管角都是干什么的?都

有什么样的功能,能实现什么样的功能?其实第一次,第二次你可能都看不明白,但这不要

紧,因为你没有和实际的物体建立起来这样一种互通的观念,所以我总是说,学单片机看书

看两三天的时间就够了,看小说你一天能看五六本,看单片机你两三天看两三边就够了,而

且可以不用很仔细的看。推荐一本书,就这一本就足够,书名忘了,是哈尔滨工业大学出版

社出的的,作者是张毅刚。大概三四百页吧。大概了解一下书上的内容后,就开始做实践,

这是非常关键的,如果说学单片机你不做实践那是不可能学会的,关于做实践有两种方法你

可以选择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者

来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯,数

码管,独立键盘,矩阵键盘,有 AD 或 DA(原理一样),有个简单的液晶,有蜂鸣器,这就

差不多了,如果上面我提到的这些东西你能让它都熟练工作了,那可以说对于单片机方面的

硬件你已经入门了,再剩下的就是自己练习设计其它电路,这需要你练习,不断的积累经验,

只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。方法二:你身边如

果有单片机方面的高手,向他求助,让你帮你搭个简单的最最小系统板,其实对于高手来说,

做个单片机的小系统板只需要一分钟的时间,而对于初学者可就难多了,因为只有你对硬件

了解了才会对它熟悉。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你

最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的小实验时都能用得上,

还剩事。

有了单片机学习板之后你就是不停的练习了,我在后面会讲到我的大学生活,如果

你感兴趣你可以看看,如果不感兴趣呢,看完这段你就可以继续你的快乐生活了。前面我提

到单片机是一项非常注重实践的学科,你最好是自己有台电脑,一天少看电影,少打游戏,

把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的

流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现

单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按

你的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电子类的人真的会上瘾。然后

让数码管亮起来,这两项会了后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行

了。就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是

问别人,当得到解答后你会记住一辈子的,知识必须用于实际才能发挥出它的作用,否则你

自己好好想想,你上了这么多年大学,天天上课,你在课堂上学到了什么?你不是为了每学

Page 14: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

期的期末考试忙碌吗?考完试一看得了90分,哈哈哈好高兴啊,下学期开学回来忘的一干

二净,是不是?你学到什么了?但是我告诉你单片机你一旦学会,永远不会忘了。另外我再

说说用汇编和 C 语言编程的问题。很多同学大一二就开设了 C 语言的课,我也上过,我知

道那时天天就是几乘几,几加几啊,求个阶乘啊。学完了有什么用?让你用 C 语言编单片

机的程序你是不是就悄悄了?所以书上的东西我们必须要实践。单片机编程你想用 C 语言

和汇编语言都可以,但是我建议你用 C 语言比较好,如果原来有 C 语言的基础那学起来会

更好,如果没有,也可以边学单片机边学 C 语言,C 语言也挺简单,只是一门工具而已,我

劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你

一点 C 语言都不会那你将来会吃苦头。汇编写程序代码效率高,但相对难度较大,而且很

罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提

高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的 ROM 也在不断的

提高,足够装得下你用 C 语言写的任何代码,C 语言的资料又多又好找,将来可移植性非常

好,只需要变一个 IO 口写个温度传感器的程序在哪里都能用,所以我劝大家用 C 语言。

总结上面,只要你有信心,做事能坚持到底,有不成功不放弃的强烈意志。那学个

单片机来说就是件非常容易的事。

看到了吗?下功夫一个多月你就能成为高手,我就讲这么多了,学不学得会,下不

下得了功夫就看你的了。

学习单片机的八大步骤学习使用单片机就是理解单片机硬件结构,在汇编或 C 语言中学会各种功能的初始化设置,

以及实现各种功能的程序编制。

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

使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字 I/O 功能,在按

下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是

可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能

使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄

存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。

第二步:定时器的使用

学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、

家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开

关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,

当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来

最简单,成本最低。

定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。

第三步:中断

单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时

间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生

的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出

反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行

Page 15: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困

难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中

断),需要设置哪些寄存器才能使某 种中断起作用,中断开始时,程序应该干什么,中断完

成后,程序应该干什么等等 。

中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一

件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个

事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。

以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。

第四步:与 PC 机进行 RS232通信

单片机都有 USART 接口,特别是 MSP430系列中很多型号,都具有两个 USART 接

口。USART 接口不能直接与 PC 机的 RS232接口连接,它们之间的逻辑电平不同,需要使用

一个 MAX3232芯片进行电平转换。

USART 接口的使用是非常重要的,通过该接口,可以使单片机与 PC 机之间交换信息,虽然

RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用 USART 接口,需要学

习通信协议,PC 机的 RS232接口编程等等知识。试想,单片机实验板上的数据显示在 PC机监视器上,而 PC 机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情

啊!

第五步:学会 A/D 转换

MSP430单片机带有多通道12位 A/D 转换器,通过这些 A/D 转换器可以使单片机操

作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时

间,转换速率,转换误差等概念。

使用 A/D 转换功能的简单的例子是设计一个电压表。

第六步:学会 PCI、I2C 接口和液晶显示器接口

这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重

要。

第七步:学会比较、捕捉、PWM 功能

这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。

如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手

攻击了。

第八步:学习 USB 接口、TCP/IP 接口、各种工业总线的硬件与软件

设计

学习 USB 接口、TCP/IP 接口、各种工业总线的硬件与软件设计是非常重要的,因为

这是当前产品开发的发展方向。

总结上面,只要你有信心,做事能坚持到底,

Page 16: 开发板学习经验(入门篇) - dianyuan.com€¦ · 发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?

有不成功不放弃的强烈意志,那学个单片机来说就是

件非常容易的事。

QQ哥整理

2012年11月24日

开发板学习经验(提高篇)http://www.eeboard.com/bbs/thread-5495-1-1.html

开发板学习经验(终极篇)http://www.eeboard.com/bbs/forum ... id=7353&fromuid=169