first commit

This commit is contained in:
2025-05-27 16:03:52 +08:00
commit 2d22d07f60
223 changed files with 5842 additions and 0 deletions

View File

@@ -0,0 +1,134 @@
<mxfile host="Electron" modified="2023-06-10T13:51:33.323Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.3.7 Chrome/112.0.5615.204 Electron/24.5.0 Safari/537.36" etag="bxQyWASsNLXJ_UbsnA_H" version="21.3.7" type="device">
<diagram name="第 1 页" id="3iH2U7M1F-pdt02PPPwc">
<mxGraphModel dx="472" dy="827" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="LjnWuoztt-sNhJGu1yFB-1" target="mn3Y7Vkx2hNIEmu3ndRl-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-1" value="程序开始" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="80" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="LjnWuoztt-sNhJGu1yFB-2" target="mn3Y7Vkx2hNIEmu3ndRl-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-2" value="保存旧的中断向量" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-3" target="LjnWuoztt-sNhJGu1yFB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-3" value="设置中断屏蔽" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="400" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-4" target="LjnWuoztt-sNhJGu1yFB-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-4" value="初始化8255芯片设置全输出" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="480" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-5" target="LjnWuoztt-sNhJGu1yFB-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-5" value="启动ADC0809进行转换" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="560" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-6" target="LjnWuoztt-sNhJGu1yFB-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-6" value="进入延时子程序,延时一小段时间" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="640" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="LjnWuoztt-sNhJGu1yFB-7" target="mn3Y7Vkx2hNIEmu3ndRl-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-7" value="使用ROR指令AL向右移一位" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="720" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-1" target="LjnWuoztt-sNhJGu1yFB-3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-1" value="设置新的终端向量" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="360" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-4" target="LjnWuoztt-sNhJGu1yFB-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-4" value="初始化" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="360" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-6" target="mn3Y7Vkx2hNIEmu3ndRl-8">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-6" value="开始转换" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-8" target="mn3Y7Vkx2hNIEmu3ndRl-9">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-8" value="设置转换次数" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-9" target="mn3Y7Vkx2hNIEmu3ndRl-11">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-9" value="设置转换成功标志,置零" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-10" target="mn3Y7Vkx2hNIEmu3ndRl-12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-10" value="延时" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="480" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-18" value="Y" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-11" target="mn3Y7Vkx2hNIEmu3ndRl-10">
<mxGeometry x="-0.5" y="10" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-29" value="N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-11">
<mxGeometry x="-0.8995" y="10" relative="1" as="geometry">
<mxPoint x="620" y="400" as="targetPoint" />
<Array as="points">
<mxPoint x="720" y="420" />
<mxPoint x="720" y="380" />
<mxPoint x="621" y="380" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-11" value="判断是否转换成功" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="400" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-12" target="mn3Y7Vkx2hNIEmu3ndRl-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-12" value="重新启动ACD0809进行转换" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="560" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-22" value="Y" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-13" target="mn3Y7Vkx2hNIEmu3ndRl-21">
<mxGeometry x="-0.5" y="10" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-28" value="N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-13" target="mn3Y7Vkx2hNIEmu3ndRl-11">
<mxGeometry x="-0.9545" y="10" relative="1" as="geometry">
<Array as="points">
<mxPoint x="720" y="660" />
<mxPoint x="720" y="380" />
<mxPoint x="620" y="380" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-13" value="判断转换次数是否用尽" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="640" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-21" value="程序结束" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="720" width="120" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,221 @@
<mxfile host="Electron" modified="2023-06-10T15:56:03.455Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.3.7 Chrome/112.0.5615.204 Electron/24.5.0 Safari/537.36" etag="NNdvANNqVIllswMpMSha" version="21.3.7" type="device">
<diagram name="第 1 页" id="3iH2U7M1F-pdt02PPPwc">
<mxGraphModel dx="1434" dy="836" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-1" target="mn3Y7Vkx2hNIEmu3ndRl-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-1" value="主程序开始" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="80" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-2" target="mn3Y7Vkx2hNIEmu3ndRl-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-2" value="保存旧的中断向量" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-3" target="LjnWuoztt-sNhJGu1yFB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-3" value="设置中断屏蔽" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="400" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-4" target="LjnWuoztt-sNhJGu1yFB-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-4" value="初始化8255芯片设置全输出" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="480" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-5" target="LjnWuoztt-sNhJGu1yFB-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-5" value="启动ADC0809进行转换" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="560" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-6" target="LjnWuoztt-sNhJGu1yFB-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-6" value="进入延时子程序,延时一小段时间" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="640" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-7" target="mn3Y7Vkx2hNIEmu3ndRl-6" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="140" y="780" />
<mxPoint x="240" y="780" />
<mxPoint x="240" y="180" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-7" value="使用ROR指令AL向右移一位" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="720" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-1" target="LjnWuoztt-sNhJGu1yFB-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-1" value="设置新的终端向量" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-4" target="LjnWuoztt-sNhJGu1yFB-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-4" value="&lt;b&gt;&lt;i&gt;初始化&lt;/i&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-6" target="mn3Y7Vkx2hNIEmu3ndRl-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-6" value="&lt;b&gt;&lt;i&gt;开始转换&lt;/i&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-8" target="mn3Y7Vkx2hNIEmu3ndRl-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-8" value="设置转换次数" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-9" target="mn3Y7Vkx2hNIEmu3ndRl-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-9" value="设置转换成功标志置0" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-10" target="mn3Y7Vkx2hNIEmu3ndRl-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-10" value="延时" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="480" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-18" value="Y" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-11" target="mn3Y7Vkx2hNIEmu3ndRl-10" edge="1">
<mxGeometry x="-0.5" y="10" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-29" value="N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-11" edge="1">
<mxGeometry x="-0.8995" y="10" relative="1" as="geometry">
<mxPoint x="380" y="400" as="targetPoint" />
<Array as="points">
<mxPoint x="520" y="420" />
<mxPoint x="520" y="380" />
<mxPoint x="381" y="380" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-11" value="判断是否转换成功&lt;br&gt;转换成功标志是否为1" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="280" y="400" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-12" target="mn3Y7Vkx2hNIEmu3ndRl-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-12" value="重新启动ACD0809进行转换" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="560" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-22" value="Y" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-13" target="mn3Y7Vkx2hNIEmu3ndRl-21" edge="1">
<mxGeometry x="-0.5" y="10" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-28" value="N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-13" target="mn3Y7Vkx2hNIEmu3ndRl-11" edge="1">
<mxGeometry x="-0.9545" y="10" relative="1" as="geometry">
<Array as="points">
<mxPoint x="520" y="660" />
<mxPoint x="520" y="380" />
<mxPoint x="380" y="380" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-13" value="判断转换次数是否用尽" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="280" y="640" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-21" value="主程序结束" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="720" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-30" target="mn3Y7Vkx2hNIEmu3ndRl-31" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-30" value="收到EOC信号&lt;br&gt;中断程序开始" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="80" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-31" target="mn3Y7Vkx2hNIEmu3ndRl-32" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-31" value="保护现场" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-32" target="mn3Y7Vkx2hNIEmu3ndRl-33" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-32" value="置转换成功标志为1" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-33" target="mn3Y7Vkx2hNIEmu3ndRl-34" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-33" value="从ADC0809获取转换信息" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-34" target="mn3Y7Vkx2hNIEmu3ndRl-35" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-34" value="向内存数组中保存转换信息" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="400" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-35" target="mn3Y7Vkx2hNIEmu3ndRl-36" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-35" value="设置刷新次数" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="480" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-36" target="mn3Y7Vkx2hNIEmu3ndRl-37" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-36" value="将8位转换信息右移4位作为段码从8255芯片A口输出B口设置位码" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="560" y="560" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-37" target="mn3Y7Vkx2hNIEmu3ndRl-39" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-37" value="将8位转换信息高4位置零作为段码从8255芯片A口输出B口设置位码" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="560" y="640" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-51" value="Y" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-39" target="mn3Y7Vkx2hNIEmu3ndRl-40" edge="1">
<mxGeometry x="-0.5" y="10" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-54" value="N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-39" target="mn3Y7Vkx2hNIEmu3ndRl-36" edge="1">
<mxGeometry x="-0.9545" y="10" relative="1" as="geometry">
<Array as="points">
<mxPoint x="800" y="740" />
<mxPoint x="800" y="540" />
<mxPoint x="660" y="540" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-39" value="判断刷新次数是否用尽" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="560" y="720" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-40" target="mn3Y7Vkx2hNIEmu3ndRl-41" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-40" value="发送EOI指令" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="800" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-41" target="mn3Y7Vkx2hNIEmu3ndRl-47" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-41" value="恢复现场" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="880" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-47" value="中断程序结束" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="960" width="120" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

