毕业设计(论文)一种智能公交管理系统(its)的车载终端的设计21519_第1页
毕业设计(论文)一种智能公交管理系统(its)的车载终端的设计21519_第2页
毕业设计(论文)一种智能公交管理系统(its)的车载终端的设计21519_第3页
毕业设计(论文)一种智能公交管理系统(its)的车载终端的设计21519_第4页
毕业设计(论文)一种智能公交管理系统(its)的车载终端的设计21519_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、核准通过,归档资料。 未经允许,请勿外传! 核准通过,归档资料。 未经允许,请勿外传! 论文题目:公交车管理系统车载终端设计论文题目:公交车管理系统车载终端设计 摘摘 要要 本文主要阐述了一种智能公交管理系统(ITS)的车载终端的设计方法。所谓 智能公交通管理系统,就是在公交网络分配、公交调度、预测算法等关键理论研 究的前提下,利用系统工程的理论和方法,将现代通信、信息、电子、控制、 计算机、网络、定位技术、GIS 等新技术集成应用于公共交通系统,通过构建 现代的信息管理系统和控制调度模式,实现公共交通调度、运营、管理的信息 化、现代化和智能化,增强公交企业管理水平和服务水平,提高公交企业的运

2、 营效率和效益;同时为出行者提供更加安全、舒服、便捷的公共交通信息服务。 9JWKffwvG#tYM*Jg以下为主程序进行CPU初始化设置。 SETB IT0 ;设定INT0的触发方式为脉冲负边沿触发 MOV SCON,#50H ;设置成串口1方式 MOV TMOD,#21H ;波特率发生器T1工作在模式2上 MOV TH0,#4CH MOV TL0,#00H MOV TH1,#0FDH ;预置初值(按照波特率9600BPS预置初值) MOV TL1,#0FDH ;预置初值(按照波特率9600BPS预置初值) SETB TR1 ;启动定时器T1 STTB TR0 MOV IP, #10H;设置

3、串口中断为最高优先级 5.3.2 GSM初始化模块初始化模块 根据不同的要求,串口数据的发送是可以知道时间的,可以采用查询方式; 而接受是不确定的,所以接收采用中断的方式。在与模块握手连接成功后,通 过字符串发送函数就可将数据缓存区中欲发送的数据发送。发送数据的原理与 建立连接时的基本相同,但数据的接收是通过串口中断接收函数完成的,同时 将接收到的数据必须先放入接收缓存区以便显示。需要指出的是串口中断程序 既要接收指令返回值又要接收模块传来的数据,这两种接收信息的处理方式不 同,所以在中断函数中应通过设置两个不同的标志来解决这一问题。但是由于 存在TC35I与RCB-4H之间选择的问题,这里很

4、多时间采用查询的方法来收发 TC35I的指令。下面的前两条指令就是选中TC35I的指令。另外,为了编程方便 又考虑到发送定位信息不需要汉字,所以这里采用txt格式发送短信,所有指令 都以数据表的形式存储在EPROM中,需要哪条指令只需找到相应的表头即可。 SETB RCB4H; select module TC35I CLR TC35I; Initialize Tc35i REATIPR:MOV DPTR,#ATIPR;设置通信速率(9600)#ATIPR是命令头 LCALL SENDSTR;发送选中的ATIPR命令 LCALL ECHOOK;接收TC35I响应是否OK MOV A,ASSIS

5、T;利用ASSIST判断是否响应ok JZ REATIPR;如果响应错误重新发送指令 LCALL D100MS;TC35I每条命令都要至少延迟100Ms REATE:MOV DPTR,#ATE;取消TC35I发送ECHO信息 LCALL SENDSTR LCALL ECHOOK MOV A, ASSIST JZ REATE LCALL D100MS REICF:MOV DPTR,#ATICF;设置TC35I串口数据格式为8N1 LCALL SENDSTR LCALL ECHOOK MOV A, ASSIST JZ REICF LCALL D100MS RECMGF:MOV DPTR,#ATCM

6、GF ;选择TXT 格式 LCALL SENDSTR LCALL ECHOOK MOV A, ASSIST JZ RECMGF LCALL D100MS RECFUN:MOV DPTR,#ATCFUN1;启动TC35I串口 LCALL SENDSTR LCALL ECHOOK MOV A, ASSIST JZ RECFUN LCALL D100MS RECSGS:MOV DPTR,#ATCSGS;选择GSM字符集 LCALL SENDSTR LCALL ECHOOK MOV A, ASSIST JZ RECSGS LCALL D100MS RECPMS:MOV DPTR,#ATCPMS;选择信

