大连海事大学毕业设计(二)_第1页
大连海事大学毕业设计(二)_第2页
大连海事大学毕业设计(二)_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

大连海事大学毕业设计(二)

2、C/T——功能选择位。C/T=1时,选择计数功能;C/T=0时,选择定时功能。T0、T1的计数、定时功能是通过TMOD中的位来选择的。3、M1、M0——工作方式选择位。由于有M1和M0两位,可以有四种工作方式,如下表所示。定时器/计数器的工作方式3串行数据通信程序设计3.1通信协议本系统串行通信采用异步通信方式。协议如下:1.一帧数据由1位起始位、8位数据位、无奇偶校验位、1位停止位共10位组成。2.波特率设为9600bps。单片机串行口按方式1工作,波特率由定时器T1控制,PC机串口波特率通过VB通讯控件的Settings属性设置,为保证数据传送的准确性,两者的波特率必须一致。本次通讯中,我们以一个测控系统的上位机和下位机之间的通信为背景,给出单片机部分和VB环境下的通信程序实例,系统中单片机负责数据采集、处理和控制,上位机进行现场可视化检测,通信协议采用异步串行通信方式,通过RS232的RTS信号进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯。3.2下位机(单片机)串行通信及程序设计平台介绍及编程方法汇编语言汇编语言是针对一类(甚至几类)计算机,抽象出来的一种符号语言并把这些符号加以统一规定,使得使用同类计算机的人都了解这些符号的意义,这样,使得用汇编语言编写的程序可以在这一类型的任何一台计算机上使用。这就有了极大的灵活性,当然不同类型的计算机的汇编语言也不同。它们都必须由生产厂家提供的汇编语言来编写。另外.汇编语言还增加了宏指令的功能。汇编语言是计算机卫程控制中最常用的语言。汇编语言的主要优点就是可以直接控制计算机硬件,可以编写在时间和空间两方面更有效的程序。这些优点使得汇编语言在程序设计中占有重要的地位。是不可取代的。但汇编语言的缺点也是明显的,它与处理器密切相关,要求程序员熟悉计算机硬件系统,考虑许多细节问题,所以程序繁琐,调试、维护、交流和移植困难。因此,有时可以采用高级语言和汇编语言混合编程的方怯,互相取长补短,更好地解决实际间题。汇编语言生要应用场合有以下几种:l)程序要具有较短的运行时问,或者只能占用较小的存储客量。例如操作系统的核心程序段,实时控制系统的软件等。2)程序与计算机硬件密切相关,程序要直接控制硬件。例如to接口电路的初始化程序段,外部设备的底层驱动程序等。3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动态链接库等。4)没有适合的高级语言的时候。例如开发最新的处理器程序时。伟福软件介绍:伟福系列仿真器伟福仿真品种多、功能强,特点如下:1)主机+POD组合,通过更换POD,可以对各种CPU进行仿真。2)双平台:DOS版本,WINDOWS版本。其中WINDOWS版本功能强大。3)双工作模式:a.软件模拟仿真(不要仿真器也能模拟仿真)。硬件仿真。4)双CPU结构,100%不占用户资源。5)双集成环境:编辑、编译、下载、调试全部集中在一个环境下。多种仿真器,多类CPU仿真全部集成在一个环境下。可仿真51系列,196系列,PIC系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。为了跟上形势,现在很多工程师需要面对和掌握不同和项目管理器、编辑器、编译器。伟福WINDOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口。6)强大的逻辑分析仪综合调试功能:随着科学技术的发展,单片机通讯方面的运用越来越多。有了逻辑仪,用它可以分别或者同时对发送方、接收方的输入或者输出波形进行记录、存储、对比、测量等各种直观的分析,可以将实际输出通讯报文的波形与源程序相比较,可立即发现问题所在。从而极大地方便了调试。7)强大的追踪器功能:追踪功能以总线周期为单位,实时记录仿真过程中CPU发生的总线事件,其触发条件方式同逻辑分析仪。追踪窗口在仿真停止时可收集显示追踪的CPU指令记忆信息,可以以总线反汇编码模式、源程序模式对应显示追踪结果。屏幕窗口显示波形图最多追踪记忆指令32K并通过仿真器的断点、单步、全速运行或各种条件组合断点来完成追踪功能。总线跟踪可以跟踪程序的运行轨迹。可以统计软件运行时间。编程方法本系统中传输协议为9600,8,N,1,即波特率为9600b/s,传送8个数据位。没有校验位,一个停止位。在PC机中也设置为相同的协议。1)控制寄存器SCON的设置为:SM0、SM1为0、1,即为串行工作方式1,REN为1,即允许接收。这样SCON中的值是0X50H,(使用汇编语言是MOVSCON,#50H。)2)TMOD寄存器的设置为:使用定时器1。M0=0,M1=1,工作于方式2,自动重新载入计数值。TMOD=0X20H。(使用汇编语言是MOVTMOD,#20H)3)波特率的设置:本系统上的工作时钟为11.0592MHz,波特率为9600b/s,对TH1的重载入计数器值由下式计算可得:TH1=256-11059200/384*9600=253=FDHTH1=0XFDH(使用汇编语言是MOVTH1,#0FDH)。接收程序:MOV

TH1,#0FDH;MOV

TL1,#0FDH;SETBTR1;MOV

SCON,#50H;LOOP:JBC

RI,DISPSJMP

LOOPDISP:MOV

A,SBUFMOV

DPTR,#TABMOVCA,@A+DPTRMOVP2,ASJMPLOOPTAB:DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND发送程序:ORG0000HSTART:MOV

TMOD,#20H;MOV

TL1,#0FDHMOV

TH1,#0FDH;SETB

TR1MOV

SCON,#40HMOV

R0,#20HMOV

R7,#32MOV

A,#40LOOP1:MOV

@R0,AINC

AINC

R0DJNZ

R7,LOOP1MOV

R0,#20HMOV

R7,#32LOOP:

MOV

A,@R0ACALLYANSHIACALLSPOUTINC

R0DJNZ

R7,LOOPSJMP

STARTSPOUT:MOV

SBUF,AJNB

TI,$CLR

TIRETYANSHI:MOV

R6,#250D1:

MOV

R5,#250DJNZ

R5,$DJNZ

R6,D1RETEND3.3上位机(PC机)串行通信及程序设计3.3.1平台介绍及编程方法VB语言简介在本系统中PC机采用VisualBasic(简称VB)编程。VB已成为WINDOWS系统开发的主要语言,以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。VB支持面向对象的程序设计,具有结构化的事件驱动编程模式并可以使用无限扩增的控件,而且可以十分简便地作出良好的人机界面。用VB6.0开发串行通信程序有两种法,一种是利用Windows的API函数;另一种是采用VB6.0的通信控件MSComm。利用API函数编写串行通信程序较为复杂,需要掌握大量的通信知识,其优点是可实现的功能更丰富、应用面更广泛,适合于编写较为复杂的低层次通信程序。而VB6.0的MSComm通信控件提供了标准的事件处理函数、事件、方法,并通过控件属性对串口参数进行设置,比较容易地解决了串口通信问题。该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置。这是一个标准的十位串口通信,包括8位标准数据和数据的起始位和停止位。在发送或接收数据过程中触发OnComm事件,通过编程访问CommEvent属性了解通信事件的类型,分别进行各自的处理。每个通信控件对应一个串口,可以设计多个通信控件来访问多个通信口。3.3.2VB6.0的通信控件及通信方式MSComm通讯控件简介MSComm是VB6.0提供的ActiveX控件,使用前需将该控件添加到VB工具栏。MSComm控件串口具有完善的串口数据的发送和接收功能。通过此控件,PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。此控件的事件响应有两种处理方式,事件驱动方式:由MSComm控件的OnComm事件捕获并处理通讯错误及事件;查询方式:通过检查CommEvent属性的值来判断事件和错误。1)MSComm控件的主要属性和方法a.

