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

📄 gps.asm

📁 一个自行设计的GPS的出租车使用的程序源代码。
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;*******************************************************
; 文件号  : TR2002LCD                                 *
; 标  题  : 集成车载终端 V1.0                         *
; 文件名  : TR2002LCD.ASM                             *
; 设计日期: 2003年2月21日                             *
; 备    注: 为广州宏达兴通讯公司  修改 不带GPS显示界面*
;            按键循环移动                              *
;*******************************************************
;特殊寄存器定义区
EC              BIT     IE.6
S1CON		EQU 	0D8H
CR2		BIT     S1CON.7
ENS1    	BIT     S1CON.6
STA     	BIT     S1CON.5
STO		BIT	S1CON.4
SI		BIT 	S1CON.3
AA		BIT 	S1CON.2
CR1		BIT	S1CON.1
CR0		BIT 	S1CON.0
S1DAT		EQU     0DAH	;接收和发送数据
S1IST		EQU	0DCH	;用于硬件I2C总线的硬件设定、使能、启动,结束
S1ADR		EQU	0DBH	;I2C用于存放本机从地址
S1STA		EQU	0D9H	;指示I2C总线的操作状态码,高五位有效
S0CON		EQU   	98H;
FE              BIT   	S0CON.7	;
CCON    	EQU   	0C0H	;
CF       	BIT   	CCON.7	;
CR      	BIT   	CCON.6	;
CCF4   		BIT   	CCON.4	;
CCF3   		BIT   	CCON.3	;
CCF2   		BIT   	CCON.2	;
CCF1   		BIT   	CCON.1	;
CCF0   		BIT   	CCON.0	;
CMOD    	EQU   	0C1H;
CCAPM0  	EQU   	0C2H;
CCAPM1  	EQU   	0C3H;
CCAPM2  	EQU   	0C4H;
CCAPM3  	EQU   	0C5H;
CCAPM4  	EQU   	0C6H;
CL      	EQU   	0E9H;
CCAP0L  	EQU   	0EAH;
CCAP1L  	EQU   	0EBH;
CCAP2L  	EQU   	0ECH;
CCAP3L  	EQU   	0EDH;
CCAP4L  	EQU   	0EEH;
CH      	EQU   	0F9H;
CCAP0H  	EQU   	0FAH;
CCAP1H  	EQU   	0FBH;
CCAP2H  	EQU   	0FCH;
CCAP3H  	EQU   	0FDH;
CCAP4H  	EQU   	0FEH;
AUXR		EQU 	8EH
AUXR1		EQU 	0A2H;
WDTRST 		EQU     0A6H;
T2CON           EQU     0C8H;
T2MOD           EQU     0C9H
TCLK            BIT     T2CON.4;
RCLK   		BIT     T2CON.5;
IPH             EQU     0B7H
;------------------------------------------------------------------------
MAXNUMH		EQU   00H	    ;保存运行信息最大条数的高位
MAXNUML		EQU   0FDH          ;保存运行信息最大条数的低位
CMAXNUMH	EQU   00H	    ;保存运行信息最大条数的高位
CMAXNUML	EQU   0E1H          ;保存运行信息最大条数的低位
ICGPSADDR       EQU   0020H         ;保存GPS的开始地址
ICCALLADDR      EQU   0221H         ;保存固定电话的开始地址
ICGMESSADDR     EQU   0100H         ;保存固定短语的开始地址
BASTL0          EQU   099H          ;TL0= 99H
BASTH0          EQU   0F1H          ;TH0=0F1H  11.059M  晶振 CT2 2MS 定时
EEPRADR1        EQU   0A0H          ;IC卡 SEEPROM 块地址
EEPRADR2        EQU   0A2H          ;内部EEPROM1的块地址
EEPRADR3	EQU   0A6H	    ;内部EEPROM2的块地址
KZERO           EQU   00H           ;数字0键
KONE            EQU   01H           ;数字1键
KTWO            EQU   02H           ;数字2键
KTHREE          EQU   03H           ;数字3键
KFOUR           EQU   04H           ;数字4键
KFIVE           EQU   05H           ;数字5键
KSIX            EQU   06H           ;数字6键
KSEVEN          EQU   07H           ;数字7键
KEIGHT          EQU   08H           ;数字8键
KNINE           EQU   09H           ;数字9键
KMENU           EQU   0AH           ;菜单键
KUP             EQU   0BH           ;上翻页键
KDOWN           EQU   0CH           ;下翻页键
KCANCEL         EQU   0DH           ;取消键
KENTER          EQU   0EH           ;确定键
EMPTYSTAVLU     EQU   60H           ;空车
CARRYSTAVLU     EQU   62H           ;载客
LINE0           EQU   0             ; 液晶行值定义
LINE1           EQU   1
LINE2           EQU   2
LINE3           EQU   3
LINE4           EQU   4
COLU0           EQU   0             ; 液晶列值定义
COLU1           EQU   1
COLU2           EQU   2
COLU3           EQU   3
COLU4           EQU   4
COLU5           EQU   5
COLU6           EQU   6
COLU7           EQU   7
COLU8           EQU   8
COLU9           EQU   9
COLU10          EQU   10             ; 液晶列值定义
COLU11          EQU   11
COLU12          EQU   12
COLU13          EQU   13
COLU14          EQU   14
COLU15          EQU   15
COLU16          EQU   16
COLU17          EQU   17
COLU18          EQU   18
COLU19          EQU   19
;-------------------------------------------------
;输入输出端口定义
;-------------------------------------------------
ADRI_0	   	BIT     P1.0    ;串口数据发送[相对CPU]地址控制
ADRI_1  	BIT     P1.1    ;串口数据发送[相对CPU]地址控制
ADRO_0		BIT	P1.2    ;串口数据接收[相对CPU]地址控制
ADRO_1		BIT     P1.3    ;串口数据接收[相对CPU]地址控制
BUSY            BIT   	P1.5    ;
REQ             BIT   	P1.4    ;IC卡插卡标志 (低)