7、息存储位置为SIM卡 LCALL SENGSTR LCALL RECHOOK MOV A, ASSIST JZ RECPMS 5.3.3 RCB-4H接收模块接收模块 RCB-4H的串口消息采用NMEA 0138标准,在对它初始化时还要用到u-blox 自己定义的二进制协议UBX协议,这些都需要MCU安格式读取,这也是关键环 节。时间采用世界协调时(Coordinated Universal Time简称UTC),它与我国北 京时间晚8个小时,如果要实现时间显示,还要有时间转换程序。 在实现自动报站时需要利用一定的算法来根据当前的地理坐标判断当前和 即将到来的站点,从而控制语音电路实现自动报站

8、。考虑到一条公交线路的站 牌数量有限,这里采用固定数据表的方法把各站点的坐标存储在E2PROM,然 后把接收到的位置信息与其中的每一个进行比较,首先确定方向,然后按顺序 比较,就可以实现自动报站,包括当前站点和即将到来的站点。由于在工作中 并不是所有的NMEA语句都是必要的,这里只用到GGL语句,下面是RCB-4H的 初始化程序。 SETB TC35I CLR RCB4H;SELECT RCB4H SETB ES MOV DPTR,#GPQ;Initialize RCB-4H LCALL SENDSTR;SEND MESSAGE GPQ AND SELECT GLL MOV DPTR,#PUB

9、X;SELECT GLL LCALL LCALL SENDSTR;SEND MESSAGE PUBX 5.3.4 LCD显示模块显示模块 LCD的作用主要是用来显示时间和管理中心发送的信息,显示时间为每秒 刷新一次,管理中心的信息不是很经常;为了比较容易的编辑软件,定位信息 也采用每秒1次的刷新速率。LCD显示模块需要大概25ms来初始化,如果有高 稳定度的电源在1ms左右上升到稳定值,可以取消这一步,如果电源达不到要 求必须按一下程序初始化,不然屏幕可能无法正常工作。 上电等待15ms; 写38H等待5ms; 写38H等待0.1ms; 5*7显示 开显示; 5.3.5 语音模块的软件设计语音

10、模块的软件设计 ISD4004 工作于 SPI 串行接口。SPI 协议是一个同步串行数据传输协议,协 议假定微控制器的 SPI 移位寄存器在 SCLK 的下降沿动作,因此对 ISD4004 而言, 在时钟止升沿锁存 MOSI 引脚的数据,在下降沿将数据送至 MISO 引脚。协议的 具体内容为: 1. 所有串行数据传输开始于 SS 下降沿。 2. SS 在传输期间必须保持为低电平,在两条指令之间则保持为高电平。 3. 数据在时钟上升沿移入,在下降沿移出。 4. SS 变低,输入指令和地址后,ISD 才能开始录放操作。 5. 指令格式是(8 位控制码)加(16 位地址码)。 6. ISD 的任何操

11、作(含快进)如果遇到 EOM 或 OVF,则产生一个中断,该 中断状态在下一个 SPI 周期开始时被清除。 7. 使用读指令使中断状态位移出 ISD 的 MISO 引脚时,控制及地址数 据也应同步从 MOSI 端移入。因此要注意移入的数据是否与器件当前进行 的操作兼容。当然,也允许在一个 SPI 周期里,同时执行读状态和开始新的操 作(即新移入的数据与器件当前的操作可以不兼容)。 8. 所有操作在运行位(RUN)置 1 时开始,置 0 时结束。 9. 所有指令都在 SS 端上升沿开始执行。 10. MOSI 指令从 LSB 开始送入 ISD4004(即最后发送 C4),MISO 信号从 LSB

12、 开始送出 ISD4004。 Isd4004 在上电时需要一下程序来启动内部电路:10 录音模式: Send powerup Wait TpudSend powerupWait 2Tpud Send setrec command with address or send rec command (recording from current location)Send stop command to stop recording Wait Tstop 回放模式: Send powerup commandWait Tpud Send play command with address or se

