📄 inv.lst
字号:
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 + -