矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 18343|回复: 34

考拉聊单片机2

[复制链接]
发表于 2010-12-5 23:57:02 | 显示全部楼层 |阅读模式
上回聊了些单片机学习上的基本思路和学习方向的选择,见:

http://www.crystalradio.cn/bbs/thread-154529-1-1.html

这次我们就聊聊单片机本身,从最基础的开始,也就是单片机到底是个啥东西?用目前的网络流行语就是神马玩意?

单片机单片机顾名义就是作在单个芯片的计算机,我们下来看看是不是这样。单片机原本这个词是源于SCM(Single Chip Microcomputer),后来随着发展这个词逐渐被MCU(Micro Controller Unit/微控制器)所代替,但国内仍然习惯叫单片机,但用到英文缩写时常写MCU。根据一般计算机教科书上的定义:

计算机=运算器+控制器+存储器+输入设备+输出设备

目前一般情况下运算器和控制器是作成一个芯片的,也就是我们所熟知的CPU(Central Processing Unit/中央处理器),但更常用的一个词是微处理器(Mircoprocessor,缩写是MPU),但一写英文缩写还是写CPU,呵呵。根据这个定义可以将前面的公式代换为:

计算机=CPU+存储器+输入设备+输出设备

而单片机是如何构成的呢?一般单片机的构成是:

单片机=CPU+数据存储器+程序存储器+I/O控制器+定时/计数器

因此根据这些定义来看,片机就是计算机,确切的说是一个集成在单芯片上的,主要用于控制用途的简单的计算机。关于前面的单片机构成公式多说两句,首先我们将要接触的大多数单片机的程序存储器和数据存储器是分开的,这和一般的PC是不一样的。分开意思就是两个存储器的地址空间都是单独的,这个结构的特点是程序的字长可以和数据字长不一样(后面说到PIC时再详细说),书上把这种结构叫哈佛结构,对应的就是程序和数据共用一个地址空间的普林斯顿结构(PC就是这种结构)。这些名词你可以不理会,但要明白一般单片机的程序和数据是分开存储的,不象PC是混在一起存储的。再有一个就是I/O,这个词后面会大量用到,就是输出输出的意思,I/O控制器就是输出输出控制器的意思。再有就是这个公式里没提到中断,很多书上的标准构成里是写的有中断系统,但实际上不是所有的单片机都有中断系统的,象一些PIC的低档型号就没有中断,很多单片机的书都是根据51写的,而51是有中断的。

既然单片机就是一台简单的小计算机,那我们就先简单的说一下计算机吧。首先要明白计算机是没有意识的,它所作的一切都是人事先给它安排好的,这些安排简单的说就是程序。所以别指望单片机会自己把你想作的事儿给干了,所有的东西你都得给它事先安排好。你或许说我用电脑感觉它有些智能呀,比如要打开一个文件双击一下就是了,不用我告诉它所有要作的事情。要明白一般的PC是有操作系统以及各种软件的,PC所具备的一些智能其实也是这些软件的编制者教给它的。而单片机你所面对的是一台裸机,也就是说没有任何软件的硬件,一切事情都得你从头来干。好在单片机所干的活比较简单(相对PC所干的活来说),所以也别把这些事儿想得太复杂。

如何让计算机作我们想作的事情呢?形象的可以把计算机比作一个智力未开的小宝宝,如果你想让他作什么事情必须把要作的事情用他所能听懂的语言一步步的教给他。比如小宝宝还没学会关门,你就得告诉他先走到门边去,抓住门把手,向回拉门关闭,再走回来(例子不一定恰当,就是这么个意思)。对计算机来说这所谓能听懂的语言就是一条条的指令,这些作事的步骤就是由指令所构成的程序。也就是说,你如果想让单片机干活,就得用单片机所认识的指令编成正常的程序,再输给单片机,然后它才会完成你所想完成的功能注意单片机和小宝宝一样,是不能自己识别这些程序/步骤的正确与否的,小宝宝如果你教错了就会闯祸,单片机如果程序编错了一样会出乱子。

现在大约明白单片机是个啥东西了吧,下面我们了解一下单片机的一些主要参数:

1、字长