CommPort:设置或返回串行端口号,其取值范围为1—99,缺省为1b.

Setting:设置或返回串行端口的波特率、奇偶校验位、数据位数、停位。如:MSComm.Setting="9600,n,8,1”。c.

PortOpen:打开或关闭串行端口。d.

RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生MSComml--OnComm事件。e.

Input:从接收缓冲区移走一串字符。f.

Output:向发送缓冲区传送一字符串。2)CommEvent属性:如果在通讯过程中发生错误或事件,就会引发OnComm事件并由CommEvent属性代码反映错误类型,可根据该属性值来执行不同的程序操作或数据处理。以下是部分属性常数值及其含义:a.

ComEvSend:其值为1,发送缓冲区的内容少于SThreshold指定的值。b.

ComEvReceive:其值为2,接收缓冲区内字符数达到RThreshold值,该事件在缓冲区中数据被移走前将持续产生。c.

ComEventRxParity:其值为1009,奇偶校验。d.

ComEvEOF:其值为7,接收数据中出现文件结束字符。本系统采用事件驱动方式进行串口通信设计,下图2为上位机通信界面,设计了2个命令按扭,分别为发送、清空数据;两个文本框,Text1用于输入需从下位机读取的数,Text2用于显示下位机发送来的数据;3个Frame控件,一个Label控件,当然还需要一个MSComm控件。MSComm控件属性设置如图1示:(图2)下面是MSComm控件的初始化程序、部分数据发送和接受程序4调试与结论该系统目前已调试成功,完成了PC机与51单片机之间的串行通信。并且实现了下列功能:1)在VB界面上发送任一数字在51单片机的数码管上都能成功的接收2)同样通过向51单片机内写入的程序,在VB界面上可以接收到相对应的内容且运行良好。调试过程如下:硬件方面:该系统的硬件调试主要是排查单片机印刷电路板的问题和连接上的一些问题。在该系统中,首先通过了仔细地推敲系统原理,确认无误;其次对照设计图纸查印制电路板,看是否有粘接等工艺现象;最后,检查外围连接是否有误,通过这几个方面的反复调试,可确保电路板的无误性。在本系统的硬件调试过程中,出现了下列两种情况1)电压不稳定而导致程序无法写入的情况,使电压稳定的方法是改用新的电池,或者是再次设计电源方案,在这里是用电源接通教学实验板,然后再把教学实验板与本系统相

