找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2987|回复: 0
收起左侧

emulator8086对外设控制的仿真

[复制链接]
ID:76127 发表于 2015-4-18 01:47 | 显示全部楼层 |阅读模式
      一实验目的:⑴了解并掌握如何用汇编语言对外设进行控制; ⑵学习构建应用案例;二实验内容:根据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度间,达到预期设想,调节速度快且稳定。

   



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表