字长就是单片机一次可以处理的数据长度。计算机是处理二进制数据(后面再详细解释)的,所以这个数据长度是用二进制来表示的。举个例子,刚学会算术的小孩常常用手指头来计算,两个手合计可以算到10。也就是说如果他只会用手指头计算,那只能算到10,也就是1位10进制数(10已经有了一个进位,因为算不到11只能说是1位10进制)。这样我们就可以说只会用手算算术的小孩是一台字长为1位10进制的计算机。单片机道理是一样的,它一次也只能算一个字长,二进制经常以8位为单位进行计算(叫字节/Byte),所以计算机的字长也常以8的整数倍计算。比如8位机,16位机,32位机等等,字长越长,可以同时处理的数据越多,功能越强。目前我们的PC已经到了64位,当然也有一些是32位的。但我们所经常接触的单片机主要还是以8位字长为主,对于一般的控制用途来说8位机已经足够了,对于业余用途更是如此。

2、寻址空间

简单的讲寻址空间的意思就是单片机可以在多大的范围内寻找所需要的程序和数据。前面已经讲了多数单片机的程序和数据存储空间是分开的,所以也就有了两个寻址空间。对于程序寻址空间来说直接决定了你可以为它写多长的程序,当一些想实现的功能比较多的时候程序就会比较长,这时你肯定希望可用的程序空间大一些。数据空间决定了可以用来存放中间结果的地盘有多大,此外还有一点就是对多数单片机来讲这会影响栈(后面再讲这个词的意思)的大小,直接就影响了子程序和中断嵌套(这个词的意思也后面讲)的深度。注意区分寻址空间和单片机配备存储容量的区别,前者是一个最大概念,后者是一个可用的概念。比如51的程序寻址空间是64K,但标准51内部只有4K,前者是最大程序空间,也就是说不论如何扩展51也就是64K的程序长度,但具体到AT89C51,则只能用4K(除非你外扩程序存储)。初学一般编的程序都不大,所以一般的标准型都足够实验用了。

3、指令条数

指令是单片机所能理解的命令,一种单片机所能理解的命令数量越多,功能相应也就越强。一种单片机所能理解的所有指令就是它的指令集,就象一个小宝宝所能理解的语言一样,理解的越多,会作的事情也就越多。如果某个命令小宝宝还不能理解时,并不是说就作不了了,而是你得一步一步的教他作,用一系列的步骤来代替一个命令。比如一个小孩只会作加法不会作乘法,你如果想让他作3*3是直接是不会作的,但你可以让他作3+3+3来实现。单片机也一样,如果缺乏某种功能的指令,就得用一段程序来实现。各种单片机的指令数量是不一样的,象51是111条,PIC中档是35条等等。不要以为指令少就简单好学,就象前面说的,因为指令少,很多功能就得你自己去编程实现。关于RISC和CISC的区别和优劣后面有空再说,现在太早,早说容易乱,再说业余使用对于效率不是特别看重,先让单片机干活是关健。

4、I/O数量

这里I/O数量的意思是可用于输入输出的对外引脚数量。单片机由于是集成在一片IC上的,受封装面积和密度的影响,一般单片机的I/O数量都是有限的。而我们在实际应用中总需要很多的I/O来完成各种各样的功能,所以I/O不够是经常遇到的问题。加上受单片机引脚数量限制,一些特殊功能是和标准I/O复用的,也就是用了这个功能就用不了那个功能,更是经常让人顾此失彼。对于初学者来说,一般都是有什么就学就用,不象设计产品时根据需要选择合适的单片机,因此对于I/O的使用更要量体裁衣,精打细算。标准51的I/O数量是32个,共4个口,每个口8位。

5、其他参数

单片机还有其他一些参数,比如最高工作频率(决定速度)、定时器长度和数量、中断数量和嵌套级数、片上其他的资源如A/D等。虽然也都是单片机的重要参数,但对于初学者来说并不十分重要,先弄清楚单片机是怎么干活的再说。所以这些等后面聊到了再一个个的细说。

好了,到这里单片机是个啥东西以及主要的参数都说了。下面多说一下80C31等东西。

我们看到一下老的单片机电路板经常能看到80C31这个东西,为什么这个东西这么多呢?51系列单片机早先主要三个型号:8031、8051、8751。8031内部是没有程序存储器的需要外扩;8051内部的程序存储器是在工厂里作好的,一般需要批量定制;8751是可擦写的(芯片上有一个窗口用紫外线擦,象一些老网卡上的引导芯片),但比较贵。因为我们的国情加上以前的传统所以单片机的早期教学及使用就基本以8031为主了,80C31是低功耗型号。早期的传统是什么呢?最先我们在工业控制上用的比较多的是Z80,经常是把CPU和外围电路作在一个板上,作成一个叫单板机的东西用于控制,比较有名的是TP801(北京工业大学搞的)。到了单片机时代8051吧一般没那么大量定制,8751吧比较贵,加上以前有用CPU扩展系统的路子,就用8031扩展这么走下来了。所以老的单片机书上多数都要讲存储扩展,但51只有4个8位I/O口,扩展就占掉了两个口,还有一个口的很多引脚有第二功能不一定能用,因此I/O不够就成了问题,所以书上一般还要讲I/O扩展(也就是利用扩展存储的总线再扩几个I/O口出来),象什么8255/8155就是干这个的,老的80C31板上比较常见。

单片机的优势就在于单片,扩展后系统复杂体积比较大,这种方式早已过时,只是很多教科书仍然是这么讲的。扩展并不是说就没有用,学会了也是有用的,只是不要认为单片机就一定应该这么用,能不扩展尽量不扩展。

今天就先说到这里了,下次聊聊单片机是怎么干活的,且听下回分解。

http://www.crystalradio.cn/bbs/viewthread.php?tid=155467

[ 本帖最后由 cosine 于 2010-12-7 15:52 编辑 ]
 楼主| 发表于 2010-12-6 00:07:08 | 显示全部楼层
先预留一个位置备用。
回复 支持 反对

使用道具 举报

     
发表于 2010-12-6 00:12:40 | 显示全部楼层
抢占沙发~该文章太有看头了~
回复 支持 反对

使用道具 举报

发表于 2010-12-6 08:41:14 | 显示全部楼层
通俗易懂,好!等继续。
回复 支持 反对

使用道具 举报

     
发表于 2010-12-6 10:52:36 | 显示全部楼层
此贴建议汇总后。置顶。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-6 10:54:14 | 显示全部楼层
原帖由 九段 于 2010-12-6 10:52 发表
此贴建议汇总后。置顶。


不用汇总了,太累.这才聊了2贴.等多了作一个索引贴给出链接就是了.
回复 支持 反对

使用道具 举报

     
发表于 2010-12-6 18:04:51 | 显示全部楼层

回复 6# cosine 的帖子


版主辛苦了。谢谢。
回复 支持 反对

使用道具 举报

发表于 2010-12-6 23:35:18 | 显示全部楼层
楼主讲的太好了 ,我一口气读完 ,真的能听懂.我是今天才想学的 .就碰到了您的讲座 ,看来我也有希望学会的 ! 辛苦了 !
回复 支持 反对

使用道具 举报

     
发表于 2010-12-7 22:05:53 | 显示全部楼层
考拉的课讲的不错~~~~~~~~~~~~~初学者的福音啊
回复 支持 反对

使用道具 举报

     
发表于 2010-12-8 16:30:24 | 显示全部楼层

回复 1# cosine 的帖子

顶。。。之前本版一崂山前辈也开过一个类似的帖子,讲的那叫一个精彩,我等新手得益不少,奈何最后没了下文,实乃一大遗憾。。。。。。期待版主能带来精彩的讲解。
回复 支持 反对

使用道具 举报

     
发表于 2010-12-8 19:21:30 | 显示全部楼层
讲的太好了,虽然说的是“高科技”,但是像我这样的半文盲也看懂了大部分。谢谢楼主。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-9 16:34:20 | 显示全部楼层
原帖由 semwinliu 于 2010-12-8 16:30 发表
顶。。。之前本版一崂山前辈也开过一个类似的帖子,讲的那叫一个精彩,我等新手得益不少,奈何最后没了下文,实乃一大遗憾。。。。。。期待版主能带来精彩的讲解。


崂山前辈开的那个PIC贴我之前看到过,后边没坚持看,自己啃书了.俺一定坚持写完大部分基础的,后面比较进阶的应用抽时间尽量写吧,毕竟考拉熊也是菜熊一只呀.
回复 支持 反对

使用道具 举报

     
发表于 2010-12-9 20:36:50 | 显示全部楼层
毕竟考拉熊也是菜熊一只呀--------------不是吧???
我知道你也是中山单片机论坛的高手呢~~~~~~~~~~~~~~~没错吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-9 20:38:08 | 显示全部楼层
原帖由 lxa000 于 2010-12-9 20:36 发表
毕竟考拉熊也是菜熊一只呀--------------不是吧???
我知道你也是中山单片机论坛的高手呢~~~~~~~~~~~~~~~没错吧?


看错熊了吧,从没去过那边,呵呵.俺近来只混矿坛一乐长汀.
回复 支持 反对

使用道具 举报

     
发表于 2010-12-9 23:39:16 | 显示全部楼层

回复 14# cosine 的帖子

是我记错了?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-28 13:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表