课程设计基于51单片机的压力数据采集_第1页
课程设计基于51单片机的压力数据采集_第2页
课程设计基于51单片机的压力数据采集_第3页
课程设计基于51单片机的压力数据采集_第4页
课程设计基于51单片机的压力数据采集_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、xxxxxx大学课课 程程 设设 计计 报报 告告课程设计名称:单片机系统综合课程设计单片机系统综合课程设计课程设计题目:基于基于 5151 单片机的压力数据采集单片机的压力数据采集院(系): 专 业:班 级:学 号:姓 名: 指导教师:完成日期:目目 录录第第 1 章章 总体设计方案总体设计方案.11.1 设计原理 .11.2 设计思路 .11.3 实验环境 .2第第 2 章章 详细设计方案详细设计方案.32.1 硬件电路设计 .32.2 主程序设计 .42.2 功能模块的设计与实现 .5第第 3 章章 结果测试及分析结果测试及分析.113.1 结果测试 .113.2 结果分析 .11参考文

2、献参考文献.12附附 录录 a(源程序代码)(源程序代码).13附附 录录 b(电路原理图)(电路原理图) .16附附 录录 c(元件列表)(元件列表).17第 1 章 总体设计方案1.1 设计原理设计原理根据课程设计任务书的内容与要求,需要使用伟福 lab6000 试验箱上提供的压力传感器实现压力的实时传感,利用 a/d 转换装置将压力传感器输出的模拟信号转换成为数字信号,在利用箱上的数码管将转换数字信号结果显示出来。为了保证压力传感的准确性,开始执行时,需要将压力传感器软件调整出零点,如不进行压力零点的调整,压力传感器将不进行工作。压力传感器工作时,由于硬件的原因压力传感结果经常波动,如果

3、想进行压力传感值的锁定,程序提供了利用开关实现的此功能,以方便对于压力测算值的读取。1.2 设计思路设计思路 采用 c 语言编程,结合伟福 lab6000 试验箱的固定硬件模块加以实际连线调整硬件部分。1) 提出方案提出方案a) 需要实验箱上压力传感器提供准确的压力测算值;b) 压力传感器的模拟信号通过箱上的 a/d 转化模块转化为可以显示的数字信号;c) a/d 转换的结果通过中断的方式显示到数码管上。2) 方案论证方案论证 由于压力传感器的硬件原因,其 a/d 转换结果并非从零开始的,为提供准确的压力测算值,程序开始须等待调零,否则不提供压力的测定值。若进行过调零,则之后不断的测试压力的变

4、化,提供测定值。模拟信号进入 a/d 转化之后,每一次完成转化,通过 eoc 端口向外发出中断,使用该中断信号作为输出数据的采集信号。进入中断后采集的数字信号通过公式转化成为可现实的数字,用显示程序通过对数码管的扫描显示显示出来。1.3 实验环境实验环境硬件环境:伟福 lab6000 实验箱,pc 机。软件环境:wave 应用软件。第 2 章 详细设计方案2.1 硬件电路设计硬件电路设计硬件电路共由以下四个部分组成,分别包括压力传感器硬件模块,a/d 转换硬件模块(adc0809) ,8031 硬件模块以及数码管硬件模块。硬件电路连线如图 2.1 所示。 图图 2.12.1 硬件电路连线图硬件

5、电路连线图压力传感器模块:压力传感器模块将传感器接受到的压力转化成模拟信号输出到端口上,大致分为电源、电阻电路、运放、输出四部分。a/d 转化模块:以 adc0809 芯片为基础集成的硬件模块,adc0809 芯片为逐次逼近型 8 位 a/d 转化器,可采用中断方式读结果,在中断方式下,a/d 转换结果会自动产生 eoc 信号,将其与 cpu 外中断相连,即可用中断方式读取a/d 转换结果。8031cpu 模块:8031cpu 上提供并行口进行输入输出,提供内部时钟计时,并可以接受外部中断信号进行中断服务子程序的处理。数码管模块:提供 6 位 8 段码 led 显示电路,8 位段码、6 位位码

6、由两片74ls374 输出,位码经过 mc1413 倒向驱动后,选择相应位显示。8 位段码输出地址为 0 x004h,位码输出地址为 0 x002h。2.2 主程序设计主程序设计主程序流程图如图 2.2 所示。图图 2.22.2 主程序流程图主程序流程图 程序开始时等待程序调零,若不进行调零则一直处于等待的状态下。调零后,压力转化器将采集数据传入 a/d 转换器中,a/d 转换器转化完成将通过eoc 端口发出一个中断信号,接受到中断信号后,若中断开启,将 a/d 转化结束的数值取出,输出到数码管的显示;若中断关闭,则开始新一轮的采集压力,不予显示。锁定测定值原理同中断关闭,不接受新的中断,而保

