标题: emulator8086对外设控制的仿真 [打印本页]
作者: das 时间: 2015-4-18 01:47
标题: emulator8086对外设控制的仿真
一实验目的:⑴了解并掌握如何用汇编语言对外设进行控制; ⑵学习构建应用案例;二实验内容:根据emu8086的应用例程,构建一个控制交通灯、温度计、机器人或者步进电机的应用案例。如,可以通过simpleio输入步进电机要转的角度,然后控制stepper motor旋转,等等。三实验原理:通过emulator8086的例程学习用汇编语言对外设的控制,掌握程序的调试,修改,注释。四实验过程:1选用例程温度计案例;源代码如下#start=thermometer.exe##make_bin#
; set data segment to code segment:
mov ax, cs
mov ds, ax ;首先设置数据段代码段:
start:
in al, 125 ;启动温度计,设定加热温器温度125度
cmp al, 90 ;设定最小温度90度
jl low ;如果烧杯温度小于90度,指向low
cmp al, 91 ;如果烧杯温度大于91度,指向high
jle ok ;如果小于等于90度,指向OK
jg high ;如果大于90度,指向high
low:
mov al, 1 ;打开加热器
out 127, al ; turn heater "on".
jmp ok ;跳转OK
high:
mov al, 0 ;关闭加热器,直接进入OK
out 127, al ; turn heater "off".
ok: ;重新进入下个循环
jmp start ; endless loop.
2流程图:
C伪代码:
First:初始化,设置数据段代码段
Then:进入start,设定加热温度125度
next:设定最小温度90度,比较当前温度计温度与90度差距
If:温度小于90度,指向low
If:温度大于等于91度,指向high
else:指向ok
Low:打开加热器,程序跳转ok
High:关闭加热器,程序跳转ok
Last Ok:返回first,重新进入下一个循环。
3 题目分析:首先初始化程序,设定加热器温度125度,比较加热器温度是否在90-91度之间,通过关闭打开加热器使烧杯中温度维持在90-91度间,一直循环下去。目的是想把烧杯温度维持在90度左右,实际也可以达到目的。
4实验结果:通过观察,发现温度计温度维持在90度至91度间,达到预期设想,调节速度快且稳定。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |