基于STM8单片机的倾角传感系统设计_第1页
基于STM8单片机的倾角传感系统设计_第2页
基于STM8单片机的倾角传感系统设计_第3页
基于STM8单片机的倾角传感系统设计_第4页
基于STM8单片机的倾角传感系统设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、燕山大学专 业 综 合 训 练 说 明 书题目:基于stm8单片机的倾角传感系统设计学院(系):电气工程学院 年级专业: 09级检测1班 学 号: 090103020062 学生姓名: 梁 立 国 指导教师: 潘 钊 教师职称: 讲 师 燕山大学专业综合训练任务书院(系): 电气工程学院 基层教学单位: 仪器科学与工程系 学 号090103020062学生姓名梁立国专业(班级)09检测1班题目基于stm8单片机的倾角传感系统设计训练内容应用stm8单片机、传感器模块及其它必要元器件,构建传感测量系统,编写程序,实现对单片机、传感器及测量理论的全面综合训练。训练要求1. 熟练掌握stm8单片机库

2、函数编程方法。2. 掌握lcd1602液晶显示器的使用与编程方法。3. 掌握倾角测量模块使用方法。4. 完成系统构建,编写程序,实现倾角的测量与实时显示。5. 掌握sd卡存储模块的功能与编程方法(选做)。6. 2人 共同完成。工作计划第一周第二周第三周第四周检索、查阅资料,学习单片机手册,模块资料。编写模块测试程序,构建测量系统。编写测量系统程序。程序调试与撰写报告。参考资料stm8编程手册,各模块资料答疑地点a205-2答疑时间周六晚19点至22点;周日晚19点至22点。指导教师签字基层教学单位主任签字 2012 年 8月 27日 燕 山 大 学 专 业 综 合 训 练 说 明 书目 录第1

3、章 摘要4第2章 倾角传感器介绍5 2.1倾角传感器原理5 2.2倾角传感器分类5 2.3固、液、气体摆性能比较8第3章 设计方案9 3.1数据采集模块9 3.2显示模块9第4章 倾角传感器测量系统设计 104.1总体设计10 4.2硬件设计10 4.3程序流程图13第5章 主程序16心得体会24参考文献25第1章 摘要倾角传感器是测量倾斜角度的一种角度传感器,倾角传感器经常用于系统的水平测量,从工作原理上可分为“固体摆”式、“液体摆”式、“气体摆”三种倾角传感器,倾角传感器应用特点:可以调节输出频率,内置零位调整,可以根据要求定制零位调整按钮,从而实现在一定的角度置零的功能。这对于要测量相对

4、倾角的场合非常有用。使用完毕后可以重新回归零位。在这种场合使用,只要将传感器固定在一定的平面,测量前使用零位按钮实现清零功能,传感器在此之后读出来的数据就是相对于该平面的相对倾角。全量程倾角测量:通过双轴的配合,可以实现360倾角的测量,目前产品已经非常稳定。在一些需要进行全量程倾角测量的场合,选择360产品是比较理想的。倾角传感器可应用于工厂、山体、铁路、隧道、船业、机械、建筑业、医疗事业、桥梁铺设、水坝建设、汽车行业、核工业和航空航天事业等各种各样的领域。本此专业综合训练以stm8单片机为核心,利用sca60c倾角传感器测量模块,测出模块相对水平面的变化,通过按键控制并在显示模块hj160

5、2a上显示。关键词:stm8单片机 sca60c倾角传感器 hj1602a 第2章 倾角传感器介绍2.1倾角传感器原理倾角传感器可以用来测量相对于水平面的倾角变化量。理论基础就是牛顿第二定律,根据基本的物理原理,在一个系统内部,速度是无法测量的,但却可以测量其加速度。如果初速度已知,就可以通过积分计算出线速度,进而可以计算出直线位移。所以它其实是运用惯性原理的一种加速度传感器。当倾角传感器静止时也就是侧面和垂直方向没有加速度作用,那么作用在它上面的只有重力加速度。重力垂直轴与加速度传感器灵敏轴之间的夹角就是倾斜角了。随着mems 技术的发展,惯性传感器件在过去的几年中成为最成功,应用最广泛的微