BIN
Lab/Lab6/material/2.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 MiB

View File

@@ -0,0 +1,248 @@
![cover](cover.png)
<h1><center><strong>实验六 中断方式的AD采集系统</strong></center></h1>
### 一、实验目的
该实验使用了$\rm 8259A$$\rm ADC0809$,数码管来完成一个数据采集系统的设计,目的是了解中断方式的$\rm A/D$采集数据的实现方法,掌握硬件设计和中断程序的编写方法,是对学生综合实验能力的训练。
### 二、实验内容
使用$\rm ADC0809$的通道0接入$0-5\rm V$的直流电压,用“直流信号”电位器调整模拟电压值,$\rm A/D$的转换结束信号$\rm EOC$接在主$\rm 8259A$的$\rm {MIRQ}_3$上,采集$100$个数据并存入内存中,同时将采集的$16$进制数据显示在数码管上。请多次调整$0-5\rm V$的电压值(旋动“直流信号”旋钮),进行$\rm A/D$采集,并观测内存中的数据的变化情况。
### 三、流程图
<img src="graph.drawio.svg" alt="graph" style="zoom: 60%;" />
### 四、实验过程与分析
首先连好接线。
$8255$芯片$\rm CS$连接译码地址$\rm 280H$$8255$芯片$\rm A$口接数码管段码,$8255$芯片$\rm B$口接数码管位码;
$\rm ADC0809$芯片$\rm CS$连接译码地址$\rm 288H$$\rm ADC0809$芯片$\rm IN1$连接直流信号,$\rm ADC0809$芯片$\rm EOC$连接$\rm {MIRQ}_3$。
<img src="2.jpg" alt="4-1" style="zoom: 10%;" />
<center>图4-1 硬件连接图</center>
启动汇编程序,旋动直流信号旋钮。
$\rm ADC0809$每次结束转换,$\rm EOC$就会输出脉冲触发中断程序,将转换结果通过$8255$芯片在数码管上显示出来,并将转换计数减$1$。
主程序不断检测转换计数,当转换计数为$0$时,退出主程序。
### 五、实验总结
通过本实验,我了解了中断方式的$\rm A/D$采集数据的实现方法,掌握了硬件设计和中断程序的编写方法,我的综合实验能力得到了训练。
### 源代码附录
```assembly
DATA SEGMENT
LED DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
OLD_OFF DW 0 ; 旧的中断偏移地址
OLD_SEG DW 0 ; 旧的中断段地址
CNT DW 0 ; 计数器
TMP DB 0 ; 临时变量
BUFFER DB 100 (0) ; 缓冲区大小为100字节初始化为0
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA, CS:CODE
START:
MOV AX, DATA
MOV DS, AX
; 保存旧的中断向量
MOV AX, 350BH ; 获取原来的中断号为0BH的中断向量
INT 21H ; 将中断向量的偏移地址存在BX段地址存在ES
MOV OLD_OFF, BX ; 分别将原来中断向量的偏移地址和段地址保存
MOV BX, ES
MOV OLD_SEG, BX
CLI
; 设置新的中断向量
MOV DX, SEG A_D ; 将新中断向量的段地址存入DX
MOV DS, DX ; 再装到DS
MOV DX, OFFSET A_D ; 将新中断向量的偏移地址存入DX
MOV AX, 250BH ; 装填到中断向量表里中断号为0BH的中断向量
INT 21H
; 重新加载数据段地址
MOV AX, DATA
MOV DS, AX
; 设置中断屏蔽
IN AL, 21H ; 读取中断屏蔽寄存器
AND AL, 11110111B ; 将第3位设置为1
OUT 21H, AL ; 将修改后的值写入中断屏蔽寄存器
STI ; 设置中断标志,允许跳转到中断程序
; 初始化8255
MOV DX, 283H ; 设置8255芯片的命令口
MOV AL, 10000000B ; 全输出
OUT DX, AL
; 启动ADC0809
MOV DX, 288H ; 设置ADC0809的命令口
OUT DX, AL ; 向ADC0809发送脉冲模式启动命令
MOV CX, 100 ; 转换次数
MOV SI, 0 ; 转换成功标志位,置零
LOOP1:
STI ; 设置中断标志,允许跳转到中断程序
IN AL, DX ; 从ADC0809读取转换结果
CMP SI, 1 ; 判断转换成功
JNE LOOP1 ; 如果转换未成功,则重新判断
CALL DELAY ; 延时
CLI ; 清除中断标志,禁止跳转到其他中断程序
MOV DX, 288H ; 重新打开ADC0809
OUT DX, AL
DEC CX
JZ FINISH ; 如果转换次数为0跳转到FINISH
JMP LOOP1
FINISH:
CLI ; 关中断
MOV AX, 250BH ; 恢复原来的中断向量
MOV DX, OLD_OFF
MOV DS, DX
MOV DS, OLD_SEG
INT 21H
MOV AX, 4C00H
INT 21H
A_D PROC FAR
PUSH AX ; 保护现场
PUSH DX
PUSH CX
MOV SI, 1 ; 设定转换标志位
MOV DX, 288H
IN AL, DX
MOV TMP, AL ; 保存数据
MOV DI, CNT
CMP DI, 100
JE DISPLAY
MOV BUFFER[DI], AL
INC DI
MOV CNT, DI
MOV CX, 6 ; 刷新6次
DISPLAY:
; 显示高四位
MOV AL, 0
MOV DX, 281H
OUT DX, AL
MOV AL, TMP
SHR AL, 4 ; 右移4位
MOV BX, OFFSET LED
XLAT ; 使用BX寄存器作为LED数组的索引将LED数组中下标为BX的值传给AL
MOV DX, 280H ; 段码
OUT DX, AL
MOV AL, 00000010B ; 倒数第2位显示AD转换结果的高4位
MOV DX, 281H ; 位码
OUT DX, AL
CALL DELAY2
; 显示低四位
MOV AL, 0
MOV DX, 281H
OUT DX, AL
MOV AL, TMP
AND AL, 00001111B
MOV BX, OFFSET LED
XLAT ; 使用BX寄存器作为LED数组的索引将LED数组中下标为BX的值传给AL
MOV DX, 280H ; 段码
OUT DX, AL
MOV AL, 00000001B ; 倒数第1位显示AD转换结果的低4位
MOV DX, 281H ; 位码
OUT DX, AL
CALL DELAY2
LOOP DISPLAY
STI
MOV AL, 20H ; 发送EOI指令
OUT 20H, AL
POP CX
POP DX
POP AX
IRET
A_D ENDP
DELAY PROC NEAR
PUSH CX
PUSH BX
MOV CX, 0FFFFH
LOOP2:
MOV BX, 01FH
LOOP3:
DEC BX
JNZ LOOP3
DEC CX
JNZ LOOP2
POP BX
POP CX
RET
DELAY ENDP
DELAY2 PROC NEAR
PUSH CX
PUSH BX
MOV CX, 0FFFFH
LOOP4:
MOV BX, 5
LOOP5:
DEC BX
JNZ LOOP5
DEC CX
JNZ LOOP4
POP BX
POP CX
RET
DELAY2 ENDP
CODE ENDS
END START
```

