📄 timer675.lst
字号:
MPASM 4.00 Released TIMER675.ASM 5-28-2005 2:30:58 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ; one stupid timer :)
00002
00003 list p=12F629
00004 radix hex
00005 include P12F629.INC
00001 LIST
00002 ; P12F629.INC Standard Header File, Version 1.04 Microchip Technology, Inc.
00258 LIST
00006 errorlevel -302
2007 3F94 00007 __CONFIG _CPD_OFF&_CP_OFF&_BODEN_OFF&_MCLRE_OFF&_WDT_OFF&_INTRC_OSC_NOCLKOUT
00008
00009
00010 ; the temporary files
00000020 00011 W_TEMP equ 0x20 ; temporary w file
00000021 00012 STATUS_TEMP equ 0x21
00000022 00013 PCLATH_TEMP equ 0x22
00014
00015 ; play files NONE ;)
00016
0000 00017 start org 0x0000 ; reset vector
0000 0000 00018 nop ; allow debugger
0001 0000 00019 nop
0002 2805 00020 goto init ; goto initblock
00021
00022 ; ISR XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
00023
0004 00024 intr org 0x0004 ; interrupt vector
0004 2800 00025 goto start ; no int logic, so if you got here, your pbm
00026
00027 ; INIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
00028
0005 138B 00029 init bcf INTCON, GIE ; disable all interrupts
00030
0006 1683 00031 bsf STATUS, RP0 ; Bank 1
0007 23FF 00032 call 3FFh ; Get the cal value
0008 0090 00033 movwf OSCCAL ; Calibrate
0009 1283 00034 bcf STATUS, RP0 ; Bank 0
00035
000A 1283 00036 bcf STATUS, RP0 ;
000B 1303 00037 bcf STATUS, RP1 ; bank0
000C 0185 00038 clrf GPIO ; clear port
000D 3007 00039 movlw 0x07 ; all digital
000E 0099 00040 movwf CMCON
00041
000F 3000 00042 movlw 0x00
0010 0085 00043 movwf GPIO ;
00044
0011 1683 00045 bsf STATUS, RP0 ; bank1
00046
00047
0012 30FD 00048 dirset movlw b'11111101' ; all inputs but GP1
0013 0085 00049 movwf TRISIO ; configure them
00050
MPASM 4.00 Released TIMER675.ASM 5-28-2005 2:30:58 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00051 ;anaset movlw b'00000000' ; all digital
00052 ; movwf ANSEL ;
00053
0014 3000 00054 movlw b'00000000' ; enable no IOCB
0015 0096 00055 movwf IOCB ;
00056
0016 1283 00057 bcf STATUS, RP0 ; return to
0017 1303 00058 bcf STATUS, RP1 ; bank0
00059
00060 ; movlw b'00000000' ; disable ADC,
00061 ; movwf ADCON0 ;
00062
00063
0018 3028 00064 movlw b'00101000' ;
0019 008B 00065 movwf INTCON ; enable TMR0 and IOCB
00066
001A 1683 00067 bsf STATUS, RP0 ; bank1
001B 3000 00068 movlw b'00000000' ;
001C 008C 00069 movwf PIE1 ;
001D 1283 00070 bcf STATUS, RP0 ; return to
001E 1303 00071 bcf STATUS, RP1 ; bank0
00072
001F 3030 00073 movlw b'00110000' ;
0020 0090 00074 movwf T1CON ; timer, not enabled yet, 8x prescaler
00075
0021 0064 00076 clrwdt ;Clear WDT
0022 0181 00077 clrf TMR0 ;and tmr0
00078
0023 1683 00079 bsf STATUS, RP0 ; bank1
0024 3045 00080 movlw b'01000101' ; 64x prescaler, to TMR0 as timer, GP2 positive interr
0025 0081 00081 movwf OPTION_REG ;
0026 303C 00082 movlw b'00111100' ; WPU
0027 0095 00083 movwf WPU ;
0028 1283 00084 bcf STATUS, RP0 ; return to
0029 1303 00085 bcf STATUS, RP1 ; bank0
00086
00087
00088 ; bsf INTCON, GIE ; No interr logic
00089
00090
002A 100B 00091 mloop bcf INTCON, TMR1IF
002B 3000 00092 movlw 0x00 ;
002C 008E 00093 movwf TMR1L
002D 3000 00094 movlw 0x00 ;
002E 008F 00095 movwf TMR1H ;
002F 1C0B 00096 btfss INTCON, TMR1IF
0030 282F 00097 goto $-1
00098
0031 100B 00099 bcf INTCON, TMR1IF
0032 3000 00100 movlw 0x00 ;
0033 008E 00101 movwf TMR1L
0034 3000 00102 movlw 0x00 ;
0035 008F 00103 movwf TMR1H ;
MPASM 4.00 Released TIMER675.ASM 5-28-2005 2:30:58 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0036 1C0B 00104 btfss INTCON, TMR1IF
0037 2836 00105 goto $-1
00106
0038 100B 00107 bcf INTCON, TMR1IF
0039 3000 00108 movlw 0x00 ;
003A 008E 00109 movwf TMR1L
003B 3000 00110 movlw 0x00 ;
003C 008F 00111 movwf TMR1H ;
003D 1C0B 00112 btfss INTCON, TMR1IF
003E 283D 00113 goto $-1
00114
003F 100B 00115 bcf INTCON, TMR1IF
0040 3000 00116 movlw 0x00 ;
0041 008E 00117 movwf TMR1L
0042 3000 00118 movlw 0x00 ;
0043 008F 00119 movwf TMR1H ;
0044 1C0B 00120 btfss INTCON, TMR1IF
0045 2844 00121 goto $-1
00122
0046 1485 00123 bsf GPIO, 0x01
00124
0047 0000 00125 endch nop ;
0048 2847 00126 goto endch
00127
00128
00129
00130 end
MPASM 4.00 Released TIMER675.ASM 5-28-2005 2:30:58 PAGE 4
SYMBOL TABLE
LABEL VALUE
ADIE 00000006
ADIF 00000006
C 00000000
CAL0 00000002
CAL1 00000003
CAL2 00000004
CAL3 00000005
CAL4 00000006
CAL5 00000007
CINV 00000004
CIS 00000003
CM0 00000000
CM1 00000001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -