转载——

单片机有很多种,AVR、PIC、MC6805系列等,他们的体系结构不尽相同,指令集也各异,有些是CISC,有些是RISC,51单片机的指令集采用的是CISC。

51单片机是单片机的一种,之所以这么流行,业界赞同的原因主要有两个:

第一:由于intel公司(开发了51单片机)一开始就开放了授权。

第二:51单片机的体系结构不难,资料很多(也良莠不齐),学的人很多。

51单片机和电脑联系很大的(单片机某种程度上可以说是一台袖珍电脑),我们知道电脑由运算器、控制器、存储器(RAM)、输入设备和输出设备,各个部分由总线联接起来,联想到实际设备我们看:

我们的电脑由一下部分组成:CPU、内存、主板、硬盘、光驱、软驱(已淘汰)、显卡、显示器、键盘和鼠标。分析一下各个设备提供的功能:

CPU提供了运算和控制功能(随着电脑的发展和改进,独立显卡代替了CPU了对图形图像相关的数据的运算,主板芯片代替了部分原来由CPU提供的控制功能,例如DMA,内存控制器等)

内存,即RAM,提供了程序运行的空间,就是存储器的功能。

主板,确切地说是主板芯片,把各个部件连接起来,即总线的功能,近年来代替CPU提供一部分控制功能。

硬盘、光驱、软驱,是保存程序的地方,几十年前电脑可能是这样工作的:插入可启动的带有操作系统的软盘(DOS、Linux等),打开电源,BIOS检查通过后,引导操作系统,进入系统后,在shell下(人机对话界面,在DOS下叫DOS界面),可以使用软盘里面保存的程序或者文件。后来硬盘和光驱代替了软盘的程序存储功能。

显卡,确切说是独立显卡,代替了CPU图形图像相关数据的运算。

显示器提供了输出功能,键盘和鼠标提供了输入功能。

51单片机有以下部分组成:

微处理器(MCU),和通用CPU类似,提供运算和控制功能。

数据存储器,和电脑的内存类似,提供数据存储功能,提供程序运行的空间。

程序存储器,和电脑的硬盘、光盘、软盘类似,提供程序存储的空间。

各个部分由总线联系起来。

总线是什么?

一开始系统很简单的时候总线不是必须的,各个部件中需要通信的双方用导线连接在一起,举个例子,就像打局域网,两台电脑想通信,直接用一根交叉的双绞线连接就OK了,不用买交换机,但是如果另外一台电脑想加入,那么这台电脑必须和这两台电脑各自连接一根线,第四台电脑想进来,那么得连接3根线,第五台要连接4根线……第N台要连接N-1根线,是不是很麻烦,当然大家不会这么做,超过2台我们就用交换机了,总线的作用和这个有点类似。总线技术使得相互关系的部分通过这个公共通道连接起来,通过控制信号来区分不同组件间的通信。

总线分数据总线(DB)、控制总线(CB)、地址总线(AB),顾名思义各自有各自的功能。

我们从51单片机的一个指令的取、译和执行过程来理解一下总线。假如我们现在要求计算2+3=?

;PC是指针,指向程序存储器的某个位置。PC指向的当前地址就是正在或即将执行的指令

;假设此时PC=2000H

MOV A,#02H;PC=2000H

ADD A,#03H;PC=2002H

通电后,PC值为0000H,随着前面指令的取、译和执行,PC值一直改变,当PC值为2000H时,MCU通过AB找到要执行指令的位置,通过内部DB从程序存储器取的操作码(指令由操作码和操作数组成)是74H(是MOV汇编后的机器码),同时PC=PC+1=2001H,通过译码,发现操作码的意思是将后面的一个字节作为操作数送进累加器A,MCU通过CB发出控制信号,把程序存储器的下一个字节通过内部DB送进累加器A,同时PC=PC+1=2002H,第一个指令执行完毕。

另外一条指令类似,通过对操作码的译码,发现操作码的意思是将后面一个字节作为操作数与累加器A中的内容相加,输出结果放进累加器A。于是发出控制信号,把程序存储器下一个字节通过内部DB送到暂存器,通过MCU进行计算,得出的结果放进累加器A。执行完PC=2004H。

总线有一定的宽度,所以我们有8位机、16位机、32位等等。总线越宽,每次取数据越多,8位宽度每次只能取1个字节,16位是2个字节,越宽每次取越多,同样时间内执行的指令越多,所以,总线宽度是衡量MCU运算能力的重要指标。51单片机的AB宽度是16位,DB宽度是8位,CB宽度是8位,因为运算能力主要和DB宽度有关,所以我们以DB宽度来区分不同的MCU。

51单片机体系结构初步分析相关推荐

  1. 0809连接单片机c语言,adc0809引脚图及功能详解,adc0809与51单片机连接电路分析

    描述 adc0809是采样频率为8位的.以逐次逼近原理进行模-数转换的器件.其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换. 1.主要特性 ...

  2. Zigbee网络架构+ZigBee的体系结构+理解zigbee节点的实现的案例+“51单片机” 和 “zigbee” 、 “cc2530芯片” 之间的关系+芯片cc2530

    ZigBee技术具有强大的组网能力,可以形成星型.树型和网状网,可以根据实际项目需要来选择合适的网络结构: 以下拓扑结构的节点,均是指支持zigbee协议的并以其通信技术手段,实现节点处所需要功能的产 ...

  3. 51单片机C语言程序100例分析(1)IO+C语言+头文件

    51单片机C语言程序100例分析(1)IO+C语言+头文件 \\\插播一条:文章末尾有惊喜哟~///  P1=0xfe;//P1=11111110B,即P1.0输出低电平} 分析:通过这短短的几行代码 ...

  4. 51单片机控制系统的人机交互接口设计【51单片机与LED数码管的动态显示接口案例分析】

    本章节利用Keil uVision5和ISIS 7 Professional两个软件来进行仿真实验. [例]运用51单片机实现8位8段数码管的动态显示,LED数码管的段选数据由51单片机的P0口控制, ...

  5. 51单片机~运放控制声控电路,运算放大器(各模式精细详解),NE555时基电路芯片分析

    51单片机~运放控制声控电路 (一)驻极体话筒: (二)运算放大器: 说明:在使用时V+和V-之间没有压差不进行电路放大,但是一旦有了压差,就成为运算放大器, (1)单电源:V+ > V-时,输 ...

  6. 51单片机:蓝桥杯省赛自动售水机分析与完整设计

    右键上拉回来: 1.写在前面的话 2.问题解决思路 01 整体分析 02 独立按键单元 03 数码管显示单元 04 AD转换单元 3.备注 1.写在前面的话 整理下之前蓝桥杯比赛的代码吧,里面其实很多 ...

  7. 太原理工大学机器人团队20天学习打卡day14(51单片机初步)

    太原理工大学机器人团队20天学习打卡day14(51单片机初步) 不定期更新. (我这个氵比又来更新了,虽然貌似没啥人看,今天内容又是前些天内容的升级 我们将制作一个流水灯) 进一步学习如何让8个小灯 ...

  8. 51单片机电子钟 是如何做成的(2)---分析例程结构

    什么是单片机呢(写给小白) 嗯嗯,也不好怎么描述 来自360百科:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理 器CPU随机存储器RAM.只读存储器ROM.多种I/ ...

  9. 51单片机c语言程序执行顺序,51单片机程序执行流程详细分析

    这里是一个循环,根据DJNZ指令的功能:每执行一次DJNZ RO, IDATALOOP就将R0的值减1,若R0的值不为0则就跳到IDATALOOP地址去.很显然这是一个循环,那么RO的值是多少呢,在以 ...

  10. 单片机c语言sfr,51单片机bit、sbin、sfr、sfr_16区别分析

    1.bit和sbit都是C51扩展的变量类型. bit和int char之类的差不多,只不过char=8位, bit=1位而已.都是变量,编译器在编译过程中分配地址.除非你指定,否则这个地址是随机的. ...

最新文章

  1. 借鉴丰田方法对大型软件组织进行敏捷改造 (上)
  2. KeyValueTextInputFormat使用案例
  3. curl命令查看耗时
  4. tcpdump过滤某个端口
  5. 慈溪微生活图标_日常生活中的图标
  6. python创建变量_Python每天一分钟:给类对象动态新增/删除成员变量和方法(函数)...
  7. uwsgi: error while loading shared libraries: libicui18n.so.58: cannot open shared object file
  8. Samba Linux 和windows 共享
  9. PowerShell 远程执行任务
  10. boost operator 实例代码
  11. 程序无法启动计算机丢失,没法启动程序,说是计算机丢失user32.dll
  12. 日期和时间的正则表达式
  13. 【linux】centos6.9通过virtualenv安装python3.5
  14. 在java中什么管理内存_Java是如何管理内存
  15. 数值计算方法【学习笔记】——引论
  16. 二维码生成器如何批量制作溯源二维码
  17. matlab中数字分频器的,数字分频器原理及设计.pdf
  18. 苹果手机怎么连接蓝牙耳机_苹果手机用什么蓝牙耳机好,适配iphone手机的蓝牙耳机...
  19. 电子音乐爱好者的舞台,电音遇上双12
  20. Vue项目引入阿里巴巴矢量图标库

热门文章

  1. html中含有value属性的标签及Value的作用
  2. Lcd ST7789S寄存器初始化配置
  3. Matlab中isequal函数的使用
  4. 手机多控软件使用全面评测,选择更适合自己的那一款!
  5. 全网最详细的Intel CPU体系结构分析(内核源码)
  6. 谷粒商城-商城业务-检索服务
  7. Python 学习2-元组、字符串
  8. 信用卡逾期别慌,有的逾期记录可撤销
  9. 软件测试之弱网测试工具
  10. windows7 内部版本7601 此windows副本不是正版 ---解决方案