?? gpsdiv.lst
?? 一個基于XMODEM協議的下載字庫的程序
?? LST
字號:
??
C51 COMPILER V7.50 GPSDIV 06/22/2006 09:45:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE GPSDIV
OBJECT MODULE PLACED IN .\myproject\Gpsdiv.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Gpsdiv.c LARGE OPTIMIZE(5,SPEED) BROWSE DEBUG OBJECTEXTEND OBJECT(.\myproje
-ct\Gpsdiv.obj)
line level source
1
2 #define UART_GLOBAL
3 #include "config.h"
4
5 static unsigned char send_byte_over;
6 /*******************************************************************************
7 程序名: vUART_Init
8 說 明: UART初始化程序,包括設置16C554和設置NMEA格式 ,115200
9 ********************************************************************************/
10 void vGPS_Init(void)
11 {
12 1 EA = 0;
13 1 TR1 = 0;
14 1 ET1 = 0;
15 1 PCON = 0x80; //double
16 1 TMOD &= 0x0F;
17 1 TMOD |= 0x20; //timer 1 , mode 2
18 1 TH1 = PERIODH1;
19 1 TL1 = PERIODL1;
20 1
21 1 SCON = 0x50; //SERIAL 1, RECE ENABLE
22 1 ES = 1; //ENABLE UART INT
23 1 PS = 0; //PRIORITY
24 1 //--------------
25 1 chRece_Over = 0;
26 1 nBlock_Count = 1;
27 1 chBlock_Over = 0;
28 1 chBlock_Start= 0;
29 1 rUARTRece.chLen = 0;
30 1 //----------
31 1 TR1 = 1;
32 1 EA = 1;
33 1
34 1 vSoftTimer_Run(UART_NAK, UART_NAK_TIME, vUART_TimeOut_Nak); //沒有應答, 重復發送
35 1 }
36 /*******************************************************************************
37 程序名: vUART_Int
38 說 明: UART中斷服務程序,將接收到的數據保存到滾筒中
39 ********************************************************************************/
40 void vUART_Int (void) interrupt SIO_VECTOR using 1
41 {
42 1 unsigned char chTemp;
43 1 if(RI)
44 1 {
45 2 chTemp = SBUF;
46 2 ///////////////////////////////////////////////////////////////////////////
47 2 switch(rUARTRece.chLen)
48 2 {
49 3 case 0:
50 3 if(chTemp == 0x01) //一條數據開始
51 3 chBlock_Start = 0x01;
52 3 else if(chTemp == 0x04) //文件發送結束
53 3 chRece_Over = 0x01;
54 3 break;
C51 COMPILER V7.50 GPSDIV 06/22/2006 09:45:45 PAGE 2
55 3 case 131:
56 3 rUARTRece.chBuff[rUARTRece.chLen-1] = chTemp;
57 3 rUARTRece.chLen = 0x00;
58 3 chBlock_Over = 0x01;
59 3 chBlock_Start = 0x00;
60 3 break;
61 3 default: rUARTRece.chBuff[rUARTRece.chLen-1] = chTemp;
62 3 }
63 2 if(chBlock_Start)
64 2 rUARTRece.chLen++;
65 2 RI = 0;
66 2 }
67 1 if(TI)
68 1 {
69 2 send_byte_over=1;
70 2 TI=0;
71 2 }
72 1 }
73 /*******************************************************************************
74 chGPS_SendChar
75 說 明:從GPS滾筒中取出一個字符
76 ********************************************************************************/
77 void vGPS_SendChar(unsigned char chTemp)
78 {
79 1 send_byte_over = 0;
80 1
81 1 SBUF = chTemp;
82 1
83 1 while(!send_byte_over) ; //如果沒有發送完畢,等
84 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 214 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 207 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -