51单片机的内部结构是什么?

51单片机有以下几个内存模块组成:
1】ROM或者Flash,叫程序存储区,你写的程序是存在这里面的,上电后从这里面执行。
程序存储区也分为片内和片外,一般来说,现在的51很多已经做到了64K,所以很少有外扩
片外Flash或者片外的Rom了,Flash或者Rom不管是片内还是片外的,只能用来定义常量,是用code来修饰,也就是说,用code来修饰的东西,在程序运行过程中,不能修改;
2】RAM有------内部RAM的低128位(00-7F),对应C语言就是data,比如我定义一个变量,
data unsigned char Var = 0;
那么,这个 Var变量就是放在内部的低128位Ram中
-------内部RAM的高128位(80-FF),对应C语言就是idata,比如我定义一个变量,
idata unsigned char Var = 0;
那么,这个 Var变量就是放在内部的高128位Ram中
-------特殊功能寄存器(SFR)(80-FF),对应C语言就是Sfr比如我定义一个变量,
Sfr unsigned char Var = 0x90;
那么,这个 Var变量就是放在内部的特殊功能寄存器中,这是你对Var操作,相当于操作一个特殊的寄存器,但是小心,不能随便定义Sfr变量,很危险
------外部RAM 64K(0000-FFFF)
外部的RAM可以扩展到65536个,但是前256个算是一页,这一页比较特殊,是用
pdata来修饰的,当然,也可以用xdata来修饰。
除了第一页的256个以外的其他65280个空间,只能用xdata来修饰;
回过头来讨论pdata和xdata,这两个都能修饰外部Ram的第一页,但是,Pdata只能修饰第一页,即最前面的256个外部Ram,那么,这最前面的256个到底用Pdata还是Xdata好的呢?
答案是Pdata,因为Xdata修饰的变量,用的是DPTR寻址,Pdata用的是R0和R1.DPTR因为是16位的,所以可以覆盖整个的64K外部Ram,R0和R1是8位,所以只能寻址最前面的256个,也就是外部Ram的第一页,但是,用R0寻址,比DPTR快一倍,代码也小的很多

楼主又疑惑了,好多地址是重复的,比如,我向80H地址写一个数值,单片机怎么知道读的是内部的高128位RAM?还是SFR?还是外部64K的RAM呢?

答案是用指令,如果是直接寻址,那么访问的就是SFR,如果是R0或者R1间接寻址,就是内部高128位RAM,如果是DPTR或者是R0,R1间接寻址,且配合的是MovX指令,那么就是访问外部64KRAM中的第80H个地址。

概括一下来说,51的内存由以下组成:
1----程序存储器(包括片内Flash或Rom,也包括片外Flash或Rom,C语言用Code定义)
2----内部低128位Ram,C语言用data定义
3---内部高128位Ram,C语言用idata定义
4---内部SFR,C语言用Sfr定义
5---外部65536个Ram(通常,很多单片机厂家不会给你扩展那么多的,一般来说扩展256个字节或者1024个字节就差不多了,最近宏晶的出了个扩展4096字节的。这65536字节的Ram,前256个可以用Pdata修饰,也可以用Xdata修饰,超过256个之后的,只能用Xdata修饰)

以上所说的只是针对51内核的单片机,其他内核的,像ARM之类的,不是这种结构的。

  • 51鍗曠墖鏈哄唴閮鏈浠涔堢粨鏋?
    绛旓細51鍗曠墖鏈虹殑瀛樺偍绌洪棿鍦ㄧ墿鐞嗙粨鏋勪笂鍒嗕负鍥涗釜閮ㄥ垎锛鐗囧唴绋嬪簭瀛樺偍鍣紙鐗囧唴ROM锛夈佺墖澶栫▼搴忓瓨鍌ㄥ櫒锛堢墖澶朢OM锛夈佺墖鍐呮暟鎹瓨鍌ㄥ櫒锛堢墖鍐匯AM锛夊拰鐗囧鏁版嵁瀛樺偍鍣锛堢墖澶朢AM锛夈51鍗曠墖鏈虹殑瀛樺偍绌洪棿鍦ㄩ昏緫涓婂垎涓轰笁涓儴鍒嗭細64KB鐨勭▼搴忓瓨鍌ㄥ櫒鍦板潃绌洪棿锛圡OVC鎸囦护鎿嶄綔锛夛紝256B鐨勭墖鍐呮暟鎹瓨鍌ㄥ櫒鍦板潃绌洪棿锛圡OV鎸囦护鎿嶄綔锛夛紝...
  • 51鍗曠墖鏈虹殑鍐呴儴缁撴瀯鏈夊摢浜?
    绛旓細51鍗曠墖鏈哄唴閮ㄥ寘鍚殑鍔熻兘缁勪欢鍙婁綔鐢ㄤ富瑕佹湁锛1銆乧pu涓昏姱鐗囷紙鍐呴儴閫氳繃鎬荤嚎杩炴帴鎵╁睍鐨勮澶囷級2銆佹椂閽熺數璺紙涓哄崟鐗囨満鎻愪緵闇囪崱鑴夊啿锛3銆佺數婧愮數璺锛堜负鍗曠墖鏈烘彁渚涚數婧愶級4銆鍐呴儴鏁版嵁瀛樺偍鍣≧AM锛堝寘鎷氱敤鏁版嵁瀵勫瓨鍣ㄥ拰涓撶敤瀵勫瓨鍣⊿FR锛屼富瑕佹槸鏁版嵁瀛樺偍鍖恒傦級5銆佺▼搴忓瓨鍌ㄥ櫒ROM锛堜富瑕佹槸瀛樺偍绋嬪簭锛51绯诲垪鏈4K鍐呴儴绋嬪簭ROM锛屽彲浠ュ...
  • 51绯诲垪鍗曠墖鏈虹殑鍐呴儴缁撴瀯鐢浠涔缁勬垚
    绛旓細51瀛愮郴鍒楀崟鐗囨満鐢盋PU銆佹暟鎹瓨鍌ㄥ櫒RAM銆佺▼搴忓瓨鍌ㄥ櫒ROM銆佺壒娈婂姛鑳藉瘎瀛樺櫒銆4涓狪/O鍙c佷覆琛屽彛銆佸畾鏃跺櫒/璁℃暟鍣ㄣ佷腑鏂郴缁熺瓑鍏釜鍔熻兘閮ㄤ欢缁勬垚銆侰PU鐢辩疮鍔犲櫒A銆佹殏瀛樺櫒1銆2銆丄LU銆丳SW绛夌粍鎴 鏁版嵁瀛樺偍鍣ㄧ敱RAM鍦板潃瀵勫瓨鍣ㄣ丷AM鍗曞厓绛夌粍鎴愩傜▼搴忓瓨鍌ㄥ櫒鎸嘐PROM鎴朢OM銆SFR鎸嘝0銆丳1銆丳2銆丳3閿佸瓨鍣ㄣ丅銆丏PTR绛銆
  • 51鍗曠墖鏈虹殑鍐呴儴缁撴瀯鏄粈涔?
    绛旓細姒傛嫭涓涓嬫潵璇达紝51鐨鍐呭瓨鐢变互涓嬬粍鎴愶細1---绋嬪簭瀛樺偍鍣紙鍖呮嫭鐗囧唴Flash鎴朢om,涔熷寘鎷墖澶朏lash鎴朢om锛孋璇█鐢–ode瀹氫箟锛2---鍐呴儴浣128浣峈am,C璇█鐢╠ata瀹氫箟 3---鍐呴儴楂128浣峈am,C璇█鐢╥data瀹氫箟 4---鍐呴儴SFR锛孋璇█鐢⊿fr瀹氫箟 5---澶栭儴65536涓猂am锛堥氬父锛屽緢澶鍗曠墖鏈鍘傚涓嶄細缁欎綘鎵╁睍閭d箞澶氱殑锛屼竴...
  • 51鍗曠墖鏈虹殑鍐呴儴缁撴瀯鏄鎬庢牱鐨?
    绛旓細1銆佺墖鍐呯▼搴忓瓨鍌ㄥ櫒 2銆佺墖澶栫▼搴忓瓨鍌ㄥ櫒 3銆佺墖鍐呮暟鎹瓨鍌ㄥ櫒 4銆佺墖澶栨暟鎹瓨鍌ㄥ櫒 浣嗗湪閫昏緫涓婏紝浠庣敤鎴风殑瑙掑害涓婏紝鍗曠墖鏈烘湁涓変釜瀛樺偍绌洪棿锛1銆佺墖鍐呭缁熶竴缂栧潃鐨64K鐨勭▼搴忓瓨鍌ㄥ櫒鍦板潃绌洪棿锛圡OVC锛2銆256B鐨勭墖鍐呮暟鎹瓨鍌ㄥ櫒鐨勫湴鍧绌洪棿锛圡OV锛3銆佷互鍙64K鐗囧鏁版嵁瀛樺偍鍣ㄧ殑鍦板潃绌洪棿锛圡OVX锛夊湪璁块棶涓変釜涓嶅悓鐨勯昏緫...
  • 51鍗曠墖鏈哄唴閮鍖呭惈鍝簺涓昏鍔熻兘閮ㄤ欢?瀹冧滑鐨勪綔鐢ㄥ垎鍒鏄粈涔?
    绛旓細1. MCS-51鍗曠墖鏈灏咰PU銆丷AM銆丷OM銆佸畾鏃跺櫒/璁℃暟鍣ㄥ拰I/O鎺ュ彛绛夊熀鏈姛鑳介儴浠堕泦鎴愬湪涓鍧楄姱鐗囦笂锛屽疄鐜颁簡璁$畻鏈烘墍闇鐨勫熀鏈姛鑳姐2. 鍗曠墖鏈哄唴閮涓昏閮ㄤ欢鍖呮嫭锛- 涓涓8浣岰PU锛岃礋璐f墽琛岀▼搴忔寚浠ゅ拰鎺у埗鍗曠墖鏈虹殑宸ヤ綔銆- 涓涓墖鍐呮尟鑽″櫒鍙婃椂閽熺數璺紝涓哄崟鐗囨満鎻愪緵鏃堕挓淇″彿銆- 4K瀛楄妭ROM绋嬪簭瀛樺偍鍣紝鐢ㄤ簬瀛樺偍绋嬪簭...
  • 鍗曠墖鏈哄唴閮ㄧ粨鏋勬槸鎬庝箞鏍鐨?
    绛旓細MCS-51鍗曠墖鏈哄唴閮ㄥ寘鍚摢浜涗富瑕侀昏緫鍔熻兘閮ㄤ欢鏈夛細(1)1涓8浣嶇殑寰鐞嗗櫒CPU銆(2)8KB鐨勭墖鍐呯▼搴忓瓨鍌ㄥ櫒Flash ROM(51瀛愮郴鍒楃殑Flash ROM涓4KB)锛岀敤浜庣儳褰曡繍琛岀殑绋嬪簭銆佸父鏁版暟鎹(3)256B鐨勭墖鍐呮暟鎹瓨鍌ㄥ櫒RAM(51瀛愮郴鍒楃殑RAM涓128B)锛屽湪绋嬪簭杩愯鏃跺彲浠ラ殢鏃跺啓鍏ユ暟鎹拰璇诲嚭锛岀敤浜庡瓨鏀惧嚱鏁扮浉浜掍紶閫掔殑鏁版嵁銆佹帴鏀剁殑...
  • 51鍗曠墖鏈纭欢鏋勬垚閮芥湁浠涔
    绛旓細浣犺繖涓浘鏄51寮鍙戞澘鐨勫浘 鑰屼綘璇寸殑鏄51鍐呴儴缁撴瀯銆傛墍浠ヤ笉涓鏍枫備换浣曞紑鍙戞澘鎴栨槸鍏朵粬鍔熻兘鐢佃矾鏉夸富瑕佹槸鏈変竴涓傚悎51鐨勮繍琛岀幆澧冩瘮濡傞瀹氱殑鐢垫簮锛屾椂閽熺數璺紝鐒跺悗閰嶅悎51绋嬪簭澶勭悊浠ュ疄鐜扮浉搴旂殑鍔熻兘銆傝屽紑鍙戞澘涓昏鏄负浜嗗涔51鍗曠墖鏈鑰屼汉涓哄畨鎺掍簡姣斿LED鎸囩ず鐏紙璺戦┈鐏瘯楠岋級LED鏁扮爜绠℃瘮濡傝鏁版垨娓╁害鎴朅DC閲囨牱鎴栫數瀛愯〃...
  • 51鍗曠墖鏈哄唴閮鍖呭惈鍝簺涓昏鍔熻兘閮ㄤ欢?鍚勫姛鑳介儴浠剁殑涓昏浣滅敤鏄粈涔
    绛旓細51鍗曠墖鏈哄唴閮ㄤ富瑕佸姛鑳介儴浠跺強鍏朵綔鐢ㄥ涓嬶細1. CPU涓昏姱鐗囷細鍐呴儴閫氳繃鎬荤嚎杩炴帴鎵╁睍鐨勮澶囷紝鏄崟鐗囨満鐨勬牳蹇冿紝璐熻矗鎵ц绋嬪簭鎸囦护鍜屾帶鍒跺叾浠栧姛鑳介儴浠躲2. 鏃堕挓鐢佃矾锛氫负鍗曠墖鏈烘彁渚涢渿鑽¤剦鍐诧紝纭繚鍗曠墖鏈虹殑鎿嶄綔鑺傚鍜屾椂闂村熀鍑嗐3. 鐢垫簮鐢佃矾锛氫负鍗曠墖鏈哄強鍏跺閮ㄧ數璺彁渚涚ǔ瀹氱殑鐢垫簮渚涘簲銆4. 鍐呴儴鏁版嵁瀛樺偍鍣≧AM锛氬寘鎷氱敤鏁版嵁...
  • MCS-51鍗曠墖鏈哄唴閮ㄧ粨鏋鐢卞摢鍑犻儴鍒嗙粍鎴
    绛旓細MCS-51鍗曠墖鏈哄唴閮ㄧ粨鏋鐢变互涓嬪嚑閮ㄥ垎缁勬垚锛1銆丆PU2銆佹椂閽熷拰澶嶄綅3銆佺▼搴忓瓨鍌ㄥ櫒4銆佹暟鎹瓨鍌ㄥ櫒锛堝瘎瀛樺櫒锛5銆佸畾鏃跺櫒6銆佹荤嚎鎺у埗鍣7銆両O8銆佷覆鍙
  • 扩展阅读:51开发板原理图高清 ... 51单片机内部ram结构图 ... 51最小系统板电路图 ... 单片机简单结构框图 ... 51单片机内部实物图 ... 单片机有多少种型号 ... 51单片机结构框架图 ... 51系列单片机内部结构 ... 画出单片机内部结构图 ...

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