基于STM8单片机的倾角传感系统设计.docx
- 文档编号:11628160
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:21
- 大小:141.89KB
基于STM8单片机的倾角传感系统设计.docx
《基于STM8单片机的倾角传感系统设计.docx》由会员分享,可在线阅读,更多相关《基于STM8单片机的倾角传感系统设计.docx(21页珍藏版)》请在冰豆网上搜索。
基于STM8单片机的倾角传感系统设计
燕山大学
专业综合训练说明书
题目:
基于STM8单片机的倾角传感系统设计
学院(系):
电气工程学院
年级专业:
09级检测1班
学号:
0*********62
*******
******
教师职称:
讲师
燕山大学专业综合训练任务书
院(系):
电气工程学院基层教学单位:
仪器科学与工程系
学号
0901********
学生姓名
梁立国
专业(班级)
09检测1班
题目
基于STM8单片机的倾角传感系统设计
训
练
内
容
应用STM8单片机、传感器模块及其它必要元器件,构建传感测量系统,编写程序,实现对单片机、传感器及测量理论的全面综合训练。
训
练
要
求
1.熟练掌握STM8单片机库函数编程方法。
2.掌握LCD1602液晶显示器的使用与编程方法。
3.掌握倾角测量模块使用方法。
4.完成系统构建,编写程序,实现倾角的测量与实时显示。
5.掌握SD卡存储模块的功能与编程方法(选做)。
6.2人共同完成。
工
作
计
划
第一周
第二周
第三周
第四周
检索、查阅资料,学习单片机手册,模块资料。
编写模块测试程序,构建测量系统。
编写测量系统程序。
程序调试与撰写报告。
参
考
资
料
STM8编程手册,各模块资料
答疑地点
A205-2
答疑时间
周六晚19点至22点;周日晚19点至22点。
指导教师签字
基层教学单位主任签字
2012年8月27日
第1章摘要......................................................4
第2章倾角传感器介绍............................................5
2.1倾角传感器原理............................................5
2.2倾角传感器分类............................................5
2.3固、液、气体摆性能比较......................................8
第3章设计方案..................................................9
3.1数据采集模块..............................................9
3.2显示模块..................................................9
第4章倾角传感器测量系统设计...................................10
4.1总体设计.................................................10
4.2硬件设计.................................................10
4.3程序流程图...............................................13
第5章主程序...................................................16
心得体会........................................................24
参考文献........................................................25
第1章摘要
倾角传感器是测量倾斜角度的一种角度传感器,倾角传感器经常用于系统的水平测量,从工作原理上可分为“固体摆”式、“液体摆”式、“气体摆”三种倾角传感器,倾角传感器应用特点:
可以调节输出频率,内置零位调整,可以根据要求定制零位调整按钮,从而实现在一定的角度置零的功能。
这对于要测量相对倾角的场合非常有用。
使用完毕后可以重新回归零位。
在这种场合使用,只要将传感器固定在一定的平面,测量前使用零位按钮实现清零功能,传感器在此之后读出来的数据就是相对于该平面的相对倾角。
全量程倾角测量:
通过双轴的配合,可以实现360°倾角的测量,目前产品已经非常稳定。
在一些需要进行全量程倾角测量的场合,选择360°产品是比较理想的。
倾角传感器可应用于工厂、山体、铁路、隧道、船业、机械、建筑业、医疗事业、桥梁铺设、水坝建设、汽车行业、核工业和航空航天事业等各种各样的领域。
本此专业综合训练以STM8单片机为核心,利用SCA60C倾角传感器测量模块,测出模块相对水平面的变化,通过按键控制并在显示模块HJ1602A上显示。
关键词:
STM8单片机SCA60C倾角传感器HJ1602A
第2章倾角传感器介绍
2.1倾角传感器原理
倾角传感器可以用来测量相对于水平面的倾角变化量。
理论基础就是牛顿第二定律,根据基本的物理原理,在一个系统内部,速度是无法测量的,但却可以测量其加速度。
如果初速度已知,就可以通过积分计算出线速度,进而可以计算出直线位移。
所以它其实是运用惯性原理的一种加速度传感器。
当倾角传感器静止时也就是侧面和垂直方向没有加速度作用,那么作用在它上面的只有重力加速度。
重力垂直轴与加速度传感器灵敏轴之间的夹角就是倾斜角了。
随着MEMS技术的发展,惯性传感器件在过去的几年中成为最成功,应用最广泛的微机电系统器件之一,而微加速度计(microaccelerometer)就是惯性传感器件的杰出代表。
作为最成熟的惯性传感器应用,现在的MEMS加速度计有非常高的集成度,即传感系统与接口线路集成在一个芯片上。
倾角传感器把MCU,MEMS加速度计,模数转换电路,通讯单元全都集成在一块非常小的电路板上面。
可以直接输出角度等倾斜数据,让人们更方便的使用它。
其特点是:
硅微机械传感器测量(MEMS)以水平面为参面的双轴倾角变化。
输出角度以水准面为参考,基准面可被再次校准。
数据方式输出,接口形式包括RS232、RS485和可定制等多种方式。
抗外界电磁干扰能力强。
2.2倾角传感器分类
倾角传感器经常用于系统的水平测量,从工作原理上可分为“固体摆”式、“液体摆”式、“气体摆”三种倾角传感器,下面就它们的工作原理进行介绍。
2.2.1“固体摆”式惯性器件
固体摆在设计中广泛采用力平衡式伺服系统,如图2-1所示,其由摆锤、摆线、支架组成,摆锤受重力G和摆拉力T的作用,其合外力F为:
图2-1固体摆原理示意图
其中,θ为摆线与垂直方向的夹角。
在小角度范围内测量时,可以认为F与θ成线性关系。
如应变式倾角传感器就基于此原理。
2.2.2“液体摆”式惯性器件
液体摆的结构原理是在玻璃壳体内装有导电液,并有三根铂电极和外部相连接,三根电极相互平行且间距相等,如图2-2所示:
图2-2液体摆原理示意图
当壳体水平时,电极插入导电液的深度相同。
如果在两根电极之间加上幅值相等的交流电压时,电极之间会形成离子电流,两根电极之间的液体相当于两个电阻RI和RIII。
若液体摆水平时,则RI=RIII。
当玻璃壳体倾斜时,电极间的导电液不相等,三根电极浸入液体的深度也发生变化,但中间电极浸入深度基本保持不变。
如图2-3所示
图2-3倾角为ɑ时液体摆原理示意图
左边电极浸入深度小,则导电液减少,导电的离子数减少,电阻RI增大,相对极则导电液增加,导电的离子数增加,而使电阻RIII减少,即RI>RIII。
反之,若倾斜方向相反,则RI<RIII。
在液体摆的应用中也有根据液体位置变化引起应变片的变化,从而引起输出电信号变化而感知倾角的变化。
在实用中除此类型外,还有在电解质溶液中留下一气泡,当装置倾斜时气泡会运动使电容发生变化而感应出倾角的“液体摆”。
“气体摆”式惯性器件
气体在受热时受到浮升力的作用,如同固体摆和液体摆也具有的敏感质量一样,热气流总是力图保持在铅垂方向上,因此也具有摆的特性。
“气体摆”式惯性元件由密闭腔体、气体和热线组成。
当腔体所在平面相对水平面倾斜或腔体受到加速度的作用时,热线的阻值发生变化,并且热线阻值的变化是角度q或加速度的函数,因而也具有摆的效应。
其中热线阻值的变化是气体与热线之间的能量交换引起的。
图2-4气体摆的原理示意图
“气体摆”式惯性器件的敏感机理基于密闭腔体中的能量传递,在密闭腔体中有气体和热线,热线是唯一的热源。
当装置通电时,对气体加热。
在热线能量交换中对流是主要形式。
气体摆式检测器件的核心敏感元件为热线。
电流流过热线,热线产生热量,使热线保持一定的温度。
热线的温度高于它周围气体的温度,动能增加,所以气体向上流动。
在平衡状态时,如图2-4(a)所示,热线处于同一水平面上,上升气流穿过它们的速度相同,即V1=V1′,这时,气流对热线的影响相同,当密闭腔体倾斜时,热线相对水平面的高度发生了变化,如图2-4(b)所示,因为密闭腔体中气体的流动是连续的,所以热气流在向上运动的过程中,依次经过下部和上部的热线。
若忽略气体上升过程中克服重力的能量损失,则穿过上部热线的气流已经与下部热线的产生热交换,使穿过两根热线时的气流速度不同,这时V2¢>V2,因此流过两根热线的电流也会发生相应的变化,所以电桥失去平衡,输出一个电信号。
倾斜角度不同,输出的电信号也不同。
2.3固、液、气体摆性能比较
就基于固体摆、液体摆及气体摆原理研制的倾角传感器而言,它们各有所长。
在重力场中,固体摆的敏感质量是摆锤质量,液体摆的敏感质量是电解液,而气体摆的敏感质量是气体。
气体是密封腔体内的唯一运动体,它的质量较小,在大冲击或高过载时产生的惯性力也很小,所以具有较强的抗振动或冲击能力。
但气体运动控制较为复杂,影响其运动的因素较多,其精度无法达到军用武器系统的要求。
固体摆倾角传感器有明确的摆长和摆心,其机理基本上与加速度传感器相同。
在实用中产品类型较多如电磁摆式,其产品测量范围、精度及抗过载能力较高,在武器系统中应用也较为广泛。
液体摆倾角传感器介于两者之间,但系统稳定,在高精度系统中,应用较为广泛,且国内外产品多为此类。
第3章设计方案
本次倾角传感器设计,使用了STM8单片机芯片控制电路,单片机芯片控制电路,使得电路简明易懂,SCA60C倾角传感器进行倾斜角度的测量。
用HJ1602A液晶显示数据。
HJ1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)。
最后用按键控制的形式来控制测得的数据。
这样通过四个模块:
STM8单片机、SCA60C倾角传感器、HJ1602A液晶显示、按键即可以满足设计要求。
3.1数据采集模块
SCA60C倾角传感器是一款低能耗的倾角传感器,可以应用在移动的设备中。
它的性能良好,绝对精度最低可以达到1度,并且耗电极低。
特点:
单轴倾角传感器,测量范围1g(±90°),单极5V供电,比例电压输出,模拟0.5-4.5V电压输出,工作温度范围宽,成本低,性价比高,应用在单轴平台调平,倾斜测量,抗冲击能力强,适用垂直方向的各种角度的测量,多用于民用测量,如智能车身平衡检测等,基于以上优点,所以本次设计采用SCA60C倾角传感器作为数据采集模块。
3.2显示模块
HJ1602A液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。
根据显示内容可以分为字符型液晶,图形液晶。
根据显示容量又可以分为单行16字,2行20字等等。
1602是16*2的字符型液晶模块,这是一种通用模块,与数码管相比,该模块有如下优点:
1、位数多,可显示32位,32个数码管体积相当庞大。
2、显示内容丰富,可显示所有数字和大、小写字母。
3、程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。
第4章倾角传感器测量系统设计
4.1总体设计
4.1.1系统总体说明
本次设计基于STM8单片机制作的倾角测量系统,利用SCA60C倾角传感器模块,测出倾斜角度值在显示模块HJ1602A上,通过按键控制显示查看相关数据。
4.1.2系统框图
图4-1总设计框图
4.1.3按键说明
根据设计思路,决定使用按键1、2、3、4、5、6、7、8来对LCD1602的显示进行控制。
其中,按键1为启动循环检测,按键2为跳出检测并查看报警总次数,按键3为跳出检测并查看左报警总次数,按键4为跳出检测并查看右报警总次数,按键5为跳出检测并查看检测总次数,按键6为跳出检测并查看最大左倾角度,按键7为跳出检测并查看最大右倾角度。
4.2硬件设计
4.2.1SCA60C倾角传感器
一、SCA60C规格介绍
1.尺寸:
长328mm*宽16mm*高15mm
2.主要芯片:
LM393、倾斜感应探头
3.工作电压:
DC5V
4.特点:
I.倾斜信号模拟电压输出[0-180°对应0.5-4.5V]可单片机AD采集;
II.双向倾斜角度报警输出;
III.输出有效电平指示灯;
IV.左右倾斜报警范围0-90°90-180°全范围可调,调整精度为±1°。
二、SCA60C电路原理图
图4-2倾角传感器原理图
4.2.2HJ1602A液晶显示
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
一、HJ1602A主要技术参数
1、显示容量:
16×2个字符
2、芯片工作电压:
4.5—5.5V
3、工作电流:
2.0mA(5.0V)
4、模块最佳工作电压:
5.0V
5、字符尺寸:
2.95×4.35(W×H)mm
二、HJ1602A引脚功能说明
HJ1602A采用标准的14脚(无背光)或16脚(带背光)接口,各引脚说明如下:
1、第1脚:
VSS为地电源。
2、第2脚:
VDD借5V正电源。
3、第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
4、第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
5、第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
6、第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
7、第7~14脚:
D0~D7为8位双向数据线。
8、第15脚:
背光源正极。
9、第16脚:
背光源负极。
三、HJ1602A液晶模块内部的11条控制指令
HJ1602A液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。
(说明1为高电平,0为低电平)
1)指令1:
清显示,指令码01H,光标复位到地址00H位置。
2)指令2:
光标复位,光标返回到地址00H
3)指令3:
光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:
屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。
4)指令4:
显示开关控制。
D:
控制整体的显示开与关,高电平表示开显示,低电平表示关显示。
C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
5)指令5:
光标或显示移位S/C:
高电平时显示移动的文字,低电平时移动光标
6)指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时为双行显示,F:
低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。
7)指令7:
字符发生器RAM地址设置。
8)指令8:
DDRAM地址设置。
9)指令9:
读忙信号和光标地址BF:
忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。
4.3程序流程图
根据上述气压高度计倾角传感器的测量流程,软件设计可分为以下几个功能模块,在此以流程图的形式展示。
4.3.1HJ1602A显示模块
图4-3显示模块流程图
4.3.2主程序模块
图4-4主程序流程图
4.3.3SCA60C倾角测量模块
否
是
图4-5倾角测量模块流程图
第5章主程序
这部分是主程序的部分,其中包括STM8单片机的系统初始化,SCA60C倾角转换和LCD液晶显示倾角值。
主程序摘录如下:
voidmain()
{
GPIO_INIT();
LCD_INIT();
ADC2_DeInit();
ADC2_Init(ADC2_CONVERSIONMODE_CONTINUOUS,
ADC2_CHANNEL_0,
ADC2_PRESSEL_FCPU_D2,
ADC2_EXTTRIG_GPIO,DISABLE,
ADC2_ALIGN_RIGHT,
ADC2_SCHMITTTRIG_CHANNEL0,
DISABLE);
ADC2_Cmd(ENABLE);
ADC2_StartConversion();
for(j=0;j<8;j++)
{
write_data(START[j]);
}
delay_ms(1000);
while
(1)
{
K_Value=Read_Key();
if(K_Value==1)
{
delay_ms(200);
while(Read_Key()==0)
{
if(ADC2_GetFlagStatus()==0x80)
{
k=ADC2_GetConversionValue();
ADC2_ClearFlag();
}
cc=((double)k*(5.00/1024))*100;
c=(int)(cc);
mm=((k-102)/4.55);
m=(int)(mm);
if(m>180)m=180;
lcd_pos(0x00);//设置显示位置为第一行的第1个字符
if(m<90){a=90-m;write_data('-');if(a>L_Angle){L_Angle=a;}}
if(m==90){a=0;}
if(m>90){a=m-90;write_data('+');if(a>R_Angle){R_Angle=a;}}
lcd_pos(0x01);
write_data(a/100+0x30);
write_data(a%100/10+0x30);
write_data(a%10+0x30);
for(j=0;j<3;j++){write_data(t4[j]);}
if((GPIO_ReadInputPin(GPIOB,GPIO_PIN_4)==0)||(GPIO_ReadInputPin(GPIOB,GPIO_PIN_5)==0))
{
lcd_pos(0x08);
for(j=0;j<7;j++)
{
write_data(tt1[j]);
}
W_number++;
if((GPIO_ReadInputPin(GPIOB,GPIO_PIN_4)==0)){L_number++;}
else{R_number++;}
}
/*if((GPIO_ReadInputPin(GPIOB,GPIO_PIN_5)==0))
{
lcd_pos(0x08);
for(j=0;j<7;j++)
{
write_data(t1[j]);
}
W_number++;
R_number++;
}*/
else
{
lcd_pos(0x08);
for(j=0;j<7;j++)
{write_data(t2[j]);}
}
lcd_pos(0x40);//设置显示位置为第二行的第1个字符
write_data('A');
write_data('=');
write_data(k/1000+0x30);
write_data((k%1000)/100+0x30);
write_data((k%100)/10+0x30);
write_data((k%10)+0x30);
lcd_pos(0x48);
write_data('U');
write_data('=');
write_data(c/100+0x30);
write_data('.');
write_data((c%100)/10+0x30);
write_data(c%10+0x30);
write_data('V');
Test_number++;
K_Value=Read_Key();
delay_ms(500);
}
}
if(K_Value==2)
{
lcd_pos(0x00);
for(j=0;j<7;j++)
{
write_data(W_num[j]);
}
lcd_pos(0x40);
write_data('=');
write_data(W_number/1000+0x30);
write_data((W_number%1000)/100+0x30);
write_data((W_number%100)/10+0x30);
write_data((W_number%10)+0x30);
for(j=0;j<10;j++){write_data(t3[j]);}
delay_ms(1000);
}
if(K_Value==3)
{
lcd_pos(0x00);
for(j=0;j<7;j++)
{
write_data(R_num[j]);
}
lcd_pos(0x40);
write_data('=');
write_data(R_number/1000+0x30);
write_data((R_number%1000)/100+0x30);
write_data((R_number%100)/10+0x30);
write_data((R_number%10)+0x30);
for(j=0;j<10;j++){write_data(t3[j]);}
delay_ms(1000);
}
if(K_Value==4)
{
lcd_pos(0x00);
for(j=0;j<7;j++)
{
write_data(L_num[j]);
}
lcd_pos(0x40);
write_data('=');
write_data(L_number/1000+0x30);
write_data((L_number%1000)/100+0x30);
write_data((L_number%100)/10+0x30);
write_data((L_number%10)+0x30);
for(j=0;j<1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM8 单片机 倾角 传感 系统 设计