13、nd play command (play from current location) Send stop command to halt the current operation or wait for playback operation to stop automatically, when an EOM or OVF is reached. Wait Tstop Isd4004 的指令格式如下: 表 4 isd4004 的指令格式表 名称16 地址 8 位指令 xxx c0, c1,c2,c3,c4 功能描述 上电 POWERUP xxxxxxxxx00100 系统上电,当接通电

14、TPUD后器件将准备工 作。 放音设置A0-A15xxx00111初始化播放地址 放音xxxxxxxxx01111 从当前地址开始播放,直到遇见 EOM 或者 OVF 录音设置A0a15xxx00101初始化录音地址 录音xxxxxxxxx01101 从当前地址开始录音直到遇见 OVF 或者停 止命令。 SETMCA0a15xxx10111初始化信息标志 MCxxxxxxxxx11111 Performs a Message Cue. Proceeds to the end of the currentmessage (EOM) or enters OVF condition if no mo

15、re messages are present. STOPxxxxxxxxx011x0停止当前工作 StopPWRDNxxxxxxxxxx10 x0停止当前工作并进入待机状态。 Rintxxxxxxxxx011x0读中断标志位(ovf,eom) 从此可以看出,如果提前把语音信号分段存储在 ISD4004 里面,把站牌与 语音的段首地址对应起来,当到达某站点时找到相应入口的地址,从此开始播 放即可实现语音报站。GPS 器件信号良好可以根据定位信息判断语音入口地址, 如果出现 GPS 器件信号不好或者 GPS 器件出错,可以采用键盘控制关闭 GPS,人工发送相应的播放地址播放录音。 5.3.6 定

16、位站点定位站点 新乡市的主要范围:东西:113.825o (113o49.501)E113.925o(113o55.501) E,距离 9085M。南北:35.34o (35o20.400)N35.27 o(35o16.178)N,距离 77 68M。东西横跨 6 分,南北纵跨 4.222 分,东西每分跨 1514.17m,南北每分跨 1839.88m。市区车速平均为 11M/S,高速可达 15M/S,RCB-4H 测量精度为 2.5 M,定位信息获取速率为 1Hz;考虑到以上因素,这里采用距离站点 10M 的距 离作为该站点的位置,当汽车进入该范围时启动自动报站。这样 20M 的距离内 汽车

17、一定会用 1S 以上的时间通过,这期间 RCB-4H 可以获取信息而不至于忽略 站点。NMEA 采用 ASCII 编码传送信息,ASCII 中数字为 BCD 码添加加上高 四位 3H,latitude 数据格式为 ddmm.mmmmm,longitude 数据格式为 dddmm.m mmmm,d 代表度,m 代表分,新乡市的坐标在度上没有变化,只需比较分。 十米东西跨度大约为 0.006604 分(经度),南北跨度大约为 0.005435 分(纬度 ),而城市公交路线一般为直线,所以可以采用分别比较的经纬度的方法,这 种方法比较简单,但是不精确,程序流程如图 5 所示。 经度差值 0.0066

18、0 纬度差值 0.00543 到达 xx 站 读取 GPS 信息 返回 Y Y N N 图 5 确认站点程序流程图 如果街道比较弯曲可以采用下面比较精确的距离运算方法确定距离某站 xx 还有多远。 (3 22 88.1839)0(17.1514)0(latitudexlatitudelongitudexlongitudeD ) D汽车与 X 站点的距离 Longitude0汽车当前经度 Latitude0汽车当前纬度 LongitudeXX 站点的经度 LatitudeXX 站点的纬度 5.3.7 身份授权及验证模块身份授权及验证模块 安全对于公共事业来说是非常重要的,记得曾经有一部美国电影里

19、有这样 的一幕,一个犯罪集团利用网路技术入侵了城市管理中心并控制了整个城市的 交通秩序,顿时整个社会乱作一团,交通拥堵,交通事故接连不断,就连警察 的巡逻飞机和汽车都在犯罪集团的掌控之下,考虑到这些,这里也采用了一定 的防止非法入侵的手段。这部分包括以下几个功能:授权用户和密码和系统的 设防与解防状态的切换与查询等功能。主要由以下几个部分组成:(1)设置密 码防止有人登陆管理中心系统;(2)每一辆车载终端发送信息时才用特殊的加 密格式发送,格式密钥要有一定的变动特性,这里采用系统随机生成的密钥并 且每过几秒就变更一次密钥,在某一时刻可能任何人都不知到具体的密码,这 样不容易破译。(3)采用飞机

