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

Merge branch 'lab8' into 'master'

更新ram源程序 See merge request !1
...@@ -8,3 +8,6 @@ ...@@ -8,3 +8,6 @@
[submodule "DAC0832"] [submodule "DAC0832"]
path = DAC0832 path = DAC0832
url = https://lichuan@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/DAC0832.git 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 @@ ...@@ -40,6 +40,23 @@
<file relativepath="DAC0832\DAC0832.pdf"/> <file relativepath="DAC0832\DAC0832.pdf"/>
<file relativepath="DAC0832\README.md"/> <file relativepath="DAC0832\README.md"/>
</filefolder> </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="ADC0809_test.dlsche"/>
<file relativepath="README.md"/> <file relativepath="README.md"/>
<file relativepath="top.dlsche"/> <file relativepath="top.dlsche"/>
......
;test ;8路模拟量的循环数据采集程序
.text .text
BEGIN: START:
mov al, 0x1a 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: AGAIN:
out 2, al mov al, bl
inc al out 0x81, al ; 送通道地址到B口
cmp al, 0x84
jnz UP
dec al
DOWN: or al, 8 ; 使PB3=1
out 2, al out 0x81, al ; 送ALE信号(上升沿),锁存通道号
dec al
cmp al, 0x19
jnz DOWN
jmp BEGIN
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 0002 .text
0003 0003
0004 BEGIN: 0004 START:
0005 10 01 00 1A mov al, 0x1a 0005 10 01 00 98 mov al, 0x98 ; 设8255的A,B,C口均为方式0,A口入,B口出,C口高四位入
0006 0006 13 4E 00 83 out 0x83, al
0007 UP: 0007 16 01 03 B0 mov dl, 0xb0 ; 8路数据存储空间
0008 13 4E 00 02 out 2, al 0008 19 01 01 00 mov bl, 0 ; 通道号,初始指向第8路通道
0009 16 78 00 inc al 0009 1C 01 02 08 mov cl, 8 ; 共采集8路,每路采集一次
0010 18 47 00 84 cmp al, 0x84 0010
0011 1B 55 13 jnz UP 0011 AGAIN:
0012 1D 79 00 dec al 0012 1F 02 10 mov al, bl
0013 0013 21 4E 00 81 out 0x81, al ; 送通道地址到B口
0014 DOWN: 0014
0015 1F 4E 00 02 out 2, al 0015 24 38 00 08 or al, 8 ; 使PB3=1
0016 22 79 00 dec al 0016 27 4E 00 81 out 0x81, al ; 送ALE信号(上升沿),锁存通道号
0017 24 47 00 19 cmp al, 0x19 0017
0018 27 55 1F jnz DOWN 0018 2A 30 00 F7 and al, 0xf7 ; 使PB3=0,形成负脉冲START启动信号
0019 29 57 10 jmp BEGIN 0019 2D 4E 00 81 out 0x81, al ; 输出START启动信号(下降沿)
0020 0020 30 6F nop ; 空操作等待转换
0021 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论