標題: 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.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |