⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inv.asm

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 ASM
📖 第 1 页 / 共 2 页
字号:
              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 + -