⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gps.lst

📁 《51单片机应用开发案例精选配套源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
0161 93              228           MOVC A,@A+DPTR
0162 31B4            229           CALL WRITE2
0164 08              230           INC R0
                     231           
0165 E6              232           MOV A,@R0           ; 显示纬度的个位
0166 93              233           MOVC A,@A+DPTR
0167 31B4            234           CALL WRITE2
0169 08              235           INC R0
                     236     
016A 742E            237           MOV A,#2EH          ; 显示小数点 .        
016C 31B4            238           CALL WRITE2
016E 08              239           INC R0
                     240     
016F E6              241           MOV A,@R0           ; 显示纬度的十分位
0170 93              242           MOVC A,@A+DPTR
0171 31B4            243           CALL WRITE2
                     244           
0173 22              245           RET
                     246     
0174                 247     DISPLAY_SEARCH:
                     248     ;------------------
                     249     ;- 显示搜索状态
                     250     ;------------------
0174 3186            251           CALL LCD_INIT
0176 759080          252           MOV P1,#80H         ; 显示位置 
0179 319E            253           ACALL ENABLE 
017B 759001          254           MOV P1,#01H
017E 319E            255           CALL ENABLE
0180 900231          256           MOV DPTR,#TABLE0
A51 MACRO ASSEMBLER  GPS                                                                  06/23/2007 11:02:10 PAGE     5

0183 31A9            257           CALL WRITE1
0185 22              258           RET
                     259     
0186                 260     LCD_INIT:     
0186 75B0FF          261           mov p3,#0ffh 
0189 759001          262           MOV P1,#01H         ; 清除屏幕
018C 319E            263           ACALL ENABLE 
018E 759038          264           MOV P1,#38H         ; 8位点阵
0191 319E            265           ACALL ENABLE 
0193 75900F          266           MOV P1,#0FH         ; 开显示
0196 319E            267           ACALL ENABLE 
0198 759006          268           MOV P1,#06H         ; 移动光标
019B 319E            269           ACALL ENABLE 
                     270     
019D 22              271           RET
                     272     
019E                 273     ENABLE: ;送命令
019E C2B5            274         CLR RS
01A0 C2B6            275         CLR RW 
01A2 C2B7            276         CLR E 
01A4 31C1            277         ACALL DELAY 
01A6 D2B7            278         SETB E 
01A8 22              279         RET
                     280     
01A9                 281     WRITE1: ; 送字符串
01A9 7900            282         MOV R1,#00h
01AB                 283     A1:
01AB E9              284         MOV A,R1
01AC 93              285         MOVC A,@A+DPTR
01AD 31B4            286         CALL WRITE2
01AF 09              287         INC R1
01B0 B400F8          288         CJNE A,#00h,A1      ;  以00H做字符串结束标志
01B3 22              289         RET
                     290     
01B4                 291     WRITE2:   ; 送单个字符
01B4 F590            292         MOV P1,A
01B6 D2B5            293         SETB RS
01B8 C2B6            294         CLR RW
01BA C2B7            295         CLR E
01BC 31C1            296         CALL delay
01BE D2B7            297         SETB E
01C0 22              298         RET 
                     299     
01C1                 300     delay:  ; 延时子程序
01C1 7FFF            301         mov r7,#255
01C3 7EFF            302         d1:mov r6,#255 
01C5 DEFE            303         d2:djnz r6,d2
01C7 DFFA            304         djnz r7,d1
01C9 22              305         ret
                     306     
01CA                 307     delay1:
01CA 7FFF            308         mov r7,#255
01CC                 309     delay2:
01CC 7EFF            310         mov r6,#255
01CE DEFE            311         djnz r6,$
01D0 DFFA            312         djnz r7,delay2
01D2 22              313     ret
                     314     
                     315     
01D3                 316     Serial_RX_ISR:
                     317     ;-----------------------------------
                     318     ;     串口接收中断服务程序,需要在程序开始时在2FH处写入缓存区首地址
                     319     ;-----------------------------------