172
Lab/Lab6/material/code.asm Executable file
View File

@@ -0,0 +1,172 @@
DATA SEGMENT
LED DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
OLD_OFF DW 0 ; 旧的中断偏移地址
OLD_SEG DW 0 ; 旧的中断段地址
CNT DW 0 ; 计数器
TMP DB 0 ; 临时变量
BUFFER DB 100 (0) ; 缓冲区大小为100字节初始化为0
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA, CS:CODE
START:
MOV AX, DATA
MOV DS, AX
; 保存旧的中断向量
MOV AX, 350BH ; 获取原来的中断号为0BH的中断向量
INT 21H ; 将中断向量的偏移地址存在BX段地址存在ES
MOV OLD_OFF, BX ; 分别将原来中断向量的偏移地址和段地址保存
MOV BX, ES
MOV OLD_SEG, BX
CLI
; 设置新的中断向量
MOV DX, SEG A_D ; 将新中断向量的段地址存入DX
MOV DS, DX ; 再装到DS
MOV DX, OFFSET A_D ; 将新中断向量的偏移地址存入DX
MOV AX, 250BH ; 装填到中断向量表里中断号为0BH的中断向量
INT 21H
; 重新加载数据段地址
MOV AX, DATA
MOV DS, AX
; 设置中断屏蔽
IN AL, 21H ; 读取中断屏蔽寄存器
AND AL, 11110111B ; 将第3位设置为1
OUT 21H, AL ; 将修改后的值写入中断屏蔽寄存器
STI ; 设置中断标志,允许跳转到中断程序
; 初始化8255
MOV DX, 283H ; 设置8255芯片的命令口
MOV AL, 10000000B ; 全输出
OUT DX, AL
; 启动ADC0809
MOV DX, 288H ; 设置ADC0809的命令口
OUT DX, AL ; 向ADC0809发送脉冲模式启动命令
MOV CX, 100 ; 转换次数
MOV SI, 0 ; 转换成功标志位,置零
LOOP1:
STI ; 设置中断标志,允许跳转到中断程序
IN AL, DX ; 从ADC0809读取转换结果
CMP SI, 1 ; 判断转换成功
JNE LOOP1 ; 如果转换未成功,则重新判断
CALL DELAY ; 延时
CLI ; 清除中断标志,禁止跳转到其他中断程序
MOV DX, 288H ; 重新打开ADC0809
OUT DX, AL
DEC CX
JZ FINISH ; 如果转换次数为0跳转到FINISH
JMP LOOP1
FINISH:
CLI ; 关中断
MOV AX, 250BH ; 恢复原来的中断向量
MOV DX, OLD_OFF
MOV DS, DX
MOV DS, OLD_SEG
INT 21H
MOV AX, 4C00H
INT 21H
A_D PROC FAR
PUSH AX ; 保护现场
PUSH DX
PUSH CX
MOV SI, 1 ; 设定转换标志位
MOV DX, 288H
IN AL, DX
MOV TMP, AL ; 保存数据
MOV DI, CNT
CMP DI, 100
JE DISPLAY
MOV BUFFER[DI], AL
INC DI
MOV CNT, DI
MOV CX, 6 ; 刷新6次
DISPLAY:
; 显示高四位
MOV AL, 0
MOV DX, 281H
OUT DX, AL
MOV AL, TMP
SHR AL, 4 ; 右移4位
MOV BX, OFFSET LED
XLAT ; 使用BX寄存器作为LED数组的索引将LED数组中下标为BX的值传给AL
MOV DX, 280H ; 段码
OUT DX, AL
MOV AL, 00000010B ; 倒数第2位显示AD转换结果的高4位
MOV DX, 281H ; 位码
OUT DX, AL
CALL DELAY2
; 显示低四位
MOV AL, 0
MOV DX, 281H
OUT DX, AL
MOV AL, TMP
AND AL, 00001111B
MOV BX, OFFSET LED
XLAT ; 使用BX寄存器作为LED数组的索引将LED数组中下标为BX的值传给AL
MOV DX, 280H ; 段码
OUT DX, AL
MOV AL, 00000001B ; 倒数第1位显示AD转换结果的低4位
MOV DX, 281H ; 位码
OUT DX, AL
CALL DELAY2
LOOP DISPLAY
STI
MOV AL, 20H ; 发送EOI指令
OUT 20H, AL
POP CX
POP DX
POP AX
IRET
A_D ENDP
DELAY PROC NEAR
PUSH CX
PUSH BX
MOV CX, 0FFFFH
LOOP2:
MOV BX, 01FH
LOOP3:
DEC BX
JNZ LOOP3
DEC CX
JNZ LOOP2
POP BX
POP CX
RET
DELAY ENDP
DELAY2 PROC NEAR
PUSH CX
PUSH BX
MOV CX, 0FFFFH
LOOP4:
MOV BX, 5
LOOP5:
DEC BX
JNZ LOOP5
DEC CX
JNZ LOOP4
POP BX
POP CX
RET
DELAY2 ENDP
CODE ENDS
END START

BIN
Lab/Lab6/material/cover.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

221
Lab/Lab6/material/graph.drawio Executable file
View File

@@ -0,0 +1,221 @@
<mxfile host="Electron" modified="2023-06-10T15:55:59.074Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.3.7 Chrome/112.0.5615.204 Electron/24.5.0 Safari/537.36" etag="8kF7JTAk8Vs8WcQKaIWZ" version="21.3.7" type="device">
<diagram name="第 1 页" id="3iH2U7M1F-pdt02PPPwc">
<mxGraphModel dx="1434" dy="836" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-1" target="mn3Y7Vkx2hNIEmu3ndRl-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-1" value="主程序开始" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="80" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-2" target="mn3Y7Vkx2hNIEmu3ndRl-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-2" value="保存旧的中断向量" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-3" target="LjnWuoztt-sNhJGu1yFB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-3" value="设置中断屏蔽" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="400" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-4" target="LjnWuoztt-sNhJGu1yFB-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-4" value="初始化8255芯片设置全输出" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="480" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-5" target="LjnWuoztt-sNhJGu1yFB-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-5" value="启动ADC0809进行转换" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="560" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-6" target="LjnWuoztt-sNhJGu1yFB-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-6" value="进入延时子程序,延时一小段时间" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="640" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="LjnWuoztt-sNhJGu1yFB-7" target="mn3Y7Vkx2hNIEmu3ndRl-6" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="140" y="780" />
<mxPoint x="240" y="780" />
<mxPoint x="240" y="180" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="LjnWuoztt-sNhJGu1yFB-7" value="使用ROR指令AL向右移一位" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="720" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-1" target="LjnWuoztt-sNhJGu1yFB-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-1" value="设置新的终端向量" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-4" target="LjnWuoztt-sNhJGu1yFB-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-4" value="&lt;b&gt;&lt;i&gt;初始化&lt;/i&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-6" target="mn3Y7Vkx2hNIEmu3ndRl-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-6" value="&lt;b&gt;&lt;i&gt;开始转换&lt;/i&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-8" target="mn3Y7Vkx2hNIEmu3ndRl-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-8" value="设置转换次数" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-9" target="mn3Y7Vkx2hNIEmu3ndRl-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-9" value="设置转换成功标志置0" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-10" target="mn3Y7Vkx2hNIEmu3ndRl-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-10" value="延时" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="480" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-18" value="Y" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-11" target="mn3Y7Vkx2hNIEmu3ndRl-10" edge="1">
<mxGeometry x="-0.5" y="10" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-29" value="N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-11" edge="1">
<mxGeometry x="-0.8995" y="10" relative="1" as="geometry">
<mxPoint x="380" y="400" as="targetPoint" />
<Array as="points">
<mxPoint x="520" y="420" />
<mxPoint x="520" y="380" />
<mxPoint x="381" y="380" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-11" value="判断是否转换成功&lt;br&gt;转换成功标志是否为1" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="280" y="400" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-12" target="mn3Y7Vkx2hNIEmu3ndRl-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-12" value="重新启动ACD0809进行转换" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="560" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-22" value="Y" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-13" target="mn3Y7Vkx2hNIEmu3ndRl-21" edge="1">
<mxGeometry x="-0.5" y="10" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-28" value="N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-13" target="mn3Y7Vkx2hNIEmu3ndRl-11" edge="1">
<mxGeometry x="-0.9545" y="10" relative="1" as="geometry">
<Array as="points">
<mxPoint x="520" y="660" />
<mxPoint x="520" y="380" />
<mxPoint x="380" y="380" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-13" value="判断转换次数是否用尽" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="280" y="640" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-21" value="主程序结束" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="320" y="720" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-30" target="mn3Y7Vkx2hNIEmu3ndRl-31" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-30" value="收到EOC信号&lt;br&gt;中断程序开始" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="80" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-31" target="mn3Y7Vkx2hNIEmu3ndRl-32" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-31" value="保护现场" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-32" target="mn3Y7Vkx2hNIEmu3ndRl-33" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-32" value="置转换成功标志为1" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-33" target="mn3Y7Vkx2hNIEmu3ndRl-34" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-33" value="从ADC0809获取转换信息" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="320" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-34" target="mn3Y7Vkx2hNIEmu3ndRl-35" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-34" value="向内存数组中保存转换信息" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="400" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-35" target="mn3Y7Vkx2hNIEmu3ndRl-36" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-35" value="设置刷新次数" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="480" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-36" target="mn3Y7Vkx2hNIEmu3ndRl-37" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-36" value="将8位转换信息右移4位作为段码从8255芯片A口输出B口设置位码" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="560" y="560" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-37" target="mn3Y7Vkx2hNIEmu3ndRl-39" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-37" value="将8位转换信息高4位置零作为段码从8255芯片A口输出B口设置位码" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="560" y="640" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-51" value="Y" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-39" target="mn3Y7Vkx2hNIEmu3ndRl-40" edge="1">
<mxGeometry x="-0.5" y="10" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-54" value="N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-39" target="mn3Y7Vkx2hNIEmu3ndRl-36" edge="1">
<mxGeometry x="-0.9545" y="10" relative="1" as="geometry">
<Array as="points">
<mxPoint x="800" y="740" />
<mxPoint x="800" y="540" />
<mxPoint x="660" y="540" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-39" value="判断刷新次数是否用尽" style="rhombus;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="560" y="720" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-40" target="mn3Y7Vkx2hNIEmu3ndRl-41" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-40" value="发送EOI指令" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="800" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="mn3Y7Vkx2hNIEmu3ndRl-41" target="mn3Y7Vkx2hNIEmu3ndRl-47" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-41" value="恢复现场" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="880" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="mn3Y7Vkx2hNIEmu3ndRl-47" value="中断程序结束" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="960" width="120" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 47 KiB