📄 gpsdiv.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 + -