当前位置 —论文写论文— 范文

通信技术方面有关论文范文素材,与单片机原理与应用相关论文下载

本论文是一篇通信技术方面有关论文下载,关于单片机原理与应用相关本科毕业论文范文。免费优秀的关于通信技术及无线通信及嵌入式方面论文范文资料,适合通信技术论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

#30340;类型:0为文本,1为二进制

表4.4程序中用到的所有控件,以及它们的ID 控件ID标题 按钮ID_SEND发送 按钮ID_CLEAR清空 编辑框IDC_EDIT_SEND 编辑框IDC_EDIT_RCV 静态文本IDC_STATIC接收缓冲区 静态文本IDC_STATIC发送缓冲区 组框IDC_STATIC端口选择 单选按钮IDC_1端口1 单选按钮IDC_2端口2 msmIDC_MSCOMM

表4.5用到的变量和变量的类型 ControlIDSTypeMember IDC_EDIT_SENDCStringm_str_send IDC_EDIT_RCVCStringm_str_recv IDC_MSCOMMCMSCommm_msm

ObjectIDSMessagesFunction ID_SENDBN_CLICKEDOnSend ID_CLEARBN_CLICKEDOnClr IDC_1BN_CLICKEDOn_Com1 IDC_2BN_CLICKEDOn_Com2 IDC_MSCommOnCommOnComm

4.2.2程序设计原理 第一步:初始化串行口.调用SetCommPort()函数,选择使用的端口好,然后设置波特率发送接收的处理方式,以及数据的传输方式,最后将串口打开. 第二步:发送数据.将要发送的字符串变成特定的类型后,调用函数SetOutput(),将数据发送到发送缓冲区 第三步:接受数据.将接收缓冲区中的数据通过GetInput()函数读出,并将它转换为Cstring类型,显示在界面上. 程序的各个主要部分和一些流程图: (1)登陆界面后,程序首先将接收缓冲区和发送缓冲区清空 程序如下: m_str_send等于"", m_str_recv等于"", UpdateData(FALSE), (2)然后进行串行口的初始化,也即是设置MSComm控件的各种属性.首先要进行端口的选择,由于所用到的计算机只有两个串行口,因此本程序只给了两个选择,具体的程序代码如下: voidCMyDlg::On_Com1() { if(m_msm.GetPortOpen()) m_msm.SetPortOpen(FALSE), m_msm.SetCommPort(1), m_msm.SetSettings("9600,n,8,1″), m_msm.SetRThreshold(1), m_msm.SetSThreshold(0), m_msm.SetInputLen(0), m_msm.SetInputMode(1), m_msm.SetPortOpen(TRUE), } voidCMyDlg::On_Com2() { if(m_msm.GetPortOpen()) m_msm.SetPortOpen(FALSE), m_msm.SetCommPort(2), m_msm.SetSettings("9600,n,8,1″), m_msm.SetRThreshold(1), m_msm.SetSThreshold(0), m_msm.SetInputLen(0), m_msm.SetInputMode(1), m_msm.SetPortOpen(TRUE), } 1)CommPort:分别选1和2. 2)Setting设置或返回串行端口的波特率:9600,无奇偶校验位,数据位数为8,1位停止位. 3)InBufferSize:设置接收缓冲区为1024字节. 4)RThreshold:设置当接收缓冲区内字节个数为1时,触发MSCOMM的OnComm事件,然后由计算机将接收缓冲的数据读出,并将接收缓冲区清空. 5)InputLen:值为0,设置INPUT读取整个缓冲区的内容. 6)OutBufferSize:设置发送缓冲区为512字节. (3)发送数据的源程序代码 voidCMyDlg::OnSend() { if(!m_msm.GetPortOpen()) m_msm.SetPortOpen(TRUE), UpdateData(TRUE), m_msm.SetOutput(COleVariant(m_str_send)),//发送数据 } 将文本框内的字符串送到变量m_str_send中,然后将字符转化为ColeVariant类型的数据,再通过SetOutput函数将数据发送到发送缓冲区中. (4)接收数据的源程序代码 voidCMyDlg::OnComm() { VARIANTvariant_tmp, COleSafeArraysafearray_tmp, LONGlen,i, BYTEbuf[2048], CStringstr_tmp, if(m_msm.GetCommEvent()等于等于2) { variant_tmp等于m_msm.GetInput(), safearray_tmp等于variant_tmp, len等于safearray_tmp.GetOneDimSize(), for(i等于0,i<,len,i++) safearray_tmp.GetElement(&,i,buf+i), for(i等于0,i<,len,i++) { BYTEch等于*(char*)(buf+i), str_tmp.Format("%c",ch), m_str_recv+等于str_tmp, } } UpdateData(FALSE), } 当m_msm.GetCommEvent()等于等于2时候,数据到来,触发OnComm事件,调用该函数.首先通过m_msm.GetInput()将接收缓冲区内的数据读到变量variant_tmp中,再将variant_tmp赋予safearray_tmp来实现数据类型转化为ColeSafeArray.通过safearray_tmp.GetOneDimSize()求出接收到的字符的总长度,再将每个ColeSafeArray变量转化为Byte类型的变量,最后转化为字符类型,并将它显示在文本框内. voidCMyDlg::OnComm()的流程图:

图4.3voidCMyDlg::OnComm()的流程图

(5)清空功能函数源代码 voidCMyDlg::OnClr() { m_str_send等于"", m_str_recv等于"", UpdateData(FALSE), } 总的程序流程图如图4.4所示 图4.5是PC机通过端口1向单片机发送数据时候的图型界面.进入界面后,首先要进行根据连接的串行口选择要初始化的端口,然后使用键盘在发送缓冲区内输入一系列的字符.等单片机开发板上电后,单击发送按键将数据发送出去. 图4.6是PC机通过串口接收单片机发送过来的数据时候的图形界面.在缓冲区接收的数据为二进制形式,程序内已经将这些二进制转化为字符串在界面上显示. 图4.7是串行口调试工具初始运行时候的图形界面. 事件驱动方式时,由计算机直接管理,字节之间不可控,而且单片机串行口和PC机串行口速率差别较大,接收程序一定要精心合理的设计,才能使传输稳定可靠,否则很容易出现意想不到的问题.在调试过程中,如果不小心将串行口调试工具的波特率和开发板串行口的波特率设置为不同,就会出现错误.程序中已经将串行口的波特率设置为9600bps,这样可以避免错误. 图4.5通过端口1进行发送时候的图型界面

图4.6通过串口接收时候的图形界面 图4.7串行口调试工具的运行界面 第五章总结与展望 5.1全文总结

通过这次毕业设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起. 首先在毕业设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料.通过对这些资料的学习,我大致了解了无线通信的发展现状以及未来的发展趋势,认识到目前无线通信方面的各种各样的协议,以及它们之间的竞争.了解了无线通信方面的先进技术,这些都为我未来的学习指明了方向. 我毕业设计主要涉及硬件和软件两个方面的内容,通过这些我的硬件和软件开发能力都获得了提高.首先在硬件方面,基本了解了电子产品的开发流程和所要做的工作.基本掌握了Protel9

1 2 3 4 5 6 7 8 9

通信技术方面有关论文范文素材,与单片机原理与应用相关论文下载参考文献资料:

怎么能写好议论文

写博士论文

如何写一篇议论文

写sci论文

论文后记写什么

写议论文的方法

不想写论文

如何写数学建模论文

论文结尾怎么写

怎样写议论文

单片机原理与应用(8)WORD版本 下载地址