- 威望
- 点
- 贡献
- 点
- 驴币
- 块
- 体力
-
- UID
- 18420
- 好友
- 记录
- 日志
- 精华
- 注册时间
- 2007-4-2
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2007-6-18 07:00:00
|
显示全部楼层
<p>按照我的软件设计思路,对各模块软件设计主要有以下几个部分。</p>
<p>第一是串口初始化模块。 <br />
在该模块中设置的波特率为9600(晶振频率为11.0592Mhz),所以选择定时器工作为工作方式2,给定时器1高位低位分别赋值#0FDH <br />
其程序如下: <br />
<br />
MOV TMOD,#20H;定时器工作方式选择 <br />
MOV TH1,#0FDH;定时器初始赋值 <br />
MOV TL1,#0FDH; <br />
MOV PCON,#00H;串口工作方式选择 <br />
SETB TR1 <br />
MOV SCON,#70H;串口工作方式选择 </p>
<p>第二是液晶模块初始化模块。 <br />
在该设计中所使用的是1602液晶模块,其初始化方法参阅了该模块的相关说明书。<br />
延时15ms <br />
写指令38H(不检测忙信号) <br />
延时15ms <br />
写指令38H(不检测忙信号) <br />
延时15ms <br />
写指令38H(不检测忙信号) <br />
写指令38H <br />
写指令38H:显示模式设置 <br />
写指令08H:显示关闭 <br />
写指令01H:显示清屏 <br />
写指令06H:显示关标移动设置 <br />
写指令0CH:显示开及光标设置 <br />
<br />
其中在实际使用中延时段程序的实际延时可以比15ms长些,对初始化并无影响。 </p>
<p>第三是数据接收模块。<br />
首先要对GPS接收模块串口是否有信号发送给单片机进行识别,而且由于GPS接收模块通过串口发送出来的数据不是我们全部需要的,所以有必要再对语句进行识别,然后取入我们所需要的语句$GPRMC,…………。</p>
<p>此处及以下源程序较长,恕不赘述。</p>
<p>第四是数据格式调整送显模块 <br />
对于前面程序模块取入的数据,还要通过数据格式调整才能送到显示模块进行显示,在4.1GPS NAEA 0183语句中我们已经知道,所取入的GPRMC中包含了很多的地理信息,但是由于我们的应用所限,往往只能用到其中的一部分,比如我们所用到的纬度、经度、UTC时间和UTC日期,由于我们在上面数据接收模块程序中已经把GPRMC所包含的所有数据已经顺序存放在单片机中,所以我们只需要按照NAEA 0183语句所提供的格式按位选取出纬度、经度、UTC时间和UTC日期就可以了。对于我们已经选取出的将要送去显示的数据,为了在液晶屏上能及时清晰地显示出来,再经过一定的格式调整,最后再送液晶屏显示。 </p>
<p>至此,机机的硬件和软件基本完成,接下来是进行繁杂的调试。<br />
<br />
<br />
</p> |
|