试着制造一台计算机吧

 首先要搜集制作微型计算机系统最基础的三个元件:处理器、内存、I/O设备。

处理器:这里采用z80cpu,这是一个古老的8位的微处理器,这意味着它的数据总线宽度为8位,每个时钟周期内,它可以处理8位的数据。由Zilog公司设计并于1976年推出。它在那个时期非常流行,被广泛应用于许多家用电子产品和计算机系统,包括早期的个人电脑、游戏机和嵌入式系统。

以下是关于Z80 CPU的一些基本特点和解释:

1.位数: Z80是一款8位微处理器,这意味着它的数据总线宽度为8位。每个时钟周期内,它可以处理8位的数据

2.寄存器: Z80包含一组寄存器,其中包括通用寄存器、累加器、标志寄存器、堆栈指针寄存器和程序计数器。这些寄存器用于存储和操作数据,以及控制程序的执行。

3.指令集: Z80的指令集非常丰富,具有多种数据处理、逻辑操作和控制流指令。这使得Z80能够执行各种任务,从简单的算术运算到复杂的控制流程。

4.时钟周期: Z80 CPU的时钟周期较慢,通常在数十纳秒或更长的时间范围内。这在一些应用中可能导致性能较低,但在早期的系统中仍然足够。

5.地址总线: Z80具有16位地址总线,允许它寻址最多64KB的内存。这对于当时的应用来说是足够的。

6.架构: Z80采用冯·诺依曼体系结构,其中程序和数据存储在同一内存空间中。

 内存:使用TC5517 作为内存,可以存储 2KB的数据

以下是关于TC5517 DRAM的一些基本介绍:

类型: 作为动态存储器,TC5517需要定期刷新以维持存储的数据。相较于静态存储器(如SRAM),动态存储器通常更经济,但需要更多的管理和控制。

容量:TC5517是一款2K x 8位的DRAM,总容量为2千字节。每个字节包含8位数据。这样的容量对于早期的个人电脑、嵌入式系统和其他低容量需求的应用来说是相当适用的。

兼容性: TC5517通常与8位微处理器一起使用,如Z80 CPU。这样的微处理器在20世纪70年代和80年代广泛应用于个人电脑、嵌入式系统和其他电子设备。

数据传输速度: 具体的数据传输速度由其刷新频率、存取时间和周期时间等参数决定。在古老的系统中,时钟速度相对较慢,因此TC5517的性能要与系统整体的时钟速度相匹配。

 I/O设备:使用Z80 PIO 作为 本系统的I/O设备,PIO即Parallel I/O,可以在微型计算机和外部设备之间并行地输入输出 8 比特的数据

以下是关于Z80 PIO的一些基本介绍:

双通道: Z80 PIO有两个独立的I/O通道,每个通道都有自己的寄存器集合。这使得它能够同时处理多个输入和输出任务。

工作模式: Z80 PIO可以配置为不同的工作模式,包括输入模式、输出模式、双向模式和控制模式。在每个模式下,它具有不同的功能,允许程序员根据应用的需要进行设置。

中断功能: Z80 PIO支持中断功能,可以通过中断请求引脚(IRQ)向Z80 CPU发出中断信号,以通知CPU发生了特定的I/O事件。

时序控制: Z80 PIO具有时序控制功能,可以配置数据传输的时钟和同步信号,以适应外部设备的时序需求。

寄存器: Z80 PIO包含一系列寄存器,包括控制寄存器、状态寄存器和数据寄存器。这些寄存器用于配置PIO的工作模式、监视I/O状态和传输数据。

 除了处理器、内存、I/O设备这三个最基本的元件,还需要一些辅助的元件

时钟发生器:时钟发生器的主要作用是生成稳定的时钟信号,以提供给CPU和其他系统组件。这个时钟信号用于同步各个组件的操作,确保它们按照正确的顺序和速率执行指令和数据传输。时钟信号的频率表示每秒钟产生的脉冲数量。通常以赫兹(Hz)为单位,例如1兆赫兹(1MHz)表示每秒发生1百万次脉冲。时钟频率越高,CPU和系统的处理能力通常越强大。

74367:74367是一款三态(Tri-State)八位缓冲器,该芯片允许将输入信号缓冲并通过启用/禁用信号来控制输出的驱动能力,即~G1引脚和~G2引脚同时为0是启用信号,反之,禁用信号

7404:7404是一款六反相器(Hex Inverter)芯片,片包含六个独立的反相器门,每个反相器都执行逻辑非运算

8个键位的指拨开关

8个LED,用于输出程序执行结果

组件介绍完了,接下来就开始组装微型计算机吧

