提交 526a2914 创建 作者: 李川's avatar 李川

Merge branch 'lab8' into 'master'

更新ram源程序 See merge request !1
......@@ -8,3 +8,6 @@
[submodule "DAC0832"]
path = DAC0832
url = https://lichuan@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/DAC0832.git
[submodule "8255"]
path = 8255
url = https://lichuan@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8255.git
Subproject commit 0278cc57b2050c74e10bbda5a0b67fb99b83fd58
Subproject commit 4614dea2cce14f4448c4a02e8cf06dbea6185aba
8255 @ 688dedca
Subproject commit 688dedca3cf590dce9d50b6172225344fdefa0a5
没有这种文件类型的预览
差异被折叠。
DAC0832 @ 18f27a14
Subproject commit c37f3a2566cedb0e7e23fd21630cee9f0a85e0e0
Subproject commit 18f27a14e020e279716b0c4be4a8608306cef6bc
......@@ -40,6 +40,23 @@
<file relativepath="DAC0832\DAC0832.pdf"/>
<file relativepath="DAC0832\README.md"/>
</filefolder>
<filefolder id="8d6994c4-7dc3-47a0-a2a6-787dcb7ee1f2" 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>
<file relativepath="ADC0809_test.dlsche"/>
<file relativepath="README.md"/>
<file relativepath="top.dlsche"/>
......
;test
;8路模拟量的循环数据采集程序
.text
BEGIN:
mov al, 0x1a
START:
mov al, 0x98 ; 设8255的A,B,C口均为方式0,A口入,B口出,C口高四位入
out 0x83, al
mov dl, 0xb0 ; 8路数据存储空间
mov bl, 0 ; 通道号,初始指向第8路通道
mov cl, 8 ; 共采集8路,每路采集一次
UP:
out 2, al
inc al
cmp al, 0x84
jnz UP
dec al
AGAIN:
mov al, bl
out 0x81, al ; 送通道地址到B口
DOWN:
out 2, al
dec al
cmp al, 0x19
jnz DOWN
jmp BEGIN
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路采集完毕,进入死循环
没有这种文件类型的预览
0001 ;test
0001 ;8路模拟量的循环数据采集程序
0002 .text
0003
0004 BEGIN:
0005 10 01 00 1A mov al, 0x1a
0006
0007 UP:
0008 13 4E 00 02 out 2, al
0009 16 78 00 inc al
0010 18 47 00 84 cmp al, 0x84
0011 1B 55 13 jnz UP
0012 1D 79 00 dec al
0013
0014 DOWN:
0015 1F 4E 00 02 out 2, al
0016 22 79 00 dec al
0017 24 47 00 19 cmp al, 0x19
0018 27 55 1F jnz DOWN
0019 29 57 10 jmp BEGIN
0020
0004 START:
0005 10 01 00 98 mov al, 0x98 ; 设8255的A,B,C口均为方式0,A口入,B口出,C口高四位入
0006 13 4E 00 83 out 0x83, al
0007 16 01 03 B0 mov dl, 0xb0 ; 8路数据存储空间
0008 19 01 01 00 mov bl, 0 ; 通道号,初始指向第8路通道
0009 1C 01 02 08 mov cl, 8 ; 共采集8路,每路采集一次
0010
0011 AGAIN:
0012 1F 02 10 mov al, bl
0013 21 4E 00 81 out 0x81, al ; 送通道地址到B口
0014
0015 24 38 00 08 or al, 8 ; 使PB3=1
0016 27 4E 00 81 out 0x81, al ; 送ALE信号(上升沿),锁存通道号
0017
0018 2A 30 00 F7 and al, 0xf7 ; 使PB3=0,形成负脉冲START启动信号
0019 2D 4E 00 81 out 0x81, al ; 输出START启动信号(下降沿)
0020 30 6F nop ; 空操作等待转换
0021
0022
0022 WAITING:
0023 31 4B 00 82 in al, 0x82 ; 读C口的PC7(即EOC)状态
0024 34 30 00 80 and al, 0x80 ; 保留EOC的状态值
0025 37 54 31 jZ WAITING ; 若EOC=0则等待
0026
0027 39 02 10 mov al, bl ; 若EOC=1,则转换结束,选择通道输出到B口
0028 3B 38 00 10 or al, 0x10 ; 使PB4=1
0029 3E 4E 00 81 out 0x81, al ; 当检测到EOC=1时则输出读允许信号OE(=1)
0030
0031 41 4B 00 80 in al, 0x80 ; 由A口读入转换数据
0032 44 05 03 mov [dl], al ; 将转换后的数字量保存到存储区
0033 46 78 03 Inc dl ; 修改存储指针
0034 48 78 01 inc bl ; 修改通道号
0035
0036 4A 02 12 mov cl, bl
0037 4C 1E 02 08 sub cl, 8
0038 4F 55 1F jnz AGAIN ;采集下一路模拟输入量
0039
0040 end:
0041 51 57 51 jmp end ; 8路采集完毕,进入死循环
0042
0043
没有这种文件类型的预览
没有这种文件类型的预览
差异被折叠。
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论