01D3 C0D0            320            PUSH PSW                    ; 程序状态字压栈
01D5 C001            321            PUSH 1                      ; R1压栈
                     322            
A51 MACRO ASSEMBLER  GPS                                                                  06/23/2007 11:02:10 PAGE     6

01D7 BC0006          323            CJNE R4,#0,ISR_1            ; 判断第0字节是否为0FFH
01DA E599            324            MOV A,SBUF
01DC B4FF49          325            CJNE A,#0FFH,ISR_OUT
01DF 0C              326            INC R4
01E0                 327     ISR_1:
01E0 BC0106          328            CJNE R4,#1,ISR_2            ; 判断第1字节是否为81H
01E3 E599            329            MOV A,SBUF
01E5 B48140          330            CJNE A,#81H,ISR_OUT
01E8 0C              331            INC R4
01E9                 332     ISR_2:
01E9 BC0206          333            CJNE R4,#2,ISR_3            ; 判断第2字节是否为0E8H
01EC E599            334            MOV A,SBUF
01EE B4E837          335            CJNE A,#0E8H,ISR_OUT
01F1 0C              336            INC R4
01F2                 337     ISR_3:
01F2 BC0306          338            CJNE R4,#3,ISR_4            ; 判断第3字节是否为03H
01F5 E599            339            MOV A,SBUF
01F7 B4032E          340            CJNE A,#03H,ISR_OUT
01FA 0C              341            INC R4
01FB                 342     ISR_4:
01FB BC0406          343            CJNE R4,#4,ISR_22            ; 判断第4字节是否为31H
01FE E599            344            MOV A,SBUF
0200 B43125          345            CJNE A,#31H,ISR_OUT
0203 0C              346            INC R4
0204                 347     ISR_22:
0204 BC160A          348            CJNE R4,#22,ISR_NEXT         ; 判断搜索到卫星的数量是否大于4
0207 E599            349            MOV A,SBUF
0209 9404            350            SUBB A,#4
020B 5002            351            JNC ISR_OK
020D D200            352            SETB 20H.0             ; 20h.0为1时表示GPS搜索卫星数小于4,GPS无法准确定位
020F                 353     ISR_OK:
020F C200            354            CLR 20H.0
0211                 355     ISR_NEXT:
0211 EC              356            MOV A,R4
0212 9435            357            SUBB A,#53            ; 将经度和纬度数据存入内存空间53-60
0214 400C            358            JC ISR_OTHER
0216 EC              359            MOV A,R4
0217 943D            360            SUBB A,#61
0219 5007            361            JNC ISR_OTHER
021B EC              362            MOV A,R4
021C F9              363            MOV R1,A
021D A799            364            MOV @R1,SBUF
021F 0C              365            INC R4
0220 800A            366            JMP ISR_OUT2
0222                 367     ISR_OTHER:
0222 0C              368            INC R4
0223 BC3702          369            CJNE R4,#55,ISR_OUT    ; 判断是否到一帧结束
0226 8004            370            JMP ISR_OUT2
0228                 371     ISR_OUT:
0228 C298            372            CLR RI                 ; 软件清除串口接收中断标志
022A 7C00            373            MOV R4,#0             ; 将R4清零
022C                 374     ISR_OUT2:
022C D001            375            POP 1                   ; R1 出栈
022E D0D0            376            POP PSW                ; 程序状态字出栈
0230 32              377            RETI    
                     378        
                     379     ;--S,E,A,R,C,H,I,N,G
0231 53454152        380     TABLE0: DB 53H,45H,41H,52H,43H,48H,49H,4EH,47H,00H
0235 4348494E                
0239 4700                    
                     381     ;-- 0,1,2,3,4,5,6,7,8,9
023B 30313233        382     TABLE1: DB 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
023F 34353637                
0243 3839                    
                     383     ;-- N,S,E,W
0245 4E534557        384     TABLE2: DB 4EH,53H,45H,57H 
A51 MACRO ASSEMBLER  GPS                                                                  06/23/2007 11:02:10 PAGE     7

                     385     END
A51 MACRO ASSEMBLER  GPS                                                                  06/23/2007 11:02:10 PAGE     8

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

A1 . . . . . . . .  C ADDR   01ABH   A   
B. . . . . . . . .  D ADDR   00F0H   A   
CLR_CYC. . . . . .  C ADDR   002FH   A   
COUNT_EW . . . . .  C ADDR   00CBH   A   
COUNT_NS . . . . .  C ADDR   0070H   A   
D1 . . . . . . . .  C ADDR   01C3H   A   
D2 . . . . . . . .  C ADDR   01C5H   A   
DELAY. . . . . . .  C ADDR   01C1H   A   
DELAY1 . . . . . .  C ADDR   01CAH   A   
DELAY2 . . . . . .  C ADDR   01CCH   A   
DISPLAY_EW . . . .  C ADDR   014DH   A   
DISPLAY_NS . . . .  C ADDR   0124H   A   
DISPLAY_SEARCH . .  C ADDR   0174H   A   
E. . . . . . . . .  B ADDR   00B0H.7 A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
EAST . . . . . . .  C ADDR   00DDH   A   
ENABLE . . . . . .  C ADDR   019EH   A   
ES . . . . . . . .  B ADDR   00A8H.4 A   
INIT . . . . . . .  C ADDR   0057H   A   
ISR_1. . . . . . .  C ADDR   01E0H   A   
ISR_2. . . . . . .  C ADDR   01E9H   A   
ISR_22 . . . . . .  C ADDR   0204H   A   
ISR_3. . . . . . .  C ADDR   01F2H   A   
ISR_4. . . . . . .  C ADDR   01FBH   A   
ISR_NEXT . . . . .  C ADDR   0211H   A   
ISR_OK . . . . . .  C ADDR   020FH   A   
ISR_OTHER. . . . .  C ADDR   0222H   A   
ISR_OUT. . . . . .  C ADDR   0228H   A   
ISR_OUT2 . . . . .  C ADDR   022CH   A   
LCD_INIT . . . . .  C ADDR   0186H   A   
MAIN . . . . . . .  C ADDR   003AH   A   
NEXT . . . . . . .  C ADDR   008EH   A   
NEXT1. . . . . . .  C ADDR   00ADH   A   
NEXT2. . . . . . .  C ADDR   00E7H   A   
NEXT3. . . . . . .  C ADDR   0106H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
PCON . . . . . . .  D ADDR   0087H   A   
PS . . . . . . . .  B ADDR   00B8H.4 A   
PSW. . . . . . . .  D ADDR   00D0H   A   
RI . . . . . . . .  B ADDR   0098H.0 A   
RS . . . . . . . .  B ADDR   00B0H.5 A   
RW . . . . . . . .  B ADDR   00B0H.6 A   
S. . . . . . . . .  C ADDR   0084H   A   
SBUF . . . . . . .  D ADDR   0099H   A   
SCON . . . . . . .  D ADDR   0098H   A   
SERIAL_RX_ISR. . .  C ADDR   01D3H   A   
SP . . . . . . . .  D ADDR   0081H   A   
START. . . . . . .  C ADDR   0025H   A   
TABLE0 . . . . . .  C ADDR   0231H   A   
TABLE1 . . . . . .  C ADDR   023BH   A   
TABLE2 . . . . . .  C ADDR   0245H   A   
TCON . . . . . . .  D ADDR   0088H   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TIMER1_INIT. . . .  C ADDR   0066H   A   
TMOD . . . . . . .  D ADDR   0089H   A   
WAIT . . . . . . .  C ADDR   004FH   A   
WRITE1 . . . . . .  C ADDR   01A9H   A   
WRITE2 . . . . . .  C ADDR   01B4H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -