aboutsummaryrefslogtreecommitdiff
path: root/tests/pwm.lst
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pwm.lst')
-rw-r--r--tests/pwm.lst370
1 files changed, 370 insertions, 0 deletions
diff --git a/tests/pwm.lst b/tests/pwm.lst
new file mode 100644
index 0000000..d01a39e
--- /dev/null
+++ b/tests/pwm.lst
@@ -0,0 +1,370 @@
+
+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: pwm.asm
+ Object File: pwm.hex
+ List File: pwm.lst
+
+
+
+ Line I Addr Code Source
+
+ 1: ; Firmware pre kalibraciu PWM generatoru RST napatia zariadenia pre
+ 2: ; programovanie mikrokontrolerov AT89Cx051 seriovym ISP programatorom
+ 3:
+ 4: ; Verzia 1.0
+ 5:
+ 6: ; Copyright (C) 2012 Jan Sucan <sucan@runbox.com>
+ 7:
+ 8: ; Permission is hereby granted, free of charge, to any person obtaining
+ 9: ; a copy of this software and associated documentation files (the
+ 10: ; "Software"), to deal in the Software without restriction, including
+ 11: ; without limitation the rights to use, copy, modify, merge, publish,
+ 12: ; distribute, sublicense, and/or sell copies of the Software, and to
+ 13: ; permit persons to whom the Software is furnished to do so, subject to
+ 14: ; the following conditions:
+ 15:
+ 16: ; The above copyright notice and this permission notice shall be
+ 17: ; included in all copies or substantial portions of the Software.
+ 18:
+ 19: ; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ 20: ; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ 21: ; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ 22: ; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ 23: ; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ 24: ; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ 25: ; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ 26:
+ 27: ; ------------------------------------------------------------------------------
+ 28: ; hardware
+ 29: ; ------------------------------------------------------------------------------
+ 30: B 0081 grnled equ p0.1 ; zelena LED
+ 31: B 0080 redled equ p0.0 ; cervena LED
+ 32: B 0090 button equ p1.0 ; ovladacie tlacidlo
+ 33:
+ 34: B 0082 rdy equ p0.2 ; signaly pre AT89Cx051
+ 35: B 0083 xtal equ p0.3
+ 36: B 0084 prog equ p0.4
+ 37: B 0085 m0 equ p0.5
+ 38: B 0086 m1 equ p0.6
+ 39: B 0087 m2 equ p0.7
+ 40: D 00A0 pdata equ p2
+ 41: B 00B5 rstsw equ p3.5 ; spinanie RST napatia
+ 42: B 00B6 vccsw equ p3.6 ; spinanie napajacieho napatia
+ 43:
+
+ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 2
+
+
+
+ Line I Addr Code Source
+
+ 44: ; ------------------------------------------------------------------------------
+ 45: ; konstanty a premenne
+ 46: ; ------------------------------------------------------------------------------
+ 47: ; konstanty casovacov pri taktovacej frekvencii 24 MHz v jednotkach 0,5 us
+ 48: N 0212 period equ 530 ; perioda PWM signalu
+ 49: N 0012 volt equ 18 ; aktivna polperioda PWM signalu (pre 5 V)
+ 50: ; odmeranie casu 0,5 ms
+ 51: N 0017 halfmsl equ low (0ffffh - 1000)
+ 52: N 00FC halfmsh equ high (0ffffh - 1000)
+ 53:
+ 54: ; ------------------------------------------------------------------------------
+ 55: ; kod programu
+ 56: ; ------------------------------------------------------------------------------
+ 57: cseg
+ 58:
+ 59: N 0000 org 00h
+ 60: 0000 01 0D ajmp main ; hlavny program
+ 61:
+ 62: N 000B org 0bh
+ 63: 000B 01 5D ajmp rstpwm ; obsluha casovaca PWM generatoru
+ 64:
+ 65: ; ------------------------------------------------------------------------------
+ 66: ; hlavny program
+ 67: ; ------------------------------------------------------------------------------
+ 68: 000D D2 81 main: setb grnled ; zhasni obe LED
+ 69: 000F D2 80 setb redled
+ 70:
+ 71: 0011 75 89 11 mov tmod,#00010001b ; dva 16 bitove casovace
+ 72:
+ 73: 0014 D2 AF setb ea ; povol vsetky prerusenia
+ 74:
+ 75: 0016 11 7F acall rst5v
+ 76: 0018 C2 81 clr grnled ; zasviet zelenu LED
+ 77:
+ 78: ; pri testovani PWM generatoru RST napatia simuluj cinnost ostatnych signalov.
+ 79: ; Nastavuj na ostatnych vyvodoch patice AT89Cx051 rozne logicke urovne po rozny
+ 80: ; cas. Pseudonahodne hodnoty ziskavaj z neprazdnych bajtov pamate programu.
+ 81: 001A 90 00 00 mov dptr,#0 ; vyberaj bajty od zaciatku pamate programu
+ 82: 001D C2 D5 clr f0
+ 83: 001F E5 83 loop: mov a,dph ; vyberaj len bajty z neprazdnej oblasti pamate
+ 84: 0021 B4 00 0A cjne a,#high (lastinst),next
+ 85: 0024 E5 82 mov a,dpl
+ 86: 0026 B4 C2 05 cjne a,#low (lastinst),next
+ 87: 0029 90 00 00 mov dptr,#0
+ 88: 002C B2 D5 cpl f0 ; kazdy druhy priechod ziskanu hodnotu zneguj
+ 89:
+ 90: 002E 74 00 next: mov a,#0 ; vyber bajt
+ 91: 0030 93 movc a,@a+dptr
+ 92:
+ 93: 0031 20 D5 01 jb f0,nocpl
+ 94: 0034 F4 cpl a
+ 95: 0035 F5 A0 nocpl: mov pdata,a
+ 96: 0037 95 F0 subb a,b ; odcitaj hodnotu ziskanu z predchadzajuceho
+ 97: ; bajtu
+ 98: 0039 13 rrc a ; rozkopiruj bity na jednotlive vyvody
+ 99: 003A 92 82 mov rdy,c
+
+ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 3
+
+
+
+ Line I Addr Code Source
+
+ 100: 003C 13 rrc a
+ 101: 003D 92 83 mov xtal,c
+ 102: 003F 13 rrc a
+ 103: 0040 92 84 mov prog,c
+ 104: 0042 13 rrc a
+ 105: 0043 92 85 mov m0,c
+ 106: 0045 13 rrc a
+ 107: 0046 92 86 mov m1,c
+ 108: 0048 13 rrc a
+ 109: 0049 92 87 mov m2,c
+ 110: 004B 13 rrc a
+ 111: 004C 92 B6 mov vccsw,c
+ 112: 004E 11 55 acall pause ; cakaj
+ 113: 0050 F5 F0 mov b,a ; uloz aktualnu hodnotu
+ 114: 0052 A3 inc dptr ; dalsi bajt
+ 115: 0053 01 1F ajmp loop
+ 116:
+ 117: 0055 FA pause: mov r2,a
+ 118: 0056 A9 F0 mov r1,b
+ 119: 0058 D9 FE djnz r1,$
+ 120: 005A DA FC djnz r2,$-2
+ 121: 005C 22 ret
+ 122:
+ 123: ; ------------------------------------------------------------------------------
+ 124: ; obsluzne podprogramy
+ 125: ; ------------------------------------------------------------------------------
+ 126: ; obsluha casovaca PWM generatoru
+ 127: 005D C2 8C rstpwm: clr tr0 ; zastav casovac pre konzistentnu zmenu hodnoty
+ 128: 005F 10 B5 0B jbc rstsw,rstpwm_low
+ 129: 0062 D2 B5 setb rstsw
+ 130: 0064 75 8A ED mov tl0,#low (0ffffh - volt)
+ 131: 0067 75 8C FF mov th0,#high (0ffffh - volt)
+ 132: 006A rstpwm_exit:
+ 133: 006A D2 8C setb tr0 ; znovu spust casovac
+ 134: 006C 32 reti
+ 135: 006D rstpwm_low:
+ 136: 006D 75 8A FF mov tl0,#low (0ffffh - period + volt)
+ 137: 0070 75 8C FD mov th0,#high (0ffffh - period + volt)
+ 138: 0073 01 6A ajmp rstpwm_exit
+ 139:
+ 140: ; nastavenie RST = 0 V
+ 141: 0075 C2 A9 rst0v: clr et0 ; nepotrebuje obsluhu casovaca 0
+ 142: 0077 C2 B5 clr rstsw
+ 143: 0079 78 44 mov r0,#low (580) ; cakaj >286,5 ms na dosiahnutie napatia 0,5 V
+ 144: 007B 79 02 mov r1,#high (580)
+ 145: 007D 01 A2 ajmp rstwait
+ 146:
+ 147: ; nastavenie RST = 5 V
+ 148: 007F 10 B5 08 rst5v: jbc rstsw,rst5v_down
+ 149: 0082 D2 B5 setb rstsw ; pull-up impulz
+ 150: 0084 78 0B mov r0,#low (11) ; cakaj 5,5 ms
+ 151: 0086 79 00 mov r1,#high (11)
+ 152: 0088 01 8E ajmp rst5v_l0
+ 153: 008A rst5v_down: ; pull-down impulz
+ 154: 008A 78 9F mov r0,#low (159) ; cakaj 79,5 ms
+ 155: 008C 79 00 mov r1,#high (159)
+
+ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 4
+
+
+
+ Line I Addr Code Source
+
+ 156: 008E rst5v_l0:
+ 157: 008E 11 A5 acall wait
+ 158: 0090 D2 A9 setb et0 ; povol prerusenie od casovaca 0
+ 159: 0092 D2 8D setb tf0 ; vyvolaj obsluhu prerusenia od casovaca 0
+ 160: 0094 78 28 mov r0,#low (40) ; cakaj 20 ms na ustalenie napatia 5 V
+ 161: 0096 79 00 mov r1,#high (40)
+ 162: 0098 01 A2 ajmp rstwait
+ 163:
+ 164: ; nastavenie RST = 12 V
+ 165: 009A C2 A9 rst12v: clr et0 ; nepotrebuje obsluhu casovaca 0
+ 166: 009C D2 B5 setb rstsw
+ 167: 009E 78 64 mov r0,#low (100) ; cakaj >44 ms na dosiahnutie napatia 12 V
+ 168: 00A0 79 00 mov r1,#high (100)
+ 169: 00A2 rstwait:
+ 170: 00A2 11 A5 acall wait
+ 171: 00A4 22 ret
+ 172:
+ 173: ; ------------------------------------------------------------------------------
+ 174: ; cakanie zadaneho poctu 0,5 ms
+ 175: 00A5 B8 00 04 wait: cjne r0,#0,wait_next ; detekuj koniec cakania
+ 176: 00A8 B9 00 01 cjne r1,#0,wait_next
+ 177: 00AB 22 ret
+ 178: 00AC wait_next:
+ 179: 00AC 18 dec r0 ; zniz 16 bitove pocitadlo
+ 180: 00AD B8 FF 01 cjne r0,#0ffh,$+4 ; detekuj vypozicku
+ 181: 00B0 19 dec r1
+ 182: 00B1 C2 8E clr tr1 ; zastav casovac pre konzistentnu zmenu hodnoty
+ 183: 00B3 C2 8F clr tf1
+ 184: 00B5 75 8B 17 mov tl1,#halfmsl ; cakaj 0,5 ms
+ 185: 00B8 75 8D FC mov th1,#halfmsh
+ 186: 00BB D2 8E setb tr1 ; znovu spust casovac
+ 187: 00BD 30 8F FD jnb tf1,$
+ 188: 00C0 01 A5 ajmp wait
+ 189:
+ 190: ; ----------------------------------------------------------------------
+ 191: ; adresa bajtu za poslednou instrukciou tohoto programu
+ 192: 00C2 lastinst:
+ 193:
+ 194: end
+
+
+
+
+
+ register banks used: ---
+
+ no errors
+
+
+
+
+ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 5
+
+
+
+
+
+ L I S T O F S Y M B O L S
+ =============================
+
+
+SYMBOL TYPE VALUE LINE
+------------------------------------------------------------
+??ASEM_51 NUMBER 8051
+??VERSION NUMBER 0130
+AC BIT D6
+ACC DATA E0
+B DATA F0
+BUTTON NUMBER 0090 32
+CY BIT D7
+DPH DATA 83
+DPL DATA 82
+EA BIT AF
+ES BIT AC
+ET0 BIT A9
+ET1 BIT AB
+EX0 BIT A8
+EX1 BIT AA
+EXTI0 CODE 0003
+EXTI1 CODE 0013
+F0 BIT D5
+GRNLED NUMBER 0081 30
+HALFMSH NUMBER 00FC 52
+HALFMSL NUMBER 0017 51
+IE DATA A8
+IE0 BIT 89
+IE1 BIT 8B
+INT0 BIT B2
+INT1 BIT B3
+IP DATA B8
+IT0 BIT 88
+IT1 BIT 8A
+LASTINST CODE 00C2 192
+LOOP CODE 001F 83
+M0 NUMBER 0085 37
+M1 NUMBER 0086 38
+M2 NUMBER 0087 39
+MAIN CODE 000D 68
+NEXT CODE 002E 90
+NOCPL CODE 0035 95
+OV BIT D2
+P BIT D0
+P0 DATA 80
+P1 DATA 90
+P2 DATA A0
+P3 DATA B0
+PAUSE CODE 0055 117
+PCON DATA 87
+PDATA NUMBER 00A0 40
+PERIOD NUMBER 0212 48
+PROG NUMBER 0084 36
+PS BIT BC
+PSW DATA D0
+
+ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 6
+
+
+
+SYMBOL TYPE VALUE LINE
+------------------------------------------------------------
+PT0 BIT B9
+PT1 BIT BB
+PX0 BIT B8
+PX1 BIT BA
+RB8 BIT 9A
+RD BIT B7
+RDY NUMBER 0082 34
+REDLED NUMBER 0080 31
+REN BIT 9C
+RESET CODE 0000
+RI BIT 98
+RS0 BIT D3
+RS1 BIT D4
+RST0V CODE 0075 141
+RST12V CODE 009A 165
+RST5V CODE 007F 148
+RST5V_DOWN CODE 008A 153
+RST5V_L0 CODE 008E 156
+RSTPWM CODE 005D 127
+RSTPWM_EXIT CODE 006A 132
+RSTPWM_LOW CODE 006D 135
+RSTSW NUMBER 00B5 41
+RSTWAIT CODE 00A2 169
+RXD BIT B0
+SBUF DATA 99
+SCON DATA 98
+SINT CODE 0023
+SM0 BIT 9F
+SM1 BIT 9E
+SM2 BIT 9D
+SP DATA 81
+T0 BIT B4
+T1 BIT B5
+TB8 BIT 9B
+TCON DATA 88
+TF0 BIT 8D
+TF1 BIT 8F
+TH0 DATA 8C
+TH1 DATA 8D
+TI BIT 99
+TIMER0 CODE 000B
+TIMER1 CODE 001B
+TL0 DATA 8A
+TL1 DATA 8B
+TMOD DATA 89
+TR0 BIT 8C
+TR1 BIT 8E
+TXD BIT B1
+VCCSW NUMBER 00B6 42
+VOLT NUMBER 0012 49
+WAIT CODE 00A5 175
+WAIT_NEXT CODE 00AC 178
+WR BIT B6
+XTAL NUMBER 0083 35