课程设计基于51单片机的压力数据采集讲义

上传人:今*** 文档编号:105847612 上传时间:2019-10-13 格式:DOC 页数:20 大小:301KB
返回 下载 相关 举报
课程设计基于51单片机的压力数据采集讲义_第1页
第1页 / 共20页
课程设计基于51单片机的压力数据采集讲义_第2页
第2页 / 共20页
课程设计基于51单片机的压力数据采集讲义_第3页
第3页 / 共20页
课程设计基于51单片机的压力数据采集讲义_第4页
第4页 / 共20页
课程设计基于51单片机的压力数据采集讲义_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《课程设计基于51单片机的压力数据采集讲义》由会员分享,可在线阅读,更多相关《课程设计基于51单片机的压力数据采集讲义(20页珍藏版)》请在金锄头文库上搜索。

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

2、结果测试及分析.11 3.1 结果测试 .11 3.2 结果分析 .11 参考文献参考文献.12 附附 录录 A(源程序代码)(源程序代码).13 附附 录录 B(电路原理图)(电路原理图) .16 附附 录录 C(元件列表)(元件列表).17 xxxxxx大学课程设计报告 第 1 章 总体设计方案 -1- 第 1 章 总体设计方案 1.1 设计原理设计原理 根据课程设计任务书的内容与要求,需要使用伟福 Lab6000 试验箱上提 供的压力传感器实现压力的实时传感,利用 A/D 转换装置将压力传感器输出 的模拟信号转换成为数字信号,在利用箱上的数码管将转换数字信号结果显 示出来。 为了保证压力

3、传感的准确性,开始执行时,需要将压力传感器软件调整 出零点,如不进行压力零点的调整,压力传感器将不进行工作。压力传感器 工作时,由于硬件的原因压力传感结果经常波动,如果想进行压力传感值的 锁定,程序提供了利用开关实现的此功能,以方便对于压力测算值的读取。 1.2 设计思路设计思路 采用 C 语言编程,结合伟福 Lab6000 试验箱的固定硬件模块加以实际连 线调整硬件部分。 1) 提出方案提出方案 a) 需要实验箱上压力传感器提供准确的压力测算值; b) 压力传感器的模拟信号通过箱上的 A/D 转化模块转化为可以显示的数字 信号; c) A/D 转换的结果通过中断的方式显示到数码管上。 2)

4、方案论证方案论证 由于压力传感器的硬件原因,其 A/D 转换结果并非从零开始的,为提供 准确的压力测算值,程序开始须等待调零,否则不提供压力的测定值。若进 行过调零,则之后不断的测试压力的变化,提供测定值。 模拟信号进入 A/D 转化之后,每一次完成转化,通过 EOC 端口向外发 出中断,使用该中断信号作为输出数据的采集信号。 xxxxxx大学课程设计报告 第 1 章 总体设计方案 -2- 进入中断后采集的数字信号通过公式转化成为可现实的数字,用显示程 序通过对数码管的扫描显示显示出来。 1.3 实验环境实验环境 硬件环境:伟福 Lab6000 实验箱,PC 机。 软件环境:Wave 应用软件

5、。 xxxxxx大学课程设计报告 第 2 章 详细设计方案 -3- 第 2 章 详细设计方案 2.1 硬件电路设计硬件电路设计 硬件电路共由以下四个部分组成,分别包括压力传感器硬件模块,A/D 转 换硬件模块(ADC0809) ,8031 硬件模块以及数码管硬件模块。 硬件电路连线如图 2.1 所示。 图图 2.12.1 硬件电路连线图硬件电路连线图 压力传感器模块:压力传感器模块将传感器接受到的压力转化成模拟信号 输出到端口上,大致分为电源、电阻电路、运放、输出四部分。 A/D 转化模块:以 ADC0809 芯片为基础集成的硬件模块,ADC0809 芯片为 逐次逼近型 8 位 A/D 转化器

