1 Star 10 Fork 3

gastonfeng / LENTIL

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
LENTIL3.LST 58.48 KB
一键复制 编辑 原始数据 按行查看 历史
gastonfeng 提交于 2021-01-08 17:26 . 1999年
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ; 150W square waveform inverter
00002 ; filename:lentil.asm
00003 ; author:Fengjiantao
00004 ; Email:fjt@yeah.net
00005 ; begin from:1999.10.10
00006
00007 include p16c711.inc
00001 LIST
00002 ; P16C711.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
00151 LIST
00008
00009 ;Constant definitions
00010 ; PWM-module-constant
00000019 00011 PWMADJUSTVAL equ .25
000000A2 00012 VOLTAGER equ .162 ;Voltage request
000000B8 00013 LOWVOLTAGE equ .184
000000A4 00014 OVER150 equ .164
00000089 00015 OVER125 equ .137
00000028 00016 KP equ .40 ;Proportional gain
00000001 00017 KI equ .1 ;Integral gain
00000001 00018 KD equ .1 ;Differential gain
0000001D 00019 PWMMAXVAL equ .29
000000B0 00020 INTCONVAL equ 0b0h ; set GIE, T0IE
0000004F 00021 OPTIONVAL equ 4fh ; portB have pull-up, tmr0 int.
00022
00023
00024 ;Register Equates
00025
0000000C 00026 HITIMES equ 0ch
0000000D 00027 HI equ 0dh
0000000E 00028 LOTIMES equ 0eh
0000000F 00029 LO equ 0fh
00000010 00030 TIMES equ 10h
00000011 00031 STACKW equ 11h ; stack to push/pop the W-register
00000012 00032 STACKS equ 12h ; stack to push/pop the STATUS-reg
00000013 00033 LOWCOUNT equ 13h ; Low Voltage counter
00000014 00034 COUNTER1 equ 14h ; counter2: input frequency
00000015 00035 count150 equ 15h;
00000016 00036 PWMMAX equ 16h ; register to support generating PWM
00000017 00037 count125 equ 17h;
00000018 00038 FLAG equ 18h ;
00000019 00039 ERR equ 19h ;
0000001A 00040 SUMLO equ 1ah ;PROGRESSIVE SUM OF the PID terms
0000001B 00041 ACCUM equ 1bh ;Error accumulator
0000001C 00042 ERR_O equ 1ch ;error history(last error)
0000001D 00043 VOLTAGEA equ 1dh ;Voltage actual
0000001E 00044 mulcnd equ 1eh ;8 bit multiplicand
0000001F 00045 mulplr equ 1fh ;8 bit multiplier
00000020 00046 ACCaLO equ 20h ;for the add routine
00000021 00047 ACCbLO equ 21h ;
00000022 00048 H_byte equ 22h ;High byte of the 16 bit result
00000023 00049 L_byte equ 23h ;Low byte of the 16 bit result
00000024 00050 ACCaHI equ 24h
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00000025 00051 ACCbHI equ 25h
00000026 00052 count equ 26h ;Loop counter
00000027 00053 SUMHI equ 27h ;High byte of the loop sum
00000028 00054 KEYPRESS equ 28h ;KEY counter
00000029 00055 LOOPER equ 29H;
00056
00000000 00057 polarity equ 0
00000001 00058 ER_SGN equ 1 ;Sign bit for the error in flag register
00000002 00059 AC_SGN equ 2 ;Sign bit for the error accumulator
00000003 00060 DE_SGN equ 3 ;Sign bit for DE/DT
00000004 00061 OER_SGN equ 4 ;sign bit for the old error
00000005 00062 INT equ 5
00063
00064
00065 ;port A:
00000004 00066 EN3525 equ 4
0000000F 00067 TRISAVAL equ 0Fh ; RA0-RA3: input;RA4:Output
00000000 00068 ADCON1VAL equ 0 ; A0-A3 analog in
00000089 00069 ADCON0VAL equ 89h ; fosc/32, channel 2
00000081 00070 ADCON0V0 equ 81h
00000099 00071 ADCON0V3 equ 99h
00072
00073 ;port B:
00000001 00074 LEDR equ 1
00000002 00075 LEDG equ 2
00000003 00076 PWMAU equ 3
00000004 00077 PWMAD equ 4
00000005 00078 PWMBU equ 5
00000006 00079 PWMBD equ 6
00000007 00080 KEY equ 7
00000081 00081 TRISBVAL equ h'81'
00082
00083
00084 ;Program entrance
0000 00085 org 0
0000 2A85 00086 goto start
00087
0004 00088 org 0004
0004 188B 00089 btfsc INTCON,INTF
0005 28F4 00090 goto short
0006 0091 00091 movwf STACKW
0007 0E91 00092 swapf STACKW,F
0008 0E03 00093 swapf STATUS,W
0009 0092 00094 movwf STACKS
000A 110B 00095 bcf INTCON,T0IF
000B 0B90 00096 decfsz TIMES,F
000C 280E 00097 goto ret1
000D 2812 00098 goto pulse
000E 00099 ret1
000E 0E12 00100 swapf STACKS,W
000F 0083 00101 movwf STATUS
0010 0E11 00102 swapf STACKW,W
0011 0009 00103 retfie
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0012 00104 pulse
0012 1818 00105 btfsc FLAG,polarity
0013 2883 00106 goto polarityb
0014 1A06 00107 btfsc PORTB,PWMAD
0015 284C 00108 goto Lowpulse
0016 090D 00109 comf HI,w
0017 0796 00110 addwf PWMMAX,f
0018 1C03 00111 btfss STATUS,C
0019 283F 00112 goto HIGHIMPINT
001A 0816 00113 movf PWMMAX,w
001B 0782 00114 addwf PCL,f
001C 1286 00115 bcf PORTB,PWMBU
001D 1606 00116 bsf PORTB,PWMAD
001E 1286 00117 bcf PORTB,PWMBU
001F 1606 00118 bsf PORTB,PWMAD
0020 1286 00119 bcf PORTB,PWMBU
0021 1606 00120 bsf PORTB,PWMAD
0022 1286 00121 bcf PORTB,PWMBU
0023 1606 00122 bsf PORTB,PWMAD
0024 1286 00123 bcf PORTB,PWMBU
0025 1606 00124 bsf PORTB,PWMAD
0026 1286 00125 bcf PORTB,PWMBU
0027 1606 00126 bsf PORTB,PWMAD
0028 1286 00127 bcf PORTB,PWMBU
0029 1606 00128 bsf PORTB,PWMAD
002A 1286 00129 bcf PORTB,PWMBU
002B 1606 00130 bsf PORTB,PWMAD
002C 1286 00131 bcf PORTB,PWMBU
002D 1606 00132 bsf PORTB,PWMAD
002E 1286 00133 bcf PORTB,PWMBU
002F 1606 00134 bsf PORTB,PWMAD
0030 1286 00135 bcf PORTB,PWMBU
0031 1606 00136 bsf PORTB,PWMAD
0032 1286 00137 bcf PORTB,PWMBU
0033 1606 00138 bsf PORTB,PWMAD
0034 1286 00139 bcf PORTB,PWMBU
0035 1606 00140 bsf PORTB,PWMAD
0036 1286 00141 bcf PORTB,PWMBU
0037 1606 00142 bsf PORTB,PWMAD
0038 1286 00143 bcf PORTB,PWMBU
0039 1606 00144 bsf PORTB,PWMAD
003A 301A 00145 movlw PWMADJUSTVAL+1
003B 0081 00146 movwf TMR0
003C 080C 00147 movf HITIMES,w
003D 0090 00148 movwf TIMES
003E 2846 00149 goto ret2
003F 00150 HIGHIMPINT
003F 3E19 00151 addlw PWMADJUSTVAL
0040 0081 00152 movwf TMR0
0041 1606 00153 bsf PORTB,PWMAD
0042 1286 00154 bcf PORTB,PWMBU
0043 080C 00155 movf HITIMES,w
0044 0090 00156 movwf TIMES
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0045 0A90 00157 incf TIMES,f
0046 00158 ret2
00159 ; incf COUNTER,F
0046 301D 00160 movlw PWMMAXVAL
0047 0096 00161 movwf PWMMAX
0048 0E12 00162 swapf STACKS,W
0049 0083 00163 movwf STATUS
004A 0E11 00164 swapf STACKW,W
004B 0009 00165 retfie
004C 00166 Lowpulse
004C 090F 00167 comf LO,w
004D 0796 00168 addwf PWMMAX,f
004E 1C03 00169 btfss STATUS,C
004F 2875 00170 goto LOWIMPINT
0050 0816 00171 movf PWMMAX,w
0051 0782 00172 addwf PCL,f
0052 1686 00173 bsf PORTB,PWMBU
0053 1206 00174 bcf PORTB,PWMAD
0054 1686 00175 bsf PORTB,PWMBU
0055 1206 00176 bcf PORTB,PWMAD
0056 1686 00177 bsf PORTB,PWMBU
0057 1206 00178 bcf PORTB,PWMAD
0058 1686 00179 bsf PORTB,PWMBU
0059 1206 00180 bcf PORTB,PWMAD
005A 1686 00181 bsf PORTB,PWMBU
005B 1206 00182 bcf PORTB,PWMAD
005C 1686 00183 bsf PORTB,PWMBU
005D 1206 00184 bcf PORTB,PWMAD
005E 1686 00185 bsf PORTB,PWMBU
005F 1206 00186 bcf PORTB,PWMAD
0060 1686 00187 bsf PORTB,PWMBU
0061 1206 00188 bcf PORTB,PWMAD
0062 1686 00189 bsf PORTB,PWMBU
0063 1206 00190 bcf PORTB,PWMAD
0064 1686 00191 bsf PORTB,PWMBU
0065 1206 00192 bcf PORTB,PWMAD
0066 1686 00193 bsf PORTB,PWMBU
0067 1206 00194 bcf PORTB,PWMAD
0068 1686 00195 bsf PORTB,PWMBU
0069 1206 00196 bcf PORTB,PWMAD
006A 1686 00197 bsf PORTB,PWMBU
006B 1206 00198 bcf PORTB,PWMAD
006C 1686 00199 bsf PORTB,PWMBU
006D 1206 00200 bcf PORTB,PWMAD
006E 1686 00201 bsf PORTB,PWMBU
006F 1206 00202 bcf PORTB,PWMAD
0070 301C 00203 movlw PWMADJUSTVAL+3
0071 0081 00204 movwf TMR0
0072 080E 00205 movf LOTIMES,w
0073 0090 00206 movwf TIMES
0074 287C 00207 goto ret3
0075 00208 LOWIMPINT
0075 301C 00209 movlw PWMADJUSTVAL+3
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 5
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0076 0081 00210 movwf TMR0
0077 1206 00211 bcf PORTB,PWMAD
0078 1686 00212 bsf PORTB,PWMBU
0079 080E 00213 movf LOTIMES,w
007A 0090 00214 movwf TIMES
007B 0A90 00215 incf TIMES,f
007C 00216 ret3
007C 1418 00217 bsf FLAG,polarity
007D 301D 00218 movlw PWMMAXVAL
007E 0096 00219 movwf PWMMAX
007F 0E12 00220 swapf STACKS,W
0080 0083 00221 movwf STATUS
0081 0E11 00222 swapf STACKW,W
0082 0009 00223 retfie
0083 00224 polarityb
0083 1B06 00225 btfsc PORTB,PWMBD
0084 28BB 00226 goto Lowpulse2
0085 090D 00227 comf HI,w
0086 0796 00228 addwf PWMMAX,f
0087 1C03 00229 btfss STATUS,C
0088 28AE 00230 goto HIGHIMPINT2
0089 0816 00231 movf PWMMAX,w
008A 0782 00232 addwf PCL,f
008B 1186 00233 bcf PORTB,PWMAU
008C 1706 00234 bsf PORTB,PWMBD
008D 1186 00235 bcf PORTB,PWMAU
008E 1706 00236 bsf PORTB,PWMBD
008F 1186 00237 bcf PORTB,PWMAU
0090 1706 00238 bsf PORTB,PWMBD
0091 1186 00239 bcf PORTB,PWMAU
0092 1706 00240 bsf PORTB,PWMBD
0093 1186 00241 bcf PORTB,PWMAU
0094 1706 00242 bsf PORTB,PWMBD
0095 1186 00243 bcf PORTB,PWMAU
0096 1706 00244 bsf PORTB,PWMBD
0097 1186 00245 bcf PORTB,PWMAU
0098 1706 00246 bsf PORTB,PWMBD
0099 1186 00247 bcf PORTB,PWMAU
009A 1706 00248 bsf PORTB,PWMBD
009B 1186 00249 bcf PORTB,PWMAU
009C 1706 00250 bsf PORTB,PWMBD
009D 1186 00251 bcf PORTB,PWMAU
009E 1706 00252 bsf PORTB,PWMBD
009F 1186 00253 bcf PORTB,PWMAU
00A0 1706 00254 bsf PORTB,PWMBD
00A1 1186 00255 bcf PORTB,PWMAU
00A2 1706 00256 bsf PORTB,PWMBD
00A3 1186 00257 bcf PORTB,PWMAU
00A4 1706 00258 bsf PORTB,PWMBD
00A5 1186 00259 bcf PORTB,PWMAU
00A6 1706 00260 bsf PORTB,PWMBD
00A7 1186 00261 bcf PORTB,PWMAU
00A8 1706 00262 bsf PORTB,PWMBD
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00A9 301E 00263 movlw PWMADJUSTVAL+5
00AA 0081 00264 movwf TMR0
00AB 080C 00265 movf HITIMES,w
00AC 0090 00266 movwf TIMES
00AD 28B5 00267 goto ret4
00AE 00268 HIGHIMPINT2
00AE 3E1E 00269 addlw PWMADJUSTVAL+5
00AF 0081 00270 movwf TMR0
00B0 1706 00271 bsf PORTB,PWMBD
00B1 1186 00272 bcf PORTB,PWMAU
00B2 080C 00273 movf HITIMES,w
00B3 0090 00274 movwf TIMES
00B4 0A90 00275 incf TIMES,f
00B5 00276 ret4
00B5 301D 00277 movlw PWMMAXVAL
00B6 0096 00278 movwf PWMMAX
00B7 0E12 00279 swapf STACKS,W
00B8 0083 00280 movwf STATUS
00B9 0E11 00281 swapf STACKW,W
00BA 0009 00282 retfie
00BB 00283 Lowpulse2
00BB 090F 00284 comf LO,w
00BC 0796 00285 addwf PWMMAX,f
00BD 1C03 00286 btfss STATUS,C
00BE 28E4 00287 goto LOWIMPINT2
00BF 0816 00288 movf PWMMAX,w
00C0 0782 00289 addwf PCL,f
00C1 1586 00290 bsf PORTB,PWMAU
00C2 1306 00291 bcf PORTB,PWMBD
00C3 1586 00292 bsf PORTB,PWMAU
00C4 1306 00293 bcf PORTB,PWMBD
00C5 1586 00294 bsf PORTB,PWMAU
00C6 1306 00295 bcf PORTB,PWMBD
00C7 1586 00296 bsf PORTB,PWMAU
00C8 1306 00297 bcf PORTB,PWMBD
00C9 1586 00298 bsf PORTB,PWMAU
00CA 1306 00299 bcf PORTB,PWMBD
00CB 1586 00300 bsf PORTB,PWMAU
00CC 1306 00301 bcf PORTB,PWMBD
00CD 1586 00302 bsf PORTB,PWMAU
00CE 1306 00303 bcf PORTB,PWMBD
00CF 1586 00304 bsf PORTB,PWMAU
00D0 1306 00305 bcf PORTB,PWMBD
00D1 1586 00306 bsf PORTB,PWMAU
00D2 1306 00307 bcf PORTB,PWMBD
00D3 1586 00308 bsf PORTB,PWMAU
00D4 1306 00309 bcf PORTB,PWMBD
00D5 1586 00310 bsf PORTB,PWMAU
00D6 1306 00311 bcf PORTB,PWMBD
00D7 1586 00312 bsf PORTB,PWMAU
00D8 1306 00313 bcf PORTB,PWMBD
00D9 1586 00314 bsf PORTB,PWMAU
00DA 1306 00315 bcf PORTB,PWMBD
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00DB 1586 00316 bsf PORTB,PWMAU
00DC 1306 00317 bcf PORTB,PWMBD
00DD 1586 00318 bsf PORTB,PWMAU
00DE 1306 00319 bcf PORTB,PWMBD
00DF 301B 00320 movlw PWMADJUSTVAL+2
00E0 0081 00321 movwf TMR0
00E1 080E 00322 movf LOTIMES,w
00E2 0090 00323 movwf TIMES
00E3 28EB 00324 goto ret5
00E4 00325 LOWIMPINT2
00E4 301B 00326 movlw PWMADJUSTVAL+2
00E5 0081 00327 movwf TMR0
00E6 1306 00328 bcf PORTB,PWMBD
00E7 1586 00329 bsf PORTB,PWMAU
00E8 080E 00330 movf LOTIMES,w
00E9 0090 00331 movwf TIMES
00EA 0A90 00332 incf TIMES,f
00EB 00333 ret5
00EB 1018 00334 bcf FLAG,polarity
00EC 301D 00335 movlw PWMMAXVAL
00ED 0096 00336 movwf PWMMAX
00EE 1698 00337 bsf FLAG,INT
00EF 0A94 00338 incf COUNTER1,f
00F0 0E12 00339 swapf STACKS,W
00F1 0083 00340 movwf STATUS
00F2 0E11 00341 swapf STACKW,W
00F3 0009 00342 retfie
00343
00F4 00344 short
00F4 1206 00345 bcf PORTB,PWMAD
00F5 1306 00346 bcf PORTB,PWMBD
00F6 1586 00347 bsf PORTB,PWMAU
00F7 1686 00348 bsf PORTB,PWMBU
00F8 1486 00349 bsf PORTB,LEDR
00F9 128B 00350 bcf INTCON,T0IE
00FA 3064 00351 movlw .100 ;delay 100 times
00FB 00A9 00352 movwf LOOPER
00FC 1683 00353 bsf STATUS,RP0
00FD 3047 00354 movlw 47h
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
00FE 0081 00355 movwf OPTION_REG
00FF 1283 00356 bcf STATUS,RP0
0100 00357 sdelayloop
0100 0181 00358 clrf TMR0
0101 00359 scheckagain
0101 1D0B 00360 btfss INTCON,T0IF
0102 2901 00361 goto scheckagain
0103 110B 00362 bcf INTCON,T0IF
0104 0BA9 00363 decfsz LOOPER,f
0105 2900 00364 goto sdelayloop
0106 108B 00365 bcf INTCON,INTF
0107 2A85 00366 goto start
00367
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 8
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0108 00368 mpy_s ;8 bit multiply
0108 01A2 00369 clrf H_byte
0109 01A3 00370 clrf L_byte
010A 3008 00371 movlw 8
010B 00A6 00372 movwf count
010C 081E 00373 movf mulcnd,w
010D 1003 00374 bcf STATUS,C
010E 00375 loop
010E 0C9F 00376 rrf mulplr,f
010F 1803 00377 btfsc STATUS,C
0110 07A2 00378 addwf H_byte,f
0111 0CA2 00379 rrf H_byte,f
0112 0CA3 00380 rrf L_byte,f
0113 0BA6 00381 decfsz count,f
0114 290E 00382 goto loop
0115 3400 00383 retlw 0
00384
00385
0116 00386 D_sub ;Double precision add and subtract
0116 211E 00387 call neg_A
0117 00388 D_add
0117 0820 00389 movf ACCaLO,w
0118 07A1 00390 addwf ACCbLO,f
0119 1803 00391 btfsc STATUS,C
011A 0AA5 00392 incf ACCbHI,f
011B 0824 00393 movf ACCaHI,w
011C 07A5 00394 addwf ACCbHI,f
011D 3400 00395 retlw 00
00396
011E 00397 neg_A ;negate ACCa
011E 09A0 00398 comf ACCaLO,f
011F 0AA0 00399 incf ACCaLO,f
0120 1903 00400 btfsc STATUS,Z
0121 03A4 00401 decf ACCaHI,f
0122 09A4 00402 comf ACCaHI,f
0123 3400 00403 retlw 00
00404
00405 SHIFT MACRO
00406
00407 BCF STATUS,C
00408 RRF L_byte,f
00409 BCF STATUS,C
00410 RRF H_byte,f
00411 BTFSC STATUS,C
00412 BSF L_byte,7
00413 endM
00414
0124 00415 DIV_LMT ;Divide by 16 and limit to 100 Decimal
00416 SHIFT
M
0124 1003 M BCF STATUS,C
0125 0CA3 M RRF L_byte,f
0126 1003 M BCF STATUS,C
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 9
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0127 0CA2 M RRF H_byte,f
0128 1803 M BTFSC STATUS,C
0129 17A3 M BSF L_byte,7
00417 SHIFT
M
012A 1003 M BCF STATUS,C
012B 0CA3 M RRF L_byte,f
012C 1003 M BCF STATUS,C
012D 0CA2 M RRF H_byte,f
012E 1803 M BTFSC STATUS,C
012F 17A3 M BSF L_byte,7
00418 SHIFT
M
0130 1003 M BCF STATUS,C
0131 0CA3 M RRF L_byte,f
0132 1003 M BCF STATUS,C
0133 0CA2 M RRF H_byte,f
0134 1803 M BTFSC STATUS,C
0135 17A3 M BSF L_byte,7
00419 SHIFT
M
0136 1003 M BCF STATUS,C
0137 0CA3 M RRF L_byte,f
0138 1003 M BCF STATUS,C
0139 0CA2 M RRF H_byte,f
013A 1803 M BTFSC STATUS,C
013B 17A3 M BSF L_byte,7
013C 00420 LMT100
013C 3001 00421 MOVLW 1h
013D 0222 00422 SUBWF H_byte,0
013E 1C03 00423 BTFSS STATUS,C
013F 2943 00424 GOTO L8_E
0140 3064 00425 MOVLW 64H
0141 00A3 00426 MOVWF L_byte
0142 2949 00427 GOTO LMT_EXIT
0143 00428 L8_E
0143 3064 00429 MOVLW 64H
0144 0223 00430 SUBWF L_byte,w
0145 1C03 00431 BTFSS STATUS,C
0146 2949 00432 GOTO LMT_EXIT
0147 3064 00433 movlw 64h
0148 00A3 00434 movwf L_byte
0149 00435 LMT_EXIT
0149 3400 00436 retlw 00
00437
014A 00438 PIDTERM
014A 00439 C_ERR ;Calculating the PID terms
014A 081D 00440 movf VOLTAGEA,w
014B 3CA2 00441 sublw VOLTAGER
014C 1803 00442 btfsc STATUS,C
014D 294F 00443 goto PLS_ER
014E 2952 00444 goto MNS_ER
014F 00445 PLS_ER
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 10
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
014F 0099 00446 MOVWF ERR
0150 1098 00447 bcf FLAG,ER_SGN
0151 2956 00448 goto CE_EXIT
0152 00449 MNS_ER
0152 30A2 00450 movlw VOLTAGER
0153 021D 00451 subwf VOLTAGEA,w
0154 0099 00452 movwf ERR
0155 1498 00453 bsf FLAG,ER_SGN
0156 00454 CE_EXIT
0156 019A 00455 clrf SUMLO
0157 01A7 00456 clrf SUMHI
0158 00457 C_PROP ;Calculate the proportional term
0158 0819 00458 movf ERR,w
0159 009E 00459 movwf mulcnd
015A 3028 00460 MOVLW KP
015B 009F 00461 movwf mulplr
015C 2108 00462 CALL mpy_s
015D 2124 00463 call DIV_LMT
015E 00464 restorre_SGN
015E 1C98 00465 btfss FLAG,ER_SGN
015F 2962 00466 goto ADDPROP
0160 09A3 00467 comf L_byte,f
0161 0AA3 00468 INCF L_byte,f
0162 00469 ADDPROP
0162 0823 00470 movf L_byte,w
0163 079A 00471 addwf SUMLO,f
0164 1803 00472 btfsc STATUS,C
0165 0AA7 00473 incf SUMHI,f
0166 3000 00474 movlw 0
0167 1B9A 00475 Btfsc SUMLO,7
0168 30FF 00476 movlw 0ffH
0169 07A7 00477 addwf SUMHI,f
016A 00478 C_INT ;calculate the integral term
016A 0819 00479 movf ERR,w
016B 1903 00480 btfsc STATUS,Z
016C 2983 00481 goto ADDINT
016D 1898 00482 btfsc FLAG,ER_SGN
016E 2972 00483 goto MNS_1
016F 00484 PLS_1
016F 3001 00485 movlw KI
0170 079B 00486 addwf ACCUM,f
0171 2974 00487 goto LMTACM
0172 00488 MNS_1
0172 3001 00489 movlw KI
0173 029B 00490 subwf ACCUM,f
0174 00491 LMTACM
0174 1B9B 00492 btfsc ACCUM,7
0175 297D 00493 goto M_LMT
0176 00494 P_LMT
0176 309C 00495 MOVLW 9ch
0177 071B 00496 addwf ACCUM,w
0178 1C03 00497 btfss STATUS,C
0179 2983 00498 goto ADDINT
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 11
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
017A 3064 00499 movlw 64h
017B 009B 00500 movwf ACCUM
017C 2983 00501 goto ADDINT
017D 00502 M_LMT
017D 309C 00503 movlw 9ch
017E 021B 00504 subwf ACCUM,w
017F 1803 00505 btfsc STATUS,C
0180 2983 00506 goto ADDINT
0181 309C 00507 movlw 9ch
0182 009B 00508 movwf ACCUM
0183 00509 ADDINT
0183 081B 00510 movf ACCUM,w
0184 079A 00511 addwf SUMLO,f
0185 1803 00512 btfsc STATUS,C
0186 0AA7 00513 incf SUMHI,f
0187 3000 00514 movlw 0
0188 1B9B 00515 btfsc ACCUM,7
0189 0900 00516 comf W,w
018A 07A7 00517 addwf SUMHI,f
018B 00518 C_DIFF ;Calculate the differential term
018B 0819 00519 movf ERR,w
018C 1C98 00520 btfss FLAG,ER_SGN
018D 2991 00521 goto LO_BYTE
018E 0999 00522 comf ERR,1
018F 0A19 00523 incf ERR,w
0190 0999 00524 comf ERR,f
0191 00525 LO_BYTE
0191 00A1 00526 movwf ACCbLO
0192 3000 00527 movlw 0
0193 1898 00528 btfsc FLAG,ER_SGN
0194 30FF 00529 movlw 0ffH
0195 00A5 00530 movwf ACCbHI
0196 081C 00531 movf ERR_O,w
0197 1E18 00532 btfss FLAG,OER_SGN
0198 299B 00533 goto LO_BYTE0
0199 099C 00534 comf ERR_O,f
019A 0A1C 00535 incf ERR_O,w
019B 00536 LO_BYTE0
019B 00A0 00537 movwf ACCaLO
019C 3000 00538 movlw 0
019D 1A18 00539 btfsc FLAG,OER_SGN
019E 30FF 00540 movlw 0ffH
019F 00A4 00541 movwf ACCaHI
01A0 2116 00542 call D_sub
01A1 00543 STRIP_SGN
01A1 1BA5 00544 btfsc ACCbHI,7
01A2 29A4 00545 goto NEG_ABS
01A3 29A9 00546 goto POS_ABS
01A4 00547 NEG_ABS
01A4 1598 00548 bsf FLAG,DE_SGN
01A5 09A1 00549 comf ACCbLO,f
01A6 0A21 00550 incf ACCbLO,w
01A7 009C 00551 movwf ERR_O
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 12
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
01A8 29AC 00552 goto MULT_KD
01A9 00553 POS_ABS
01A9 1198 00554 BCF FLAG,DE_SGN
01AA 0821 00555 movf ACCbLO,w
01AB 009C 00556 movwf ERR_O
01AC 00557 MULT_KD
01AC 081C 00558 movf ERR_O,w
01AD 009E 00559 movwf mulcnd
01AE 3001 00560 movlw KD
01AF 009F 00561 movwf mulplr
01B0 2108 00562 call mpy_s
01B1 2124 00563 call DIV_LMT
01B2 00564 RE_SGN
01B2 1D98 00565 btfss FLAG,DE_SGN
01B3 29B6 00566 goto SAVE_DIFF
01B4 09A3 00567 comf L_byte,f
01B5 0AA3 00568 incf L_byte,f
01B6 00569 SAVE_DIFF
01B6 0823 00570 movf L_byte,w
01B7 1903 00571 btfsc STATUS,Z
01B8 29C9 00572 goto ROLL_ER
01B9 009C 00573 movwf ERR_O
01BA 00574 ADDDIF ;Add the diff term into the summ
01BA 3000 00575 movlw 0
01BB 1998 00576 btfsc FLAG,DE_SGN
01BC 30FF 00577 movlw 0ffH
01BD 00A5 00578 movwf ACCbHI
01BE 081C 00579 movf ERR_O,W
01BF 00A1 00580 movwf ACCbLO
01C0 081A 00581 movf SUMLO,w
01C1 00A0 00582 movwf ACCaLO
01C2 0827 00583 movf SUMHI,w
01C3 00A4 00584 movwf ACCaHI
01C4 2117 00585 call D_add
01C5 0821 00586 movf ACCbLO,w
01C6 009A 00587 movwf SUMLO
01C7 0825 00588 movf ACCbHI,w
01C8 00A7 00589 movwf SUMHI
00590
01C9 00591 ROLL_ER
01C9 0819 00592 Movf ERR,W
01CA 009C 00593 movwf ERR_O
01CB 1218 00594 bcf FLAG,OER_SGN
01CC 1898 00595 btfsc FLAG,ER_SGN
01CD 1618 00596 bsf FLAG,OER_SGN
01CE 080C 00597 movf HITIMES,w
01CF 00A4 00598 movwf ACCaHI
01D0 080D 00599 movf HI,w
01D1 00A0 00600 movwf ACCaLO
01D2 0827 00601 movf SUMHI,w
01D3 00A5 00602 movwf ACCbHI
01D4 081A 00603 movf SUMLO,w
01D5 00A1 00604 movwf ACCbLO
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 13
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
01D6 2117 00605 call D_add
01D7 00606 WaitNoIntt
01D7 0801 00607 movf TMR0,W
01D8 3CC8 00608 sublw 0c8h
01D9 1C03 00609 btfss STATUS,C
01DA 29D7 00610 goto WaitNoIntt
00611
01DB 0825 00612 movf ACCbHI,w
01DC 3C24 00613 sublw 24h
01DD 0825 00614 movf ACCbHI,w
01DE 1C03 00615 btfss STATUS,C
01DF 3024 00616 movlw 24h
01E0 1903 00617 btfsc STATUS,Z
01E1 3001 00618 movlw 1
01E2 008C 00619 movwf HITIMES
01E3 00A4 00620 movwf ACCaHI
01E4 0821 00621 movf ACCbLO,w
01E5 008D 00622 movwf HI
01E6 0821 00623 movf ACCbLO,w
01E7 00A0 00624 movwf ACCaLO
01E8 3027 00625 movlw 27h
01E9 00A5 00626 movwf ACCbHI
01EA 3010 00627 movlw 10h
01EB 00A1 00628 movwf ACCbLO
01EC 2116 00629 call D_sub
01ED 0825 00630 movf ACCbHI,w
01EE 008E 00631 movwf LOTIMES
01EF 0821 00632 movf ACCbLO,w
01F0 008F 00633 movwf LO
01F1 0008 00634 return
00635
01F2 00636 SLP
01F2 1B86 00637 btfsc PORTB,KEY ;Key press?
01F3 2A13 00638 goto RUN ;No
01F4 0AA8 00639 incf KEYPRESS,f ;Yes,counter +1
01F5 1FA8 00640 btfss KEYPRESS,7 ;reach 128?
01F6 2A14 00641 goto RUN1 ;No
01F7 1605 00642 bsf PORTA,EN3525 ;Yes,go to bed
01F8 128B 00643 bcf INTCON,T0IE ;Disable intuppter
01F9 1086 00644 bcf PORTB,LEDR ;Led OFF
01FA 1106 00645 bcf PORTB,LEDG
01FB 1206 00646 bcf PORTB,PWMAD
01FC 1306 00647 bcf PORTB,PWMBD
01FD 1586 00648 bsf PORTB,PWMAU
01FE 1686 00649 bsf PORTB,PWMBU
01FF 00650 waitnopress
01FF 1F86 00651 btfss PORTB,KEY ;wait key up
0200 29FF 00652 goto waitnopress
0201 3064 00653 movlw .100 ;delay 100 times
0202 00A9 00654 movwf LOOPER
0203 00655 delayloop
0203 0181 00656 clrf TMR0
0204 00657 checkagain
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 14
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0204 1D0B 00658 btfss INTCON,T0IF
0205 2A04 00659 goto checkagain
0206 110B 00660 bcf INTCON,T0IF
0207 0BA9 00661 decfsz LOOPER,f
0208 2A03 00662 goto delayloop
0209 100B 00663 bcf INTCON,RBIF ;Set RB int
020A 158B 00664 bsf INTCON,RBIE
020B 0063 00665 sleep ;sleep until RB7 press
020C 118B 00666 bcf INTCON,RBIE
020D 100B 00667 bcf INTCON,RBIF
020E 00668 waitnoprs
020E 1F86 00669 btfss PORTB,KEY ;wait key up
020F 2A0E 00670 goto waitnoprs
0210 1205 00671 bcf PORTA,EN3525
0211 168B 00672 bsf INTCON,T0IE
0212 1506 00673 bsf PORTB,LEDG
0213 00674 RUN
0213 01A8 00675 clrf KEYPRESS ;clear key counter
0214 00676 RUN1
00677 ; incf COUNTER2,F
00678 ; bcf COUNTER,07h
0214 0008 00679 return
00680
0215 00681 ADC
0215 3089 00682 movlw ADCON0VAL
0216 0088 00683 movwf ADCON0
0217 00684 WaitNoInt
0217 0801 00685 movf TMR0,W
0218 3CD0 00686 sublw 0d0h
0219 1C03 00687 btfss STATUS,C
021A 2A17 00688 goto WaitNoInt
021B 1508 00689 bsf ADCON0,GO
021C 00690 WaitAdc
021C 1908 00691 btfsc ADCON0,GO
021D 2A1C 00692 goto WaitAdc
021E 0809 00693 movf ADRES,W
021F 009D 00694 movwf VOLTAGEA
0220 0008 00695 return
00696
00697 ;LIGHT
00698 ; btfss COUNTER1,4
00699 ; return
00700 ; movlw 0
00701 ; movwf COUNTER1
00702 ; btfss LEDREG,FLASHR
00703 ; goto NOFLASH1
00704 ; btfss PORTB,LEDR
00705 ; goto LEDRL
00706 ; goto LEDRH
00707 ;NOFLASH1
00708 ; btfsc LEDREG,LEDR
00709 ; goto LEDRH
00710 ;LEDRL
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 15
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00711 ; bsf PORTB,LEDR
00712 ; goto LIGHTG
00713 ;LEDRH
00714 ; bcf PORTB,LEDR
00715 ;LIGHTG
00716 ; btfss LEDREG,FLASHG
00717 ; goto NOFLASH2
00718 ; btfss PORTB,LEDG
00719 ; goto LEDGL
00720 ; goto LEDGH
00721 ;NOFLASH2
00722 ; btfsc LEDREG,LEDG
00723 ; goto LEDGH
00724 ;LEDGL
00725 ; bsf PORTB,LEDG
00726 ; return
00727 ;LEDGH
00728 ; bcf PORTB,LEDG
00729 ; return
00730
0221 00731 LOWDET
0221 3081 00732 movlw ADCON0V0
0222 0088 00733 movwf ADCON0
0223 00734 WaitNoIntl
0223 0801 00735 movf TMR0,W
0224 3CD0 00736 sublw 0d0h
0225 1C03 00737 btfss STATUS,C
0226 2A23 00738 goto WaitNoIntl
0227 1508 00739 bsf ADCON0,GO
0228 00740 WaitAdcl
0228 1908 00741 btfsc ADCON0,GO
0229 2A28 00742 goto WaitAdcl
022A 0809 00743 movf ADRES,W
022B 3CB8 00744 sublw LOWVOLTAGE
022C 1C03 00745 btfss STATUS,C
022D 2A3F 00746 goto lret1
022E 0A93 00747 incf LOWCOUNT,f
022F 1F93 00748 btfss LOWCOUNT,7
0230 0008 00749 return
0231 1206 00750 bcf PORTB,PWMAD
0232 1306 00751 bcf PORTB,PWMBD
0233 1586 00752 bsf PORTB,PWMAU
0234 1686 00753 bsf PORTB,PWMBU
0235 1605 00754 bsf PORTA,EN3525
0236 128B 00755 bcf INTCON,T0IE
00756 ; bsf LEDREG,LEDR
00757 ; bcf LEDREG,FLASHR
00758 ; bcf LEDREG,FLASHG
00759 ; bcf LEDREG,LEDG
0237 1106 00760 bcf PORTB,LEDG
0238 1486 00761 bsf PORTB,LEDR
0239 100B 00762 bcf INTCON,RBIF ;Set RB int
023A 158B 00763 bsf INTCON,RBIE
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 16
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
023B 0063 00764 sleep ;sleep until RB7 press
023C 118B 00765 bcf INTCON,RBIE
023D 100B 00766 bcf INTCON,RBIF
023E 2A85 00767 goto start
023F 00768 lret1
023F 0193 00769 clrf LOWCOUNT
0240 0008 00770 return
00771
0241 00772 OVERCUT
0241 3099 00773 movlw ADCON0V3
0242 0088 00774 movwf ADCON0
0243 00775 WaitNoIntO
0243 0801 00776 movf TMR0,W
0244 3CD0 00777 sublw 0d0h
0245 1C03 00778 btfss STATUS,C
0246 2A43 00779 goto WaitNoIntO
0247 1508 00780 bsf ADCON0,GO
0248 00781 WaitAdcO
0248 1908 00782 btfsc ADCON0,GO
0249 2A48 00783 goto WaitAdcO
024A 0809 00784 movf ADRES,W
024B 3CA4 00785 sublw OVER150
024C 1803 00786 btfsc STATUS,C
024D 2A65 00787 goto O125
024E 0A95 00788 incf count150,f
024F 1F95 00789 btfss count150,7
0250 2A66 00790 goto O1251
0251 1486 00791 bsf PORTB,LEDR
0252 1106 00792 bcf PORTB,LEDG
0253 1206 00793 bcf PORTB,PWMAD
0254 1306 00794 bcf PORTB,PWMBD
0255 1586 00795 bsf PORTB,PWMAU
0256 1686 00796 bsf PORTB,PWMBU
0257 3032 00797 movlw .50 ;delay 100 times
0258 00A9 00798 movwf LOOPER
0259 3047 00799 movlw 47h
025A 1683 00800 bsf STATUS,RP0
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
025B 0081 00801 movwf OPTION_REG
025C 1283 00802 bcf STATUS,RP0
025D 128B 00803 bcf INTCON,T0IE
025E 00804 delayloop1
025E 0181 00805 clrf TMR0
025F 00806 checkagain1
025F 1D0B 00807 btfss INTCON,T0IF
0260 2A5F 00808 goto checkagain1
0261 110B 00809 bcf INTCON,T0IF
0262 0BA9 00810 decfsz LOOPER,f
0263 2A5E 00811 goto delayloop1
0264 2A85 00812 goto start
0265 00813 O125
0265 0195 00814 clrf count150
0266 00815 O1251
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 17
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0266 0809 00816 movf ADRES,W
0267 3C89 00817 sublw OVER125
0268 1803 00818 btfsc STATUS,C
0269 2A83 00819 goto ORET
026A 0814 00820 movf COUNTER1,w
026B 1903 00821 btfsc STATUS,Z
026C 0A97 00822 incf count125,f
026D 1E17 00823 BTfss count125,4
026E 0008 00824 return
026F 1486 00825 bsf PORTB,LEDR
0270 1106 00826 bcf PORTB,LEDG
0271 1206 00827 bcf PORTB,PWMAD
0272 1306 00828 bcf PORTB,PWMBD
0273 1586 00829 bsf PORTB,PWMAU
0274 1686 00830 bsf PORTB,PWMBU
0275 3032 00831 movlw .50 ;delay 100 times
0276 00A9 00832 movwf LOOPER
0277 3047 00833 movlw 47h
0278 1683 00834 bsf STATUS,RP0
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0279 0081 00835 movwf OPTION_REG
027A 1283 00836 bcf STATUS,RP0
027B 128B 00837 bcf INTCON,T0IE
027C 00838 delayloop2
027C 0181 00839 clrf TMR0
027D 00840 checkagain2
027D 1D0B 00841 btfss INTCON,T0IF
027E 2A7D 00842 goto checkagain2
027F 110B 00843 bcf INTCON,T0IF
0280 0BA9 00844 decfsz LOOPER,f
0281 2A7C 00845 goto delayloop2
0282 2A85 00846 goto start
0283 00847 ORET
0283 0197 00848 clrf count125
0284 0008 00849 return
00850
0285 00851 start
0285 1206 00852 bcf PORTB,PWMAD
0286 1306 00853 bcf PORTB,PWMBD
0287 1586 00854 bsf PORTB,PWMAU
0288 1686 00855 bsf PORTB,PWMBU
0289 301D 00856 movlw PWMMAXVAL
028A 0096 00857 movwf PWMMAX
028B 3025 00858 movlw 25h
028C 008E 00859 movwf LOTIMES
028D 3000 00860 movlw 0
028E 008F 00861 movwf LO
028F 3002 00862 movlw 2
0290 008C 00863 movwf HITIMES
0291 3010 00864 movlw 10h
0292 008D 00865 movwf HI
0293 1683 00866 bsf STATUS,RP0
0294 300F 00867 movlw TRISAVAL
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 18
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0295 0085 00868 movwf TRISA
0296 3081 00869 movlw TRISBVAL
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0297 0086 00870 movwf TRISB
0298 3000 00871 movlw ADCON1VAL
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0299 0088 00872 movwf ADCON1
029A 304F 00873 movlw OPTIONVAL
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
029B 0081 00874 movwf OPTION_REG
029C 1283 00875 bcf STATUS,RP0
029D 0181 00876 clrf TMR0
029E 30B0 00877 movlw INTCONVAL
029F 008B 00878 movwf INTCON
02A0 1506 00879 bsf PORTB,LEDG
02A1 1086 00880 bcf PORTB,LEDR
02A2 1205 00881 bcf PORTA,EN3525
02A3 00882 Idle
02A3 0064 00883 clrwdt
02A4 21F2 00884 call SLP
02A5 1E98 00885 btfss FLAG,INT
02A6 2AA3 00886 goto Idle
02A7 1298 00887 bcf FLAG,INT
02A8 2215 00888 call ADC
02A9 214A 00889 call PIDTERM
02AA 2221 00890 call LOWDET
02AB 2241 00891 call OVERCUT
00892 ; call LIGHT
02AC 2AA3 00893 goto Idle
00894
00895 end
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 19
SYMBOL TABLE
LABEL VALUE
ACCUM 0000001B
ACCaHI 00000024
ACCaLO 00000020
ACCbHI 00000025
ACCbLO 00000021
AC_SGN 00000002
ADC 00000215
ADCON0 00000008
ADCON0V0 00000081
ADCON0V3 00000099
ADCON0VAL 00000089
ADCON1 00000088
ADCON1VAL 00000000
ADCS0 00000006
ADCS1 00000007
ADDDIF 000001BA
ADDINT 00000183
ADDPROP 00000162
ADIE 00000006
ADIF 00000001
ADON 00000000
ADRES 00000009
C 00000000
CE_EXIT 00000156
CHS0 00000003
CHS1 00000004
COUNTER1 00000014
C_DIFF 0000018B
C_ERR 0000014A
C_INT 0000016A
C_PROP 00000158
DC 00000001
DE_SGN 00000003
DIV_LMT 00000124
D_add 00000117
D_sub 00000116
EN3525 00000004
ERR 00000019
ERR_O 0000001C
ER_SGN 00000001
F 00000001
FLAG 00000018
FSR 00000004
GIE 00000007
GO 00000002
GO_DONE 00000002
HI 0000000D
HIGHIMPINT 0000003F
HIGHIMPINT2 000000AE
HITIMES 0000000C
H_byte 00000022
INDF 00000000
INT 00000005
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 20
SYMBOL TABLE
LABEL VALUE
INTCON 0000000B
INTCONVAL 000000B0
INTE 00000004
INTEDG 00000006
INTF 00000001
IRP 00000007
Idle 000002A3
KD 00000001
KEY 00000007
KEYPRESS 00000028
KI 00000001
KP 00000028
L8_E 00000143
LEDG 00000002
LEDR 00000001
LMT100 0000013C
LMTACM 00000174
LMT_EXIT 00000149
LO 0000000F
LOOPER 00000029
LOTIMES 0000000E
LOWCOUNT 00000013
LOWDET 00000221
LOWIMPINT 00000075
LOWIMPINT2 000000E4
LOWVOLTAGE 000000B8
LO_BYTE 00000191
LO_BYTE0 0000019B
L_byte 00000023
Lowpulse 0000004C
Lowpulse2 000000BB
MNS_1 00000172
MNS_ER 00000152
MULT_KD 000001AC
M_LMT 0000017D
NEG_ABS 000001A4
NOT_BO 00000000
NOT_BOR 00000000
NOT_DONE 00000002
NOT_PD 00000003
NOT_POR 00000001
NOT_RBPU 00000007
NOT_TO 00000004
O125 00000265
O1251 00000266
OER_SGN 00000004
OPTIONVAL 0000004F
OPTION_REG 00000081
ORET 00000283
OVER125 00000089
OVER150 000000A4
OVERCUT 00000241
PCFG0 00000000
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 21
SYMBOL TABLE
LABEL VALUE
PCFG1 00000001
PCL 00000002
PCLATH 0000000A
PCON 00000087
PIDTERM 0000014A
PLS_1 0000016F
PLS_ER 0000014F
PORTA 00000005
PORTB 00000006
POS_ABS 000001A9
PS0 00000000
PS1 00000001
PS2 00000002
PSA 00000003
PWMAD 00000004
PWMADJUSTVAL 00000019
PWMAU 00000003
PWMBD 00000006
PWMBU 00000005
PWMMAX 00000016
PWMMAXVAL 0000001D
P_LMT 00000176
RBIE 00000003
RBIF 00000000
RE_SGN 000001B2
ROLL_ER 000001C9
RP0 00000005
RP1 00000006
RUN 00000213
RUN1 00000214
SAVE_DIFF 000001B6
SHIFT
SLP 000001F2
STACKS 00000012
STACKW 00000011
STATUS 00000003
STRIP_SGN 000001A1
SUMHI 00000027
SUMLO 0000001A
T0CS 00000005
T0IE 00000005
T0IF 00000002
T0SE 00000004
TIMES 00000010
TMR0 00000001
TRISA 00000085
TRISAVAL 0000000F
TRISB 00000086
TRISBVAL 00000081
VOLTAGEA 0000001D
VOLTAGER 000000A2
W 00000000
WaitAdc 0000021C
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 22
SYMBOL TABLE
LABEL VALUE
WaitAdcO 00000248
WaitAdcl 00000228
WaitNoInt 00000217
WaitNoIntO 00000243
WaitNoIntl 00000223
WaitNoIntt 000001D7
Z 00000002
_BODEN_OFF 00003FBF
_BODEN_ON 00003FFF
_CP_OFF 00003FFF
_CP_ON 0000004F
_HS_OSC 00003FFE
_LP_OSC 00003FFC
_PWRTE_OFF 00003FFF
_PWRTE_ON 00003FF7
_RC_OSC 00003FFF
_WDT_OFF 00003FFB
_WDT_ON 00003FFF
_XT_OSC 00003FFD
__16C711 00000001
checkagain 00000204
checkagain1 0000025F
checkagain2 0000027D
count 00000026
count125 00000017
count150 00000015
delayloop 00000203
delayloop1 0000025E
delayloop2 0000027C
loop 0000010E
lret1 0000023F
mpy_s 00000108
mulcnd 0000001E
mulplr 0000001F
neg_A 0000011E
polarity 00000000
polarityb 00000083
pulse 00000012
restorre_SGN 0000015E
ret1 0000000E
ret2 00000046
ret3 0000007C
ret4 000000B5
ret5 000000EB
scheckagain 00000101
sdelayloop 00000100
short 000000F4
start 00000285
waitnopress 000001FF
waitnoprs 0000020E
MPASM 02.30.07 Intermediate LENTIL3.ASM 1-5-2000 16:49:03 PAGE 23
MEMORY USAGE MAP ('X' = Used, '-' = Unused)
0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
00C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0100 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0140 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0180 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
01C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0200 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0240 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0280 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXX--- ----------------
All other memory blocks unused.
Program Memory Words Used: 682
Program Memory Words Free: 342
Errors : 0
Warnings : 0 reported, 0 suppressed
Messages : 7 reported, 0 suppressed
Assembly
1
https://gitee.com/kaikong/LENTIL.git
git@gitee.com:kaikong/LENTIL.git
kaikong
LENTIL
LENTIL
master

搜索帮助