- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MSP430F5529制作的施工车辆信息监测系统.doc
MSP430F5529制作的施工车辆信息监测系统
一,功能介绍:
本系统主要用于监测施工车辆运行的速度,运行时路面的温度以及车辆的位置信息。然后将这些这些信息借助移动的网络发送到服务器上去并将温度,速度,时间信息通过显示屏进行显示。系统的控制核心选用的是TI的msp430F5529,考虑到整个系统用到的IO管脚比较多,所以选用了该款430。一下是整个系统的方案选型:
(1)测速系统采用的霍尔器件,430单片机对霍尔器件输出的脉冲进行输入捕获对其频率进行测量就可计算出车辆 的速度;
(2)测量车辆运行的路面温度系统我采用的是红外测温温度传感器,430通过smBUS总线方式读取温度传感器的数据,然后进行数据处理,显示在LCD屏上。
(3)计时系统我选用了的是DS1302时钟芯片,外加上一个3v的纽扣电池起到掉电时间保护左右,然后430负责读取时间进行显示。
(4)车辆定位系统我选用的GPS模块,430通过GPS读取到车辆的经纬度信息。
(5)数据发送装置我采用的GPRS模块将采集到速度,温度,时间,位置信息发送到我们自己建立的服务器上去
(6)LCD屏,我选用的是240*128的LCD屏,这样尺寸的屏刚好满足我设计的要求。 (7) 考虑到有时没有移动信号,我们在电路上设计了SD卡,这样当GPRS没有信号时,我们的数据可以自动的到存到我们的SD卡中
二,系统框图
上图就是我整个设计的框图。
(1)电源给整个系统供电,输入12v通过两种稳压芯片,分别稳压到5v和3.3v给整个系统供电。
(2)测速,键盘, LCD我采用的都是IO进行和430单片机进行连接
(3)GPS和GPRS采用的是UART和430进行连接
(4) SD卡采用的是SPI接口和430进行连接
三,系统原理图
图2 电源
图3 LCD和时钟芯片
图4 430核心部分
整个系统的原理图如图2,3,4所示。图2是整个系统的电源部分,图3是lcd显示屏,图4是整个430核心部分。
四,源代码,
void main(void)
{
//初始化
WDTCTL=WDTPW+WDTHOLD;
ON_XT2(); //初始化时钟
VelocityMeasure_Init(); //速度初始化
TemperatureMeasure_Init();//温度初始化
IO_Init();
LcdInit();
LCD_Clear(); //清屏
//配置定时器A
TA0CTL=TASSEL_1+MC_1+TACLR;//时钟ACLK,增计数模式,开定时中断,计数器清零
TA0CCR0=150;//定时15ms中断一次
TA0CCTL0 = CCIE; // 开定时器0中断
//配置串口
P3SEL |= BIT3+BIT4;// 将P3.3,P3.4 配置为串口的 TXD/RXD
UCA0CTL1 |= UCSWRST;// 处于软件复位
UCA0CTL1 |= UCSSEL__SMCLK; //选择SMCLK作为时钟
UCA0BR0 = 52; //查表得到
UCA0BR1 = 0;
UCA0MCTL = UCBRS_0 + UCBRF_1 + UCOS16; // 配置UCBRSx=0, UCBRFx=1,
UCA0CTL1 = ~UCSWRST; // 退出软件复位状态
UCA0IE |= UCRXIE; // 使能 USCI_A0 RX 中断
Homepage();
Show_LuDuanZhi();
while(1)
{
if((temperBuff[0]-0x30)=(Temperature_H[0]-0x30))
{
Beep(20);
}//当温度超过30°,指示灯亮1s左右
if(TimeDispFlag==0)
{
Time();
} //显示时间标志位
if(keyCnt = 1)
{
keyCnt = 0;
Menu_Process();
} //15ms执行一次按键函数
if(MainCnt = 100)
{
MainCnt = 0;
//P2OUT ^= BIT4;//灯2s钟闪烁一次
TemperatureMeasure();//调用测温函数
sprintf(temperBuff,%-5.1f,Temperature);
strncat(memoryBuff,temperBuff,5);//将浮点型的温度值变为字符串
sprintf(VelocityBuff,%-5.1f,VelocityValue);
strncat(memoryBuff,VelocityBuff,5);//将浮点型的速度值变为字符串
strncat(memoryBuff,(char*)latitudeBackup,10);
strncat(memoryBuff,(char*)longitud
文档评论(0)