6、,可采用中断方式读结果,在中断方式下,A/D 转 换结果会自动产生 EOC 信号,将其与 CPU 外中断相连,即可用中断方式读取 A/D 转换结果。 xxxxxx大学课程设计报告 第 2 章 详细设计方案 -4- 8031CPU 模块:8031CPU 上提供并行口进行输入输出,提供内部时钟计时, 并可以接受外部中断信号进行中断服务子程序的处理。 数码管模块:提供 6 位 8 段码 LED 显示电路,8 位段码、6 位位码由两片 74LS374 输出,位码经过 MC1413 倒向驱动后,选择相应位显示。8 位段码输出 地址为 0x004H,位码输出地址为 0x002H。 2.2 主程序设计主程序

7、设计 主程序流程图如图 2.2 所示。 图图 2.22.2 主程序流程图主程序流程图 xxxxxx大学课程设计报告 第 2 章 详细设计方案 -5- 程序开始时等待程序调零,若不进行调零则一直处于等待的状态下。调零 后,压力转化器将采集数据传入 A/D 转换器中,A/D 转换器转化完成将通过 EOC 端口发出一个中断信号,接受到中断信号后,若中断开启,将 A/D 转化结 束的数值取出,输出到数码管的显示;若中断关闭,则开始新一轮的采集压力, 不予显示。锁定测定值原理同中断关闭,不接受新的中断,而保持原来需要输 出的数值不变。 2.2 功能模块的设计与实现功能模块的设计与实现 程序主要包括以下几

8、个部分: a)对中断方式,计数器计数方式的初始化; b)等待压力传感器调零; c)等待中断,等待期间不断输出压力值; d)中断服务子程序,A/D 转换结果的保存; e)定时器定时。 1)中断方式,计数器计数方式的初始化模块)中断方式,计数器计数方式的初始化模块 对中断的设置包括:开外中断 0(即 INT0);设置中断优先等级为五个中断 同一优先级;设置触发方式为边沿触发;最后开启中断。 对计数器的设置包括:计数器工作方式设置为 T0 工作于方式一定时器;设 置计数器初值为 0xFE0C(这个初值下计数器为 1ms 级别定时器) 。 计数器初值计算由下面的公式得出: (216-X)*(6*106

9、)=1ms 可得 X=0xFE0C。 中断方式,计数器计数方式的初始化流程图如图 2.3 所示。 xxxxxx大学课程设计报告 第 2 章 详细设计方案 -6- 图图 2.32.3 初始化流程图初始化流程图 2)等待压力传感器调零模块)等待压力传感器调零模块 由于压力传感器的硬件局限,不施加压力时,依然会有一个非零的模拟信号 发送出来,经 A/D 转化后将在数码管上显示出不符合事实标准的一个非零压力值, 所以设计了等待清零的模块,防止此种状况的出现。 程序初始化完成之后,进入等待调零的状态,此状态下数码管不显示具体数 值,显示字母 P 以表示等待。当开关给出清零信号之后,跳出等待状态,进入压

10、力值正常显示状态。 等待压力传感器调零流程图如图 2.4 所示。 xxxxxx大学课程设计报告 第 2 章 详细设计方案 -7- 图图 2.42.4 等待调零流程图等待调零流程图 3)输出压力值模块)输出压力值模块 利用数码管显示测定出的压力值,显示时需要将每一位的数值转换为八段码 送给数码管的段码地址,将不同使能信号送入位码地址选通相应位使能。将上述 的操作循环,则可以看到连续的输出,显示出压力值数值。 当接收到新的中断,则更改寄存器中表示压力的数值,由输出模块输出新的 压力数值。 扫描输出压力值流程图如图 2.5 所示。 xxxxxx大学课程设计报告 第 2 章 详细设计方案 -8- 图图

11、 2.52.5 输出压力值流程图输出压力值流程图 xxxxxx大学课程设计报告 第 2 章 详细设计方案 -9- 4)中断服务子程序)中断服务子程序 中断服务子程序实现接受到外中断 0 之后的处理,每一次 A/D 转换完成 之后,都会通过 EOC 引脚向外发送一个上升沿信号,将该信号通过非门连 接到外中断 0 的引脚上,该引脚每次接收到下降沿信号就会进入中断服务子 程序。 中断服务子程序包括两个部分:第一部分,当调零开关与中断使能开关 同为高电平时,此时将采集压力数据作为新的调零基准值保存。第二部分, 当之后中断使能开关高电平时,采集压力值,将采集数据减去调零基准值, 得到传感器上所施加的压力

12、值,送入专门的变量中保存。 中断服务子程序流程图如图 2.6 所示。 图图 2.62.6 中断服务子程序流程图中断服务子程序流程图 )定时器定时程序)定时器定时程序 定时器利用 8031 内部提供定时器,为防止与外中断的影响,利用查询方式进 行定时器的定时器的重装载,设定时间为 1ms,使用参数 x 来确定具体的延时程 序时常 x 乘以 1ms,即为 xms 延时程序。 xxxxxx大学课程设计报告 第 2 章 详细设计方案 -10- 定时器定时程序流程图如图 2.7 所示。 图图 2.72.7 定时器定时流程图定时器定时流程图 xxxxxx大学课程设计报告 第 3 章 编程下载与硬件测试 -

13、11- 第 3 章 结果测试及分析 3.1 结果测试结果测试 程序开始数码管显示 P 表示等待调零,若不进行调零则程序不向下执行,按 动压力传感器无反应;当检测到清零开关与中断允许开关同为高电平时,数码管 显示 0.0 表示清零完成,得到此时刻的零点基准值。当中断允许开关维持高电平 时,数码管的示数随着压力传感器上作用的压力大小来显示数值,数值保留一位 小数。当中断允许开关从高电平向低电平跳变,并维持低电平时,数码管显示电 平跳变时刻的压力值,此后再按动传感器数码管显示不发生改变。清零操作与中 断开关状态可重复改变。 3.2 结果分析结果分析 对于上述的运行结果和操作过程,达到了课程设计任务书

14、中的要求,并且添 加了清零功能与压力测定值的锁定功能。清零可以避免无意义压力值的出现,保 证压力值出现偏差波动时可以及时调整清零。可以实时的监控压力值的变化,当 有压力作用于压力传感器上的时候,可以从数码管上面直观的看到压力大小的变 化,可实现实时的观测。鉴于压力值通常情况下不稳定,想要记录或者稳定观察 压力值的时候,波动的压力值将给示数的读取带来不便,所以增加压力值锁定功 能,之后压力传感器上的波动对示数无影响,从而方便读取。 xxxxxx大学课程设计报告 参考文献 -12- 参考文献 1张毅刚.单片机原理及应用M.哈尔滨:哈尔滨工业大学出版社,2010 2李伯成.基于 MCS-51 单片机

15、的嵌入式系统设计M.北京: 电子工业出版社, 2004 3何利民.单片机应用系统设计M.北京: 北京航空航天大学出版社,1995 4阎石.数字电子技术基础M.北京: 高等教育出版社,1998 5徐伟.C51 单片机高效入门M.北京: 机械工业出版社,2006 6付家才.单片机控制工程实践技术M.北京: 化学工业出版社,2004 xxxxxx大学课程设计报告 附 录 -13- 附 录 A(源程序代码) #include #include signed char II; unsigned char xdata *ad_adr=0x9000; unsigned char xdata *pled=0x8004; unsigned char xdata *pledcs=0x8002; sbit START=P10; sbit SET=P11; signed char exp_0; void service_int()interrupt 0 using 0 if(SET II=*ad_adr-exp_0; void delay(int x) /1ms 级别延时 int j; TH0=0X0FE;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号