D8080A 单板机
简介
采用1974年的INTEL 8080 CPU制作的单板机,32KB ROM + 32KB RAM ,自带硬件串口、数码管、扫描键盘、LCD1602 、SN76489音频发生器
简介:采用1974年的INTEL 8080 CPU制作的单板机,32KB ROM + 32KB RAM ,自带硬件串口、数码管、扫描键盘、LCD1602 、SN76489音频发生器开源协议
:LGPL 3.0
描述
1971年,英特尔发布了著名的4004 CPU
1972年,英特尔发布了8008 CPU,它是一款单芯片的TTL电平兼容PMOS工艺8位处理器,采用冯架构,寻址能力16KB。它被认为是现代x86架构的起源。
1974年,英特尔8080 CPU问世,它改进了8008的一些问题,将直接寻址空间扩大到64KB。增加了中断处理机制,且拥有了寄存器对操作能力,一次可以转移或者向数据栈操作16位二进制数。且它的指针栈和数据栈全部转移到外部的RAM里,栈基地址由SP寄存器寻址。发展到8086之后变成了数据、堆栈、代码、辅助四个基地址指针寄存器
就是这款CPU,为后来的8080总线协议打下基础,该总线形式一直沿用到8085,8086等CPU
值得注意的是,它的寄存器堆上有W和Z,这两个只是中转寄存器,用于复杂指令过程中的暂存,不对程序暴露。
下图:8080逻辑框图
8080采用双列直插DIP-40封装,供电为三组:+5V主电,+12V时钟电源、-5V辅助电源(供内部动态逻辑部分使用)
引脚排列如下图:
一般CPU都有三大总线:地址总线、控制总线、数据总线,8080也不例外。
但就如同8085的地址、数据线复用,CDP1802的高低位地址线复用一样,引脚不够用的8080也采用了复用总线,但很有特色:它是数据总线和控制总线复用。
在每个指令周期,凡涉及到外部存储器或IO读写的,都先把控制信号通过锁存器输出。
一般可以使用INTEL 8212 锁存器,配合一些逻辑门和三态门,完成控制总线的复用,以及数据总线的驱动。如下图所示:
IOW、IOR是IO口空间(256)的读写信号,MEM W、MEM R是存储器(RAM和ROM)的读写信号
另外,8080需要两个相位的时钟信号,手册中给出了分立方案,但一般使用8224时钟信号发生器来生成时钟和复位信号,如下图所示:
同理,控制总线和数据总线复用控制器也可以使用8228芯片。
基于此,本设计采用8080A CPU,8224时钟信号发生器、8228总线驱动器等芯片,完成了8080 CPU最小系统和单板机的构建。
在256 byte的IO寻址空间内,分配了扫描显示数码管,LCD1602,MC6850通用异步串行数据收发器(UART),SN76489音频发生器等。
实物图如下所示:
封面图:
使用的MC6850串口芯片比常见的8251简单很多,少了一些引脚,而且只有两个读寄存器和两个写寄存器,非常简单易用。内部分频器是1/16/64,因此,本设计采用11.0592M晶振为CPU提供1.2288MHz主频的同时,再经过一个16分频器,将76800Hz时钟信号送到MC6850,因此,该芯片支持三种异步收发波特率:76800Hz、4800Hz、1200Hz。下方demo程序里的就是4800Hz设置,使用串口监视软件就可以进行收发实验。
下图:右上角的SN76489,由于76489写指令速度非常慢,将他的数据总线挂载到0x00 地址的IO输出口,将他的CS接地,将它的WR信号连接到0x60地址IO口的^1引脚,可以使用软件延时方式,将数据写入。
(8080 CPU不能因为它而降低运行速度,一来不值当,二来8080内部是动态逻辑,时钟太慢就不能正常运行了)
调试过程缩影:
评论