MIKROPOSESOR
Kelas : 2A-1
1. Membuat Program pengontrol suhu ruangan dengan perioda blink 10 ms dan klop
mikronya 1 ms.
Jawaban :
1. Pengontrol Suhu
a. Masalah
Program untuk pengontrol suhu ruangan apakah terlalu panas, terlalu dingin atau pas.
b. Input dan Output
Input : nilai suhu
Output : Lampu LED
c. Program
.include "m8535def.inc"
.equ blower = 0
.equ heater = 1
.equ led = 7
.macro initStack
ldi xl, low(@0)
out spl, xl
ldi xh, high(@0)
out sph, xh
.endm
.macro ambilSuhu
ldi xl, low(suhuP)
ldi xh, high(suhuP)
ld suhu, x
.endm
.macro nyalakan
set
bld interface, @0
out porta, interface
.endm
.macro matikan
clt
bld interface, @0
out porta, interface
.endm
.dseg
.org 0x60
suhuP:
.db 0
.cseg
.org 0
rjmp reset
reset:
initStack ramend
ldi setPoint, 25
main:
ambilSuhu
cp suhu, setPoint
breq suhuPas
brsh terlaluPanas
brlo terlaluDingin
terlaluPanas:
nyalakan blower
matikan heater
rjmp end
terlaluDingin:
nyalakan heater
matikan blower
rjmp end
suhuPas:
matikan blower
matikan heater
rjmp end
end:
rcall kedip
rjmp main
kedip:
rcall delay_10ms
nyalakan led
matikan led
ret
delay_10ms:
ldi xl, low(sepuluh_ms)
ldi xh, high(sepuluh_ms)
loop:
sbiw x, 2
brne loop
ret
d. Output
Alamat Kode Operasi Mnemonic
000001 e5af
000002 bfad
000003 e0b2
000006 e6a0
000007 e0b0
00000d 9468
00000e f950
000010 94e8
000011 f951
000014 9468
000015 f951
000017 94e8
000018 f950
00001b 94e8
00001c f950
00001e 94e8
00001f f951
000025 9468
000026 f957
000028 94e8
000029 f957