绝地求生配置这个配置能玩儿吗

购买最佳搭配
定 价:&31.00
文轩价:&23.90
出版时间:
开 本:16开
页 数:238
印刷时间:
字 数:276.00千字
装 帧:平装
语  种:中文
I S B N:3
第一章&&卡西欧fx-5800P程序使用基本知识
&&第一节&&卡西欧fx-5800P编程计算器的面板与主菜单结构
&&&&一、计算器的按键、屏幕及状态栏
&&&&二、计算器的模式
&&&&三、计算器的功能菜单
&&&&四、计算器的设定
&&第二节&&程序的创立、输入、运行与管理
&&&&一、输入新程序文件名,并选择程序运行模式
&&&&二、输入新程序内容
&&&&三、程序文件的运行
&&&&四、程序文件的编辑修改
&&&&五、收藏文件(Favorite-Add)
&&&&六、程序的删除
&&&&七、程序文件的传输
第二章&&fx-5800P的编程方法
&&第一节&&fx-5800P程序语句格式
&&&&一、赋值语句的编写
&&&&二、输出语句的编写
&&&&三、LbI&n……Goto&n无条件转移语句(也称循环语句)
&&&&四、→简单条件语句
&&&&五、If条件选择转移语句
&&&&六、逻辑运算子命令:And、Or、Not
&&&&七、计数转移命令语句
&&&&八、For~To~Step~Next循环语句
&&&&九、While语句形式
&&第二节&&fx-5800P程序编写技巧
&&&&一、巧用数字O控制程序转移
&&&&二、巧妙使用数组扩充器
&&&&三、巧妙使用迭代累加程序语句,字母储存器数值的更新替换
&&&&四、巧妙使用循环计数
&&&&五、子程序的编写与运用
&&&&六、其他程序命令
&&&&七、调试检查程序的技巧
&&第三节&&fx-4850P程序向fx-5800P程序的转换
&&&&一、赋值语句的转换
&&&&二、条件语句的转换
&&&&三、循环语句的转换
&&&&四、字母变量以外扩充变量的定义
&&&&五、子程序的转换
第三章&&fx-5800P公路工程测量与试验检测程序及计算案例
&&第一节&&高程计算程序
&&&&一、中平测量计算程序
&&&&二、公路路基设计高程计算程序
&&第二节&&导线测量平差计算程序
&&&&一、导线坐标计算程序(显示中间结果)
&&&&二、闭合导线坐标一次性计算程序
&&&&三、附合导线一次性平差计算程序
&&&&四、全站仪导线坐标测量近似平差计算程序
&&第三节&&桥隧三角网近似平差计算程序
&&&&一、单三角锁平差计算程序
&&&&二、大地四边形平差计算程序
&&第四节&&水准测量平差计算程序
&&&&一、往返水准测量高程计算程序
&&&&二、水准点加密测量高程平差计算程序
&&第五节&&道路中、边桩坐标计算程序
&&&&一、基本型对称曲线中、边桩坐标计算程序
&&&&二、辛普森(SIMPSON)中、边桩坐标计算程序
&&&&三、积木型匝道等复合型曲线的中、边桩计算程序
&&&&四、积分法计算匝道等复合曲线的坐标
&&&&五、“逐点趋近法”放样路堑坡顶桩和路堤坡脚桩的试测点坐标计算程序
&&&&六、反算中线外某点所对应中桩里程及偏距的程序
&&第六节&&超高计算程序
&&&&一、以边轴旋转的超高加宽计算程序
&&&&二、以中轴旋转的超高加宽计算程序
&&第七节&&山区低等级公路详细测量计算程序
&&&&一、单圆曲线支距法详细测量计算程序
&&&&二、圆曲线虚交测量计算程序
&&&&三、切基线复曲线测量计算程序
&&&&四、回头曲线测量计算程序
&&&&五、带缓圆曲线支距法详细测量计算程序
&&&&六、复曲线设置缓和曲线后主点桩的计算程序
&&第八节&&灌注桩圆形护筒中心坐标计算程序与锥形护坡
&&&&放样计算程序
&&&&一、灌注桩施工圆形护筒中心坐标复测计算程序
&&&&二、锥形护坡放样计算程序
&&第九节&&公路试验检测计算程序
&&&&一、液塑限联合测定计算程序
&&&&二、灌砂法测定路基路面压实度的计算程序
&&&&三、路基路面现场检测随机取样点位计算程序
&&&&四、混凝土施工配合比及施工配料计算程序
第四章&&fx-5800P的统计计算功能在公路试验检测中的应用
&&第一节&&fx-5800P的统计功能菜单介绍
&&&&一、统计数据的输入与编辑
&&&&二、统计结果的计算
&&第二节&&单变量统计计算案例
&&&&一、单变量统计的手动计算(SD模式)
&&&&二、单变量统计的编程计算
&&第三节&&双变量的回归计算案例
&&&&一、核子密度仪干密度与灌砂法干密度回归方程的建立
&&&&二、以混凝土早期强度推算28天的强度
&&&&三、建立混凝土回弹值与抗压强度关系的测强曲线
附表A&&一般取样的随机数表
附表B&&t分布概率系数表
&&&&“授人以鱼不如授人以渔”——本书旨在通过丰富的案例,教会读者利用CASIO计算器自行解决公路工程测量和试验检测方面问题的能力。全书共四章。前两章介绍CASIO的程序使用基本知识和编程方法;第三章配合案例介绍了公路工程施工测量中常用的测量程序,另外简要介绍了fx-5800P在公路试验检测中的应用及实例;第四章介绍fx-5800P的统计计算功能。
&&&&本书可供从事公路工程建设的测量人员以及其他工程技术人员参考,也可作为高等院校相关专业师生的学习用书。
定价:为出版社全国统一定价;文轩价:为商品的销售价,是您最终决定是否购买商品的依据;受系统缓存影响,最终价格以商品放入购物车后显示的价格为准;SPSS概览--数据分析实例详解
第一章 SPSS概览--数据分析实例详解
1.1 数据的输入和保存
1.1.1 SPSS的界面
1.1.2 定义变量
1.1.3 输入数据
1.1.4 保存数据
1.2 数据的预分析
1.2.1 数据的简单描述
1.2.2 绘制直方图
1.3 按题目要求进行统计分析
1.4 保存和导出分析结果
1.4.1 保存文件
1.4.2 导出分析结果 欢迎加入SPSS使用者的行列,首先祝贺你选择了权威统计软件中界面最为友好,使用最为方便的SPSS来完成自己的工作。由于该软件极为易学易用(当然还至少要有不太高的英语水平),我们准备在课程安排上做一个新的尝试,即不急于介绍它的界面,而是先从一个数据分析实例入手:当你将这个例题做完,SPSS的基本使用方法也就已经被你掌握了。从下一章开始,我们再详细介绍SPSS各个模块的精确用法。我们教学时是以SPSS 10.0版为蓝本讲述的--什么?你还在用7.0版!那好,由于10.0版在数据管理的界面操作上和以前版本有较大区别,本章我们将特别照顾一下老版本,在数据管理界面操作上将按9.0及以前版本的情况讲述,但具体的统计分析功能则按10.0版本讲述。没关系,基本操作是完全一样的。好,说了这么多废话,等急了吧,就让我们开始吧!希望了解SPSS 10.0版具体情况的朋友请参见本网站的SPSS 10.0版抢鲜报道。例1.1 某克山病区测得11例克山病患者与13名健康人的血磷值(mmol/L)如下, 问该地急性克山病患者与健康人的血磷值是否不同(卫统第三版例4.8)?患者: 0.84 1.05 1.20 1.20 1.39 1.53 1.67 1.80 1.87 2.07 2.11健康人: 0.54 0.64 0.64 0.75 0.76 0.81 1.16 1.20 1.34 1.35 1.48 1.56 1.87让我们把要做的事情理理顺:首先要做的肯定是打开计算机(废话),然后进入瘟98或瘟2000(还是废话,以下省去废话2万字),在进入SPSS后,具体工作流程如下:
将数据输入SPSS,并存盘以防断电。
进行必要的预分析(分布图、均数标准差的描述等),以确定应采用的检验方法。
按题目要求进行统计分析。
保存和导出分析结果。下面就按这几步依次讲解。&1.1 数据的输入和保存1.1.1 SPSS的界面当打开SPSS后,展现在我们面前的界面如下:&请将鼠标在上图中的各处停留,很快就会弹出相应部位的名称。请注意窗口顶部显示为&SPSS for Windows Data Editor&,表明现在所看到的是SPSS的数据管理窗口。这是一个典型的Windows软件界面,有菜单栏、工具栏。特别的,工具栏下方的是数据栏,数据栏下方则是数据管理窗口的主界面。该界面和EXCEL极为相似,由若干行和列组成,每行对应了一条记录,每列则对应了一个变量。由于现在我们没有输入任何数据,所以行、列的标号都是灰色的。请注意第一行第一列的单元格边框为深色,表明该数据单元格为当前单元格。对Windows操作界面不熟悉的朋友可参见SAS入门第一课中的相关内容。对数据表界面操作不熟悉的朋友可先学习一下EXCEL的操作(因为它的帮助是中文的)。有的SPSS系统打开时会出现一个导航对话框,请单击右下方的Cancer按钮,即可进入上面的主界面。1.1.2 定义变量该资料是定量资料,设计为成组设计,因此我们需要建立两个变量,一个变量代表血磷值,习惯上取名为X,另一个变量代表观察对象是健康人还是克山病人,习惯上取名为GROUP。对数据的统计分析格式不太熟悉的朋友请先学习统计软件第一课。选择菜单Data==&Define Variable。系统弹出定义变量对话框如下:该变量定义对话框在SPSS 10.0版中已被取消
分享这篇日志的人也喜欢
我是幺妹呀
守护一缺三?
新人求关注?
今晚只聊天不耍澧
我知道我丑
热门日志推荐
人人最热标签
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
常州继续教育考试--实用软件应用技巧 (全部习题)188页
下载积分:900
内容提示:常州继续教育考试--实用软件应用技巧 (全部习题)188页
文档格式:PDF|
浏览次数:518|
上传日期: 05:29:21|
文档星级:
全文阅读已结束,如果下载本文需要使用
 900 积分
下载此文档
阅读此文档的用户还读了
常州继续教育考试--实用软件应用技巧 (全部习题)188页
官方公共微信 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
南方GPS数据处理软件4.0使用说明书
下载积分:5000
内容提示:南方GPS数据处理软件4.0使用说明书
文档格式:DOC|
浏览次数:53|
上传日期: 01:46:53|
文档星级:
全文阅读已结束,如果下载本文需要使用
 5000 积分
下载此文档
该用户还上传了这些文档
南方GPS数据处理软件4.0使用说明书
官方公共微信8678人阅读
全球卫星定位系统简称GPS系统,是美国国防部历时二十年,耗资200多亿美元建立起来的可以全天候高精度的定位系统,通过定位卫星网络向全球各地全天候地提供三维位置、三维速度等信息的一种无线电导航定位系统。接收机通过对接收到的每颗卫星的定位信息的解算,便可确定该接收机的位置,从而提供高精度的三维(经度、纬度、高度)定位导航及授时系统。由于刚开始GPS只限于军事用途,民用受到人为精度的限制(SA)。直到日起美国政府取消SA限制后,大大地促进了民用普遍化,现已逐步演变为一种世界性高技术产业,成为目前世界上发展最快的三大信息产业之一。
GPS用户接收系统主要由以无线电传感和计算机技术支撑的GPS卫星接收机和GPS数据处理软件构成。GPS卫星接收机的基本结构是天线单元和接收单元两部分。天线单元的主要作用是:当GPS卫星从地平线上升起时,能捕获、跟踪卫星,接收放大GPS信号。接收单元的主要作用是:记录GPS信号并对信号进行解调和滤波处理,还原出GPS卫星发送的导航电文,解求信号在站星间的传播时间和载波相位差,实时地获得导航定位数据或采用测后处理的方式,获得定位、测速、定时等数据。微处理器是GPS接收机的核心,承担整个系统的管理、控制和实时数据处理。目前,国际上已推出几十种测量用GPS接收机,各厂商的产品朝着实用、轻便、易于操作、美观价廉的方向发展。GPS数据处理软件是GPS用户系统的重要部分,其主要功能是对GPS接收机获取的卫星测量记录数据进行“粗加工”、“预处理”,并对处理结果进行平差计算、坐标转换及分析综合处理。解得测站的三维坐标,测体的坐标、运动速度、方向及精确时刻。GPS定位技术是正在发展中的高新技术,数据处理技术也处在不断更新之中,各系列GPS接收机制造厂家研制的处理软件也各具特色。GPS
接收机是被动式全天候系统,只收不发信号,故不受卫星系统和地面控制系统的控制。用户数量也不受限制。GPS接收机的性能因机种不同而有差异。 接收机根据用户不同的使用需要又可分为大地型GPS接收机和导航型GPS接收机两类。
系统基本原理
卫星定位系统由三部分构成,一是地面控制部分,由主控站、地面天线、滥测站及通讯辅助系统组成。二是空间部分,由24颗卫星组成,分布在6个轨道平面。三是用户装置部分,由GPS接收机和卫星天线组成。地面主控站实施对GPS卫星的轨道控制及参数修正。GPS卫星网向地面发射两个频率的定位导航信息,其中包括两个定位码信号:即C/A码(供世界范围内的民用)及P码(
只供美国军方使用)。GPS接收机接收GPS卫星信号进行解算,即可确定GPS接收机的位置。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图 1
数据格式
&GPRMC(建议使用最小GPS数据格式)
定位的数据格式为NMEA-0183数据格式。NMEA-0183是美国国家海洋电子协会为海用电子设备制定的标准格式。它是在过去海用电子设备的标准格式的基础上,增加了GPS接收机输出的内容而完成的。目前广泛采用的是Ver
2.00版本。现在除少数GPS接收机外,几乎所有的接收机均采用了这一格式。为了有效地开发GPS-OEM芯片,必须熟练掌握这一格式。因此,下面介绍两种最常用的GN-77N输出语句格式。
a.GPS固定数据输出语句($GPGGA)这是一帧GPS定位的主要数据,也是使用最广的数据。
b. GPS推荐定位信息输出语句($GPRMC)。本实验是对此信号进行提取定位信息的,故对其格式列出如下:
Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息。
$GPRMC,&1&,&2&,&3&,&4&,&5&,&6&,&7&,&8&,&9&,&10&,&11&,&12&*hh&CR&&LF&
&1&& UTC 时间,hhmmss(时分秒)格式
&2&& 定位状态,A=有效定位,V=无效定位
&3&& 纬度ddmm.mmmm(度分)格式(前面的0 也将被传输)
&4&& 纬度半球N(北半球)或S(南半球)
&5&& 经度dddmm.mmmm(度分)格式(前面的0 也将被传输)
&6&& 经度半球E(东经)或W(西经)
&7&& 地面速率(000.0-999.9 节,前面的0 也将被传输)
&8&& 地面航向(000.0-359.9 度,以真北为参考基准,前面的0 也将被传输)
&9&& UTC 日期,ddmmyy(日月年)格式
&10& 磁偏角(000.0-180.0 度,前面的0 也将被传输)
&11& 磁偏角方向,E(东)或W(西)
&12& 模式指示(仅NMEA 版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
1.2.2 &GPGGA
$GPGGA,&1&,&2&,&3&,&4&,&5&,&6&,&7&,&8&,&9&,M,&10&,M,&11&,&12&*hh&CR&&LF&
&1& &UTC 时间,hhmmss(时分秒)格式
&2& &纬度ddmm.mmmm(度分)格式(前面的0 也将被传输)
&3& &纬度半球N(北半球)或S(南半球)
&4& &经度dddmm.mmmm(度分)格式(前面的0 也将被传输)
&5& &经度半球E(东经)或W(西经)
&6& &GPS 状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
&7& &正在使用解算位置的卫星数量(00-12)(前面的0 也将被传输)
&8& &HDOP水平精度因子(0.5-99.9)
&9& &海拔高度(-99.9)
&10& 地球椭球面相对大地水准面的高度
&11& 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
&12& 差分站ID 号(前面的0 也将被传输,如果不是差分定位将为空)
系统总体设计
数字信号处理(Digital Signal Processing, DSP), 就是对信号的数字处理。它是利用数字计算机或专用数字硬件,对数字信号进行的一切变换或按预定规则进行的一切加工处理的运算就称为数字信号处理。DSP狭义理解为Digital Signal Processor数字信号处理器,广义理解可为数字信号处理技术。
异步通信接口芯片TL16CTL16C550C
UART只是一个串行的异步接口它负责对要发送的数据进行格式化和对收到的数据进行译码。它对数据是打包发送和接收的,每一包数据前有一个起始位,末有一个或多个停止位。数据包里的数据是从低位到高位逐位进行发送的。为了对数据进行校验,有时还可以在数据里加上校验位。在没有数据发送或接收时,该数据线总是处于高电平。它有如下的一些特点:
(1)数据的长度可变,可以是 5位,6位,7位或 8位;
(2)波特率可变,位传输的速率可以通过编程来实现,在UART中有一个寄存器可以对主频时钟进行分频来产生相应的波特率;
(3)校验位的产生和检测,在发送一个字符的时候,UART在发送时在数据位的末尾上附加一个校验位,当接收这个字符的时候,就可以利用这个校验位来来检查在接收过程中有没有发生错误;
(4)可以设置中断,通过软件可以模拟当异步串口发送0的个数超过数据包的长度的时候(表明发送异常),可通过设置中断处理事件。
串行通信的流程图如图2所示。
&&& 下面对TMS32F240和PC机通信有关的寄存器做一些简单介绍。
表1& TL16CTL16C550C的寄存器
接收缓冲器RBR
发送缓冲器THR
中断使能寄存器IER
中断标志寄存器IIR
FIFO控制寄存器FCR
线路控制寄存器LCR
MODEM控制寄存器MCR
线路状态寄存器LSR
MODEM状态寄存器MSR
暂存寄存器SCR
低位除数寄存器DLL
高位除数寄存器DLM
线路控制寄存器(LCR)用来存放串行通信的二进制数据格式,LCR是一个8位寄存器,各位的定义如下:
D1D0:字长选择位,D1D0=00、01、10、11字长分别为5位、6位、7位、8位;
D2:停止位,D2=0停止位为1位,D2=1时,停止位数由D1D0决定,数据位为5、6、7、8位时,停止位分别为:1.5、2、2、2位;
D4D3:确定要不要奇偶校验以及奇偶校验的性质,D3=0不进行奇偶校验D3=l进行奇偶校验,D4=0进行奇校验,D4=1进行偶校验;
D5:奇偶校验附加位;D5D4D3=111,传送奇偶位后该位清零,D5D4D3=101,传送奇偶位后该位置1,D5=0时附加位无效;
D6:中断控制位,D6=1,强制SOUT引脚为空闲状态;
D7:波特率因子寄存器访问位(DLAB),D7=l访问波特率因子寄存器,D7=0访问其他寄存器。
两个8位波特率因子寄存器可构成一个16位波特率因子寄存器。TL16C55OC的内部波特率发生器可产生发送数据的时钟信号。
波特率因子可以通过下面的式子计算:
波特率因子=基准时钟频率/(16x波特率)
可以任意选择写入波特率因子的高字节和低字节的顺序,但写入前必须置线路控制寄存器(LCR)的D7(DLAB)位为1。写入波特率因子后应将线路控制寄存器的D7清零,以便访问其他寄存器。在外接晶振为3.6864MHZ时,几种常用的波特率所对应的波特率因子寄存器的值如表2:
表2& 波特率设置
波特率(bps)
高位除数寄存器DLM
低位除数寄存器DLL
&&& (1) 12864液晶显示器硬件电路连接图如图3所示。硬件连接图主要由8位双向数据口,命令数据选择端以及读写选择端和使能端,还有2个左右半屏的片选脚,其中滑动变阻器是调节背光大小的,VCC和地之间接了个104的电容是是直流稳定输入。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图 3
(2) 12864液晶显示器的读操作时序图如图4所示。
&&&&&& 当读写选择脚为高电平时则为读操作有效,并且使能脚也要为高电平,在这2个脚同时为高电平的时候数据口上的数据才有效的从12864读出。
&&&&&&&&&&&&&&&&&&&&&&&&&&& & 图 4 12864液晶读操作时序
(3) 12864液晶显示器的写操作时序图如图5所示。
&&&&&& 读写选择脚为低电平并且使能脚为高电平时数据才有效的写入12864液晶的控制器中。
&&&&&&&&&&&&&&&&&&&&&&&&&&& & 图5 12864液晶写操作时序
(4) 12864液晶显示器的内部结构图如图6所示。
&&&&&& 12864大液晶的结构主要是128列64行矩阵式点阵构成。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图 6 内部结构图
系统设计分析
2.4.1系统设计过程
&&& 数据采集系统主要由串口、液晶显示器、键盘组成,分别完成接收GPS数据、显示信息、以及按键控制。所以必须掌握DSP的串口通信、液晶显示原理、按键扫描原理。
&&& 串口接收数据主要是在实验8的基础上进行改进将接收到的数据进行存储,然后就是将接收下来的数据进行处理识别,先判断帧头部分再是各部分的参数信息。分别将他们提取出来然后放到液晶上显示。再这整个过程中按键就是控制接收哪部分信息以及液晶翻页功能。本系统中还加入中断按键响应。即实现数据的动态显示实时接收GPS的数据。
&&& TMS320VC5416与PC机通过TL16C550扩展RS232串口实现串行通讯,其原理图如图7所示。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && 图 7
系统设计原理图
首先要实现数据的传出过程,了解串口通信,因为平时实验有这个实验所以上手就比较快了。接收模块主要由GPS接收机、数据处理软件以及相应的用户设备所组成。其主要完成接收卫星信号,从而获得导航或定位信息,经数据处理,完成导航和定位工作。整个系统框架图如下图8所示。
图 8接收模块整体结构图
对本次课程设计来讲,DSP模块是最重要的部分,就是通过DSP模块来对从串口接收到的定位信息来进行处理,提取其中的参数,这些处理都是通过编写程序然后下载到DSP实验箱来实现的。DSP系统的架构图如下图9所示。
&&&&&&&&&&&&&&&&& 图 9 DSP接收显示系统框图
因为DSP实验箱上有键盘,可以通过对键盘的操作来实现数据的显示,所以必须要设计键盘操作程序来定义键盘上某些键的功能,从而更方便的来控制数据的显示。因为经过DSP模块处理后的参数需要在实验箱上的LCD上显示,显示时需要对显示的内容在LCD屏上进行行和列的排列,设置不好的话可能会出现有些参数无法显示的情况,所以LCD显示模块的设置是必须的。
系统硬件的具体设计方案
DSP系统的硬件设计又称为目标板设计,是在考虑算法需求、成本、体积和功耗核算的基础上完成的。一个基本的DSP硬件系统应包括DSP的基本工作电路及各种外围接口电路设计。由于本次课程设目计的题是基于DSP数据提取,所以只涉及到DSP的串口接口电路以及12864液晶显示电路。
电源、复位、时钟电路
3.1.1 电源电路的设计
为了降低芯片的功耗,TMS320C54x系列芯片大部分都采用低电压设计,并且采用双电源供电,即内核电源CVDD和I/O电源DVDD。通常I/O都采用3.3V电压供电,而内核为1.8V供电。
目前,生产电源的芯片比较多,如Maxim公司的MAX604、MAX748,TI公司的TPS71xx系列、TPS72xx系列和TPS73xx系列等。这些芯片可分为线性芯片和开关芯片两种,在设计中要根据实际的需要来选择。如果系统对功耗要求不高时,可使用线性稳压芯片,其特点是使用方法简单,电源纹波电压较低,对系统的干扰较小。若系统对功耗要求较苛刻时,应使用开关电源芯片。通常情况下开关电源芯片的效率较高,可以达到90%以上,但开关电源所产生的纹波电压较高,且开关振荡频率在几千赫兹到几十万赫兹以上,易对系统产生干扰。
本次设计采用的电源芯片是TI公司提供的TPS73HD318两路电源输出芯片,其两路输出分别为3.3V和1.8V,每路电源的最大输出电流为750mA。电路如图10所示。
图10 电源电路设计
图中C7、C8、C9、C10分别为各旁路上的退偶电容,用于滤除直流电源中的杂波信号,使电源更稳定。
3.1.2 复位电路设计
C54x的复位输入引脚RS为处理器提供了硬件初始化的方法,它是一种不可屏蔽的外部中断,可在任何时候对'C54x进行复位。当系统上电后RS应至少保持5个时钟周期的低电平,以确保数据、地址和控制线的正确配置。复位后,CPU从程序存储器的FF80H单元取址,并开始执行程序。
TMS320C54x的复位可以分为软件复位和硬件复位两种。软件复位是通过指令方式实现芯片的复位,而硬件复位是通过硬件电路实现复位。此次设计所使用的复位电路如图11所示。
图11 复位电路
在初始状态,RS端为高电平,当按下复位按钮S1并持续一段时间(100~200ms)后,电容C1通过按键进行放电,使电容上的电压降为0,RS就可以持续一段时间的低电平,实现DSP芯片的手动复位。
异步通信接口电路设计
由于大多数型号的DSP芯片没有异步接收发送设备(UART)接口,如本次设计所用的TMS320VC5416,因此,我们采用了串并转换芯片TL16C550C以实现DSP与PC及之间的串口通信。
TL16C550C是TI公司生产的性价比很高的异步通信芯片,对从外围器件接收的数据进行串行至并行的转换,对从接收的数据进行并行至串行的转换。在异步通信单元ACE(asynchronous communications element)工作的任何时候CPU均可读和报告ACE的状态.这些状态信息包括正在进行的传输工作类型、工作状态以及遇到的任何错误条件。
TMA320C54x通过TL16C550C与PC机连接的电路图如图12所示。A0~A2为片内寄存器的地址选择端口,对其写入不同的电平可以实现对tl16c550c芯片的不同寄存器进行操作;D0~D8为双向8位数据线,用于与DSP进行数据通信;CS0、CS1、CS2用于输入片选信号,当CSO、CS1为高电平且CS2为低电平时,tl16C550被选中;R/W、RD1为读写控制信号输入端,其中RD1的信号由R/W经过一非门后输入;XIN、XOUT外接晶振,此处使用3.6864Mz的晶振,这样可以设置精确的波特率;INT0
用于提供中断服务;SIN、SOUT与MAX232进行通信;CTS、RTS分别为允许发送和请求发送控制端。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图12 异步通信接口电路
TL16C550C的SOUT、CTS、SIN、RTS分别通过MAX232与串口的2、7、3、8引脚连接,在连接的过程中要注意区分MA X232的输人、输出引脚方向。
电平转换电路设计
为了实现TMS320C54x与PC机之间的电平转换,采用MAX232电平转换芯片设计了该电平转换电路,如图13所示。
MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。每个接收器将EIA/TIA-232-E电平输入转换为5V TTL/CMOS电平。这些接收器具有1.3V的典型门限值及0.5V的典型迟滞,而且可以接收±30V的输入。每个驱动器将TTL/CMOS输入电平转换为EIA/TIA-232-E电平。图中H5为串口接口。
MAX232的特点:MAX232的工作温度范围为0℃至70℃,MAX232I的工作温度范围为-40℃至85℃;单5V电源工作;LinBiCMOSTM工艺技术;两个驱动器及两个接收器;±30V输入电平;低电源电流:典型值是8mA;符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V.28;可与Maxim公司的MAX232互换;ESD保护大于MIL-STD-883(方法3015)标准的2000V。
图13 电平转换电路
系统程序设计
Composer Studio)代码调试器是一种合成开发环境。它是一种针对标准TMS320调试器接口的交互式方法。CCS目前有CCS1.1, CCS1.2 和CCS2.0等三个不同时期的版本,又有CC2000 ( 针对C2XX ),CCS5000 ( 针对C54XX )和CCS6000 (针对C6X )三个不同的型号。CCS提供了非常丰富的调试手段。从数据流角度上,用户可以对内存单元和寄存器进行查看和编辑,载入/输出外部数据。一般的调试步骤为:调入构建好的可执行程序,先在感兴趣的程序段设置断点,然后执行程序停留在断点处,查看寄存器的值或内存单元的值,对中间数据进行在线分析。
载入可执行程序,命令“File/Load Program”载入编译链接好的可执行程序。使用反汇编工具,在某些时候(例如调试C语言关键代码),用户可能需要深入到汇编指令一级。可以利用CCS的反汇编工具。用户的执行程序(C程序或是汇编程序)载入到目标板时,CCS自动打开一个反汇编窗口。除在反汇编窗口可以显示反汇编代码外,CCS允许用户在调试窗口中混合实现C和汇编语句。可以选择“View/Mixed Source/Asm”。程序的执行控制,在调试程序时,用户会经常用到复位、执行、单步执行等命令,统称为程序执行控制。
1、CCS提供的复位目标板
(1)“Debug-Reset DSP”命令初始化所有的寄存器内容并暂停运行中的程序。
(2)“Debug-ReTLart”命令将PC恢复到当前载入程序的入口地址,此命令不执行当前程序。
(3)“Debug-GoMain”命令在主程序入口处设置一临时断点,然后开始执行。当程序被暂停或遇到一个断点时,临是时断点被删除。此命令提供了一种快速方法来运行用户应用程序。
2、CCS提供的程序执行控制
(1)“Debug-Run”命令,程序运行到遇见断点为止。
(2)“Debug-Halt”命令,程序暂停执行。
(3)“Debug-Animate”命令,用户可以反复运行执行程序,直到遇到断点为止。
(4)“Debug-Run Free”命令,此命令禁止所有断点,然后运行程序。在自由运行中对目标处理器的任何访问都将恢复断点。
3、CCS提供的单步执行操作
(1)“Debug-TLep Into”,当调试语句不是最基本的汇编指令时,此操作将进入语句内部(子程序或软件中断)调试。
(2)“Debug-TLep Over”,此命令将函数或子程序当作一条语句执行,不进入其内部调试。
(3)“Debug-TLep Out”,此命令将从子程序中跳出。
(4)“Debug-Runto Cursor”,此命令使程序运行到光标所在的语句。
&4、断点设置
断点的作用在于暂停程序的运行,以便观察/修改中间变量或寄存器数值。CCS提供了两类断点。设置断点应当避免以下两种情形:
(1)将断点设置在属于分支或调用的语句上。
(2)将断点设置在块重复操作的倒数第一或第二条语句上。
5、内存操作
在调试过程中,用户可能需要不断观察和修改寄存器、内存单元、数据变量。下面,我们依次介绍如何修改内存块,如何查看和编辑内存单元、寄存器、数据变量。
1)内存块操作
(1)拷贝数据块,拷贝某段内存到一新位置。
(2)填充数据块,用特定数据填充某段内存。
2)查看、编辑内存
CCS允许显示特定区域的内存单元数据。选择“View-Memory”,在弹出的对话框中输入内存变量名(或对应地址)、显示方式即可显示指定地址的内存单元,在内存显示窗口中单击右键,从关联菜单中选择“Properties”,设定内存显示属性。
6、CPU寄存器操作
(1)显示寄存器。
(2)编辑寄存器。
观察变量:在程序运行中,用户可能需要不间断地观察某个变量的变化情况,CCS提供了观察窗口(“Watch Window”),用于在调试过程中实时查看修改变量值。
7、加入观察变量
(1)选择“View-Watch Window”命令,则观察窗口出现在CCS的下部。CCS最多提供4个观察窗口,每个观察窗口用户都可以定义若干个观察变量,有两种方法可以定义观察变量:一是将光标移到观察窗口中按Insert键,弹出表达式加入对话框,在对话框中填入要观察的变量符号即可;二是在源文件窗口或反汇编窗口双击变量,则该变量反白显示,右键单击选择“Add to Watch Window”则该变量直接进入当前观察窗口中。
(2)表达式中的变量符号当作地址还是变量处理取决于目标文件是否包含有符号调试信息。若在编译链接时有-g选项K(包含符号调试信息),则变量符号当作真实变量值处理,否则作为地址。
8、删除某观察变量
有两种方法可以从观察窗口中删去某变量:
(1)双击观察窗口某变量,选中后变为彩色亮条显示。按Delete键,则从列表中删除此变量。
(2)选中某变量,单击右键,选择“Remove Current Expression”。
9、观察数组或结构变量
某些变量可能包含多个单元,如数组、结构或指针等C变量,这些变量加入到观察窗口时,会有“+”,可以点击“+”展开观察。
评估代码性能:用户完成一个算法设计和编程后,一般需要测试程序效率以便进一步优化代码,CCS用“代码性能评估”工具来帮助用户评估代码性能。其基本方法为:在适当的语句位置设置断点(软件断点或性能断点)。当程序执行通过断点时,有关代码执行的信息被收集并统计。用户通过统计信息评估代码性能,更详细的内容请参考相关资料。
10、在CCS里建立一个项目的步骤:
(1)创建新的工程文件: 选择菜单“ Project” 的 “New…” 项;在“Project Creation”对话框中,在“Project”硬件设项输入“volume” ; 单击“ Location ” 项末尾的浏览按钮, 改变目录到“C:\5416EDULab\Lab1-UseCC”,单击“OK”;单击“完成”;这时建立的是一个空的工程文件;展开主窗口左侧工程管理窗口中“Projects”下新建“volume.pjt”,其中各项均为空。
(2)在工程文件中添加程序文件: 选择菜单“Project” 的“Add Files to Project… ”项;在“Add Files to Project”对话框中选择文件目录为“C:\5416EDULab\Lab1-UseCC”,改变文件类型为“C Source Files(*.c;*.ccc)”,选择显示出来的文件“volum.c”;重复上述各步骤,添加“volume.cmd” 文件到“volum” 工程中;添加“C:\ti\C5400\cgtools\lib\rts.lib”。
(3)编译连接工程: 选择菜单“Project”的“Rebuild& All”项;注意编译过程中CCS 主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。
系统程序设计流程图
&&&&&& (1) 图14所示的为系统初始化的程序流程图,主要是DSP的状态等待寄存器以及状态控制寄存器的初始化,还有系统中用到的DSP的硬件外部中断1所以要对其初始化,用到了12864液晶所以要对GPIO初始化操作以及12864液晶的初始化操作,然后在12864液晶上显示按键的控制信息,最后关闭实验箱上所有的LED即完成了系统的初始化过程。
&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&& 图 14
&&&&&& (2) 图15主要是说明了按键控制GPS定位数据提取以及12864液晶显示数据信息的整个程序流程图。
系统程序设计
初始化程序模块
DSP初始化:
1、首先要定义寄存器
&&& 如,对软件等待状态寄存器(SWWSR)和软件等待状态控制寄存器(SWSR)进行宏定义如下:
#define SWWSR&&&&&&&&&& *(volatile unsigned int *)(SWWSR_ADDR)
#define SWCR&&&&&&&&&&& *(volatile unsigned int *)(SWCR_ADDR)
2、对寄存器进行读写操作,io、ram和rom的等待周期进行设置。
1、对TL16C550C的寄存器进行宏定义,通过地址线定义TL16C550C的各个寄存器
2、对TL16C550C的寄存器进行初始化,整个程序时通过总线的形式进行操作的。
在对各个寄存器操作前,要先对线路状态寄存器进行操作。
采用的是3.6864Mz的晶体振荡器,得到速度为9600Baud、字长为8bit、无奇偶校验位、1为停止位的数据流。
4.3.2 串口通信接收程序模块
&&& 系统主要是用到了串口通信的接收函数,
void Uart_Init(void)//串口初始化函数
&&& UART_LCR = 0x03; //字长为8 bit、无校验位、1 位停止位
&&& UART_IER =& 0;//关闭所有中断允许位
&&& UART_LCR = 0x83;//设置DLAB=1时才可以设置DLL和DLM&&&&&&&
&&& UART_DLL = 0x18;&& /*DLAB =1*/
&&& UART_DLM = 0x00;&& /*DLAB =1*/
&&& UART_FCR = 0x00;/*write*/
&&& UART_LCR = 0x03;
unsigned int Uart_rx(void)//接收程序
&&& volatile unsigned long ii = 0L;&&&&&
&&&&&& while(!(UART_LSR & 0x01))//查询通过判断线路状态寄存器的DR来判断接收寄存器中是否有值
&&&&&& if(ii++&2000000)//查询一段时间,在这段时间内接收函数一直返回0xffff
&&&&&& {&&
&&&&&&&&&& return(0xffff);
&&& }//当接收到数据时则返回接收缓存器中的数值
&&& return(UART_RBR);
4.3.3 按键扫描程序模块
&&&&&& i=Get_Key();//获取当前键值存入变量i中
&&&&&&& waitloop( 0x040000L );//延时按键消抖
&&&&&& j=Get_Key();//延时一段时间后再次取得键值
&&&&&&& if(i==j)//判断后面取得的键值是否等于前面的键值
&&&&&&&& { //前后2次的键值相等的话就进入if语句执行键值判断
&&&&&&&&&& key_val=j; //将键值存入变量key_val中
&&&&&&&&&& while(Get_Key())//这个就是松手检测了,就是直到检测到键值为0X0000即Get_Key()函数返回0时马上退出while循环然后再次判断键值
&&&&&&&&&& &{
&&&&&&&&&&&&& asm(&\tnop&); //wait blank_key
&&&&&&&&&& &}&&&
& & &&& &&&&switch(key_val)//判断键值进入不同的函数实现功能
&&& &&&&&&&&&& default:
&&& &&& && &&&&
&&& &&&&&&&&&& case 1:
&&&&&&&&&& && &&& //init_lcd();
&& &&&&&&&&&&&&&& LCD_clear(0);
&&&&&&&&&&&&&&&&& while(flag)
&&&&&&&&&&&&&&&&& {
&&&&&&&&& &&&&&&&&&& uart_rece_gprmc_0();
&&&&&&&&&&&&&&&&& };
&&& &&&&& &&&&&&&
在这只是讲了其中的一个case语句,其他的都是一样的就不细说了。
下面图即是上述程序的流程图。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&& 图16
中断程序模块
&&&&&& 首先设置中断标志寄存器(Interrupt Flag Register)和中断屏蔽寄存器(Interrupt Mask Register,IMR),程序如下:
&&&&&& IFR =0
&&&&& IMR =0x0002; //TINT=IMR.3&&&&&& EXINT1=IMR.1
在这里只使能外部中断1有效,对应的在Lsvects.s54里设置中断入口地址以及跳转函数
int1:& && &B& &&&& _EXINT1_isr
&&&&&&& NOP
&&&&&&& NOP
&&&&&&& NOP
&&&&&& 上述过程主要是设置中断入口地址,下面主要是main函数里面的中断服务子函数
interrupt void EXINT1_isr()//中断服务子程序
&&&&&& flag=0;//当中断产生时则立马将标志flag清零从而退出数据接收循环
&&&&&& cur_row=5;&&&&&&&
&&&&&& cur_col=15;&&&&&&
&&&&&& LCD_clear(0);//清液晶显示屏
& && display();//显示主菜单
&&&&&& 在程序中,主要是利用中断来改变标志位flag,从而有效的控制接收数据函数从大循环中退出来。使液晶显示数据可以动态显示。
4.3.5数据提取与LCD显示模块
(1) 数据提取关键代码分析:
先讲下串口接收函数
&&&&&& while(!(UART_LSR & 0x01))//这个就是判断LSR的第0位当接收到数据时该位则置高,否则一直是0那么一直执行return(0xffff),
&&&&&&&&&&&&& if(ii++&2000000)
&&&&&&&&&&&&& {&&
&&&&&&&&&&&&&&&&&&&& return(0xffff);
&&&&&&&&&&&&& }
//当接收到数据时则不执行while循环立马返回接收到的数据
&&&&&& return(UART_RBR);
&&&&&& Uart_Init(); //串口初始化
&&&&&& for(ii=0;ii&ii++)//先将上次存储的数据全部清空
&&& &&&&& data[ii] =0;
&&&&&& while(1)
&&&&&&&&&&&&& do
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& jj = Uart_rx();//变量jj存下串口接收过来的数据
&&&&&&&&&&&&& }while(jj==0xFFFF);//在程序中使用的是查询法,就是一直查询串口是否接收到数据,如果接收到数据则跳出do..while();语句。否则一直等待
&&&&&& &&& if(locate&shuzunum)//这部分主要实现的是将接收下来的数据一帧一帧的存入data[]数组中以便后面识别显示
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& data[locate] =
&&&&&&&&&&&&&&&&&&&& locate++;
&&&&&&&&&&&&& }
&&&&&&&&&&&&& Else//当data数组存满以后则进行识别操作,也就是识别各个字母对应的ASCII值从而提取出我们需要的参数
&&&&&&&&&&&&& {&&&&
&&&&&&&&&&&&&&&&&&&& ii=0;
&&&&&&&&&&&&&&&&&&&& while(ii&shuzunum)
&&&&&& &&&&&&& {
&&&&&& &&&&&&&&&&& if(data[ii]==36)//首先识别帧头$
&&&&&& &&&&&&&&&&& {&
&&&&&& &&&&&&&&&&& &&& if((ii+1)&shuzunum&&data[ii+1]==71)//G
&&&&&& &&&&&&&&&&&&&&&&& if((ii+2)&shuzunum&&data[ii+2]==80)//P
&&&&&& &&&&&&&&&& &&&&&&&&&if((ii+3)&shuzunum&&data[ii+3]==82)//R
&&&&&& &&&&&&&&&&&&&&&&&&&&& if((ii+4)&shuzunum&&data[ii+4]==77)//M
&&&&&& &&&&&&&&&&&&&&&&&&&&&&& if((ii+5)&shuzunum&&data[ii+5]==67)//C
&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&//直到全部条件满足的情况下退出while循环
&&&&&& &&&&&&&&&&& }
&&&&&& &&&&&& &&&&&ii++;//当有一个不满足时则立马在数组的位置中继续查找
&&&&&& &&&&&&& }
&&&&&& &&&&&&& ii+=6;//当识别到$GPRMC时则将数组指向的位置往前挪6位即跳过$GPRMC进而继续判断后面的内容
&&&&&& &&&&&&& for(;ii&ii++)
&&&&&& &&&&&&& {&
&&&&&& &&&&&&&&&& if(data[ii]==36)//如果在$GPRMC后面紧跟着的内容是$的话则立马退出for循环继续等待$GPRMC的出现
&&&&&& &&&&&&&&&& &&&&&&&&&&&&
&&&&&& &&& &&&&&&&if(ji_dou==1)//如果逗号的个数为1的话则该段数据为时间信息,则将它一一存入定义的time数组中直到下个逗号出现时存储停止
&&&&&& &&&&&&&&&& {
&&&&&& &&&&&&&&&& &&&&&&&&&&&& time[data_num]=data[ii];
&&&&&& &&&&&&&&&& &&&&&&&&&&&& data_num++;
&&&&&& &&&&&&&&&& }
&&&&&& &&&&&&&&&& else if(ji_dou==2)//逗号个数为2后面则为定位状态信息
&&&&&& &&&&&&&&&& {
&&&&&& &&&&&&&&&& &&&&&&&&&&&& locate_state[data_num]=data[ii];
&&&&&& &&&&&&&&&& &&&&&&&&&&&& data_num++;
&&&&&& &&&&&&&&&& }
&&&&&&&&&&&&&&&&&&&& && else if(ji_dou==3)//逗号个数为3时则为纬度信息
&&&&&&&&&&&&&&&&&&&& && {
&&&&&&&&&&&&&&&&&&&& && &&&&&&& weidu[data_num]=data[ii];
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& data_num++;
&&&&&&&&&&&&&&&&&&&& && }
&&&&&& &&&&&&&&&& else if(ji_dou==4)//逗号为4时则为纬度的方向信息,是北纬还是南纬
&&&&&& &&&&&&&&&& {
&&&&&& &&&&&&&&&& &&&&&&&&&&&& N[data_num]=data[ii];
&&&&&& &&&&&&&&&& &&&&&&&&&&&& data_num++;
&&&&&& &&&&&&&&&& }
&&&&&& &&&&&&&&&& else if(ji_dou==5)//逗号为5时则是经度信息
&&&&&& &&&&&&&&&& {
&&&&&& &&&&&&&&&& &&&&&&&&&&&& jingdu[data_num]=data[ii];
&&&&&& &&&&&&&&&& &&&&&&&&&&&& data_num++;
&&&&&& &&&&&&&&&& }
&&&&&& &&&&&&&&&& else if(ji_dou==6)//逗号为6则是东经还是西经信息
&&&&&& &&&&&&&&&& {
&&&&&& &&&&&&&&&& &&&&&&&&&&&& E[data_num]=data[ii];
&&&&&& &&&&&&&&&& &&&&&&&&&&&& data_num++;
&&&&&& &&&&&&&&&& }
&&&&&& &&&&&&&&&& else if(ji_dou==7)//逗号个数为7时则为速度信息
&&&&&& &&&&&&&&&& {
&&&&&& &&&&&&&&&& &&&&&&&&&&&& speed[data_num]=data[ii];
&&&&&& &&&&&&&&&& &&&&&&&&&&&& data_num++;
&&&&&& &&&&&&&&&& }
&&&&&& &&&&&&&&&& if(data[ii]==44)//这个则是遇到’,’的时候则将计算逗号个数的变量ji_dou加1从而有效的提取出两个’,’之间的信息
&&&&&& &&&&&&&&&& {
&&&&&& &&&&&&&&&& &&&&&&&&&&&& ji_dou++;
&&&&&& &&&&&&&&&& &&&&&&&&&&&& data_num=0;//当遇到下一个’,’时则将数组计数变量清零
&&&&&& &&&&&&&&&& }
&&&&&& &&&&&&& }
(2)& LCD显示模块关键代码分析:
&&&&&&&&&&&&&&&&&&&& cur_col=50;//12864液晶显示的列值
&&&&&&&&&&&&&&&&&&&& cur_row=0;//12864液晶的行值
&&&&&&&&&&&&&&&&&&&& LCD_pr_chars(&GPRMC&,5);//调用显示字符串函数显示
&&&&&&&&&&&&&&&&&&&& cur_col=0;//12864液晶行列值
&&&&&&&&&&&&&&&&&&&& cur_row=1;
&&&&&&&&&&&&&&&&&&&& LCD_pr_chars(&***********************&,23);
&&&&&&&&&&&&&&&&&&&& cur_col = 1;
&&&&&& &&&&&&& cur_row = 2;&
&&&&&& &&&&&&& LCD_pr_chars(&Locate_State:&,13);//显示定位状态
&&&&&&&&&&& for(ii=0;ii&4;ii++)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& if(locate_state[ii]==65)
&&&&&&&&&&&&&&& && LCD_pr_chars(&Locate:&,6);//当收到’A’时则显示定位
&&&&&&&&&&&&&&& else if(locate_state[ii]==86)& //如果收到的是’V’
&&&&&&&&&&&&&&& && LCD_pr_chars(&Unlocate:&,8);//则显示不定位状态
&&&&&&&&&&& }
&&&&&&&&&&& cur_col = 1;//12864液晶行列值
&&&&&&& &&&&cur_row =3;
&&&&&&&&&&& LCD_pr_chars(&Time:&,5);//显示时间
&&&&&&&&&&& LCD_nextchar(chartable[time[0]-48]);
&&&&&&&&&&& LCD_nextchar(chartable[time[1]-48]);
&&&&&&&&&&& LCD_nextchar(':');
&&&&&&&&&&& LCD_nextchar(chartable[time[2]-48]);
&&&&&&&&&&& LCD_nextchar(chartable[time[3]-48]);
&&&&&&&&&&& LCD_nextchar(':');
&&&&&&&&&&& LCD_nextchar(chartable[time[4]-48]);
&&&&&&&&&&& LCD_nextchar(chartable[time[5]-48]);
&&&&&&&&&&& cur_col = 1;
&&&&&&&&&&& cur_row = 4;
&&&&&&&&&&& LCD_pr_chars(&Latitude:&,9);//显示纬度
&&&&&&&&&&& for(ii=0;ii&9;ii++)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& if(weidu[ii]==46)//当遇到’.’的ASCII值时则显示’.’
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& LCD_nextchar('.');//
&&&&&&&&&&&&&&& else&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& LCD_nextchar(chartable[weidu[ii]-48]);否则正常显示
&&&&&&&&&&& }
&&&&&&&&&&& if(N[0]==78)//如果收到的为’N’则显示N
&&&&&&&&&&&&&&&&&&&&&&&&&&& LCD_nextchar('N');//北纬
&&&&&&&&&&& else //否则则显示S
&&&&&&&&&&&&&&&&&&&&&&&&&&& LCD_nextchar('S');//南纬
&&&&&&&&&&& cur_col = 1;
&&&&&&&&&&& cur_row = 5;
&&&&&&&&&&& LCD_pr_chars(&Longitude:&,10);
&&&&&&&&&&&& for(ii=0;ii&9;ii++)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& if(jingdu[ii]==46)LCD_nextchar('.');
&&&&&&&&&&&&&&& else&& LCD_nextchar(chartable[jingdu[ii]-48]);
&&&&&&&&&&& }
&&&&&&&&&&& if(E[0]==69)
&&&&&&&&&&&&&&&&&&&&&&&&&&& LCD_nextchar('E');//东经
&&&&&&&&&&& else
&&&&&&&&&&&&&&&&&&&&&&&&&&& LCD_nextchar('W');//西经
&&&&&&&&&&& cur_col = 1;
&&&&&&&&&&& cur_row = 6;
&&&&&&&& &&&LCD_pr_chars(&Speed:&,6);//速度
&&&&&&&&&&& for(ii=0;ii&5;ii++)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& if(speed[ii]==46)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& LCD_nextchar('.');
&&&&&&&&&&&&&&& else&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& LCD_nextchar(chartable[speed[ii]-48]);
&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&&& cur_row=7;&&&&&&&&& &
&&&&&&&&&&&&&&&&&&&& cur_col=0;
&&&&&&&&&&&&&&&&&&&& LCD_pr_chars(&Press &INT& to Exit&,19);//当按下急救车的按键的时候则立马退出显示数据的循环显示主菜单
串口调试器介绍
串口调试器是一种人机交互的软件,从串行口获取串口通信数据,支持常用的300-115200bps波特率,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送任何数据或字符(包括中文),可以任意设定自动发送周期,并能将接收数据保存成文本文件,能发送任意大小的文本文件。本次系统调试我使用的是“串口调试助手V2.1.exe”。打开后界面如图17示:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&& 图 17
系统调试过程
1. 用RS232串口线将DSP实验箱与PC机连接好,将硬件仿真器TH-TDS520-USB2的USB口接入PC机,Jtag口接DSP实验箱,DSP实验箱上电。
2. 双击运行Setup CCS2.0,配置好CPU后保存关闭,接着会打开CCS2.0界面,同时硬件仿真器指示灯亮。
3. 打开串口通信的project,编译链接,把.out文件加载完后运行程序;
4. 打开串口调试助手,选择串口端口号,设置好波特率(根据DSP实验箱所选的晶振设置为9600)及数据位、校验位位数,并且打开串口,在串口调试小助手的发送区写入要发送的数据,然后选择自动发送(可以设置自动发送的发送周期,一般选择1000ms左右),在CCS的数据空间观察在串口调试助手上发送的数据。同时在接收区的窗口观察DSP发送过来的数据(数据是由DSP程序所决定的,具体发送的内容可以根据通信程序进行修改)。
调试结果与分析
结果分析:
图18主界面
&&&&&& 上图18即为系统显示的主界面,主要是显示按键控制显示相应信息。
K1:提取GPGGA的海拔高度,时间,纬度,经度。K2:提取GPGGA定位状态,卫星数目,HDOP水平精度因子(0.5 - 99.9)。K3提取GPRMC的时间,定位状态,经度,速度,纬度。K4提取GPRMC的方位角,年月日,磁偏角和磁偏角的方向。
图 19 GPGGA数据1
&&&&&& 图19提取显示GPGGA的海拔高度为58.0,时间为06:18:21,纬度为北纬28.3546度,经度为东经115.51884度,最后一行显示的是按下中断按键则退出提取界面返回主界面。
图20 GPGGA数据2
&&&&&& 图 20 提取显示GPGGA的定位状态信息为未定位,卫星数目为10个,HDOP水平精度因子为0.8,最后一行提示按下中断键则退出数据提取界面返回主界面。
图21 GPRMC数据1
&&&&&& 图 21 提取显示GPRMC的定位状态信息为已定位,时间为06:18:20,纬度为北纬28.443546度,经度为东经115.51884度,速度为000.0节,最后一行提示按下中断按键则退出数据提取界面返回主界面。
图22 GPRMC数据2
&&& 图 22 提取显示GPRMC的日期年月日为07年4月25日,方位角为000.0度,磁偏角为003.3度,磁偏角的方向为西(W)。
通过这次课程设计,首先对GPS全球定位系统的整体结构有了一定的了解,对系统大致的工作过程有了一些认识,知道了系统的控制过程,传输过程,以及接收模块的工作过程。本次课程设计针对的就是接收模块。在接收模块中我们做的工作是对定位信息中相关参数的提取,在这个过程中接触了一种NMEA-0183数据格式,是原来没有接触过的,通过查资料知道了大多数的接收机都是接收的这种数据格式的信息,所以对它的特点的了解很重要。在程序的调试中采用的是CCS软件,通过对多个程序的调用和测试,逐渐掌握了对CCS的应用,同时通过在CCS中把程序下载到硬件中,使需要的功能在硬件中得以实现,对整个开发流程有了一个比较清楚的认识。由于编写的程序包含了许多的函数,最重要的是串口接收函数,然后有键盘控制函数和LCD显示函数等来辅助整个程序的实现。在函数的调试过程中出现了不少的问题,特别是在LCD显示上,通过多次调试,解决了出现的问题,学会了解决问题的方法。总的来说,通过这次课程设计,学习了不少新的知识,重要是GPS方面的,对接收模块的各部分已经有了比较深的理解,在实现TMS320VC5416与PC机得异步串口通信时系统采用的是TI公司的UART器件TL16C550来扩展串口虽然增加了硬件电路设计但无需对通信协议深入了解,避免了软件模拟,大大降低了软件编程的复杂度,并且免去了对时钟中断的依赖。
通过本此课设使我提高了发现问题并且解决问题的能力,刚开始的时候我是直接调用串口的接收函数来实现接收PC机发来的数据并没有具体的对程序和硬件电路详细分析,便直接搞了上层的应用开发,将接收下来的定位数据先存储然后再识别帧头再分门别类的进行液晶显示。后面我就串口通信先从硬件电路看起,首先是TMS320VC5416的低8位数据口和TL16V550的8位数据口相连,DSP通过A0,A1,A2三根地址线以及DLAB来选择片内寄存器,然后TL16C550输出是2根线直接与MAX232相连,最后在传送到PC机。慢慢的就熟悉了各个寄存器的使用。
系统中有个创新的地方就是可以实现数据动态采集显示,也就是实时了,我是通过外部中断1来完成的,这个参考了定时器的那个实验,从而有效的在4个接收子函数中切换。
&&&&&& 这次课程设计提高了我的团队合作能力,当今社会分工已经很明细了,尤其在做大工程的时候都是靠团队合作才能高效率的完成工作。
&&& 课程设计是一门综合性很强的课程,既是对本课程理论知识的回收,又是一次理论转化为实践的考验。通过本次DSP课程设计,对异步串口通信有了更深的理解,对UART芯片TL16C550有一个很好的掌握,以及对GPS的定位数据有了明确的认识,同时提高了发现问题、解决问题的能力和团队协作能力。尤其是在程序编写与调试过程中,对DSP程序的语法结构有了一定的了解和掌握。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:18981次
排名:千里之外

我要回帖

更多关于 绝地求生大逃杀配置 的文章

 

随机推荐