📄 inv.asm
字号:
mov 4dh,#'F' ;Cuman tampilan tok til..
mov 4eh,#'F'
acall tampilB
sjmp muter
;---------------------------------------------------->>SCANNING
datascan: jb p2.2,murup ;PLN mati ga?
mov 44h,#'O'
mov 45h,#'F'
mov 46h,#'F'
acall tampilA
;+++++++++++++++++++++++++++++++++++++++++++++++++++
dataINV: jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
jb p2.3,mati ;Ada suara ga?
;+++++++++++++++++++++++++++++++++++++++++++++++++++
mov 4ch,#'O'
mov 4dh,#'N'
mov 4eh,#' '
acall tampilB
setb tr0 ;INverter ON (nyumet timer0 buat layanan ISR)
loopingINV_ON: jnb p2.2,loopingINV_ON_GO ;PLN murup ga?
clr tr0
clr tr1
clr p2.0
clr p2.1
acall murup
sjmp mati
loopingINV_ON_GO:acall dataV
sjmp loopingINV_ON
; _
; | WARNING!! FLAMMABLE DEVICE
; | DONT DISPOSED ON IN FIRE..
; |
; | HEHE......
; V
mati:
mov 4ch,#'O' ;Inverter OFF
mov 4dh,#'F'
mov 4eh,#'F'
acall tampilB
balikmaningX: ret
murup: clr tr0
clr tr1
clr Q
clr Qinv
mov 44h,#'O' ;PLN murup
mov 45h,#'N'
mov 46h,#' '
acall tampilA
balikmaning: ret
dataV: mov a,p1
mov dptr,#Vtabel
movc a,@a+dptr
mov r2,a
mov b,#100
div ab
orl a,#30h ;Convert to ASCHII
mov 5bh,a ;Ratusan
mov a,b
mov b,#10
div ab
orl a,#30h ;Convert to ASCHII
mov 5ch,a ;Puluhan
mov a,b
orl a,#30h ;Convert to ASCHII
mov 5dh,a ;Satuan
nop
acall tampilX
ret
;------------------------------------------------------------------------------------------------
; Routine buat merintahin ADC tuk bekerja
;------------------------------------------------------------------------------------------------
ADC: clr p2.4
setb p2.4
acall delay
acall delay
clr p2.4
acall delay
acall delay
setb p2.4
ret
tulram: mov a,#80h ; letak kursor baris 1 tepatnya di 40h
clr rs ; ini perintah
acall intruksi ; lakukan perintah itu
setb rs ; siap menulis
mov r0,#40h ; dimulai isi RAM 40h
bar1: mov a,@r0
acall nulis
inc r0
cjne r0,#50h,bar1 ; diakhiri isi RAM 4fh "di kasih 50h biar 4fh ikut kebaca"
mov a,#0c0h ; letak kursor baris 2 tepatnya di 50h
clr rs ; intruksi
acall intruksi ; tulis intruksi
setb rs ; siap menulis data
mov r0,#50h ; dimulai isi RAM 50h
bar2: mov a,@r0
acall nulis
inc r0
cjne r0,#60h,bar2 ; diakhiri isi RAM 5fh "di kasih 60h biar 5fh ikut kebaca"
ret
;------------------------------------------------------------------------------------------------
; Procedure menampilkan kondisi PLN dan Inverter
;------------------------------------------------------------------------------------------------
tampilA: mov a,#084h ; letak kursor baris 1 084 (mulai nulis nang 44h)
clr rs ; tulis intruksi
acall intruksi ; lakukan perintah itu
setb rs ; siap menulis
mov r0,#44h ; dimulai isi RAM 44h
loop: mov a,@r0
acall nulis
inc r0
cjne r0,#47h,loop ; diakhiri isi RAM 47h "di kasih 55h biar 46h ikut kebaca"
ret
tampilB: mov a,#08ch ; letak kursor baris 1 08c (mulai nulis nang 4ch)
clr rs ; tulis intruksi
acall intruksi ; lakukan perintah itu
setb rs ; siap menulis
mov r0,#4ch ; dimulai isi RAM 4ch
loop2: mov a,@r0
acall nulis
inc r0
cjne r0,#4fh,loop2 ; diakhiri isi RAM 4fh "di kasih 4fh biar 4eh ikut kebaca"
ret
;------------------------------------------------------------------------------------------------
; Procedure menampilkan hasil hitungan tegangan
;------------------------------------------------------------------------------------------------
tampilX: mov a,#0c2h ; letak kursor baris 2 0c2 (mulai nulis nang 52h)
clr rs ; tulis intruksi
acall intruksi ; lakukan perintah itu
setb rs ; siap menulis
mov r0,#52h ; dimulai isi RAM 52h
loop3: mov a,@r0
acall nulis
inc r0
cjne r0,#55h,loop3 ; diakhiri isi RAM 55h "di kasih 55h biar 54h ikut kebaca"
ret
;------------------------------------------------------
;Data LOOKUP table untuk pengambilan data tegangan
;------------------------------------------------------
Vtabel: DB 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
DB 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29
DB 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
DB 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59
DB 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74
DB 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89
DB 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 ,101, 102, 103, 104
DB 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119
DB 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134
DB 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149
DB 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164
DB 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179
DB 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194
DB 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209
DB 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224
DB 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239
DB 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254
DB 255
delay: mov r5,#00h
loopc: mov r6,#00h
loopb: mov r7,#00h
loopa: inc r7
cjne r7,#100,loopa
inc r6
cjne r6,#50,loopb
inc r5
cjne r5,#1,loopc
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -