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

📄 inv.lst

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 LST
📖 第 1 页 / 共 3 页
字号:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Macro Assembler   A S E M - 5 1   V 1.3
       =====================================================



	Source File:	E:\Electronics\MiCrOConTroller\Micro Programming\M-IDE\PI\INV.asm
	Object File:	E:\Electronics\MiCrOConTroller\Micro Programming\M-IDE\PI\INV.hex
	List File:	E:\Electronics\MiCrOConTroller\Micro Programming\M-IDE\PI\INV.lst



 Line  I  Addr  Code            Source

    1:
    2:				; D3 INSTRUMENTASI DAN ELEKTRONIKA JURUSAN FISIKA FAKULTAS MIPA UNIVERSITAS DIPONEGORO 2007  |
    3:				;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    4:				; Program square wafe osilator dengan memanfaatkan ISR (Interrupt Service Routine) timer0 dan 1.
    5:				; Pembangkitan pulsa dengan sistem ISR bertujuan untuk mendapatkan kepresisian output pulsa
    6:				; tanpa terpengaruh oleh delay pada routine atau subroutine normal..
    7:				; Output pulsa berupa gelombang kotak (flip-flop Port2.0 dan Port2.1)dengan freQuency 50Hz -
    8:				; pada operasi X-tall 12Mhz.
    9:				; difungsikan untuk membangkitan GGL induksi pada kumparan primer transformator STEP-UP -
   10:				; pada rangkaian Square wafe Inverter.
   11:				; Display output tegangan inverter pada LCD 16X2 + Status PLN + Status Inverter
   12:				; input data tegangan dari ADC 8bit 0804.
   13:				; deteksi pln OFF/ON pada port 2.2 sedangkan untuk deteksi sensor suara pada port2.3.
   14:				; pada saat PLN padam inverter tidak langsung aktif, menunggu picuan dari sensor suara
   15:				; hal ini bertujuan untuk penghematan daya bila dalam ruangan tidak ada orang.
   16:				;
   17:				;           Originally Created by: Herlambang Aribowo
   18:				;                                  D3 Instrumentasi dan Elektronika (D3INSEL) UNDIP
   19:				;                                  J0D005037
   20:				;           CP      : 081328828042
   21:				;           Email   : inselinside@yahoo.com
   22:				;           FS      : http://www.friendster.com/bowox
   23:				;---------------------------------------------------------------------------------------------
   24:		B	 A0	Q    bit p2.0
   25:		B	 A1	Qinv bit p2.1
   26:		N      0020	cntx equ 20h  ; interrupt dikali 2 biar 10ms . counter disamakan dengan alamat 20h (untuk timer0)
   27:		N      0021	cnty equ 21h  ; interrupt dikali 2 biar 10ms . counter disamakan dengan alamat 21h (untuk timer1)
   28:		B	 A6	rs   bit p2.6 ; pin rs pada LCD
   29:		B	 A7	e    bit p2.7 ; pin E pada LCD
   30:				;-------------------------------------
   31:		N      0000	              Org          00h        ; iki routine pengorganisasian memori usage
   32:	  0000	80 1C		              sjmp         mulai      ; 00h buat operasi routine normal
   33:		N      000B	              Org          0bh        ; 0bh adalah memory alocation buat interrupt timer0

   34:	  000B	02 00 42	              Ljmp         Qnormal    ; iki alamat routin interrupt
   35:		N      001B	              Org          1bh        ; 1bh adalah alamat alocation buat interrupt timer1
   36:	  001B	02 00 5F	              Ljmp         Qinverse   ; alamat routine interrupt timer1
   37:	  001E	C2 A0		mulai:        clr          Q
   38:	  0020	C2 A1		              clr          Qinv
   39:	  0022	75 20 02	              mov          cntx,#02h  ; counter timer0 biar 10ms |
   40:	  0025	75 21 02	              mov          cnty,#02h  ; counter timer1 biar 10ms |Jadi 10ms+10ms=20ms
   41:	  0028	75 89 11	InitTimer:    mov          tmod,#11h       ; setting timer mode
   42:	  002B	75 8A FF	              mov          tl0,#0ffh       ; ngisi tl dan th timer 0 dengan ffh

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   43:	  002E	75 8C FF	              mov          th0,#0ffh       ;
   44:	  0031	D2 8D		              setb         tf0             ; kondisikan overflow
   45:	  0033	D2 A9		              setb         et0             ; aktifkan layanan interrupt timer0
   46:	  0035	75 8A 78	              mov          tl0,#078h       ; -5000us (low)  | Pengkondisian interrupt setiap 5ms
   47:	  0038	75 8C EC	              mov          th0,#0ech       ; -5000us (high) | 65536 - 5000 = 60536 d or EC78h
   48:	  003B	D2 AB		              setb         et1             ; aktifkan layanan interrupt timer1
   49:	  003D	D2 AF		              setb         ea              ; aktifkan master layanan interrupt
   50:				;setb         tr0          ; Dinyalain hanya untuk operasi without detections (direct operation)
   51:	  003F	02 01 14	              ljmp         looping
   52:				;------------------------------------------------------------------------------------------------
   53:				; Procedure Flip-flop dengan layanan interupt ET0 dan ET1
   54:				;------------------------------------------------------------------------------------------------
   55:	  0042	75 8A 78	Qnormal:      mov          tl0,#078h       ; -5000us (low)  | Pengkondisian interrupt setiap 5ms
   56:	  0045	75 8C EC	              mov          th0,#0ech       ; -5000us (high) | 65536 - 5000 = 60536 d or EC78h
   57:	  0048	D5 20 13	              djnz         Cntx,endint     ; uwis 10ms po durung?
   58:	  004B	C2 8D		              clr          tf0             ; bersihkan flag timer 0 overflow
   59:	  004D	C2 8C		              clr          tr0             ; mateni timer internal
   60:	  004F	C2 A0		              clr          Q          ; pulsa low
   61:	  0051	B2 A1		              cpl          Qinv       ; pulsa high
   62:	  0053	75 20 02	              mov          Cntx,#2    ; tiap overflow dikali2 ben 10ms dab
   63:	  0056	75 8A 78	              mov          tl0,#078h  ; ngiseni nilai awal -5000us (low)
   64:	  0059	75 8C EC	              mov          th0,#0ech  ; ngiseni nilai awal -5000us (high)
   65:	  005C	D2 8E		              setb         tr1        ; nyumet timer1
   66:	  005E	32		endint:       reti                    ; return from ISR to address caller
   67:	  005F	75 8B 78	Qinverse:     mov          tl1,#078h       ; -5000us (low)  | Pengkondisian interrupt setiap 5ms
   68:	  0062	75 8D EC	              mov          th1,#0ech       ; -5000us (high) | 65536 - 5000 = 60536 d or EC78h
   69:	  0065	D5 21 13	              djnz         Cnty,endint2    ; uwis 10ms po durung?
   70:	  0068	C2 8F		              clr          tf1             ; bersihkan flag timer 0 overflow
   71:	  006A	C2 8E		              clr          tr1             ; mateni timer internal
   72:	  006C	B2 A0		              cpl          Q          ; pulsa high
   73:	  006E	B2 A1		              cpl          Qinv       ; pulsa low
   74:	  0070	75 21 02	              mov          Cnty,#2    ; tiap overflow dikali2 ben 10ms dab
   75:	  0073	75 8B 78	              mov          tl1,#078h  ; ngiseni nilai awal -5000us (low)
   76:	  0076	75 8D EC	              mov          th1,#0ech  ; ngiseni nilai awal -5000us (high)
   77:	  0079	D2 8C		              setb         tr0        ; nyumet timer1
   78:	  007B	32		endint2:      reti                    ; return from ISR to address caller
   79:
   80:				;------------------------------------------------------------------------------------------------
   81:				; SCHEMATICS TIMING CHART GELOMBANG OUTPUT..
   82:				;------------------------------------------------------------------------------------------------
   83:				;                    20ms (50hz)              20ms (50hz)
   84:				;            |-------------------------|-------------------------|
   85:				;             ____________              ____________              ____________
   86:				;            |            |            |            |            |            |
   87:				;   Q        | 10ms       | 10ms       | 10ms       | 10ms       | 10ms       |
   88:				;|___________|            |____________|            |____________|            |____
   89:				;
   90:				;
   91:				; ___________              ____________              ____________              ____
   92:				;|           |            |            |            |            |            |
   93:				;|  Qinv     | 10ms       | 10ms       | 10ms       | 10ms       | 10ms       |
   94:				;|           |____________|            |____________|            |____________|
   95:				;
   96:				;Diatas adalah bentuk output gelombang untuk pemicuan inverter...
   97:				;output pulsa di dapat dari routine fip-flop dengan sistem ISR (Interrupt Service Routine)
   98:				;65536 adalah nilai maksimal counter dalam menampung hasil cacahan sedangkan nilai 5000 adalah nilai

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

   99:				;waktu berapa lama kita ingin mengkondisikan interrupt disini ialah 5000 / 5000us / 5ms / 0.05s
  100:				;microcontroller mencacah atau mengeksekusi satu perintah dengan kecepatan (X-tall/12) maka dari itu
  101:				;untuk mendapatkan hasil yang presisi yaitu sebesar 1 mikrodetik, diperoleh dari perhitungan
  102:				;  (1us= Xtall/12 jadi X-tall= 12Mhz)
  103:				;sedangkan untuk mendapatkan timing sesuai dengan kebutuhan, bisa dilakukan dengan sistem looping
  104:				;misal : untuk timing 10ms, dengan interrupt setiap 5ms bisa di dapat dengan cara mengkondisikan
  105:				;looping interrupt selama 2 kali.
  106:				;
  107:				;                                                                             Herlambang.inc
  108:				;                                                                             D3_INSEL UNDIP 2005
  109:				;------------------------------------------------------------------------------------------------
  110:				; Routine buat inisialisasi LCD hehehehe :)
  111:				;------------------------------------------------------------------------------------------------
  112:	  007C	C2 A6		initLCD:      clr          rs
  113:	  007E	74 01		              mov          a,#01h
  114:	  0080	11 9D		              acall        intruksi
  115:	  0082	74 38		              mov          a,#38h
  116:	  0084	11 9D		              acall        intruksi
  117:	  0086	71 24		              acall        delay
  118:	  0088	11 9D		              acall        intruksi
  119:	  008A	71 24		              acall        delay
  120:	  008C	11 9D		              acall        intruksi
  121:	  008E	71 24		              acall        delay
  122:	  0090	74 0C		              mov          a,#12
  123:	  0092	11 9D		              acall        intruksi
  124:	  0094	71 24		              acall        delay
  125:	  0096	74 06		              mov          a,#06h
  126:	  0098	11 9D		              acall        intruksi
  127:	  009A	71 24		              acall        delay
  128:	  009C	22		              ret
  129:	  009D	F5 80		intruksi:     mov          p0,a
  130:	  009F	00		              nop
  131:	  00A0	C2 A6		              clr          rs
  132:	  00A2	00		              nop
  133:	  00A3	D2 A7		              setb         e
  134:	  00A5	71 24		              acall        delay
  135:	  00A7	C2 A7		              clr          e
  136:	  00A9	22		              ret
  137:	  00AA	F5 80		nulis:        mov          p0,a
  138:	  00AC	D2 A7		              setb         e
  139:	  00AE	71 24		              acall        delay
  140:	  00B0	C2 A7		              clr          e
  141:	  00B2	22		              ret
  142:				;------------------------------------------------------------------------------------------------
  143:				; Routine buat masukin sumber data awal tuk tampilan LCD
  144:				;------------------------------------------------------------------------------------------------
  145:	  00B3	75 40 50	judul:        mov          40h,#'P'
  146:	  00B6	75 41 4C	              mov          41h,#'L'
  147:	  00B9	75 42 4E	              mov          42h,#'N'
  148:	  00BC	75 43 3A	              mov          43h,#':'
  149:	  00BF	75 44 4F	              mov          44h,#'O'
  150:	  00C2	75 45 46	              mov          45h,#'F'
  151:	  00C5	75 46 46	              mov          46h,#'F'
  152:	  00C8	75 47 20	              mov          47h,#' '
  153:	  00CB	75 48 49	              mov          48h,#'I'
  154:	  00CE	75 49 4E	              mov          49h,#'N'

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  155:	  00D1	75 4A 56	              mov          4ah,#'V'
  156:	  00D4	75 4B 3A	              mov          4bh,#':'
  157:	  00D7	75 4C 4F	              mov          4ch,#'O'
  158:	  00DA	75 4D 4E	              mov          4dh,#'N'
  159:	  00DD	75 4E 20	              mov          4eh,#' '
  160:	  00E0	75 4F 20	              mov          4fh,#' '
  161:	  00E3	75 50 56	              mov          50h,#'V'
  162:	  00E6	75 51 6F	              mov          51h,#'o'
  163:	  00E9	75 52 75	              mov          52h,#'u'
  164:	  00EC	75 53 74	              mov          53h,#'t'
  165:	  00EF	75 54 70	              mov          54h,#'p'
  166:	  00F2	75 55 75	              mov          55h,#'u'
  167:	  00F5	75 56 74	              mov          56h,#'t'
  168:	  00F8	75 57 20	              mov          57h,#' '
  169:	  00FB	75 58 3A	              mov          58h,#':'
  170:	  00FE	75 59 20	              mov          59h,#' '
  171:	  0101	75 5A 30	              mov          5ah,#'0'
  172:	  0104	75 5B 30	              mov          5bh,#'0'
  173:	  0107	75 5C 30	              mov          5ch,#'0'
  174:	  010A	75 5D 30	              mov          5dh,#'0'
  175:	  010D	75 5E 20	              mov          5eh,#' '
  176:	  0110	75 5F 56	              mov          5fh,#'V'
  177:	  0113	22		              ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -