单片机内部结构原理,让你豁然开朗!

一、单片机内部结构分析
我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?这个地方就是单片机内部的只读存储器即ROM(READ ONLY MEMORY)。为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在89C51中的ROM是一种电可擦除的ROM,称为FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。
二、几个基本概念
1、数的本质和物理现象
我们知道,计算机可以进行数学运算,这令我们非常难以理解,计算机吗,我们虽不了解它的组成,但它们只是一些电子元器件,怎么可以进行数学运算呢?我们做数学题如37+45是这样做的,先在纸上写37,然后在下面写45,然后大脑运算,最后写出结果,运算的原材料:37、45和结果:82都是写在纸上的,计算机中又是放在什么地方呢?为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯要么亮,要么不亮,就有两种状态,我们可以用’0’和’1’来代替这两种状态,规定亮为’1’,不亮为’0’。现在放上两盏灯,一共有几种状态呢?我们列表来看一下:
请大家自己写上3盏灯的情况000 001 010 011 100 101 110 111我们来看,这个000,001,101 不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按一定的顺序排好后,灯的亮和灭就代表了数字了。让我们再抽象一步,灯为什么会亮呢?是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就可以用电路的输出是高电平还是低电平来替代了。这样,数字就和电平的高、低联系上了。(请想一下,我们还看到过什么样的类似的例子呢?(海军之)灯语、旗语,电报,甚至红、绿灯)。
2、位的含义
通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,可以代表两种状态:0和1。实际上这就是一个二进制位,因此我们就把一根线称之为一“位”,用BIT表示。
3、字节的含义
一根线可以表示0和1,两根线可以表达00,01,10,11四种状态,也就是可以表达0到3,而三根可以表达0~7,计算机中通常用8根线放在一起,同时计数,就可以表示0-255一共256种状态。这8根线或者8位就称之为一个字节(BYTE)。
存储器的工作原理
1、存储器构造
存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。
如上图左所示:一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。
有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看上图右)。可是问题出来了,看上图右,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看上图右,在每个单元上有个控制线,我想要把数据放进哪个单元,就把一个信号给这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果要从某个单元中取数据,也只要打开相应的控制开关就行了。
2、存储器译码
那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线的数量。我们有一种方法称这为译码,简单介绍一下:一根线可以代表2种状态,2根线可以代表4种状态,3根线可以代表几种,256种状态又需要几根线代表?8种,8根线,所以65536种状态我们只需要16根线就可以代表了。
3、存储器的选片及总线的概念
至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件。这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关就行了。平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不同时选中两片芯片呢?只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。
从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的,所以我们称之为数据总线,总线英文名为BUS,总即公交车道,谁也可以走。而十六根地址线也是连在一起的,称之为地址总线。

  • 鍗曠墖鏈哄唴閮ㄧ粨鏋勫師鐞,璁╀綘璞佺劧寮鏈!
    绛旓細涓銆鍗曠墖鏈哄唴閮ㄧ粨鏋鍒嗘瀽 鎴戜滑鏉ユ濊冧竴涓棶棰橈紝褰撴垜浠湪缂栫▼鍣ㄤ腑鎶婁竴鏉℃寚浠ゅ啓杩涘崟鐗囨満鍐呴儴锛岀劧鍚庡彇涓鍗曠墖鏈猴紝鍗曠墖鏈哄氨鍙互鎵ц杩欐潯鎸囦护锛岄偅涔堣繖鏉℃寚浠や竴瀹氫繚瀛樺湪鍗曠墖鏈虹殑鏌愪釜鍦版柟锛屽苟涓旇繖涓湴鏂瑰湪鍗曠墖鏈烘帀鐢靛悗渚濈劧鍙互淇濇寔杩欐潯鎸囦护涓嶄細涓㈠け锛岃繖鏄釜浠涔堝湴鏂瑰憿锛熻繖涓湴鏂瑰氨鏄崟鐗囨満鍐呴儴鐨勫彧璇诲瓨鍌ㄥ櫒鍗砇OM锛圧EAD...
  • 璁╀汉璞佺劧寮鏈楃殑涔濆彞璇
    绛旓細76.鏈浣夸汉鐤叉儷鐨勫線寰涓嶆槸閬撹矾鐨勯仴杩,鑰屾槸浣犲績涓殑閮侀椃;鏈浣夸汉棰撳簾鐨勫線寰涓嶆槸鍓嶉旂殑鍧庡澐,鑰屾槸浣犺嚜淇$殑涓уけ;鏈浣夸汉鐥涜嫤鐨勫線寰涓嶆槸鐢熸椿鐨勪笉骞,鑰屾槸浣犲笇鏈涚殑鐮寸伃;鏈浣夸汉缁濇湜鐨勫線寰涓嶆槸鎸姌鐨勬墦鍑,鑰屾槸浣犲績鐏电殑姝讳骸;鎵浠ユ垜浠嚒浜嬭鐪嬫贰浜,蹇冩斁寮涓鐐,涓鍒囬兘浼氭參鎱㈠彉濂界殑銆 涓鍙ヨ瘽,璁╀綘璞佺劧寮鏈 1.娲荤潃涓澶,灏辨槸鏈夌...
  • 鍒嗕韩10鏉$湅瀹屽氨鑳璁╀綘璞佺劧寮鏈楃殑閬撶悊
    绛旓細1銆佷簩鍗佸宀佺殑鏃跺欙紝鍗冧竾涓嶈鑺辩簿鍔涘拰鏃堕棿鍘荤姽璞籂缁撲粈涔堥夋嫨鏄渶濂界殑锛屾病鏈変汉鐭ラ亾锛屾湁鎯虫硶灏卞ぇ鑳嗗幓灏濊瘯锛屽灏濊瘯宸ヤ綔绫诲瀷銆佸璇讳功銆佸鏃呮父銆佸浜ゆ湅鍙嬶紝鎶婅浜ょ殑瀛﹁垂閮戒氦浜嗭紝璇ユ噦鐨勯亾鐞嗛兘鎳備簡锛岃繖鏍蜂竴鏉ワ紝浣犳墠鏇存湁鍙兘浠庡涓嶈揩鍦拌繃涓婅嚜宸辨兂瑕佺殑鐢熸椿銆備汉鐢熸病鏈夊畾涔夛紝瀛︿細鎷ユ姳鍙樺寲銆傛病鏈変汉鑳借瀹氫汉鐢...
  • 鍗佸彞璇璁╀綘璞佺劧寮鏈,閫佺粰杩疯尗鐨勪綘
    绛旓細10銆佷笉鐭ラ亾鑷繁鎯冲仛浠涔堬紝灏卞厛鎶婅韩杈圭殑浜嬪仛濂斤紱涓嶇煡閬撹嚜宸变細閬囧埌璋侊紝灏卞厛瀛︿細鍠勫緟鍦ㄨ韩杈圭殑浜猴紱涓嶇煡閬撶幇鍦ㄥ仛鐨勬湁娌℃湁鎰忎箟锛岃嚦灏戝厛纭畾鑷繁涓嶆槸浠涔堥兘娌″仛銆傝糠闆鹃噷浣犳垨璁稿彧鑳界湅瑙佺溂鍓嶇殑浜旂背锛屼絾涓姝ヤ竴姝ヨ繖浜旂背璧颁笅鏉ワ紝闆惧氨浼氭參鎱㈡暎浜嗐傜瓑寰呭拰鎷栧欢鍙細澶鸿蛋浣犵殑鍔ㄥ姏銆傝浜璞佺劧寮鏈楃殑涔濆彞璇 浠ヤ笅涔...
  • 鑳璁╀綘璞佺劧寮鏈楃殑缁忓吀璇綍鐭
    绛旓細40銆佸懡杩愪笉浼氫簭娆犺皝,鐪嬪紑浜,璋佺殑澶撮《閮芥湁涓姹摑澶;鐪嬫贰浜,璋佺殑蹇冧腑閮芥湁涓鐗囪姳娴枫 璞佺劧寮鏈楅犲彞 1銆佹瘡姣忛櫡鍏ヤ竴娈靛洶澧冩垨娌夋穩鐨勯樁娈典箣鍚,甯镐細璁╂垜浠眮鐒跺紑鏈,鏄緱鏄け,鍏ㄥ湪浜庢垜浠績涓偅鎶婂昂鍘昏 閲忎簡銆 2銆佹鏄敱浜庨偅閮ㄧ墖瀛,鎴戠殑涓栫晫璞佺劧寮鏈椼 3銆佸湪浠栦滑鐨勫奖鍝嶄笅,鎴戠殑鐪肩晫璞佺劧寮鏈,蹇ц檻娑堝け浜,鏈煡鍙樻垚浜嗗彲...
  • 鏈変粈涔堥亾鐞嗚兘璁╀綘鎰熻璞佺劧寮鏈?
    绛旓細娌℃湁浜鸿拷浣狅紝浣犲簲璇ュ弽鎬濅竴涓嬶紝鏄笉鏄洜涓轰綘澶紭绉锛岃鎵鏈変汉閮芥湜鑰屽嵈姝ャ傝繖鏍风湅鏉ワ紝鎴戣繕鏄兂涓鐩翠紭绉涓嬪幓銆
  • 璁╀綘璞佺劧寮鏈楃殑鎶掓儏璇磋鍙ュ瓙
    绛旓細7銆佷絾涓杩涢櫌瀛,灏辫眮鐒跺紑鏈椾簡,涓鏍戞爲姊ㄨ姳杩庨潰鎵戞潵銆 8銆佽繘鍏ヨタ瀛愭咕鐨勮矾铏界劧鐙皬,浣嗕竴鍒版捣杈瑰嵆璞佺劧寮鏈椼 9銆佽暣鍚湁姗勬绮惧崕,鑳藉鍘婚櫎瑙掕川,鍙戞尌鍏舵繁灞傛竻娲佺殑浣滅敤,浠ゆ澗寮涖佹棤鍏夋辰鐨勮倢鑲ゆ仮澶嶅墧閫忓厜娉;鐢ㄥ悗鑲岃偆寮ユ极鍑洪樀闃靛ぇ鍦版皵鎭,浠浣犺眮鐒寮鏈椼 10銆佽蛋鍑哄姙鍏,鎽嗚劚鍘嬪姏,杩涘叆涓涓畬鍏ㄤ笉鍚岀殑鐜涓,璁澶磋剳娓呴啋,浼氳...
  • 鑳璁╀綘璞佺劧寮鏈楃殑缁忓吀璇綍
    绛旓細1銆佺湡姝e垢绂忔槸浠涔堬紵涓鍒囨椂銆佷竴鍒囧锛屼笉杩锋儜銆佷笉鏌撴薄锛屼綘灏卞垢绂忥紝浣犲氨蹇箰锛涜韩蹇冩竻鍑锛屾病鏈夊咖铏戙佺壍鎸傘佺儲鎭笺佸鎯炽佹墽鐫锛岃鍠滄璇荤殑涔︼紝鍋氬枩娆㈠仛鐨勪簨锛屼竴鐢熻嚜鐢辫嚜鍦紝浣犳兂鎯崇湅锛岃繖鎵嶅彨鐪熸骞哥銆2銆佷竴涓湁淇′话鐨勪汉鐢燂紝涓嶇鎴愪笉鎴愬姛锛岃嚦灏戜笉浼氳糠鑼3銆佹湁浜涗簨鎯咃紝鐜板湪涓嶅幓鍋氾紝浠ュ悗寰堟湁鍙兘姘歌繙涔...
  • 20鍙ヤ汉鐢熸劅鎮熺殑绮捐緹鍙ュ瓙,鍙ュ彞閫忓交,璇诲畬璁╀綘璞佺劧寮鏈
    绛旓細鏈嬪弸鍦堝煎緱娣辨濈殑浜虹敓鎰熸偀缁忓吀璇綍,璇诲畬璁╀綘璞佺劧寮鏈 1.鍛借繍濡傚悓鎵嬩腑鐨勬帉绾,鏃犺澶氭洸鎶,缁堟帉鎻″湪鑷繁鎵嬩腑銆備綘瀵规垜濂芥垜鑷劧涔熶細瀵逛綘濂姐傚鏋滀綘闈炶瑙︽懜鎴戠殑搴曠嚎,鎴戝彲浠ユ竻妤氬憡璇変綘鎴戝苟闈炲杽鑹 2.浜哄績鏈棤鏌,蹇冮潤鑷劧娓呫傛噦寰楁斁寮,鍦ㄨ惤娉箣鍓嶈浆韬鍘,鐣欎笅绠鍗曠殑韬奖;瀛︿細鏀惧純,灏嗘槰澶╁煁鍦ㄥ績搴,鐣欎笅鏈缇庡ソ鐨勫洖蹇...
  • 浣挎垜璞佺劧寮鏈楃殑鍙ュ瓙
    绛旓細1. 褰撲竴涓汉鐨勬濊矾鍙樺緱瓒婃潵瓒婄獎鐨勬椂鍊欙紝涓嶅Θ鎶婂師鏉ョ殑鎬濈淮鏂瑰紡瀹屽叏棰犲掕繃鏉ワ紝鎴栬浣犱細鍙戠幇锛屽墠闈璞佺劧寮鏈楋紝鏁翠釜涓栫晫閮藉凡涓轰箣閫嗚浆銆2. 浜虹敓濡傛ⅵ锛屽瞾鏈堟棤鎯呫傝摝鐒跺洖棣栵紝鎵嶅彂鐜颁汉娲荤潃鏄竴绉嶅績鎯呫傜┓涔熷ソ锛屽瘜涔熷ソ锛屽緱涔熷ソ锛屽け涔熷ソ銆備竴鍒囬兘鏄繃鐪间簯鐑熴傛兂鎯筹紝涓嶇鏄ㄥぉ銆佷粖澶┿佹槑澶╋紝鑳借眮鐒跺紑鏈楀氨鏄編濂界殑...
  • 扩展阅读:电子元器件入门到精通 ... 遥控器工作原理详解 ... 自己制作发电机磁铁 ... 发电机内部原理 ... 模具开闭器原理图 ... s7-1200 ... 水晶灯分段器维修 ... 单片机判断大小 ... 三点振荡器原理图 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网