7、持原来需要输出的数值不变。2.2 功能模块的设计与实现功能模块的设计与实现程序主要包括以下几个部分:a)对中断方式,计数器计数方式的初始化;b)等待压力传感器调零;c)等待中断,等待期间不断输出压力值;d)中断服务子程序,a/d 转换结果的保存;e)定时器定时。1)中断方式,计数器计数方式的初始化模块)中断方式,计数器计数方式的初始化模块对中断的设置包括:开外中断 0(即 int0);设置中断优先等级为五个中断同一优先级;设置触发方式为边沿触发;最后开启中断。对计数器的设置包括:计数器工作方式设置为 t0 工作于方式一定时器;设置计数器初值为 0 xfe0c(这个初值下计数器为 1ms 级别定

8、时器) 。计数器初值计算由下面的公式得出:(216-x)*(6*106)=1ms可得 x=0 xfe0c。中断方式,计数器计数方式的初始化流程图如图 2.3 所示。图图 2.32.3 初始化流程图初始化流程图2)等待压力传感器调零模块)等待压力传感器调零模块 由于压力传感器的硬件局限,不施加压力时,依然会有一个非零的模拟信号发送出来,经 a/d 转化后将在数码管上显示出不符合事实标准的一个非零压力值,所以设计了等待清零的模块,防止此种状况的出现。程序初始化完成之后,进入等待调零的状态,此状态下数码管不显示具体数值,显示字母 p 以表示等待。当开关给出清零信号之后,跳出等待状态,进入压力值正常显

9、示状态。 等待压力传感器调零流程图如图 2.4 所示。图图 2.42.4 等待调零流程图等待调零流程图3)输出压力值模块)输出压力值模块利用数码管显示测定出的压力值,显示时需要将每一位的数值转换为八段码送给数码管的段码地址,将不同使能信号送入位码地址选通相应位使能。将上述的操作循环,则可以看到连续的输出,显示出压力值数值。当接收到新的中断,则更改寄存器中表示压力的数值,由输出模块输出新的压力数值。扫描输出压力值流程图如图 2.5 所示。图图 2.52.5 输出压力值流程图输出压力值流程图4)中断服务子程序)中断服务子程序 中断服务子程序实现接受到外中断 0 之后的处理,每一次 a/d 转换完成

10、之后,都会通过 eoc 引脚向外发送一个上升沿信号,将该信号通过非门连接到外中断 0 的引脚上,该引脚每次接收到下降沿信号就会进入中断服务子程序。中断服务子程序包括两个部分:第一部分,当调零开关与中断使能开关同为高电平时,此时将采集压力数据作为新的调零基准值保存。第二部分,当之后中断使能开关高电平时,采集压力值,将采集数据减去调零基准值,得到传感器上所施加的压力值,送入专门的变量中保存。中断服务子程序流程图如图 2.6 所示。图图 2.62.6 中断服务子程序流程图中断服务子程序流程图)定时器定时程序)定时器定时程序定时器利用 8031 内部提供定时器,为防止与外中断的影响,利用查询方式进行定

11、时器的定时器的重装载,设定时间为 1ms,使用参数 x 来确定具体的延时程序时常 x 乘以 1ms,即为 xms 延时程序。定时器定时程序流程图如图 2.7 所示。图图 2.72.7 定时器定时流程图定时器定时流程图第 3 章 结果测试及分析3.1 结果测试结果测试 程序开始数码管显示 p 表示等待调零,若不进行调零则程序不向下执行,按动压力传感器无反应;当检测到清零开关与中断允许开关同为高电平时,数码管显示 0.0 表示清零完成,得到此时刻的零点基准值。当中断允许开关维持高电平时,数码管的示数随着压力传感器上作用的压力大小来显示数值,数值保留一位小数。当中断允许开关从高电平向低电平跳变,并维

12、持低电平时,数码管显示电平跳变时刻的压力值,此后再按动传感器数码管显示不发生改变。清零操作与中断开关状态可重复改变。3.2 结果分析结果分析对于上述的运行结果和操作过程,达到了课程设计任务书中的要求,并且添加了清零功能与压力测定值的锁定功能。清零可以避免无意义压力值的出现,保证压力值出现偏差波动时可以及时调整清零。可以实时的监控压力值的变化,当有压力作用于压力传感器上的时候,可以从数码管上面直观的看到压力大小的变化,可实现实时的观测。鉴于压力值通常情况下不稳定,想要记录或者稳定观察压力值的时候,波动的压力值将给示数的读取带来不便,所以增加压力值锁定功能,之后压力传感器上的波动对示数无影响,从而

