📄 spm-02.lst
字号:
0000006C 00146 FINH_ULMT_HB
MPASM 5.04 SPM-02.ASM 11-5-2008 16:20:42 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00147 ;FINL_LIMIT Low-Level Register
0000006D 00148 FINL_LLMT_LB
0000006E 00149 FINL_LLMT_HB
0000006F 00150 FINL_ULMT_LB
00000070 00151 FINL_ULMT_HB
00152 ENDC
00153
00154 ;MODE_STATUS"MODE_STATUS" (x/x/x/x/x/FIN/MEA/STD)
00000001 00155 STD EQU H'01' ;B'0000 0001'
00000002 00156 MEA EQU H'02' ;B'0000 0010'
00000004 00157 FIN EQU H'04' ;B'0000 0100'
00158
00159 ;"LABEL_STATUS" (x/x/FINL/FINH/MEAL/MEAH/STDL/STDH)
00000001 00160 STDH EQU H'01' ;B'0000 0001'
00000002 00161 STDL EQU H'02' ;B'0000 0010'
00000004 00162 MEAH EQU H'04' ;B'0000 0100'
00000008 00163 MEAL EQU H'08' ;B'0000 1000'
00000010 00164 FINH EQU H'10' ;B'0001 0000'
00000020 00165 FINL EQU H'20' ;B'0010 0000'
00166 ;Port Designation
00000000 00167 RC0 EQU H'00' ;RC0 Port Designation
00000001 00168 RC1 EQU H'01' ;RC1 Port Designation
00000002 00169 RC2 EQU H'02' ;RC2 Port Designation
00170
00171
00172
00173 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00174 ; Program Start
00175 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00176
0000 00177 ORG 0x00 ;Reset Vector
0000 2805 00178 GOTO INIT ;Initial Process
0004 00179 ORG 0x04 ;Interrupt Vector
0004 2020 00180 CALL INT ;Interruption Process
00181
00182
00183
00184 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00185 ; Initial Process
00186 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00187
0005 00188 INIT
00189 ;*************** Port Initialization ***************
0005 1683 00190 BSF STATUS,RP0 ;Change to Bank1
00191
0006 3003 00192 MOVLW H'03' ;B'0000 0011' = D'3'
0007 0085 00193 MOVWF TRISA ;"Wreg" --> "TRISA"
00194 ;Set RA0 & RA1 to Input
mode, RA2 <==> RA7 to Output mode
00195
0008 3000 00196 MOVLW H'00' ;B'0000 0000' = D'0'
0009 0086 00197 MOVWF TRISB ;"Wreg" --> "TRISB"
00198 ;Set PB0 <==> RB7 to Out
MPASM 5.04 SPM-02.ASM 11-5-2008 16:20:42 PAGE 5
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
put mode
00199
000A 3081 00200 MOVLW H'81' ;B'1000 0001' = D'129'
000B 0087 00201 MOVWF TRISC ;"Wreg" --> "TRISC"
00202 ;Set RC0 & RC7 to Input
mode, Other to Output mode
00203
000C 3000 00204 MOVLW H'00' ;B'0000 0000' = D'0'
000D 0088 00205 MOVWF TRISD ;"Wreg" --> "TRISD"
00206 ;Set PORTD to Output mod
e
00207
000E 3000 00208 MOVLW H'00' ;B'0000 0000' = D'0'
000F 0089 00209 MOVWF TRISE ;"Wreg" --> "TRISE"
00210 ;Set PORTE to Output mod
e
00211
0010 3024 00212 MOVLW H'24' ;B'0010 0100' = D'36' (TXEN = 1, BRGH =
1)
0011 0098 00213 MOVWF TXSTA ;"Wreg" --> "TXSTA"
00214
0012 3081 00215 MOVLW H'81' ;B'1000 0001' = D'129' (9600bps)
0013 0099 00216 MOVWF SPBRG ;"Wreg" --> "SPBRG"
00217
0014 1283 00218 BCF STATUS,RP0 ;Change to Bank0
00219
0015 3090 00220 MOVLW H'90' ;B'1001 0000' = D'144' (SPEN = 1, CREN =
1)
0016 0098 00221 MOVWF RCSTA ;"Wreg" --> "RCSTA"
00222
00223
00224 ;*************** A/D Converter Initialization ***************
0017 3081 00225 MOVLW H'81' ;B'1000 0001' = D'129' (ADCS = 10, CHS =
AN0 ADON = ON)
0018 009F 00226 MOVWF ADCON0 ;"Wreg" --> "ADCON0"
00227
0019 3089 00228 MOVLW H'89' ;B'1000 1001' = D'137' (ADCS = 10, CHS =
AN1 ADON = ON)
001A 009F 00229 MOVWF ADCON0 ;"Wreg" --> "ADCON0"
00230
001B 1683 00231 BSF STATUS,RP0 ;Change to Bank1
00232
001C 3084 00233 MOVLW H'84' ;B'1000 0100' = D'132' (ADFM = 1, PCFG =
0100)
001D 009F 00234 MOVWF ADCON1 ;"Wreg" --> "ADCON1"
00235 ;(RA0 & RA1 & RA3 are An
alog Input,
00236 ;
Another is Digital I/O mode)
001E 1283 00237 BCF STATUS,RP0 ;Change to Bank0
00238
001F 2828 00239 GOTO START
00240
MPASM 5.04 SPM-02.ASM 11-5-2008 16:20:42 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00241
00242
00243 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00244 ; Interruption Process
00245 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00246
0020 00247 INT
0020 00A0 00248 MOVWF W_TEMP ;"Wreg" --> "W_TEMP"
0021 0803 00249 MOVF STATUS,W ;"STATUS" --> "Wreg"
0022 00A1 00250 MOVWF STATUS_TEMP ;"Wreg" --> "STATUS_TEMP"
00251
0023 0821 00252 MOVF STATUS_TEMP,W ;"STATUS_TEMP" --> "Wreg"
0024 0083 00253 MOVWF STATUS ;"Wreg" --> "STATUS"
0025 0EA0 00254 SWAPF W_TEMP,F ;"W_TEMP" B'xxxx yyyy' --> "W_TEMP" B'yy
yy xxxx'
0026 0E20 00255 SWAPF W_TEMP,W ;"W_TEMP" B'xxxx yyyy' --> "Wreg" B'yyyy
xxxx'
00256
0027 0009 00257 RETFIE
00258
00259
00260
00261 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00262 ; Main Process
00263 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00264
0028 00265 START
00266 ;*************** Initial Value Setting ***************
0028 0186 00267 CLRF PORTB ;RB0 <==> RB7 default to Low
0029 0187 00268 CLRF PORTC ;RC0 <==> RC7 default to Low
002A 0188 00269 CLRF PORTD ;RD0 <==> RD7 default to Low
00270 ;Clear of Temporary Register
002B 01A0 00271 CLRF W_TEMP
002C 01A1 00272 CLRF STATUS_TEMP
00273 ;Clear of Send Temporary Register
002D 01A2 00274 CLRF SEND_TEMP
00275 ;Clear of Wait Count Register
002E 01A3 00276 CLRF WAIT_CNT0
002F 01A4 00277 CLRF WAIT_CNT1
0030 01A5 00278 CLRF WAIT_CNT2
00279 ;Clear of Status Register
0031 01A6 00280 CLRF MODE_STATUS
0032 01A7 00281 CLRF JUDG_STATUS
0033 01A8 00282 CLRF LABEL_STATUS
00283 ;Clear of Number Character Register
0034 01A9 00284 CLRF NUM_CHAR_010
0035 01AA 00285 CLRF NUM_CHAR_001
00286 ;Clear of Hexadecimal Temporary Register
0036 01AB 00287 CLRF HEX_TEMP
00288 ;Clear of Conversion Temporary Register
0037 01AC 00289 CLRF CONV_TEMP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -