 |
 |
|
Εφφέ με 8 Led - Λίστα εντολών προγράμματος |
Source code file of LED flasher
Αποθήκευση
αρχείου στον σκληρό δίσκο R
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330 |
;*********************************************************************
;
; The LED flash control processing
;
;Author : Seiichi Inoue - Ελληνική απόδοση: Παναγιώτης Πανταζόπουλος
;*********************************************************************
list p=pic16f84a
include p16f84a.inc
__config _hs_osc & _wdt_off & _pwrte_on & _cp_off
errorlevel -302 ;Eliminate bank warning
;**************** Label Definition ********************
ra0 equ 00 ;RA0 bit
ra1 equ 01 ;RA1 bit
ra2 equ 02 ;RA2 bit
ra3 equ 03 ;RA3 bit
ra4 equ 04 ;RA4 bit
cnt500u equ 0c ;500usec counter Address
cnt1m equ 0d ;1msec counter Address
cnt100m equ 0e ;100msec counter Address
cnt500m equ 0f ;500msec counter Address
cnt1s equ 10 ;1sec counter Address
;************* Pattern Data Definition ****************
; '1':OFF '0':ON
;****** Pattern 0 ******
p00 equ b'11111110'
p01 equ b'11111101'
p02 equ b'11111011'
p03 equ b'11110111'
p04 equ b'11101111'
p05 equ b'11011111'
p06 equ b'10111111'
p07 equ b'01111111'
;****** Pattern 1 ******
p10 equ b'01111111'
p11 equ b'10111111'
p12 equ b'11011111'
p13 equ b'11101111'
p14 equ b'11110111'
p15 equ b'11111011'
p16 equ b'11111101'
p17 equ b'11111110'
;****** Pattern 2 ******
p20 equ b'01111110'
p21 equ b'10111101'
p22 equ b'11011011'
p23 equ b'11100111'
p24 equ b'11011011'
p25 equ b'10111101'
p26 equ b'01111110'
;****** Pattern 3 ******
p30 equ b'11111110'
p31 equ b'11111101'
p32 equ b'11111010'
p33 equ b'11110101'
p34 equ b'11101010'
p35 equ b'11010101'
p36 equ b'10101010'
p37 equ b'01010101'
p38 equ b'10101011'
p39 equ b'01010111'
p3a equ b'10101111'
p3b equ b'01011111'
p3c equ b'10111111'
p3d equ b'01111111'
;****** Pattern 4 ******
p40 equ b'00000000'
p41 equ b'11111111'
p42 equ b'00000000'
p43 equ b'11111111'
p44 equ b'00000000'
p45 equ b'11111111'
p46 equ b'00000000'
p47 equ b'11111111'
p48 equ b'00000000'
;**************** Program Start ***********************
org 0 ;Reset Vector
goto init
org 4 ;Interrupt Vector
goto init
;**************** Initial Process *********************
org 5
init bsf status,rp0 ;Change to Bank1
movlw h'ff' ;Set input mode data
movwf trisa ;Set PORTA to Input mode
clrf trisb ;Set PORTB to Output mode
bcf status,rp0 ;Change to Bank0
movlw h'ff' ;Set LED off data
movwf portb ;Output data
;**************** Key Scan Process ********************
keyscan btfss porta,ra0 ;RA0 ON(Low lebel) ?
call ptn0 ;Yes. Call Pattern 0
btfss porta,ra1 ;RA1 ON ?
call ptn1 ;Yes. Call Pattern 1
btfss porta,ra2 ;RA2 ON ?
call ptn2 ;Yes. Call Pattern 2
btfss porta,ra3 ;RA3 ON ?
call ptn3 ;Yes. Call Pattern 3
btfss porta,ra4 ;RA4 ON ?
call ptn4 ;Yes. Call Pattern 4
goto keyscan ;Retry
;*********** Pattern 0 Output Subroutine ***************
ptn0 movlw p00 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p01 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p02 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p03 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p04 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p05 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p06 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p07 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw h'ff' ;Set LED off data
movwf portb ;Output data
call t100m ;Wait 100msec
return
;*********** Pattern 1 Output Subroutine ***************
ptn1 movlw p10 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p11 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p12 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p13 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p14 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p15 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p16 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p17 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw h'ff' ;Set LED off data
movwf portb ;Output data
call t100m ;Wait 100msec
return
;*********** Pattern 2 Output Subroutine ***************
ptn2 movlw p20 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p21 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p22 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p23 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p24 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p25 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p26 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw h'ff' ;Set LED off data
movwf portb ;Output data
call t100m ;Wait 100msec
return
;*********** Pattern 3 Output Subroutine ***************
ptn3 movlw p30 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p31 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p32 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p33 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p34 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p35 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p36 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p37 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p38 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p39 ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p3a ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p3b ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p3c ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw p3d ;Set pattern data
movwf portb ;Output data
call t100m ;Wait 100msec
movlw h'ff' ;Set LED off data
movwf portb ;Output data
call t100m ;Wait 100msec
return
;*********** Pattern 4 Output Subroutine ***************
ptn4 movlw p40 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw p41 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw p42 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw p43 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw p44 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw p45 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw p46 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw p47 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw p48 ;Set pattern data
movwf portb ;Output data
call t1s ;Wait 1sec
movlw h'ff' ;Set LED off data
movwf portb ;Output data
call t1s ;Wait 1sec
return
;********************************************************
; Timer Subroutine for 10MHz clock
;********************************************************
;************* 1msec Timer Subroutine *****************
t1m movlw d'2' ;(1) Set loop cnt1
movwf cnt1m ;(1) Save loop cnt1
tm1lp1 movlw d'249' ;(1)*2 Set loop cnt2
movwf cnt500u ;(1)*2 Save loop cnt2
tm1lp2 nop ;(1)*249*2 Time adjust
nop ;(1)*249*2 Time adjust
decfsz cnt500u,f ;(1)*249*2 cnt500u-1=0 ?
goto tm1lp2 ;(2)*248*2 No, continue
decfsz cnt1m,f ;(1)*2 cnt1m-1=0 ?
goto tm1lp1 ;(2) No. Continue
return ;(2) Yes. Cnt end
;Total 2501*0.4usec=1msec
;************* 100msec Timer Subroutine ***************
t100m movlw d'100' ;Set loop counter
movwf cnt100m ;Save loop counter
tm2lp call t1m ;1msec subroutine
decfsz cnt100m,f ;cnt100m - 1 = 0 ?
goto tm2lp ;No. Continue
return ;Yes. Count end
;************* 500msec Timer Subroutine ***************
t500m movlw d'5' ;Set loop counter
movwf cnt500m ;Save loop counter
tm3lp call t100m ;100msec subroutine
decfsz cnt500m,f ;cnt500m - 1 = 0 ?
goto tm3lp ;No. Continue
return ;Yes. Count end
;************** 1sec Timer Subroutine *****************
t1s movlw d'2' ;Set loop counter
movwf cnt1s ;Save loop counter
tm4lp call t500m ;500msec subroutine
decfsz cnt1s,f ;cnt1s - 1 = 0 ?
goto tm4lp ;No. Continue
return ;Yes. Count end
;********************************************************
; END of LED flash control processing
;********************************************************
end |
Listing file of LED flasher
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;********************************************************
00002 ;
00003 ; The LED flash control processing
00004 ;
00005 ; Author : Seiichi Inoue
00006 ;********************************************************
00007
00008 LIST P=PIC16F84A
00009 INCLUDE P16F84A.INC
00001 LIST
00002 ; P16F84A.INC Standard Header File, Version 2.00'(modify)
00134 LIST
2007 3FF2 00010 __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
00011 ERRORLEVEL -302 ;Suppress bank warning
00012
00013 ;**************** Label Definition ********************
00000000 00014 RA0 EQU 00 ;RA0 bit
00000001 00015 RA1 EQU 01 ;RA1 bit
00000002 00016 RA2 EQU 02 ;RA2 bit
00000003 00017 RA3 EQU 03 ;RA3 bit
00000004 00018 RA4 EQU 04 ;RA4 bit
0000000C 00019 CNT500U EQU 0C ;500usec counter Address
0000000D 00020 CNT1M EQU 0D ;1msec counter Address
0000000E 00021 CNT100M EQU 0E ;100msec counter Address
0000000F 00022 CNT500M EQU 0F ;500msec counter Address
00000010 00023 CNT1S EQU 10 ;1sec counter Address
00024
00025 ;************* Pattern Data Definition ****************
00026 ; '1':OFF '0':ON
00027
00028 ;****** Pattern 0 ******
000000FE 00029 P00 EQU B'11111110'
000000FD 00030 P01 EQU B'11111101'
000000FB 00031 P02 EQU B'11111011'
000000F7 00032 P03 EQU B'11110111'
000000EF 00033 P04 EQU B'11101111'
000000DF 00034 P05 EQU B'11011111'
000000BF 00035 P06 EQU B'10111111'
0000007F 00036 P07 EQU B'01111111'
00037
00038 ;****** Pattern 1 ******
0000007F 00039 P10 EQU B'01111111'
000000BF 00040 P11 EQU B'10111111'
000000DF 00041 P12 EQU B'11011111'
000000EF 00042 P13 EQU B'11101111'
000000F7 00043 P14 EQU B'11110111'
000000FB 00044 P15 EQU B'11111011'
000000FD 00045 P16 EQU B'11111101'
000000FE 00046 P17 EQU B'11111110'
00047
00048 ;****** Pattern 2 ******
0000007E 00049 P20 EQU B'01111110'
000000BD 00050 P21 EQU B'10111101'
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
000000DB 00051 P22 EQU B'11011011'
000000E7 00052 P23 EQU B'11100111'
000000DB 00053 P24 EQU B'11011011'
000000BD 00054 P25 EQU B'10111101'
0000007E 00055 P26 EQU B'01111110'
00056
00057 ;****** Pattern 3 ******
000000FE 00058 P30 EQU B'11111110'
000000FD 00059 P31 EQU B'11111101'
000000FA 00060 P32 EQU B'11111010'
000000F5 00061 P33 EQU B'11110101'
000000EA 00062 P34 EQU B'11101010'
000000D5 00063 P35 EQU B'11010101'
000000AA 00064 P36 EQU B'10101010'
00000055 00065 P37 EQU B'01010101'
000000AB 00066 P38 EQU B'10101011'
00000057 00067 P39 EQU B'01010111'
000000AF 00068 P3A EQU B'10101111'
0000005F 00069 P3B EQU B'01011111'
000000BF 00070 P3C EQU B'10111111'
0000007F 00071 P3D EQU B'01111111'
00072
00073 ;****** Pattern 4 ******
00000000 00074 P40 EQU B'00000000'
000000FF 00075 P41 EQU B'11111111'
00000000 00076 P42 EQU B'00000000'
000000FF 00077 P43 EQU B'11111111'
00000000 00078 P44 EQU B'00000000'
000000FF 00079 P45 EQU B'11111111'
00000000 00080 P46 EQU B'00000000'
000000FF 00081 P47 EQU B'11111111'
00000000 00082 P48 EQU B'00000000'
00083
00084
00085 ;**************** Program Start ***********************
0000 00086 ORG 0 ;Reset Vector
0000 2805 00087 GOTO INIT
0004 00088 ORG 4 ;Interrupt Vector
0004 2805 00089 GOTO INIT
00090
00091 ;**************** Initial Process *********************
0005 00092 ORG 5
0005 1683 00093 INIT BSF STATUS,RP0 ;Change to Bank1
0006 30FF 00094 MOVLW H'ff' ;Set input mode data
0007 0085 00095 MOVWF TRISA ;Set PORTA to Input mode
0008 0186 00096 CLRF TRISB ;Set PORTB to Output mode
0009 1283 00097 BCF STATUS,RP0 ;Change to Bank0
000A 30FF 00098 MOVLW H'ff' ;Set LED off data
000B 0086 00099 MOVWF PORTB ;Output data
00100
00101 ;**************** Key Scan Process ********************
000C 1C05 00102 KEYSCAN BTFSS PORTA,RA0 ;RA0 ON(Low lebel) ?
000D 2017 00103 CALL PTN0 ;Yes. Call Pattern 0
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
000E 1C85 00104 BTFSS PORTA,RA1 ;RA1 ON ?
000F 2033 00105 CALL PTN1 ;Yes. Call Pattern 1
0010 1D05 00106 BTFSS PORTA,RA2 ;RA2 ON ?
0011 204F 00107 CALL PTN2 ;Yes. Call Pattern 2
0012 1D85 00108 BTFSS PORTA,RA3 ;RA3 ON ?
0013 2068 00109 CALL PTN3 ;Yes. Call Pattern 3
0014 1E05 00110 BTFSS PORTA,RA4 ;RA4 ON ?
0015 2096 00111 CALL PTN4 ;Yes. Call Pattern 4
0016 280C 00112 GOTO KEYSCAN ;Retry
00113
00114 ;*********** Pattern 0 Output Subroutine ***************
0017 30FE 00115 PTN0 MOVLW P00 ;Set pattern data
0018 0086 00116 MOVWF PORTB ;Output data
0019 20C0 00117 CALL T100M ;Wait 100msec
001A 30FD 00118 MOVLW P01 ;Set pattern data
001B 0086 00119 MOVWF PORTB ;Output data
001C 20C0 00120 CALL T100M ;Wait 100msec
001D 30FB 00121 MOVLW P02 ;Set pattern data
001E 0086 00122 MOVWF PORTB ;Output data
001F 20C0 00123 CALL T100M ;Wait 100msec
0020 30F7 00124 MOVLW P03 ;Set pattern data
0021 0086 00125 MOVWF PORTB ;Output data
0022 20C0 00126 CALL T100M ;Wait 100msec
0023 30EF 00127 MOVLW P04 ;Set pattern data
0024 0086 00128 MOVWF PORTB ;Output data
0025 20C0 00129 CALL T100M ;Wait 100msec
0026 30DF 00130 MOVLW P05 ;Set pattern data
0027 0086 00131 MOVWF PORTB ;Output data
0028 20C0 00132 CALL T100M ;Wait 100msec
0029 30BF 00133 MOVLW P06 ;Set pattern data
002A 0086 00134 MOVWF PORTB ;Output data
002B 20C0 00135 CALL T100M ;Wait 100msec
002C 307F 00136 MOVLW P07 ;Set pattern data
002D 0086 00137 MOVWF PORTB ;Output data
002E 20C0 00138 CALL T100M ;Wait 100msec
002F 30FF 00139 MOVLW H'ff' ;Set LED off data
0030 0086 00140 MOVWF PORTB ;Output data
0031 20C0 00141 CALL T100M ;Wait 100msec
0032 0008 00142 RETURN
00143
00144 ;*********** Pattern 1 Output Subroutine ***************
0033 307F 00145 PTN1 MOVLW P10 ;Set pattern data
0034 0086 00146 MOVWF PORTB ;Output data
0035 20C0 00147 CALL T100M ;Wait 100msec
0036 30BF 00148 MOVLW P11 ;Set pattern data
0037 0086 00149 MOVWF PORTB ;Output data
0038 20C0 00150 CALL T100M ;Wait 100msec
0039 30DF 00151 MOVLW P12 ;Set pattern data
003A 0086 00152 MOVWF PORTB ;Output data
003B 20C0 00153 CALL T100M ;Wait 100msec
003C 30EF 00154 MOVLW P13 ;Set pattern data
003D 0086 00155 MOVWF PORTB ;Output data
003E 20C0 00156 CALL T100M ;Wait 100msec
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
003F 30F7 00157 MOVLW P14 ;Set pattern data
0040 0086 00158 MOVWF PORTB ;Output data
0041 20C0 00159 CALL T100M ;Wait 100msec
0042 30FB 00160 MOVLW P15 ;Set pattern data
0043 0086 00161 MOVWF PORTB ;Output data
0044 20C0 00162 CALL T100M ;Wait 100msec
0045 30FD 00163 MOVLW P16 ;Set pattern data
0046 0086 00164 MOVWF PORTB ;Output data
0047 20C0 00165 CALL T100M ;Wait 100msec
0048 30FE 00166 MOVLW P17 ;Set pattern data
0049 0086 00167 MOVWF PORTB ;Output data
004A 20C0 00168 CALL T100M ;Wait 100msec
004B 30FF 00169 MOVLW H'ff' ;Set LED off data
004C 0086 00170 MOVWF PORTB ;Output data
004D 20C0 00171 CALL T100M ;Wait 100msec
004E 0008 00172 RETURN
00173
00174 ;*********** Pattern 2 Output Subroutine ***************
004F 307E 00175 PTN2 MOVLW P20 ;Set pattern data
0050 0086 00176 MOVWF PORTB ;Output data
0051 20C0 00177 CALL T100M ;Wait 100msec
0052 30BD 00178 MOVLW P21 ;Set pattern data
0053 0086 00179 MOVWF PORTB ;Output data
0054 20C0 00180 CALL T100M ;Wait 100msec
0055 30DB 00181 MOVLW P22 ;Set pattern data
0056 0086 00182 MOVWF PORTB ;Output data
0057 20C0 00183 CALL T100M ;Wait 100msec
0058 30E7 00184 MOVLW P23 ;Set pattern data
0059 0086 00185 MOVWF PORTB ;Output data
005A 20C0 00186 CALL T100M ;Wait 100msec
005B 30DB 00187 MOVLW P24 ;Set pattern data
005C 0086 00188 MOVWF PORTB ;Output data
005D 20C0 00189 CALL T100M ;Wait 100msec
005E 30BD 00190 MOVLW P25 ;Set pattern data
005F 0086 00191 MOVWF PORTB ;Output data
0060 20C0 00192 CALL T100M ;Wait 100msec
0061 307E 00193 MOVLW P26 ;Set pattern data
0062 0086 00194 MOVWF PORTB ;Output data
0063 20C0 00195 CALL T100M ;Wait 100msec
0064 30FF 00196 MOVLW H'ff' ;Set LED off data
0065 0086 00197 MOVWF PORTB ;Output data
0066 20C0 00198 CALL T100M ;Wait 100msec
0067 0008 00199 RETURN
00200
00201 ;*********** Pattern 3 Output Subroutine ***************
0068 30FE 00202 PTN3 MOVLW P30 ;Set pattern data
0069 0086 00203 MOVWF PORTB ;Output data
006A 20C0 00204 CALL T100M ;Wait 100msec
006B 30FD 00205 MOVLW P31 ;Set pattern data
006C 0086 00206 MOVWF PORTB ;Output data
006D 20C0 00207 CALL T100M ;Wait 100msec
006E 30FA 00208 MOVLW P32 ;Set pattern data
006F 0086 00209 MOVWF PORTB ;Output data
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 5
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0070 20C0 00210 CALL T100M ;Wait 100msec
0071 30F5 00211 MOVLW P33 ;Set pattern data
0072 0086 00212 MOVWF PORTB ;Output data
0073 20C0 00213 CALL T100M ;Wait 100msec
0074 30EA 00214 MOVLW P34 ;Set pattern data
0075 0086 00215 MOVWF PORTB ;Output data
0076 20C0 00216 CALL T100M ;Wait 100msec
0077 30D5 00217 MOVLW P35 ;Set pattern data
0078 0086 00218 MOVWF PORTB ;Output data
0079 20C0 00219 CALL T100M ;Wait 100msec
007A 30AA 00220 MOVLW P36 ;Set pattern data
007B 0086 00221 MOVWF PORTB ;Output data
007C 20C0 00222 CALL T100M ;Wait 100msec
007D 3055 00223 MOVLW P37 ;Set pattern data
007E 0086 00224 MOVWF PORTB ;Output data
007F 20C0 00225 CALL T100M ;Wait 100msec
0080 30AB 00226 MOVLW P38 ;Set pattern data
0081 0086 00227 MOVWF PORTB ;Output data
0082 20C0 00228 CALL T100M ;Wait 100msec
0083 3057 00229 MOVLW P39 ;Set pattern data
0084 0086 00230 MOVWF PORTB ;Output data
0085 20C0 00231 CALL T100M ;Wait 100msec
0086 30AF 00232 MOVLW P3A ;Set pattern data
0087 0086 00233 MOVWF PORTB ;Output data
0088 20C0 00234 CALL T100M ;Wait 100msec
0089 305F 00235 MOVLW P3B ;Set pattern data
008A 0086 00236 MOVWF PORTB ;Output data
008B 20C0 00237 CALL T100M ;Wait 100msec
008C 30BF 00238 MOVLW P3C ;Set pattern data
008D 0086 00239 MOVWF PORTB ;Output data
008E 20C0 00240 CALL T100M ;Wait 100msec
008F 307F 00241 MOVLW P3D ;Set pattern data
0090 0086 00242 MOVWF PORTB ;Output data
0091 20C0 00243 CALL T100M ;Wait 100msec
0092 30FF 00244 MOVLW H'ff' ;Set LED off data
0093 0086 00245 MOVWF PORTB ;Output data
0094 20C0 00246 CALL T100M ;Wait 100msec
0095 0008 00247 RETURN
00248
00249 ;*********** Pattern 4 Output Subroutine ***************
0096 3000 00250 PTN4 MOVLW P40 ;Set pattern data
0097 0086 00251 MOVWF PORTB ;Output data
0098 20CC 00252 CALL T1S ;Wait 1sec
0099 30FF 00253 MOVLW P41 ;Set pattern data
009A 0086 00254 MOVWF PORTB ;Output data
009B 20CC 00255 CALL T1S ;Wait 1sec
009C 3000 00256 MOVLW P42 ;Set pattern data
009D 0086 00257 MOVWF PORTB ;Output data
009E 20CC 00258 CALL T1S ;Wait 1sec
009F 30FF 00259 MOVLW P43 ;Set pattern data
00A0 0086 00260 MOVWF PORTB ;Output data
00A1 20CC 00261 CALL T1S ;Wait 1sec
00A2 3000 00262 MOVLW P44 ;Set pattern data
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00A3 0086 00263 MOVWF PORTB ;Output data
00A4 20CC 00264 CALL T1S ;Wait 1sec
00A5 30FF 00265 MOVLW P45 ;Set pattern data
00A6 0086 00266 MOVWF PORTB ;Output data
00A7 20CC 00267 CALL T1S ;Wait 1sec
00A8 3000 00268 MOVLW P46 ;Set pattern data
00A9 0086 00269 MOVWF PORTB ;Output data
00AA 20CC 00270 CALL T1S ;Wait 1sec
00AB 30FF 00271 MOVLW P47 ;Set pattern data
00AC 0086 00272 MOVWF PORTB ;Output data
00AD 20CC 00273 CALL T1S ;Wait 1sec
00AE 3000 00274 MOVLW P48 ;Set pattern data
00AF 0086 00275 MOVWF PORTB ;Output data
00B0 20CC 00276 CALL T1S ;Wait 1sec
00B1 30FF 00277 MOVLW H'ff' ;Set LED off data
00B2 0086 00278 MOVWF PORTB ;Output data
00B3 20CC 00279 CALL T1S ;Wait 1sec
00B4 0008 00280 RETURN
00281
00282 ;********************************************************
00283 ; Timer Subroutine for 10MHz clock
00284 ;********************************************************
00285
00286 ;************* 1msec Timer Subroutine *****************
00B5 3002 00287 T1M MOVLW D'2' ;(1) Set loop cnt1
00B6 008D 00288 MOVWF CNT1M ;(1) Save loop cnt1
00B7 30F9 00289 TM1LP1 MOVLW D'249' ;(1)*2 Set loop cnt2
00B8 008C 00290 MOVWF CNT500U ;(1)*2 Save loop cnt2
00B9 0000 00291 TM1LP2 NOP ;(1)*249*2 Time adjust
00BA 0000 00292 NOP ;(1)*249*2 Time adjust
00BB 0B8C 00293 DECFSZ CNT500U,F ;(1)*249*2 cnt500u-1=0 ?
00BC 28B9 00294 GOTO TM1LP2 ;(2)*248*2 No, continue
00BD 0B8D 00295 DECFSZ CNT1M,F ;(1)*2 cnt1m-1=0 ?
00BE 28B7 00296 GOTO TM1LP1 ;(2) No. Continue
00BF 0008 00297 RETURN ;(2) Yes. Cnt end
00298 ;Total 2501*0.4usec=1msec
00299
00300 ;************* 100msec Timer Subroutine ***************
00C0 3064 00301 T100M MOVLW D'100' ;Set loop counter
00C1 008E 00302 MOVWF CNT100M ;Save loop counter
00C2 20B5 00303 TM2LP CALL T1M ;1msec subroutine
00C3 0B8E 00304 DECFSZ CNT100M,F ;cnt100m - 1 = 0 ?
00C4 28C2 00305 GOTO TM2LP ;No. Continue
00C5 0008 00306 RETURN ;Yes. Count end
00307
00308
00309 ;************* 500msec Timer Subroutine ***************
00C6 3005 00310 T500M MOVLW D'5' ;Set loop counter
00C7 008F 00311 MOVWF CNT500M ;Save loop counter
00C8 20C0 00312 TM3LP CALL T100M ;100msec subroutine
00C9 0B8F 00313 DECFSZ CNT500M,F ;cnt500m - 1 = 0 ?
00CA 28C8 00314 GOTO TM3LP ;No. Continue
00CB 0008 00315 RETURN ;Yes. Count end
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00316
00317 ;************** 1sec Timer Subroutine *****************
00CC 3002 00318 T1S MOVLW D'2' ;Set loop counter
00CD 0090 00319 MOVWF CNT1S ;Save loop counter
00CE 20C6 00320 TM4LP CALL T500M ;500msec subroutine
00CF 0B90 00321 DECFSZ CNT1S,F ;cnt1s - 1 = 0 ?
00D0 28CE 00322 GOTO TM4LP ;No. Continue
00D1 0008 00323 RETURN ;Yes. Count end
00324
00325
00326 ;********************************************************
00327 ; END of LED flash control processing
00328 ;********************************************************
00329
00330 END
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 8
SYMBOL TABLE
LABEL VALUE
C 00000000
CNT100M 0000000E
CNT1M 0000000D
CNT1S 00000010
CNT500M 0000000F
CNT500U 0000000C
DC 00000001
EEADR 00000009
EECON1 00000088
EECON2 00000089
EEDATA 00000008
EEIE 00000006
EEIF 00000004
F 00000001
FSR 00000004
GIE 00000007
INDF 00000000
INIT 00000005
INTCON 0000000B
INTE 00000004
INTEDG 00000006
INTF 00000001
IRP 00000007
KEYSCAN 0000000C
NOT_PD 00000003
NOT_RBPU 00000007
NOT_TO 00000004
OPTION_REG 00000081
P00 000000FE
P01 000000FD
P02 000000FB
P03 000000F7
P04 000000EF
P05 000000DF
P06 000000BF
P07 0000007F
P10 0000007F
P11 000000BF
P12 000000DF
P13 000000EF
P14 000000F7
P15 000000FB
P16 000000FD
P17 000000FE
P20 0000007E
P21 000000BD
P22 000000DB
P23 000000E7
P24 000000DB
P25 000000BD
P26 0000007E
P30 000000FE
P31 000000FD
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 9
SYMBOL TABLE
LABEL VALUE
P32 000000FA
P33 000000F5
P34 000000EA
P35 000000D5
P36 000000AA
P37 00000055
P38 000000AB
P39 00000057
P3A 000000AF
P3B 0000005F
P3C 000000BF
P3D 0000007F
P40 00000000
P41 000000FF
P42 00000000
P43 000000FF
P44 00000000
P45 000000FF
P46 00000000
P47 000000FF
P48 00000000
PCL 00000002
PCLATH 0000000A
PORTA 00000005
PORTB 00000006
PS0 00000000
PS1 00000001
PS2 00000002
PSA 00000003
PTN0 00000017
PTN1 00000033
PTN2 0000004F
PTN3 00000068
PTN4 00000096
RA0 00000000
RA1 00000001
RA2 00000002
RA3 00000003
RA4 00000004
RBIE 00000003
RBIF 00000000
RD 00000000
RP0 00000005
RP1 00000006
STATUS 00000003
T0CS 00000005
T0IE 00000005
T0IF 00000002
T0SE 00000004
T100M 000000C0
T1M 000000B5
T1S 000000CC
T500M 000000C6
MPASM 02.40 Released LED.ASM 5-19-2000 23:58:29 PAGE 10
SYMBOL TABLE
LABEL VALUE
TM1LP1 000000B7
TM1LP2 000000B9
TM2LP 000000C2
TM3LP 000000C8
TM4LP 000000CE
TMR0 00000001
TRISA 00000085
TRISB 00000086
W 00000000
WR 00000001
WREN 00000002
WRERR 00000003
Z 00000002
_CP_OFF 00003FFF
_CP_ON 0000000F
_HS_OSC 00003FFE
_LP_OSC 00003FFC
_PWRTE_OFF 00003FFF
_PWRTE_ON 00003FF7
_RC_OSC 00003FFF
_WDT_OFF 00003FFB
_WDT_ON 00003FFF
_XT_OSC 00003FFD
__16F84A 00000001
MEMORY USAGE MAP ('X' = Used, '-' = Unused)
0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
00C0 : XXXXXXXXXXXXXXXX XX-------------- ---------------- ----------------
2000 : -------X-------- ---------------- ---------------- ----------------
All other memory blocks unused.
Program Memory Words Used: 207
Program Memory Words Free: 817
Errors : 0
Warnings : 0 reported, 0 suppressed
Messages : 0 reported, 2 suppressed
|
|
 |