13、方便读取。参考文献1张毅刚.单片机原理及应用m.哈尔滨:哈尔滨工业大学出版社,20102李伯成.基于 mcs-51 单片机的嵌入式系统设计m.北京: 电子工业出版社,20043何利民.单片机应用系统设计m.北京: 北京航空航天大学出版社,19954阎石.数字电子技术基础m.北京: 高等教育出版社,19985徐伟.c51 单片机高效入门m.北京: 机械工业出版社,20066付家才.单片机控制工程实践技术m.北京: 化学工业出版社,2004附 录 a(源程序代码)#include #include signed char ii;unsigned char xdata *ad_adr=0 x9000

14、;unsigned char xdata *pled=0 x8004;unsigned char xdata *pledcs=0 x8002;sbit start=p10;sbit set=p11;signed char exp_0;void service_int()interrupt 0 using 0 if(set&start) exp_0=*ad_adr; ii=*ad_adr-exp_0;void delay(int x) /1ms 级别延时 int j; th0=0x0fe; tl0=0x0c; tr0=1; for(;x0;x-) for(j=1;j0;j-) while

15、(!tf0); th0=0x0fe; tl0=0x0c; tf0=0; tr0=0;void main() int m=0; int count=0; int i; unsigned char c=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; unsigned char p=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20; ip=0x00; ie=0x81; it0=1; tmod=0 x01; th0=0xfe; tl0=0x0c; *ad_adr=0x00; exp_0=0 x00; i=0

16、; ii=00; while(1) if(exp_0=0 x00) *pledcs=p0; *pled=0 x73; else while(i=0) if(m=0) *pled=(ci%10&0 x7f); else if(m=1) *pled=(ci%10|0 x80); else *pled=ci%10; *pledcs=pm; delay(10); i=i/10; if(i=0) break; m=m+1; if(m=0) *pled=c0|0 x80;*pledcs=p1;delay(3); ea=start; m=0; count+; i=(ii)/255.0)*500; i

17、f(count7)*ad_adr=0 x00; count=0; 附 录 b(电路原理图)123456abcd654321dcbatitlenumberrevisionsizebdate:20-jul-2012sheet of file:c:usersmimidesktopliufangmydesign.ddbdrawn by:ea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0435p0534p0633p0732p2021p2122p222

18、3p2324p2425p2526p2627p2728psen29ale/p30txd11rxd10u188751c1122ufs6r231kr442005vc930pfc1030pfc126moc1clk111d31q22d42q53d73q64d84q95d135q126d146q157d177q168d188q19u1974ls374oc1clk111d31q22d42q53d73q64d84q95d135q126d146q157d177q168d188q19u2074ls374a1b2c3e14e25e36y015y114y213y312y411y510y69y77u1374hc138a

19、d0ad1ad2ad3ad4ad5ad6ad7ad0ad1ad2ad3ad4ad5ad6ad7in-026msb2-1212-220in-1272-3192-418in-2282-582-615in-312-714lsb2-817in-42eoc7in-53add-a25in-64add-b24add-c23in-75ale22ref(-)16enable9start6ref(+)12clock10u7adc0809r32vccr221kr104k3r181kr25120r191kr201kr26120c7103pfr2410kr282k4r292k4r302mr312mr211kvcc321

20、411u5aca324r27120c8103pfad0ad1ad2ad3ad4ad5ad6ad7k1k2r3310kr3910kr4010kr4110ks2sw spdts5sw spdtvcck1k2a0a1a2a3a4a5a6a7vcca4a5a6a7a0a1a2ad0ad1ad2ad3ad4ad5ad6ad7clk0u23clkvccout1in2u6chuanganr4210k+12v-12v567u5bca324231u11a74ls02564u11b74ls0212u17a7404owrordordowr123u15a74f32owrc_0c_0c_0clock_1mclock_1

21、min01in12in23in34in45in56o116o215o314o413o512o611o715in67u216_6_mc1413i09i110i211i313i414i515a1b2c3d4e5f6g7dp8u226_8led附 录 c(元件列表)used part type designator footprint= = = =6 1k r18 r19 r20 r21 r22 r232 2k4 r28 r292 2m r30 r311 4k3 r101 6m c121 6_6_mc1413 u211 6_8led u226 10k r24 r33 r39 r40 r41 r42 1 22uf c11 dip-402 30pf c9 c101 74f32 u15

温馨提示

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

评论

0/150

提交评论