6、机电系统器件之一,而微加速度计(microaccelerometer)就是惯性传感器件的杰出代表。作为最成熟的惯性传感器应用,现在的mems 加速度计有非常高的集成度,即传感系统与接口线路集成在一个芯片上。倾角传感器把mcu,mems加速度计,模数转换电路,通讯单元全都集成在一块非常小的电路板上面。可以直接输出角度等倾斜数据,让人们更方便的使用它。其特点是: 硅微机械传感器测量(mems)以水平面为参面的双轴倾角变化。输出角度以水准面为参考,基准面可被再次校准。数据方式输出,接口形式包括rs232、rs485和可定制等多种方式。抗外界电磁干扰能力强。2.2倾角传感器分类倾角传感器经常用于系统的

7、水平测量,从工作原理上可分为“固体摆”式、“液体摆”式、“气体摆”三种倾角传感器,下面就它们的工作原理进行介绍。2.2.1“固体摆”式惯性器件固体摆在设计中广泛采用力平衡式伺服系统,如图2-1所示,其由摆锤、摆线、支架组成, 摆锤受重力g和摆拉力t的作用,其合外力f为:图2-1 固体摆原理示意图其中,为摆线与垂直方向的夹角。在小角度范围内测量时,可以认为f与成线性关系。如应变式倾角传感器就基于此原理。2.2.2“液体摆”式惯性器件液体摆的结构原理是在玻璃壳体内装有导电液,并有三根铂电极和外部相连接,三根电极相互平行且间距相等,如图2-2所示:图2-2液体摆原理示意图当壳体水平时,电极插入导电液

8、的深度相同。如果在两根电极之间加上幅值相等的交流电压时,电极之间会形成离子电流,两根电极之间的液体相当于两个电阻ri和riii。若液体摆水平时,则ririii。当玻璃壳体倾斜时,电极间的导电液不相等,三根电极浸入液体的深度也发生变化,但中间电极浸入深度基本保持不变。如图2-3所示图2-3倾角为时液体摆原理示意图左边电极浸入深度小,则导电液减少,导电的离子数减少,电阻ri增大,相对极则导电液增加,导电的离子数增加,而使电阻riii 减少,即ririii。反之,若倾斜方向相反,则ririii。在液体摆的应用中也有根据液体位置变化引起应变片的变化,从而引起输出电信号变化而感知倾角的变化。在实用中除此

9、类型外,还有在电解质溶液中留下一气泡,当装置倾斜时气泡会运动使电容发生变化而感应出倾角的“液体摆”。 “气体摆”式惯性器件气体在受热时受到浮升力的作用,如同固体摆和液体摆也具有的敏感质量一样,热气流总是力图保持在铅垂方向上,因此也具有摆的特性。“气体摆”式惯性元件由密闭腔体、气体和热线组成。当腔体所在平面相对水平面倾斜或腔体受到加速度的作用时,热线的阻值发生变化,并且热线阻值的变化是角度q或加速度的函数,因而也具有摆的效应。其中热线阻值的变化是气体与热线之间的能量交换引起的。 图2-4气体摆的原理示意图“气体摆”式惯性器件的敏感机理基于密闭腔体中的能量传递,在密闭腔体中有气体和热线,热线是唯一

10、的热源。当装置通电时,对气体加热。在热线能量交换中对流是主要形式。气体摆式检测器件的核心敏感元件为热线。电流流过热线,热线产生热量,使热线保持一定的温度。热线的温度高于它周围气体的温度,动能增加,所以气体向上流动。在平衡状态时,如图2-4(a)所示,热线处于同一水平面上,上升气流穿过它们的速度相同,即v1v1,这时,气流对热线的影响相同,当密闭腔体倾斜时,热线相对水平面的高度发生了变化,如图2-4(b)所示,因为密闭腔体中气体的流动是连续的,所以热气流在向上运动的过程中,依次经过下部和上部的热线。若忽略气体上升过程中克服重力的能量损失,则穿过上部热线的气流已经与下部热线的产生热交换,使穿过两根

11、热线时的气流速度不同,这时v2¢v2,因此流过两根热线的电流也会发生相应的变化,所以电桥失去平衡,输出一个电信号。倾斜角度不同,输出的电信号也不同。2.3固、液、气体摆性能比较就基于固体摆、液体摆及气体摆原理研制的倾角传感器而言,它们各有所长。在重力场中,固体摆的敏感质量是摆锤质量,液体摆的敏感质量是电解液,而气体摆的敏感质量是气体。气体是密封腔体内的唯一运动体,它的质量较小,在大冲击或高过载时产生的惯性力也很小,所以具有较强的抗振动或冲击能力。但气体运动控制较为复杂,影响其运动的因素较多,其精度无法达到军用武器系统的要求。固体摆倾角传感器有明确的摆长和摆心,其机理基本上与加速度传感

12、器相同。在实用中产品类型较多如电磁摆式,其产品测量范围、精度及抗过载能力较高,在武器系统中应用也较为广泛。液体摆倾角传感器介于两者之间,但系统稳定,在高精度系统中,应用较为广泛,且国内外产品多为此类。第3章 设计方案本次倾角传感器设计,使用了stm8单片机芯片控制电路,单片机芯片控制电路,使得电路简明易懂,sca60c倾角传感器进行倾斜角度的测量。用hj1602a液晶显示数据。 hj1602a是一种工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)。最后用按键控制的形式来控制测得的数据。这样通过四个模块:stm8单片机、sca60c倾角传感器、hj1602a液晶显示、按键即可以

13、满足设计要求。3.1数据采集模块sca60c倾角传感器是一款低能耗的倾角传感器,可以应用在移动的设备中。它的性能良好,绝对精度最低可以达到1度,并且耗电极低。 特点:单轴倾角传感器,测量范围 1g(90),单极5v供电,比例电压输出,模拟0.5-4.5v电压输出,工作温度范围宽,成本低,性价比高,应用在单轴平台调平,倾斜测量,抗冲击能力强,适用垂直方向的各种角度的测量,多用于民用测量,如智能车身平衡检测等,基于以上优点,所以本次设计采用sca60c倾角传感器作为数据采集模块。3.2 显示模块hj1602a液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得

14、到广泛的应用。根据显示内容可以分为字符型液晶,图形液晶。根据显示容量又可以分为单行16字,2行20字等等。1602是16*2的字符型液晶模块,这是一种通用模块,与数码管相比,该模块有如下优点:1、 位数多,可显示32位,32个数码管体积相当庞大。2、 显示内容丰富,可显示所有数字和大、小写字母。3、 程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。第4章 倾角传感器测量系统设计4.1 总体设计4.1.1 系统总体说明本次设计基于stm8单片机制作的倾角测量系统,利用sca60c倾角传感器模块,测出倾斜角度值在显示模块hj1602a上,通过按键控制显示查看相关

15、数据。4.1.2系统框图1602lcd显示sca60c倾角传感器stm8单片机按键控制图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.1 sca60c倾角传感器一、sca60c规格介绍1.尺寸:长328mm*宽16 mm*高15mm2.主要芯片:lm393

16、、倾斜感应探头3.工作电压:dc 5v4.特点:i.倾斜信号模拟电压输出0-180对应0.5-4.5v可单片机ad采集;ii.双向倾斜角度报警输出;iii.输出有效电平指示灯;iv.左右倾斜报警范围0-9090-180全范围可调,调整精度为1。二、sca60c电路原理图图4-2 倾角传感器原理图4.2.2 hj1602a液晶显示字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式lcd,目前常用16*1,16*2,20*2和40*2行等的模块。一、hj1602a主要技术参数1、 显示容量:162个字符2、 芯片工作电压:4.55.5v3、 工作电流:2.0ma(5.0v)4、 模块最佳

17、工作电压:5.0v5、 字符尺寸:2.954.35(wh)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共同为低电平时可以写入指令或者显示地址,

18、当rs为低电平r/w为高电平时可以读忙信号,当rs为高电平r/w为低电平时可以写入数据。6、 第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。7、 第714脚:d0d7为8位双向数据线。8、 第15脚:背光源正极。9、 第16脚:背光源负极。三、hj1602a液晶模块内部的11条控制指令 hj1602a液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。(说明1为高电平,0为低电平)1)指令1:清显示,指令码01h,光标复位到地址00h位置。2)指令2:光标复位,光标返回到地址00h3)指令3:光标和显示位置设置i/d,光标移动方向,高电平右移,低电平左移,s:

19、屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。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:读

20、忙信号和光标地址 bf:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。4.3 程序流程图根据上述气压高度计倾角传感器的测量流程,软件设计可分为以下几个功能模块,在此以流程图的形式展示。4.3.1 hj1602a显示模块图4-3显示模块流程图4.3.2主程序模块 图4-4主程序流程图4.3.3 sca60c倾角测量模块sca60c初始化开始信号角度检测发送角度数据角度设定阈值? 否 是ttl门输出高电平指示灯亮图4-5倾角测量模块流程图 第5章 主程序这部分是主程序的部分,其中包括stm8单片机的系统初始化,sca60c倾角转换和lcd液晶显示倾角值。主程序摘录如下:

21、void main() 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;j180)m=180; lcd_pos(0x00); /设置显示位置为第

22、一行的第1个字符 if(ml_angle)l_angle=a; if(m=90)a=0; if(m90)a=m-90;write_data(+);if(ar_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;j3;j+) write_data( t4j); if(gpio_readinputpin( gpiob, gpio_pin_4)=0)|(gpio_readinputpin( gpiob, gpio_pin_5)

23、=0) lcd_pos(0x08); for(j=0;j7;j+) write_data( tt1j); w_number+; if(gpio_readinputpin( gpiob, gpio_pin_4)=0) l_number+; elser_number+; /*if(gpio_readinputpin( gpiob, gpio_pin_5)=0) lcd_pos(0x08); for(j=0;j7;j+) write_data( t1j); w_number+; r_number+; */elselcd_pos(0x08);for(j=0;j7;j+)write_data( t2j)

24、; 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+

25、0x30); write_data(v); test_number+; k_value= read_key(); delay_ms(500); if( k_value=2) lcd_pos(0x00); for(j=0;j7;j+) write_data( w_numj); 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

26、); for(j=0;j10;j+)write_data( t3j); delay_ms(1000); if( k_value=3) lcd_pos(0x00); for(j=0;j7;j+) write_data( r_numj); 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;j10;j+)wr

27、ite_data( t3j); delay_ms(1000); if( k_value=4) lcd_pos(0x00); for(j=0;j7;j+) write_data( l_numj); 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;j10;j+)write_data( t3j); dela

28、y_ms(1000); if( k_value=5) lcd_pos(0x00); for(j=0;j7;j+) write_data( test_numj); lcd_pos(0x40); write_data(=); write_data(test_number/1000+0x30); write_data(test_number%1000)/100+0x30); write_data(test_number%100)/10+0x30); write_data(test_number%10)+0x30); for(j=0;j10;j+)write_data( t3j); delay_ms(

29、1000); if( k_value=6) lcd_pos(0x00); for(j=0;j7;j+) write_data( l_angj); lcd_pos(0x40); write_data(=); write_data(l_angle/1000+0x30); write_data(l_angle%1000)/100+0x30); write_data(l_angle%100)/10+0x30); write_data(l_angle%10)+0x30); for(j=0;j10;j+)write_data( t3j);delay_ms(1000); if( k_value=7) lcd_pos(0x00); for(j=0;j7;j+) write_data( r_angj); lcd_pos(0x40); write_data(=); write_data(r_angle/1000+0x30); write_data(r_angle%1000)/100+0x30); write_data(r_angle%100)/10+0x30); write_data(

温馨提示

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

评论

0/150

提交评论