提交 79c162b1 创建 作者: 赵鹏翀's avatar 赵鹏翀

Initial commit

上级
*.cir
*.xml
*.bak
/.vs
\ No newline at end of file
[submodule "8086"]
path = 8086
url = https://zpc@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8086.git
[submodule "8255"]
path = 8255
url = https://zpc@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8255.git
[submodule "ADC0809"]
path = ADC0809
url = https://zpc@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/ADC0809.git
[submodule "DAC0832"]
path = DAC0832
url = https://zpc@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/DAC0832.git
8086 @ 0646239b
Subproject commit 0646239b4d1645f6a0da63d7f4bb3142942e567c
8255 @ 3579b6d7
Subproject commit 3579b6d7edcc93923c5467c914b30d9e4d0ce331
ADC0809 @ 59c65c04
Subproject commit 59c65c041ec4a54a3df92a5ac2d894b39c87f034
差异被折叠。
DAC0832 @ b916b418
Subproject commit b916b418cb55c5dd649f96006c5494ab6bd360eb
添加文件
差异被折叠。
# 说明
IO接口芯片地址译码模块
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<project id="3407fe40-bd78-42b5-914a-e269ea66b67f" name="Lab008" version="1">
<files>
<filefolder id="d7502e9e-b220-4715-a645-2f139d9b4f34" name="MEM">
<file relativepath="MEM\MEM.dlsche"/>
<file relativepath="MEM\ram.asm"/>
<file relativepath="MEM\ram.bat"/>
<file relativepath="MEM\ram.rxm"/>
<file relativepath="MEM\README.md"/>
</filefolder>
<filefolder id="c6ec748e-8eff-4fcb-9ff0-d62ba30af439" name="IO">
<file relativepath="IO\IO.dlsche"/>
<file relativepath="IO\README.md"/>
</filefolder>
<filefolder id="22adc1dc-1488-4ded-9864-ce70b5170f67" name="8086">
<file relativepath="8086\8086.dlsche"/>
<file relativepath="8086\8086.pdf"/>
<file relativepath="8086\ALU.dlsche"/>
<file relativepath="8086\BRANCH.dlsche"/>
<file relativepath="8086\CU.dlsche"/>
<file relativepath="8086\FLAG.dlsche"/>
<file relativepath="8086\PC.dlsche"/>
<file relativepath="8086\README.md"/>
<file relativepath="8086\REGS.dlsche"/>
<file relativepath="8086\rom.bat"/>
<file relativepath="8086\rom.masm"/>
<file relativepath="8086\rom.rxm"/>
<file relativepath="8086\uPC_NEXT.dlsche"/>
</filefolder>
<filefolder id="7a5174ce-3004-46e5-ac55-3f9457bd2998" name="8255">
<file relativepath="8255\8255.dlsche"/>
<file relativepath="8255\8255.pdf"/>
<file relativepath="8255\A0.dlsche"/>
<file relativepath="8255\A2.dlsche"/>
<file relativepath="8255\ac.dlsche"/>
<file relativepath="8255\ACh.dlsche"/>
<file relativepath="8255\AIN1.dlsche"/>
<file relativepath="8255\AOUT1.dlsche"/>
<file relativepath="8255\B0.dlsche"/>
<file relativepath="8255\bc.dlsche"/>
<file relativepath="8255\BCl.dlsche"/>
<file relativepath="8255\BIN1.dlsche"/>
<file relativepath="8255\BOUT1.dlsche"/>
<file relativepath="8255\README.md"/>
<file relativepath="8255\wrc.dlsche"/>
</filefolder>
<filefolder id="2f9f4c28-2aeb-4307-8936-6af065f0d703" name="ADC0809">
<file relativepath="ADC0809\ADC0809.dlsche"/>
<file relativepath="ADC0809\ADC0809.pdf"/>
<file relativepath="ADC0809\DAC.dlsche"/>
<file relativepath="ADC0809\README.md"/>
</filefolder>
<filefolder id="baed96b8-132b-4081-b1e1-818add710ea3" name="DAC0832">
<file relativepath="DAC0832\DAC.dlsche"/>
<file relativepath="DAC0832\DAC0832.dlsche"/>
<file relativepath="DAC0832\DAC0832.pdf"/>
<file relativepath="DAC0832\README.md"/>
</filefolder>
<file relativepath="ADC0809_test.dlsche"/>
<file relativepath="README.md"/>
<file relativepath="top.dlsche"/>
</files>
</project>
添加文件
差异被折叠。
# 说明
8086 微机系统的MEM主存储器,存储指令和数据
\ No newline at end of file
差异被折叠。
添加文件
;8路模拟量的循环数据采集程序
.text
mov al, 0x98 ; 设8255的A,B,C口均为方式0,A口入,B口出,C口高四位入
out 0x83, al
mov dl, 0xb0 ; 8路数据存储空间
mov bl, 0 ; 通道号,初始指向第0路通道IN0
AGAIN:
mov al, bl
out 0x81, al ; 送通道地址到B口
or al, 8 ; 使PB3=1
out 0x81, al ; 送ALE信号(上升沿),锁存通道号
and al, 0xf7 ; 使PB3=0,形成负脉冲START启动信号
out 0x81, al ; 输出START启动信号(下降沿)
nop ; 空操作等待转换
WAITING:
in al, 0x82 ; 读C口的PC7(即EOC)状态
and al, 0x80 ; 保留EOC的状态值
jZ WAITING ; 若EOC=0则等待
mov al, bl ; 若EOC=1,则转换结束,选择通道输出到B口
or al, 0x10 ; 使PB4=1
out 0x81, al ; 当检测到EOC=1时则输出读允许信号OE(=1)
in al, 0x80 ; 由A口读入转换数据
mov [dl], al ; 将转换后的数字量保存到存储区
Inc dl ; 修改存储指针
inc bl ; 修改通道号
mov cl, bl
sub cl, 8
jnz AGAIN ; 采集下一路模拟输入量
end:
jmp end ; 8路采集完毕,进入死循环
@echo off
dmasm.exe ram.asm -o ram.rxm -l ram.lst -g ram.dbg
pause
添加文件
0001 ;8路模拟量的循环数据采集程序
0002 .text
0003
0004 10 01 00 98 mov al, 0x98 ; 设8255的A,B,C口均为方式0,A口入,B口出,C口高四位入
0005 13 4E 00 83 out 0x83, al
0006 16 01 03 B0 mov dl, 0xb0 ; 8路数据存储空间
0007 19 01 01 00 mov bl, 0 ; 通道号,初始指向第0路通道IN0
0008
0009 AGAIN:
0010 1C 02 10 mov al, bl
0011 1E 4E 00 81 out 0x81, al ; 送通道地址到B口
0012
0013 21 38 00 08 or al, 8 ; 使PB3=1
0014 24 4E 00 81 out 0x81, al ; 送ALE信号(上升沿),锁存通道号
0015
0016 27 30 00 F7 and al, 0xf7 ; 使PB3=0,形成负脉冲START启动信号
0017 2A 4E 00 81 out 0x81, al ; 输出START启动信号(下降沿)
0018 2D 6F nop ; 空操作等待转换
0019
0020 WAITING:
0021 2E 4B 00 82 in al, 0x82 ; 读C口的PC7(即EOC)状态
0022 31 30 00 80 and al, 0x80 ; 保留EOC的状态值
0023 34 54 2E jZ WAITING ; 若EOC=0则等待
0024
0025 36 02 10 mov al, bl ; 若EOC=1,则转换结束,选择通道输出到B口
0026 38 38 00 10 or al, 0x10 ; 使PB4=1
0027 3B 4E 00 81 out 0x81, al ; 当检测到EOC=1时则输出读允许信号OE(=1)
0028
0029 3E 4B 00 80 in al, 0x80 ; 由A口读入转换数据
0030 41 05 03 mov [dl], al ; 将转换后的数字量保存到存储区
0031 43 78 03 Inc dl ; 修改存储指针
0032 45 78 01 inc bl ; 修改通道号
0033
0034 47 02 12 mov cl, bl
0035 49 1E 02 08 sub cl, 8
0036 4C 55 1C jnz AGAIN ; 采集下一路模拟输入量
0037
0038 end:
0039 4E 57 4E jmp end ; 8路采集完毕,进入死循环
0040
0041
添加文件
# 说明
模/数转换实验
# 原理图
![raw svg](ADC0809_test.dlsche.svg)
![raw svg](top.dlsche.svg)
\ No newline at end of file
添加文件
差异被折叠。
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论