BKLED           BIT     P2.7    ;液晶背光控制(低)
CSTATUS		BIT	P2.6	;汽车状态 =1时,空车;=0为重车
MONITOR		BIT	P2.5	;监听
TTS_WAKEUP      BIT	P2.4    ;提示音
MUTE		BIT 	P2.3    ;静音控制
LOCK2		BIT	P2.2    ;=1:开锁|=0:锁车  
LOCK1		BIT	P2.1    ;=1:开锁|=0:锁车
;JUMP1		BIT	P2.0

BUZZER          BIT   	P3.6    ;蜂鸣器(低)
PTT             BIT   	P3.5
KEY		BIT 	P3.4	;按键扫描
PTTH		BIT	P3.3	;PTT IN
WARN		BIT 	P3.2	;报警输入
ICCARD          BIT     P2.0    ;IC卡插卡标志 (低)
;-------------------------------------------------
; 片内RAM 位地址
;-------------------------------------------------
DEALYMUSICBIT   BIT     29H     ;加入提示音延时标志位
KEYPOSHBIT      BIT     30H     ;
OUTNETBIT	BIT	31H	;脱网标志
CHECKPOSBIT     BIT     32H     ;电子围栏
FIRSTSCANSTA    BIT     33H     ;第一次扫描汽车的状态值;第二次扫描时如是重车提示
DOWNLOADICBIT   BIT     34H     ;下载卡
KEYPOSOKBIT     BIT     35H
RUNAGAINBIT	BIT     36H     ;第一次运行控制的标志位,第二次不运行;
SAVEGPSBIT	BIT     37H	;保存GPS标志位
RDEPGPSOKBIT	BIT	38H     ;读完一帧EPPROM中的GPS数据结束
RDEPGPSENDBIT   BIT	39H	;读EPPROM的GPS数据结束标志位
TXEPGPSBIT      BIT	3AH	;读EPPROM的GPS数据并发送的标志位
NCIRCLEBIT      BIT     3BH     ;按键循环移动标志

OVERRANGEBIT    BIT     3CH     ;越界图标
EEPROM1OKBIT	BIT	3DH	;EEPROM1正常与否标志	=0正常 ;=1不正常
EEPROM2OKBIT	BIT	3EH	;EEPROM2正常与否标志	=0正常 ;=1不正常
LCDOKBIT	BIT     3FH	;LCD正常与否标志	=0正常 ;=1不正常
RXBITG		BIT	40H	;开始接收GPS数据
RXBITF		BIT	41H	;开始接收FC201数据
RXGPSOKBIT	BIT	42H	;接收到一幀GPS数据
RXFC201OKBIT	BIT	43H	;接收到一幀FC201数据

DGPSOKBIT	BIT	44H     ;液晶显示GPS数据标志
FGPSOKBIT	BIT	45H     ;发送到中心的GPS数据就绪标志
AUTOLEDBIT      BIT	46H
BKLEDBIT        BIT     47H     ;背光位标志,1为有
KIC             BIT     48H     ;IC卡位置 0=不到位  1=到位
HVICBIT         BIT     49H     ;IC卡位置有输入位标志
NOICBIT         BIT     4AH     ;IC卡位置无输入位标志
READICBIT       BIT     4BH     ;需读IC卡内容位标志
UPDATEICBIT     BIT     4CH     ;更新固定信息标志

RAMTROM         BIT     4DH     ;显示菜单项是从RAM=0或ROM=1
DFROMBIT        BIT     4EH     ;=1,液晶显示字符串在ROM,=0,在RAM
HVNUMKEYBIT     BIT     4FH     ;对快捷数字键处理
DISDLYBIT       BIT     50H     ;当其为1时,显示状态切换
REFRESHBIT      BIT     51H     ;是否需要刷新标志,=1需要刷新,=0不需要刷新
REALGPSBIT      BIT     52H     ;实时GPS数据

SCANBIT         BIT     53H     ;检测到有键按下
INSCANBIT	BIT	54H	;正在扫描
SCANVHBIT	BIT	55H	;扫描高电平OK标志
KEYDNBIT	BIT 	56H	;有键按下标志
KEYUPBIT	BIT	57H	;按键松开标志
KEYOK           BIT     58H     ;按键有效标志

ALARMBIT        BIT     59H     ;接收到CDPD新数据报响位标志
EXITBIT         BIT     5AH     ;子程序退出位标志(时间转换子程序用)

INTSYS          BIT     5BH     ;开机系统设置位
TOINTSYS        BIT     5CH     ;系统菜单已经启动
TONORMAL        BIT     5DH     ;已经进入正常工作菜单模式
NORMALFIRST     BIT     5EH     ;是否已经进入工作菜单一级菜单
NASECMENU       BIT     5FH     ;设置二级子菜单菜单状态
NATHIRMENU      BIT     60H     ;设置三级子菜单菜单状态
NAFORMENU       BIT     61H
PageCH          BIT     62H     ;显示页面更换
INMESSSHOWBIT   BIT     63H      
GPSMODBIT 	BIT	64H	;显示GPS图标标志位
RADIOMODBIT	BIT	65H     ;显示电台图标标志位
SHOWSMESSBIT    BIT	66H	;显示短信标志位
CALLORDERBIT    BIT     67H
WELINPUTBIT     BIT     68H
RXMESSOKBIT     BIT     69H     ;接收短信OK标志位
LESSBIT         BIT     6AH	;判断大小
ACK		BIT	6BH	;EEPROM读写成功标志位
INIMESSBIT	BIT	6CH	;初始化短信菜单项
DRIVERICBIT     BIT     6DH     ;司机身份卡
CHECKWARNBIT    BIT     6EH     ;报警扫描标志位;=1:报警被触发
AFFIRMWARNBIT   BIT     6FH     ;报警确认标志位;=1:确认报警
RXXDJOKBIT      BIT     70H     ;接收计价器数据一帧结束标志位
RXXDJBIT	BIT     71H     ;
HAVNUMKEYBIT    BIT     72H     ;快捷键按下标志
OPENUMODEBIT	BIT     73H     ;打开单元的工作模式标志位:=1定时打开单元;=0:不定时的打开单元
CALLNUMODDBIT   BIT     74H     ;电话号码位数
INREQBIT        BIT     75H     ;请求通话界面
INDIALBIT       BIT     76H     ;输入电话号码界面

CARSTATUS       EQU     2FH     ;汽车各个控制状态记录值
WARNBIT         BIT     7FH     ;报警标志位      	=1:报警; =0:常态
CARKZBIT        BIT     7EH     ;空车或重车标志位	=1:重车;=0:空车
LOCKBIT         BIT     7DH     ;锁车标志位      	=1;锁车;=0:解锁
OCUNITBIT       BIT     7CH	;打开或关闭单元标志位   =1:关闭;=0:打开
KARADBIT        BIT     7BH	;枪毙或复活电台标志位   =1:枪毙;=0:复活
LISTENBIT       BIT     7AH	;监听或不监听           =1:监听;=0:常态
TRACKBIT        BIT     79H	;跟踪或停止             =1:跟踪;=0:常态
JUMPRADBIT      BIT     78H	;跳台                   =1:跳台;=0:常态
STACHGBIT       BIT     77H     ;汽车控制发生变化标志位 =1:变化;=0:常态
;-------------------------------------------------
; 片内ERAM存 #0000H-1FFFH
;-------------------------------------------------
TEMPBUFF	EQU	0000H	 ;缓冲处理空间[128字节]
MENUSTATUS      EQU     0000H    ;菜单状态保存
FIRMENUADDRH    EQU     0080H    ;存储菜单地址高位
FIRMENUADDRL    EQU     0081H    ;存储菜单地址低位
FIRMENUITEM     EQU     0082H    ;几个子菜单项
FIRSUBMENUPN    EQU     0083H    ;当前菜单指针指向1
FIRMENUHEADH    EQU     0084H    ;菜单头高地址
FIRMENUHEADL    EQU     0085H    ;菜单头低地址
FIRMENUPOS      EQU     0086H    ;菜单内容位置

SECMENUADDRH    EQU     0087H    ;存储菜单地址高位
SECMENUADDRL    EQU     0088H    ;存储菜单地址低位
SECMENUITEM     EQU     0089H    ;几个子菜单项
SECSUBMENUPN    EQU     008AH    ;当前菜单指针指向1
SECMENUHEADH    EQU     008BH    ;菜单头高地址
SECMENUHEADL    EQU     008CH    ;菜单头低地址
SECMENUPOS      EQU     008DH    ;菜单内容位置

THIMENUADDRH    EQU     008EH    ;存储菜单地址高位
THIMENUADDRL    EQU     008FH    ;存储菜单地址低位
THIMENUITEM     EQU     0090H    ;几个子菜单项,两个为一页
THISUBMENUPN    EQU     0091H    ;当前菜单指针指向1
THIMENUHEADH    EQU     0092H    ;菜单头高地址
THIMENUHEADL    EQU     0093H    ;菜单头低地址
THIMENUPOS      EQU     0094H    ;菜单内容位置

GPSLON		EQU	00A0H	;经度(8个字节ASC)
GPSLAT		EQU	00A8H	;纬度(8个字节ASC)
GPSSPD		EQU	00B0H	;速度(4个字节ASC)
GPSDEG		EQU	00B4H	;方向(4个字节ASC)
GPSHGH		EQU	00B8H	;高度(8个字节ASC)
GPSTIME		EQU 	00C0H	;时间(12个字节ASC)
GPSTIMED 	EQU	00D0H	;时间(12个字节ASC) 北京时间
PEOPLECOUNT	EQU	00E0H   ;人数(1个字节)
ICSTATUS	EQU	00E1H 	;显示状态1(1个字节)
STATUSVALUE	EQU	00E2H   ;显示状态2(1个字节)
TAXISTATUS 	EQU	00E3H	;状态信息(1个字节)
TAXISTATUSBC    EQU     00E4H   ;状态备用信息(1个字节)

DGPSLON		EQU	00F0H	;经度(4个字节BCD)
DGPSLAT		EQU	00F4H	;纬度(4个字节BCD)
DGPSSPD		EQU	00F8H	;速度(2个字节BCD)
DGPSDEG		EQU	00FAH	;方向(2个字节BCD)
DGPSHGH		EQU	00FCH	;高度(4个字节BCD)
DGPSTIME	EQU 	0100H	;时间(6个字节BCD)    DDMMYYHHMMSS


TRACKTIME	EQU	0106H	;跟踪时间间隔 [2个字节]
TRACKNUM 	EQU	0108H	;跟踪次数[2个字节]
FCTEMPSTR	EQU	010AH	;暂寄存器[4个字节]


FC201HEAD	EQU	0120H	;FC201发送幀头(16个字节)
TXFCBUFF	EQU 	0130H	;FC201发送缓冲区(32个字节)
TAXIDATA	EQU	0150H	;出租车计费信息[12]

Port0_RxBUFF   	EQU     0180H   ;FC201接收缓冲区的起始地址(共128个字节)
Port1_RxBUFF   	EQU     0200H  	;GPS接收缓冲区的起始地址(共256个字节)
Port2_RxBUFF   	EQU     0300H   ;计价器数据接收缓冲区的起始地址(共128个字节)
MESSBUFF	EQU	0380H	;短信显示缓冲区(共128个字节)

TRACKTIMEBC     EQU     0520H   ;跟踪时间间隔备份
TRACKNUMBC      EQU     0522H   ;跟踪次数备份

CALLRAM  	EQU	0530H	;电话号码数

OPENUNITTIME    EQU     0540H   ;定时单元的定时时间,以10秒为一个记时单位
OPENDTIME	EQU     0541H   ;定时=10秒装入值	

TEMPRAM1        EQU     0542H
TEMPRAM2        EQU     0543H
NOICTIME        EQU     0544H   ;无卡时间计数
HVICTIME        EQU     0545H   ;有卡时间计数
NEWMESSCOUNT    EQU     0546H   ;接收到新短信的计数:如收到一短信,未能查看[接动键盘],计一次
WARNBMPBYTE     EQU     0547H   ;报警中心回应图标标志字节:=EEH,接收到报警回应,=FFH,常态
U_NDEALYNUS     EQU     0548H   ;提示音延时
DATERAM         EQU     0550H   ;16个字节
TEMPCALLSTR     EQU     0560H   ;重拔号码缓冲区
;-------------------------------车辆信息
CARnumber       EQU     0600H   ;汽车号码[8个字节]
XDJID           EQU     0608H   ;计价器ID[8个字节]
DRIVERID        EQU     0610H   ;司机ID[8个字节]
XDJSIMPLEM      EQU     0618H   ;本次营业单价[2个字节]
XDJmileage      EQU     061AH   ;本次计价器营业里程[3个字节]
XDJtime         EQU     0620H   ;计时时间[3个字节]
XDJmoney        EQU     0623H   ;本次营业金额[3个字节]
CEPTmileage     EQU     0626H   ;空车里程[3个字节]
CARcount        EQU     0629H   ;车次[2个字节]
PORT2RX_PN      EQU     0630H   ;串口2接收指针:计价器数据
;-------------------------------定时保存GPS数据式其它相关信息
;数据格式:帧头[1]|日期时间[6]|纬度[4]|经度[4]|海拔高度[4]|速度[2]|方位角[2]|
;+中心指令[1]+本地状态[1]+0FFH+0DH
GPSFRAME_PN     EQU	0700H	;当前拥有的GPS数据存的[条数+指针][4个字节] 
RDEPGPS_PN	EQU     0706H   ;读EPPROM中的GPS数据当前条数据指针;初始化的为0	[1]	
GPSSAVEBUFF     EQU     0710H	;保存的GPS数据ERAM缓冲区[32个字节]
RDEPGPSBUFF     EQU     0730H	;读出GPS数据的ERAM缓冲区[32个字节]
CGPSFRAMPN      EQU     0750H   ;IC卡保存GPS数据的条数和指针缓冲区[4个字节]

