打印
[MM32生态]

单片机的信息类型与三总线

[复制链接]
135|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szt1993|  楼主 | 2025-3-29 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在单片机中,基本上有三类信息在流动:

1.一类是数据信息,即各种原始数据、中间结果、程序(命令的集合)等。这样要由外部设备通过“口”进入单片机,再存放在存贮器中,在运算处理过程中,数据从存贮器读入运算器进行运算,运算的中间结果要存入存贮器中,或最后由运算器经“出入口”输出。

2.第二类是控制信息,用户要单片机执行的各种命令(程序)也以数据的形式由存贮器送入控制器,由控制器解读(译码)后变为各种控制信号,以便执行诸如移位、运算、转移等功能的各种命令。所以,这一类信息就称为控制命令,即由控制器去控制运算器一步步地进行运算和处理,又控制存贮器的读(取出数据)和写(存入数据)等。

3. 第三类信息是地址信息,其作用是告诉运算器和控制器在何处去取命令取数据,将结果存放到什么地方,通过哪个口输入和输出信息等。

单片机各部分是通过内部的总线有机地连接起来的,总线(AB、CB和DB):

一个电路是由元器件通过电线连接而成的。但计算机内部电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以需要的连线会很多很多。如果仍如同模拟电路一样 ,在微处理器和器件间单独连线,则线的数量将多得惊人。为此在微处理机中引入了总线概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来。但是,如果仅这样还不行,比如的话,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线也就被称为数据总线(DB),器件所有的控制线被称控制总线(CB)。

在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址也是以电信号的形式给出的,由于存储单元比较多,所以用于地址的线也较多,这些线被称为地址总线(AB)。



使用特权

评论回复
沙发
szt1993|  楼主 | 2025-3-29 21:28 | 只看该作者
数据、地址、指令放在一起:

之所以将这三者放在一起,是因为这三者的本质都是一样的─数字,或者说是‘0’和‘1’组成的序列。换言之,地址、指令也都是数据。

指令由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关,不可以由单片机的开发者更改。

地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过 程)。

数据:这是由微处理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况:

1地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。

2方式字或控制字(如MOV TMOD,#3),3即是控制字。

3常数(如MOV TH0,#10H)10H即定时常数。

4实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗, 则执行:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞。

使用特权

评论回复
板凳
jf101| | 2025-3-31 23:02 | 只看该作者
三类信息在流动

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

317

主题

2510

帖子

6

粉丝