站内搜索
发作品签到
专业版

Z80单板机

工程标签

33
0
0
0

简介

Z80单板机,部分设计借鉴Z80V2与北京工业大学的TP801。目前仍然存在部分问题,但是可以正常运行Microsoft Basic4.7b解释器

简介:Z80单板机,部分设计借鉴Z80V2与北京工业大学的TP801。目前仍然存在部分问题,但是可以正常运行Microsoft Basic4.7b解释器
复刻成本:100

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2026-03-31 11:08:25更新时间:2026-03-31 17:23:15

描述

这个是Z80单板机,部分设计借鉴Z80V2与北京工业大学的TP801键盘部分等,目前仍然存在部分问题。

Monitor离线固件还未编写,暂时还不能像TP801那样直接输入,可以正常运行Microsoft Basic4.7b解释器(移植的老外的)支持冷启动和暖启动,可以运行C语言编写的程序。

Microsoft Basic 4.7b解释器使用TASM编译,该编译器只能运行在DOS下,可以用DOSBOX模拟。

译码部分全部采用GAL芯片,可以自由定制IO/存储译码,GAL采用WinCUPL编译为jed文件,相关的语法可以看我的博客:基于WinCUPL的GAL编程教程 - 老张的后花园

IM2模式下的中断菊花链的优先级请参考原理图,当前模式的68B50的INT可能会与Z80系列外设出现冲突,可以将68B50通过跳线帽设置为不可屏蔽中断解决。

目前该版本不包含全RAM地址切换功能,最大RAM为32KB,无法运行CP/M系统(需要64KB)。

ROM采用4个27C64芯片,可以用28C64B(28C64没有尝试过)替换,第一ROM地址(0x0000H)从GAL中指定。烧录需要相关的编程器!!!

运行C语言程序的HEXLOADER借鉴了BITROWZ的Z80V2中的。

目前存在的问题:

1. 当前设计中的273缓冲器在上电时会慢于CPU的复位或波形不正常,导致273工作不正常,可以将复位按钮后的型号通过2个施密特非门整形后输入CPU和273缓冲器,软件解决方法是上电后的初始化前插入120个以上的NOP(6MHZ下)。

2. U17的74HC04芯片的8脚和10脚要断开连接,否则会短路。

3. 第一组串口的Z80SIO的串行时钟输入不正确,应该是7.3728MHZ而不是系统时钟,可以用飞线解决,且RX/TX的LED展示不是负逻辑。第二组串口的MC68B50是完全正常。

注意:

DC输入建议7V,但是必须大于6V。

 

相关的图片:

运行测试程序:

运行Basic解释器

运行C语言程序(输入回显还有点小问题会显示B,但是基本是通的):

当前PLD中规定的IO地址映射:
PIO_A_DATA_PORT     EQU 0x80 
PIO_B_DATA_PORT     EQU 0x81
PIO_A_COMMAND_PORT  EQU 0x82
PIO_B_COMMAND_PORT  EQU 0x83
SEG_PORT            EQU 0x84          ;数码管段选
DIGITAL_PORT        EQU 0x85      ;数码管位选
KB_PORT             EQU 0x86            ;键盘
CTC1_CH0_PORT       EQU 0x88
CTC1_CH1_PORT       EQU 0x89
CTC1_CH2_PORT       EQU 0x8A
CTC1_CH3_PORT       EQU 0x8B
CTC2_CH0_PORT       EQU 0x8C
CTC2_CH1_PORT       EQU 0x8D
CTC2_CH2_PORT       EQU 0x8E
CTC2_CH3_PORT       EQU 0x8F
SIO_A_DATA_PORT     EQU 0x90
SIO_A_COMMAND_PORT  EQU 0x91
SIO_B_DATA_PORT     EQU 0x92
SIO_B_COMMAND_PORT  EQU 0x93
MC68B50_CTRL_PORT   EQU 0x94
MC68B50_DATA_PORT   EQU 0x95

当前PLD中规定的存储器地址映射:

存储器:
ROM0(monitor)  : 0x0000~0x1FFF  8K
ROM1(extra1)    : 0x2000~0x3FFF  8K
ROM2(extra2)    : 0x4000~0x5FFF  8K
ROM3(extra3)    : 0x6000~0x7FFF  8K
RAM:               : 0x8000~0xFFFF  32K

软件修复上电缓冲器持续清零问题:

Start:
    ;自行设置栈顶指针
    LD B, 0ffh
StartLoop:
    NOP
    DJNZ StartLoop
    JP MAIN
MAIN:   ;后面写你的程序、

数码管显示码表与位选:

 

相关文件请查看附件,其他问题可以邮件咨询我: MTUzNjQ1MTk1MTFAMTYzLmNvbQ==    (base64编码,网上随便找个在线工具就可以解码)我会在12小时内回复。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
MBASIC4.7B不依赖CPM.zip
1
2
IODECODER.jed
1
3
IODECODER.pld
1
4
IODECODER.doc
1
5
MEMDECODER.doc
1
6
MEMDECODER.PLD
1
7
MEMDECODER.jed
1
8
存储器译码.xlsx
1
9
数码管.xlsx
1
10
测试程序.asm
1
11
测试程序.bin
1
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航