| Home Pic in Greek Παραδείγματα χρήσης Pic Εφφέ με 8 Led Λίστα εντολών προγράμματος |
Εφφέ με 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