连接,这样,就可以得到稳定的电压了。2)还出现的一个问题是数码管不显示,检查后是焊接上出现了一点的失误。软件方面:本系统在软件调试方面也没有规律可循,调试时更多的是凭经验。软件调试的主要任务是排查错误。通过在WaveE2000编译器下调试程序,有两种错误,一种逻辑错误,也就是语法错误,是很容易被发现的,另一种是功能错误,是指在没有语法错误的基础上,由于设计思想或算法的问题导致不能实现软件功能的一种错误。调试过程中出现的问题主要有以下四个方面:1)用其它串口调试软件能够很好的实现两者之间的串行通信,成功的接收和发送数据,但使用我们的VB程序却不能实现,要么只能实现接收功能,要么只能实现发送功能。之后通过对VB程序做多次的改动与测试才达到理想的结果。2)在VB界面上发送的数据与单片机的数码管上显示的数字不相符,这个问题是我们汇编程序的问题,由于汇编语言符号的繁多加上我们的粗心在输入代码的过程中难免出现一些看不见的问题,造成调试过程中出现意外。借此我想提醒大家的是搞设计搞研究必须做到细心,要有一颗敬业的心对待我们接受的任务,有耐心面临出现的困难。3)由于要实现上下位机的串行通信,所以两者之间的波特率是否一致也是一个不容忽视的问题,在开始我并没有太注意这个方面的情况,到各方面的准备工作都做好要进行调试的时候,才发现有个二者波特率设置是否相同将影响到整个通信过程,我赶紧作了修改才免遭一次调试失败。4)还有最后一点注意的地方是,利用MSComm控件比较方便地开发串行通信程序,实现串行通讯原理已经得到实验结果验证,考虑到将来对系统实时性的要求,采用了MSComm控件的查询处理机制,避免了中断处理机制的不稳定和不连续性,而且还可以很方便地控制多个串口,只需插入多个MSComm控件,并为每个MSComm控件编写OnComm()函数。但是我们也清楚的体会到MSComm控件在VB中的使用较为复杂。这一点是我们以后在运用中需要加强的地方。伴随着单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。希望通过大家的共同努力能在PC机与单片机这方面取得新的成绩有突出的表现,能够很好的将学到知识运用到实际生活中,比如上面提到的利用单片机实现对温度的实时检测与控制已经得到广泛的应用。另外我们还可以在单片机的接口上再加接显示器,这样就更能方便的对系统进行操作与控制。通过这次毕业设计,我深刻体会到专业知识、专业技能分析和解决问题的能力在实际生活中是多么的重要,在完成设计任务的同时我这些方面的能力有了一个全面的提高和锻炼。具体表现在对单片机与PC机的串行通信的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(汇编语言与VB)的掌握方面都向前迈了一大步,为日后使我能成为合格的应用型人才打下了良好的基础。采用本系统实现PC机与单片机串行通信与一般其它系统的比较:一般的PC机与单片机之间的串行通信,需要单片机采集数据,然后用异步串行通讯方

温馨提示

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

评论

0/150

提交评论