标题: 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