POSCHECKBUFF    EQU     0760H   ;用于保存中心过来的区域调度经纬度信息[16个字节]
POSCHECKBUFF0   EQU     0770H   ;用于保存中心过来的电子围栏经纬度信息[16个字节]
OUTRANGECNT     EQU     0780H   ;越界计数延时[1个字节]
CALLGMESSBUFF   EQU     0790H   ;发送电话和固定短语缓冲区[12个字节]
DRIVERIDSTR     EQU     07A0H   ;共5个字节
DKEYRAM         EQU     07A5H   ;保存复合键
;--------------------------------
CARSTABUFF      EQU     07E0H   ;汽车状态保存缓冲划区:[3个字节]
;--------------------------------
PHRDISPBUFF     EQU     0800H   ;固定短语显示缓冲区(可以显示40条固定短语)
;-------------------------------语音合成区 
TTS_FRAME       EQU     0A00H   ;保存TTS语音合成文本	
TTS_OPENTIME    EQU     0A80H   ;转化为TTS打开单元时间
ATTMESSTIME     EQU     0A90H   ;调度短信时转化的北京时间[6个字节]HH\MM\SS
TTS_LEN         EQU     0AA0H   ;TTS语音数据长度
MESS_LON        EQU     0AA1H   ;保存短信长度
;-------------------------------
CALLDISPBUFF    EQU     0B00H   ;电话号码显示缓冲区(可以显示40条电话号码)
;-------------------------------
TEMPCALLBUFF1   EQU     0D00H   ;临时电话号码
TEMPCALLBUFF2   EQU     0E00H   ;临时电话号码时间
MESSMENU        EQU     1000H   ;短消息菜单项,最多16项->288byte(16*18):0400H-0520H
;-------------------------------------------------
; 片内RAM存 #30H-FFFH
;-------------------------------------------------
Port0_Rx_PN	EQU     30H	;FC201缓冲区的指针
Port1_Rx_PN	EQU     31H	;GPS接收缓冲区的指针
GPS_START	EQU     32H	;GPS起始地址
ENCPN	 	EQU	33H	;加密基数指针
ENCVALUE	EQU	34H	;加密基数
ENCTEMP1        EQU	35H	;加密暂存
ENCRADIX1       EQU	36H	;加密基数1
ENCRADIX2       EQU	37H	;加密基数2
FC201COM	EQU 	38H	;保存中心发来的指令
MAIN_ID0	EQU	39H	;目的地址高位
MAIN_ID1	EQU	3AH	;目的地址低位
DATA_TYPE	EQU 	3BH	;数据类型(GPS,计价器)
MESSNUM		EQU	3CH	;短信条数
MESSPN		EQU	3DH	;短信位置指针
DISPLINE        EQU     3EH     ;液晶显示行(0-7)
DISPCOLU        EQU     3FH     ;液晶显示列(0-24*8)
BMPLINE         EQU     40H     ;BMP HEIGTH                  **局部变量
BMPCOLU         EQU     41H     ;BMP WIDTH                   **局部变量
StartLine       EQU     42H     ;图片显示起始行
StartColu       EQU     43H     ;图片显示起始列
HZCODE1         EQU     44H     ;汉字机器内码高位
HZCODE2         EQU     45H     ;汉字机器内码低位
STRHADR         EQU     46H     ;显示ROM或RAM中字符串的高位地址
STRLADR         EQU     47H     ;显示ROM或RAM中字符串的低位地址
MENUADDRH       EQU     48H     ;存储菜单地址高位
MENUADDRL       EQU     49H     ;存储菜单地址低位
MENUITEM        EQU     4AH     ;几个子菜单项,两个为一页
SUBMENUPN       EQU     4BH     ;当前菜单指针指向1
SUBMCURPG       EQU     4CH     ;当前页的指针(1或2)(反白显示)
MENUHEADH       EQU     4DH
MENUHEADL       EQU     4EH
SMENUITEM       EQU     4FH     ;二级几个子菜单项,两个为一页
UPDATTEMP       EQU     50H     ;固定信息更新缓冲
INPUTDLY        EQU     51H     ;输入等待延迟时间
INNETCNT        EQU     52H     ;在网时间计数
STRNUM          EQU     53H     ;最多显示字符数
RXBUF           EQU     54H     ;接收缓冲区
C10MS           EQU     55H     ;用于10MS定时
C20MS           EQU     56H     ;用于10MS定时

⌨️ 快捷键说明

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