《基于MSP430单片机和PC机串口通信论文.doc》由会员分享,可在线阅读,更多相关《基于MSP430单片机和PC机串口通信论文.doc(34页珍藏版)》请在课桌文档上搜索。
1、- 本科毕业论文设计题目:基于MSP430单片机和PC机串口通信 软件设计目 录容摘要3ABSTRACT4第一章:引言41.1 课题意义与背景41.2 本文的设计目标5第二章:串行通信接口系统构造52.1串行通信的根本原理52.2 串行通信接口系统根本构造6第三章:串行通信接口硬件电路分析83.1 串行通信接口硬件电路原理图和分析83.2 硬件电路功能分析93.3 MSP430单片机串口存放器介绍93.4 DS18B20存放器的介绍12第四章:软件设计144.1 下位机程序设计144.1.1 系统流程图设计144.1.2 MSP430串口程序设计154.2上位机程序设计184.2.1 Seri
2、alPort类的介绍184.2.2 基于Winform的可视化应用程序设计20第五章: 系统测试及结果分析245.1 测试结果的记录245.1.1 验证PC机通过RS232口传输字符到单片机并控制TFT液晶显示245.1.2 验证单片机通过串口把DS18B20实时温度传递给PC机显示26验证PC机承受单片机通过串口发来的字符265.1.4 验证通过上位机的应用程序的按钮控制单片机的TFT使显示容275.2 测试结果的分析29结论29参考文献30附录30附录1.局部程序源代码30附录2.上位机局部程序源代码35内容摘要在测量系统、工业控制、数据采集和智能仪器仪表领域中,串行通信是一种根本而又灵活
3、方便的通信方式,串行接口是PC机与单片机之间实现数据交换的一种常用通信接口。本次毕业设计的任务是:基于MSP430系列单片机自身优越的性能以及超低功耗的特点, 设计MSP430F149单片机与上位机PC机串行通信接口系统软件,实现MSP430F149的USART与PC机通信功能。本课题设计的软件环境是IAR Embedded Workbench EW430、visual studio 2010和net framework 4.0,在此平台上应用C和C#语言设计编写了下位机MSP430F149单片机串行通信程序和上位机基于WinForm可视化通信界面应用程序,以及下位机TFT液晶显示程序。经通信
4、接口电路实验测试,设计编写的软件程序实现了上位机与下位机的双向通信功能,并通过上位机可视化窗口及下位机TFT液晶屏实时显示通信容,到达了预期的设计目标。关键词:MSP430F149,USART,RS-232协议,SerialPort 类ABSTRACTIn the measurement system, industry control, data acquisition and intelligent instrumentation field, serial munication is a basic and flexible convenient munication mode, ser
5、ial interface is a PC and single chip microputer realize data exchange between the mon munication interface. The graduation design task is: MSP430 MCU based on their superior performance and low power consumption characteristics, design MSP430F149 single-chip microputer and the upper machine (PC) se
6、rial munication interface system software, realize the MSP430F149 USART and PC munication function. This topic design software environment is IAR Embedded Workbench EW430, visual studio 2010 and net framework 4.0, in this platform application C and C # write the next place machine design (MSP430F149
7、 SCM) serial munication program and PC based on WinForm visual munication interface applications, and a machine under TFT LCD display program. The munication interface circuit experiment test, the design of the software program written realized the PC and a two-way munication under the machine funct
8、ion, and by using puter visualization window and a machine under TFT LCD screen display real-time munication content, achieve the expected design goal.KEYWORDS:MSP430F149, USART, RS-232 agreement, SerilPort Class第一章:引言1.1课题意义与背景计算机串口编写的通信软件有着十分广泛的应用,如, ,视频监控.一般情况下,涉及到远程通信,自动控制,大型车辆控制系统、机器人控制系统等。特别PC
9、机与单片机的串口通信在工业控制中非常重要.MSP430系列单片机是一种超低功耗的混合信号控制器,在控制系统以及数据采集系统中有广泛的应用,在8MHz晶体下运算能力达1MIPS100万/秒,是传统51单片机远远达不到的,这使该系列单片机采用C语言开发有很高的效率,所以广泛应用工业生产,研究MSP430和PC的串口通信有着深远的意义.1.2本文的设计目标本设计是基于MSP430F149和PC机串口通讯。在硬件上要想与PC 串口或者其它带有串口的终端设备相连接,必须要进展EIA-RS-232-C 与MSP430 电平和逻辑关系的转换,本设计采用MAX3232芯片,完成3V5V 电平与串口电平的双向转
10、换;本设计依据MSP430F149的串行通信模块的构成,利用其异步通信模式的特点,按照位寻址的方式设计的通信协议,依此设计出下位机的接收和发送程序和DS18B20,TFT程序,以及上位机的C#通信程序。第二章:串行通信接口系统构造2.1串行通信的根本原理按照通信的形式可以分为两种,其中一种为并行传输的通信,即并行通信Parallel munication,另一种那么为串行通信Serisl munication。这两种通信方式的区别是,并行通信一次的传输数据量为8位1个字节;而串行通信那么一次只能传输1位,传输1字节数据8位数据就需要8次才能传出去,在实际应用中串口通信用线少,传输容易,硬件电路
11、连接方便。而且通过软件设置PC和单片机的波特率,数据位,奇偶位一定要一样,如图图1 PC机和单片机连接2.2串行通信接口系统根本构造PC机的串口是美国电子工业协会EIA制定的串口EIA-RS-232通信协议,其信号电平采用负逻辑,逻辑1”的电平是-5V15V,逻辑0”的电平为+5V+15V,因为其有2V的噪声容限,故最终限制接收器能识别低至+3V的信号作为逻辑0”,高到-3V的信号 作为逻辑1”。因此,RS-232-C最高传输速率为20kb/s,最大直接连接长度为15m。图2 九针串口 图2.2中DB9为即为我们选用的RS-232连接器9针串行口,其插针分别对应RS-232-C标准接口9根常用
12、线。其对应关系如表1所示。表1DB9管脚号插针功能说明标记1接收线信号检出DCD2接收数据RD3发送数据TD4数据终端就绪DTR5信号地SG6数据传输设备就绪DSR7请求发送RTS8允许发送CTS9振铃指示RIMSP430F149串行通信接口实现了两种功能,使得串行通信能够以两种模式通信。第一种模式是熟悉的异步串行通信协议UART;第二种模式是外围模块接口功能SPI,也得到广泛应用。经过适当的软硬件设计,这两种模式可以交替使用。由MSP430F149部控制存放器UCTL中的SYNC位来定义通信模式:SYNC=0: 选择异步通信模式UARTSYNC=1: 选择同步通信模式SPIMSP430F14
13、9有两个异步串行通信接口,分别是USART0和USART1。如图2.3所示。图3 单片机MSP430F149的串口模块第三章:串行通信接口硬件电路分析3.1串行通信接口硬件电路原理图和分析如图3.1所示。因为PC机的RS232接口输出正电平在+5+15V,负电平在-5-15V电平。而单片机是TTL电平,电压围规定输出高电平2.4V,输出低电平=2.0V,输入低电平新建windows窗体应用程序图14 创立Winform窗口程序3翻开左边的工具箱增加SerialPort控件、Button控件、Text控件等然后拖入Winform界面中图15 在Winform窗口程序中参加需要的控件4在Winfo
14、rm界面中,点击SerialPort类,在界面的右下角出现属性,设置波特率1200、停顿位1、开场位1、数据位8位、串口号。图16设置SerialPort的属性 5在Winform界面中,部代码实现见附录3上位机代码 6生成的应用程序图17 最后生成上位机控制界面第五章: 系统测试及结果分析5.1测试结果的记录验证PC机通过RS232口传输字符到单片机并控制TFT液晶显示图18 上位机和单片机串口通信显示结果图19 上位机通过串口发送给单片机字符显示结果图20单片机承受PC机的字符并在TFT显示字符结果验证单片机通过串口把DS18B20实时温度传递给PC机显示图21PC机显示通过串口承受DS1
15、8B20的温度结果验证PC机承受单片机通过串口发来的字符图22 PC机显示通过串口承受单片机发来的字符结果验证通过上位机的应用程序的按钮控制单片机的TFT使显示容图23 单片机发送图标命令显示新华学院图标结果图24 单片机承受图标命令显示新华学院图标结果图25 上位机通过串口发送校训命令给单片机结果图26 单片机承受校训命令显示新华学院校训结果5.2测试结果的分析通过无数次的修改程序,终于到达毕业设计要求的结果。图17结果分析通过PC机的串口向单片机串口发送一段英语字符验证单片机是否可以正确的承受并显示在TFT液晶显示器上。图20结果分析,通过DS18B20采集室温度,DS18B20将采集的数
16、据发送给单片机进展分析处理,然后把处理好的数据通过串口发送PC机显示。结 论串行通信端口在系统控制的畴中一直占据着及其重要的地位,它不仅没有因为时代的进步而遭淘汰,反而在规格上越来越完善,应用也越来越广泛。作为一种根本而又灵活方便的通信方式,串口通信被广泛应用于PC与单片机之间的数据交换以及其他工业控制与自动控制中。本设计给出了上位PC机与下位单片机MSP430F149之间进展异步串行通信的解决方案,实现了上位机与下位机的双向通信功能。上位机应用VS2010开发工具,运用C#语言和Net Framework 4.0提供的SerialPort类设计的可视化应用程序界面,使系统控制界面化,可视化,
17、给工业控制提供了方便。通过本次毕业设计,使我对单片机和PC机的串口通信有的深刻的了解,从中学习很多知识,虽然遇到很多问题,通过请教和自我学习得到解决,加强自我面对困难的信心。参考文献1 晞,王德银,晨. MSP430系列单片机实用C语言程序设计M. :人民邮电,2005.2 MSP430 F149数据手册 讯通科技3 12864C-1 液晶显示器数据手册 讯通科技4 胡大可,MSP430系列FLASH型超低功耗16位单片机M:航空航天大学出版20105 MSP430 F149用户手册6明荧8051单片机课程设计实训教材M. 清华大学,2004:2843.7 实宏,周龙等单片机原理与应用技术M.
18、 中国水利水电,2005:3550.8 科技单片机通信技术与工程实践M. 人民邮电, 2004:1214.9 科技单片机典型模块设计实例导航M. 人民邮电, 2004:122135.10 马忠梅等单片机的C语言应用程序设计M. 航空航天大学,2003:3739.11 将新,华军等单片机程序设计及应用M. 电子工业, 2006:142154.12 风强,兰蝉丽单片机语言C51应用实战集锦M. 电子工业, 2005:212234.附录附录1.局部程序源代码/* 模块功能介绍:本模块UART1主要是PC和单片机单机通信,通过配置串口的存放器完成波特率.开场位、数据位、奇偶校验位、停顿位和串口单片机收
19、发数据*/#include#includeuart.h#includemsp430io.h/* - 功能描述:UART1串口IO配置 函数作用:UART1串口IO配置P3.6/UTXD1 P3.7/URXD1 IO复位默认为输入 - 是输入参数: - 返回说明:无 */ void UART1_ioconfig(void) SETAFP3(BIT6);/将单片机的P3.6的引脚进入第二串口发送功能 SETAFP3(BIT7); /将单片机的P3.7的引脚进入第二串口承受功能 OUTDIRP3(BIT6); /将单片机的P3.6的引脚的方向设置成输出 INDIRP3(BIT7); /将单片机的P3
20、.7的引脚的方向设置成输如/* - 功能描述:UART1串口初始化函数 函数作用:波特率1200,无奇偶校验位,一个开场一个停顿 数据8位,时钟源选择ACLK,如果想设置其他的格式请参考数据手册 - 是输入参数:无 - 返回说明:无 */ void UART1_Init() UCTL1|=CHAR; /长度8位 UTCTL1|=SSEL0;/选择ACLK时钟为串口时钟源 ME2|= UTXE1+URXE1; / 模块允许存放器设置,使能USART0 TXD/RXD U1BR0 = 0x1B; /配置存放器使波特率为1200 U1BR1 = 0x00; UMCTL1 = 0x03; UCTL1&
21、=SWRST; /开启串口工作 IE2|=URXIE1; / 中断允许存放器设置,接收中断允许/* - 功能描述:UART1串口发送一个字节 函数作用:发送一个字节数据PC机 - 是输入参数: - 返回说明:无 */void UART1_Send_Byte(U8 c) TXBUF1=c;/发送存放器承受用户的数据 while (!(IFG2&UTXIFG1);/ USART1发送UTXIFG1=1,表示UTXBUF1准备好发送一下字符,不要写成 if (IFG2 & UTXIFG0!=0)/* - 功能描述:通过UART1串口终端承受一个字节 函数作用:承受PC机的一个字节数据 - 是输入参数
22、: - 返回说明:无 */#pragma vector=UART1RX_VECTOR_interrupt void UART1_RXISR(void) uchar temp; temp=U1RXBUF;/单片机PC机发来的数据#include#includeds18b20.h#includemsp430io.h#includedelay.h#define DQHIGH HIGHP2(BIT4)#define DQLOW LOWP2(BIT4)/* - 功能描述:DS18B20初始化 函数作用:DS18B20初始化 - 是输入参数:无 - 返回说明:初始化状态标志:1失败,0成功 */ ucha
23、r DS18B20_Init()uchar state=0; _DINT();/关中断 DQHIGH;/数据线拉高 _NOP(); DQLOW; /数据线拉低 Delayus(720); DQHIGH; Delayus(55); P2DIR&=BIT4;/将P2.4方向设置成输入或者INDIRP2BIT2; _NOP(); if(P2IN&BIT4) /判断DS18B20是否存在 state=1; P2DIR|=BIT4; /将P2.4方向设置成输出 else state=0; P2DIR|=BIT4; /将P2.4方向设置成输出 DQHIGH; _EINT(); Delayus(480);
24、return state; /返回存在结果 /* - 功能描述:DS18B20_Wirte 函数作用:向DS18B20写命令或者数据 - 是输入参数:命令或者数据 - 返回说明:无 */ void DS18B20_Wirte(uchar data) uchar i; _DINT(); P2DIR|=BIT4; /将P2.4方向设置成输出 for(i=0;i1; Delayus(50); DQHIGH; Delayus(10); _EINT(); /* - 功能描述:DS18B20_Read 函数作用:从DS18B20读数据 - 是输入参数:命令或者参数 - 返回说明:初始化状态标志:1失败,0
25、成功 */ uchar DS18B20_Read()uchar i; uchar temp=0; _DINT(); P2DIR|=BIT4; /将P2.4方向设置成输出 for(i=0;i0;i-)Delayus(60000);/延迟750MS以上为的保证转换完成 DS18B20_Init();DS18B20_Wirte(0xcc); /发送跳过ROM命令DS18B20_Wirte(0xbe);/发送读ScratchPadT_LOW=DS18B20_Read();/读低8位T=DS18B20_Read();/读高8位T=T8; /数据转换T|=T_LOW;return(T); /返回温度数据附录2.上位机局部程序源代码using System;using System.Collections.Generic;using System.ponentModel;using System.Data;usi