连接电源

        先连接接电源,IC需要连接电源才能工作,Z80 CPU、 时钟发生器、TC5517 和 Z80 PIO 上都分别带有 Vcc 引脚和 GND 引脚,Vcc 和 GND 这一对儿引脚用于为 IC 供电,将Vcc接电源,GND接地,这里表示接电源,表示接地。

 连接数据总线和地址总线

         为了cpu、内存和I/O之间传输数据,需要连接数据总线,z80cpu上有D0~D7(D即Data,D0为低位,D7为高位),与TC5517对应的引脚相连,但是数据传输到哪里,从哪里传输,这个问题就需要地址来解决,z80cpu的地址总线共16个,A0-A15(A即Address),代表了该cpu可以寻址65535个数据存取单元,TC5517上也有地址总线(A0~A10),但是由于用于设定内存地址的指拨开关只有8个,所以只使用(A0~A7),与cpu上的对应的引脚相连。

 连接I/O

        应为I/O上也有数据总线,所以将PIO上的D0~D7也与cpu对应的引脚相连,PIO中指定地址的方式和Tc5517不同,PIO中有B/~A(输入1即选中B,0即选中A)和C/~D引脚,C即Control(控制模式),D即Data(数据模式),分别与cpu的A0-A1相连,通过A0、A1的信号就可以选择I/O的寄存器,(选中AC即端口 A 控制寄存器、AD即端口 A 数据寄存器、BC即端口 B 控制寄存器、BD即端口B数据寄存器),对于未使用的引脚就什么都不连接,在电路图中可以用代号 NC( No Connection, 未连接) 表示引脚标识

 连接时钟信号

         Z80 CPU 和 Z80 PIO 的运转离不开时钟信号。 为了传输时钟信号, 就需要把时钟发生器的8 号引脚和 Z80 CPU 的 CLK( CLK 即 Clock, 时钟) 引脚、 Z80 PIO 的 CLK 引脚分别连接起来

 连接用于区分读写对象是内存还是 I/O 的引脚 

        因为cpu、内存、PIO的数据总线有连接,所以cpu就无法区分是传输数据的对象是内存还是IO,而cpu上的~MREQ(即 Memory Request, 内存请求)和~IORQ(即 I/O Request, I/O 请求)引脚可以解决这个问题,~EREQ与TC5517的~CE(即 Chip Enable, 选通芯片,引脚设成0, 则TC5517在电路中被激活,若设成1则从电路中隔离)引脚相连,当cpu和内存传输数据时CPU的~MREQ引脚值置为0,cpu就可以和内存之间传输数据。同样,~IORQ与PIO上的~IORQ和~CE相连(之所以使用两个引脚是因为这样更适合使用了多个 I/O 的情况)。

        对于内存和 I/O , 还必须要分清 CPU 是要输入数据还是输出数据。 为此就要用cpu 的~RD引脚( 即 Read,表示输入,为0时执行输入操作) 和~WR引脚( 即 Write, 表示输出, 为 0 时执行输出操作)了,对于PIO只有~RD引脚,也可以区分读还是写,输入0表示读数据,输入1表示写数据。

连接剩余的控制引脚

         CPU、 内存、 I/O 中不但有地址总线引脚、 数据总线引脚, 还有其他引脚, 通常把这些引脚统称为“控制引脚”。首先把 Z80 CPU 的 M1 引脚( 即 Machine Cycle 1, 机器周期 1) 和INT 引脚( 即 Interrupt, 中断)与 Z80 PIO 上对应的的引脚连接。 M1 是用于同步的引脚, INT 引脚是用于从 Z80 PIO 向 Z80 CPU发出中断请求的引脚。 中断处理就是指计算机使程序的流程突然跳转到程序中的特定地方。

        一旦把 Z80 CPU 的 RESET 引脚( 即 Reset, 重置) 上的值先设成 0再还原成 1,CPU 就会被重置, 重新从内存 0 号地址上的指令开始顺序往下执行。
        使用快动开关可以使 Z80 CPU 的 ~BUSRQ 引脚( 即 Bus Request,总线请求) 上的值在 0 和 1 之间切换。 若将 ~BUSRQ 引脚的值设为 0,则 Z80 CPU 从电路中隔离。 当处于这种隔离状态时, 就可以不通过CPU, 手动地向内存写入程序了。 像这样不经过 CPU 而直接从外部设备读写内存的行为叫作 DMA( Direct Memory Access, 直接存储器访问),当z80cpu从电路中隔离后,~BUSAK引脚的值会变成0,至于~BUSAK引脚的作用会在下一步骤中讲到

连接外部设备,通过 DMA 输入程序

        将cpu的~BUSAK引脚和74367的~G1、~G2引脚相连,将控制输入内存程序和设定内存地址的八位指拨开关分别通过74367连接到TC5517的D0~D7、A0~A7引脚,为了可以输入0或1,需要将每个开关上拉(上拉即通过加入电阻把元件的引脚和电源连接起来),将控制写入内存的按键开关连接到~WE引脚上,因为要写入数据,所以也要把cpu的~RD引脚上拉,~CE引脚接地。

        74367叫作“三态总线缓冲器”,作用是只有~G1和~G2引脚同时为0,电信号才能通过,否则将与电路隔离,所以~BUSAK引脚就可以真正控制DAM操作了。

 连接用于输入输出的外部设备

        用于输入数据的指拨开关, 要连接到 Z80 PIO 的 PA0~PA7 引脚上(连接时没有使用 74367 是为了在程序运行中可以通过 Z80 PIO 从指拨开关获得输入的数据)。

        LED 要通过 7404 连接到 Z80 PIO 的 PB0~PB7 引脚上,7404中三角加圆圈代表的是反相器,即可以将0编程1,1变成0,而且因为lED右侧接电源,所以左侧为0则亮,左侧为+5v则灭。

        当然,因为74367和7404也是IC,需要接入电源,Vcc接+5v电源,GNB接地。

 到此为止,一个微型计算机就制作成功了。

每日一言:你既无青春也无老年,而只像饭后的一场睡眠,把两者梦见

读矢泽久雄老师的书《计算机是怎么跑起来的》,写以巩固

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清墨书晚风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值