20、黑匣子的方法,不允许外人接触该设备。这一部 分在实际应用中非常重要,以防不法分子扰乱社会秩序。当前有很多的很优秀 的密钥算法,不过由于这里的单片机功能不够强大,这里只采用了简单的文字 拆分排序方法,具体算法这里暂且不提。如果为了提高安全性,可以才用其他 功能强大的处理机。 5.4 整个车载终端的程序流程图整个车载终端的程序流程图 系统初始化开始 读 GPS 初始化 LCD 初始化化 RCB-4H 初始化 TC35I 校准时钟 语音报站 储存行车记录 发送定位信息 扫描键盘 执行功能程序 是否有键按下 中断开始 更新屏幕数据 是 否 中断返回 图 6 车载终端系统程序流程图 整个程序的流程如图6

21、所示。首先是系统初始化,然后进入键盘扫描程序, 当GPS信号良好时采用自动报站,一切工作从GPS信号的读取开始,然后校准 时钟,语音报站,刷新LCD显示,发送GPS信息等步骤,最后返回键盘扫描程 序。当GPS信号不好时或者出错时可以用键盘关闭自动报站功能,然后通过键 盘人工报站。GPS信号的读取采用中断方式,TC35I的控制采用查询方式,成功 读取GPS信息时就关闭串口中断并启动TC35I,当GPS信息被成功发送到管理中 心时,再次开启串口中断。当关闭GPS时系统进入时钟中断方式,这时的时间 和日期由车载终端自动生成。框图中的键盘为4*4键盘,功能程序包括:手动调 时,手动报站,开启和关闭GP

22、S等功能。 5.5 上位机管理中心系统软件设计上位机管理中心系统软件设计 综合管理系统(上位机软件)是用 Visual C5.5 +结合数据库来做,Visual C+提供了一个可视化编程的集成开发环境:Visual Studio(又名 Developer Studio)。Developer Studio 是通用的应用程序集成开发环境,它不仅支持 Visual C+,还支持 Visual Basic,Visual J+,Visual InterDev 等 Microsoft 系列开发工 具。Developer Studio 包含了文本编辑器、资源编辑器、工程编译工具、一个增 量连接器、源代码浏览

23、器、集成调试工具,以及一套联机文档。使用 Developer Studio,可以完成创建、调试、修改应用程序等的各种操作。 电子地图和GPS测试可以由u-blox的u-center软件完成,或者其他电子地图 制作软件均可完成,而且可以作为Google Earth的终端,从而实现网络查询。 6 总结总结 随着无线通信技术的不断提高,通信费用的不断降低,利用移动运营商提 供的无线网络实现远程监控和数据传输已被广泛应用于各个领域。特别是基于 单片机的GSM数据传输方案在GSM车载终端、自动抄表系统等远程遥测遥控系 统中的应用更是倍受关注,而且已经非常成熟;为了实现更快,信息量更加大 的信息交换,3G

24、网络将会带来更加优质的通信服务,同时为实现智能交通系统 提供了一种更加优秀的解决方案,让我们共同期待高速信息公路的到来吧,那 是是信息技术高速发展的时代,我们的最求也更加完美。 最后让我们回顾一下这篇浅显的设计方案,本设计主要完成了: (1)车载终端的硬件电路的设计与制作。 (2)车载终端软件的设计与调试。 (3)设备性能的测试。 由于时间的原因,此系统设计还存在很多不足之处,今后将近一步拓展系 统功能。 致谢致谢 本论文是在赵院长的悉心指导下完成的,赵院长渊博的科学知识、远见卓 识的科学创新和严谨的治学态度都给了我深远的影响。赵院长在方案选择,论 文写作等方面都给予我严格的要求和关键性的指导

25、,在此衷心感谢三个月来赵 院长对我的关心和指导。 参考文献参考文献 1赵明富,张先富,张松飞.公交站牌报站屏的设计J电子技术应用,2008,10(34) 2南京傲屹电子.AT 命令手册, EB/OL. :/www aye , 2009-2-20 3Booz. Allen *使用11.0592Mhz晶振 * ;*资源配置如下* RSPIN BIT P0.5 ;数据命令选择端口 RWPIN BIT P0.6 ;读写控制端 EPIN BIT P0.7 ;使能端 LED1 BIT P0.1;Led1 LED2 BIT P0.2;led2 IOC EQU P2;The interface is used

26、 by lcd YEAR3 EQU 5FH;日期区 YEAR2 EQU 5EH YEAR1 EQU 5DH YEAR0 EQU 5CH MONTH1 EQU 5BH MONTH0 EQU 5AH DATE1 EQU 59H DATE0 EQU 58H;时间区 HOUR1 EQU 52H HOUR0 EQU 53H MINT1 EQU 54H MINT0 EQU 55H SECD1 EQU 56H SECD0 EQU 57H CNTMS EQU 26H;t0中断统计 ASSIST EQU 27H;辅助数据为ASSIST XPOS EQU 28H ;X坐标存储单元 YPOS EQU 29H ;Y坐

27、标存储单元 RCB4H BIT P3.3;RECB-4H选择端 TC35I BIT P3.4;TC35I选择端 NROW EQU 43H;keypad row NLINE EQU 44H;keypad line KEYN EQU 45H;keypad no. PKEY EQU P1;keypad interface MSGHEAD EQU 30H;The head of msg MSGEND EQU 79H;The end of msg CHK EQU 7AH;Checksum LCDMEM EQU 7EH;Memory of lcd screen MSGOUT EQU 7FH;The mes

28、sage will be send ;* ORG 00H AJMP MAIN ORG 000BH LJMP T0INTP;转向T0中断程序 ORG 0023H LJMP BREAKTR ORG 0030H MAIN:MOV R0,#30H ;清存储单元 MOV R1,#80 LOOP1: MOV R0,#0 INC R0 DJNZ R1,LOOP1 MOV YEAR3,#32H;设置初始值2009年2月18日 MOV YEAR2,#30H MOV YEAR1,#30H MOV YEAR0,#39H MOV MONTH1,#30H MOV MONTH0,#32H MOV DATE1,#31H M

29、OV DATE0,#38H MOV R1,#6 MOV R0,#HOUR1 CLSTIME:MOV R0,#30H;SET TIME TO 00:00:00 INC R0 DJNZ R1,CLSTIME MOV TH0,#4CH MOV TL0,#00H;T0中断周期为50ms MOV CNTMS,#20; MOV TL1,#0FDH MOV TH1,#0FDH MOV TMOD,#21H;t1模式2,t0模式1 MOV SCON,#50H;串口模式1 MOV TCON,#50H;开启t1,t0 MOV IP,#10H;设置串口中断为最高优先级 SETB REN MOV R1,#32 MOV

30、XPOS,#0 MOV YPOS,#0 ACALL LCDCSH ;调LCD初始化程序 MOV DPTR,#TAB1 ;送初始化表头 CSL: MOV A,#0 ;初始化LCD显示 MOVC A,A+DPTR MOV LCDMEM,A LCALL DIP INC DPTR DJNZ R1,CSL SETB RCB4H;select module TC35I CLR TC35I;Initialize Tc35i REATIPR:MOV DPTR,#ATIPR LCALL SENDSTR LCALL ECHOOK MOV A,ASSIST JZ REATIPR LCALL D100MS REATE

31、: MOV DPTR,#ATE LCALL SENDSTR LCALL ECHOOK MOV A,ASSIST JZ REATE LCALL D100MS REICF:MOV DPTR,#ATICF LCALL SENDSTR LCALL ECHOOK MOV A,ASSIST JZ REICF LCALL D100MS RECMGF:MOV DPTR,#ATCMGF LCALL SENDSTR LCALL ECHOOK MOV A,ASSIST JZ RECMGF LCALL D100MS RECFUN:MOV DPTR,#ATCFUN1 LCALL SENDSTR LCALL ECHOOK

32、 MOV A,ASSIST JZ RECFUN LCALL D100MS RECSCS:MOV DPTR,#ATCSCS LCALL SENDSTR LCALL ECHOOK MOV A,ASSIST JZ RECSCS LCALL D100MS RECPMS:MOV DPTR,#ATCPMS LCALL SENDSTR LCALL ECHOOK MOV A,ASSIST JZ RECPMS SETB TC35I CLR RCB4H;SELECT RCB4H SETB ES MOV DPTR,#GPQ;Initialize RCB-4H LCALL SENDSTR;SEND MESSAGE G

33、PQ LCALL D10MS MOV DPTR,#PUBX LCALL SENDSTR;SEND MESSAGE PUBX KEYBD: LCALL KEY SJMP KEYBD ;*键盘程序* KEY:MOV PKEY,#0F0H MOV R0,#0FFH SKEY0: DJNZ R0,SKEY0 MOV A,PKEY CPL A ANL A,#0F0H JZ EKEY LCALL D10MS SKEY1: MOV A,#0 MOV NROW,A MOV NLINE,A MOV R0,#0FEH SKEY2: MOV A,R0 MOV PKEY,A NOP NOP NOP MOV A,PKE

34、Y MOV NLINE,A CPL A ANL A,#0F0H S123:JNZ SKEY3 INC NROW;inc number of row SETB C MOV A,R0 RLC A MOV R0,A MOV A,NROW CJNE A,#04H,SKEY2 EKEY:RET SKEY3: MOV A,R1 JNB ACC.4,SKEY5 JNB ACC.5,SKEY6 JNB ACC.6,SKEY7 JNB ACC.7,SKEY8 AJMP EKEY SKEY5: MOV A,#00H MOV NLINE,A;the number of line store in NLINE AJM

35、P DKEY SKEY6: MOV A,#01H MOV NLINE,A AJMP DKEY SKEY7: MOV A,#02H MOV NLINE,A AJMP DKEY SKEY8: MOV A,#03H MOV NLINE,A DKEY:MOV A,NROW DECODE:MOV A,NROW MOV B,#04H MUL AB ADD A,NLINE MOV KEYN,A WKEY:MOV A,KEYN MOV DPTR,#JMPTAB JMP A+DPTR JMPTAB:AJMP KEY0 AJMP KEY1 AJMP KEY2 AJMP KEY3 AJMP KEY4 AJMP KE

36、Y5 AJMP KEY6 AJMP KEY7 AJMP KEY8 AJMP KEY9 AJMP KEYA AJMP KEYB AJMP KEYC AJMP KEYD AJMP KEYE AJMP KEYF KEY1:CLR ES SETB ET0 AJMP KEYOFF KEY2:SETB ES CLR ET0 AJMP KEYOFF KEY3:MOV LCDMEM,#33H LCALL DIP AJMP KEYOFF KEY4:MOV LCDMEM,#34H LCALL DIP AJMP KEYOFF KEY5:MOV LCDMEM,#35H LCALL DIP AJMP KEYOFF KE

37、Y6:MOV LCDMEM,#36H LCALL DIP AJMP KEYOFF KEY7:MOV LCDMEM,#37H LCALL DIP AJMP KEYOFF KEY8:MOV LCDMEM,#38H LCALL DIP AJMP KEYOFF KEY9:MOV LCDMEM,#39H LCALL DIP AJMP KEYOFF KEY0:MOV LCDMEM,#30H LCALL DIP AJMP KEYOFF KEYA:MOV LCDMEM,#41H LCALL DIP AJMP KEYOFF KEYB:MOV LCDMEM,#42H LCALL DIP AJMP KEYOFF K

38、EYC:MOV LCDMEM,#43H LCALL DIP AJMP KEYOFF KEYD:MOV LCDMEM,#44H LCALL DIP AJMP KEYOFF KEYE:MOV LCDMEM,#45H LCALL DIP AJMP KEYOFF KEYF:MOV LCDMEM,#46H LCALL DIP KEYOFF:MOV PKEY,#0F0H MOV R0,#0FFH OFF0:DJNZ R0,OFF0 MOV A,PKEY CPL A ANL A,#0F0H JNZ KEYOFF RET ;*延时子程序* D10MS: MOV R2,#20 DMS:MOV R3,#0FAH

39、DJNZ R3,$ DJNZ R2,DMS RET D5MS: MOV R2,#0AH DL: MOV R3,#0FAH DJNZ R3,$ DJNZ R2,DL RET D100MS: MOV R2,#200 DMSS:MOV R3,#0FAH DJNZ R3,$ DJNZ R2,DMSS RET ;*发送字符串* SENDSTR:CLR A MOVC A,A+DPTR XSTR2: MOV SBUF,A JNB TI,$ CLR TI INC DPTR CLR A MOVC A,A+DPTR CJNE A,#1BH,XSTR2 RET ;*发送$GPQ首字节* SDMSG: SETB LE

40、D2 MOV DPTR,#GPQ;SEND MESSAGE GPQ MOV A,#0 MOVC A,A+DPTR MOV SBUF,A RET ;*串口中断与RCB-4h通信* BREAKTR:PUSH ACC PUSH PSW PUSH 00H PUSH 01H JNB RI,SEND ACALL SIN RETTR: POP 01H POP 00H POP PSW POP ACC RETI SEND:CLR TI CLR A INC DPTR MOVC A,A+DPTR CJNE A,#1BH,SOUT;#1BH=ESC SJMP RETTR SOUT:MOV SBUF,A SJMP RE

41、TTR ;*接收函数* SIN:CLR TI MOV A,SBUF CJNE A,#24H,NOTHEAD;IF $=24H CLR LED1 MOV CHK,#0 MOV R1,#MSGHEAD RET NOTHEAD:JB LED1,SINRET MOV R1,A XRL CHK,A DEC R1 CJNE R1,#2AH,CONTUIN; IF LAST CHARACTER IS A *? MOV A,CHK XRL A,#2AH;校验接收数据 JZ GPSRIGHT SETB LED1;LED2指示数据有误 GPSRIGHT:CLR ES;TURN OFF UART LCALL SEN

42、DSMS CONTUIN:INC R1 INC R1 SINRET: RET ;*校验GPS数据* CHKGPS:MOV R0,#MSGHEAD CJNE R0,#24H,NOTGLL;IF A $ INC R0 CJNE R0,#47H,NOTGLL;IF A G INC R0 CJNE R0,#50H,NOTGLL;IF A P INC R0 CJNE R0,#47H,NOTGLL;IF A G INC R0 CJNE R0,#4CH,NOTGLL;IF A L INC R0 CJNE R0,#4CH,NOTGLL;IF A L INC R0 LCALL CLRLCD DIPLONG:MO

43、V LCDMEM,R0;显示位置信息经度 LCALL DIP INC R0 CJNE R0,#2CH,DIPLONG INC R0 MOV LCDMEM,R0 LCALL DIP INC R0 INC R0 MOV XPOS,#0 MOV YPOS,#1 LATITUDE: MOV LCDMEM,R0 LCALL DIP;显示纬度信息 CJNE R0,#2CH,LATITUDE INC R0 MOV LCDMEM,R0 LCALL DIP INC R0 MOV R1,#HOUR1;更新时间(协调世界时UTC) UPTIME:INC R0 MOV A,R0 CJNE R0,#2CH,TIMEA

44、SJMP AOV TIMEA: MOV R1,A DEC R1 CJNE R1,#SECD0,UPTIME MOV A,HOUR0 ANL A,#0FH SWAP A MOV HOUR0,A MOV A,HOUR1;需要算法转换时间 ANL A,#0FH SWAP A MOV B,#10 MUL AB ADD A,HOUR0 ADD A,#8;北京时间比UTC快8小时 MOV B,#10H DIV AB MOV HOUR1,A MOV HOUR0,B MOV A,#30H ORL HOUR1,A ORL HOUR0,A INC R0 INC R0 INC R0 INC R0 AOV:MOV L

45、CDMEM,R0 LCALL DIP INC R0 MOV LCDMEM,R0 LCALL DIP;指示数据是否有效A/V NOTGLL:RET ;*SEND GPS MESSAGE* SENDSMS:MOV DPTR,#ATCMGS CLR A MOVC A,A+DPTR LCALL SENDSTR LCALL ECHOOK MOV A,ASSIST JZ SENDSMS SETB ES RET ;*接收GSM响应* ECHOOK:JNB RI,$ CLR RI MOV A,SBUF CJNE A,#0DH,ERROR CLR RI JNB RI,$ MOV A,SBUF CJNE A,#0

46、AH,ERROR CLR RI JNB RI,$ MOV A,SBUF CJNE A,#4FH,ERROR CLR RI JNB RI,$ MOV A,SBUF CJNE A,#4BH,ERROR CLR RI JNB RI,$ MOV A,SBUF CJNE A,#0DH,ERROR CLR RI JNB RI,$ MOV A,SBUF CJNE A,#0AH,ERROR MOV ASSIST,#0FFH CLR RI LCALL CLRLCD MOV XPOS,#0 MOV YPOS,#0 MOV LCDMEM,#4FH LCALL DIP MOV LCDMEM,#4BH LCALL DI

47、P RET ERROR: MOV ASSIST,#0 LCALL CLRLCD CLR A MOV XPOS,A MOV YPOS,A MOV DPTR,#CMDERROR ERRORC:MOVC A,A+DPTR INC DPTR MOV LCDMEM,A LCALL DIP SUBB A,#1BH JNZ ERRORC RET ;*TIMER0 Interruption* T0INTP: PUSH ACC PUSH PSW MOV ASSIST,SECD0 DJNZ CNTMS,CONRETI MOV CNTMS,#20 INC SECD0 MOV A,SECD0 CJNE A,#3AH,

48、CONRETI MOV SECD0,#30H INC SECD1 MOV A,SECD1 CJNE A,#36H,CONRETI MOV SECD1,#30H INC MINT0 MOV A,MINT0 CJNE A,#3AH,CONRETI MOV MINT0,#30H INC MINT1 MOV A,MINT1 CJNE A,#36H,CONRETI MOV MINT1,#30H INC HOUR0 CJNE A,#3AH,IF24H MOV HOUR0,#30H INC HOUR1 IF24H:ANL HOUR0,#0FH ANL HOUR1,#0FH MOV A,HOUR1 MOV B

49、,#10 MUL AB ADD A,HOUR0 ORL HOUR1,#30H ORL HOUR0,#30H CJNE A,#24,CONRETI MOV HOUR1,#30H MOV HOUR0,#30H SJMP CNTDATE;以上是时间计数,下面是日期计数(不完善) CONRETI:AJMP RETIT0 CNTDATE:INC DATE0 MOV A,DATE0 CJNE A,#3AH,RETIT0 MOV DATE0,#30H INC DATE1 MOV A,DATE1 CJNE A,#33H,RETIT0 MOV DATE1,#30H INC MONTH0 MOV A,MONTH0

50、 CJNE A,#3AH,RETIT0 MOV MONTH0,#30H INC MONTH1 MOV A,MONTH1 CJNE A,#3CH,RETIT0 MOV MONTH1,#30H INC YEAR0 MOV A,YEAR0 CJNE A,#3AH,RETIT0 MOV YEAR0,#30H INC YEAR1 MOV A,YEAR1 CJNE A,#3AH,RETIT0 MOV YEAR1,#30H INC YEAR2 MOV A,YEAR2 CJNE A,#3AH,RETIT0 MOV YEAR2,#30H INC YEAR3 RETIT0: MOV A,SECD0 CJNE A,

51、ASSIST,UPLCD MOV TH0,#4CH MOV TL0,#00H POP PSW POP ACC RETI UPLCD: LCALL CLRLCD MOV R0,#8 MOV R1,#YEAR3 UPYEAR:MOV LCDMEM,R1 LCALL DIP DEC R1 DJNZ R0,UPYEAR MOV XPOS,#0 MOV YPOS,#1 MOV R0,#6 MOV R1,#HOUR1 INTIME: MOV LCDMEM,R1 LCALL DIP INC R1 DJNZ R0,INTIME MOV TH0,#4CH MOV TL0,#00H POP PSW POP ACC

52、 RETI ;*显示子程序* DIP:ACALL LCDPOS ;确定坐标子程序 ACALL LCDWRD INC XPOS ;X坐标加1 MOV A,XPOS ;X坐标值送A CJNE A,#16,LCDOVER ;是否送完一行? MOV XPOS,#0 ;X坐标清零 INC YPOS ;Y坐标加1 MOV A,YPOS ;Y坐标送A CJNE A,#2,LCDOVER ;是否送完两行? MOV YPOS,#0 ;X坐标清零 LCDOVER: RET ;*写数据* LCDWRD: ACALL WAIT ;判忙程序 SETB RSPIN ;选择数据 CLR RWPIN ;读写控制端清零 MOV IOC,LCDMEM ;数据送出 SETB EPIN NOP CLR EPIN RET ;* LCDPOS: ANL XPOS,#0FH ANL YPOS,#01H MOV A,YPOS CJNE A,#0,ERT MOV A,XPOS AJMP ERT0 ERT: MOV A,XPOS ORL A,#40H ERT0: ORL A,#80H ACALL LCDWC RET ;*初始化LCD* LCDCSH: CALL D5MS CALL D5MS CALL D5MS MOV LCDMEM,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论