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

上传人:沈*** 文档编号:77632519 上传时间:2022-04-20 格式:DOC 页数:20 大小:301KB
返回 下载 相关 举报
课程设计基于51单片机的压力数据采集_第1页
第1页 / 共20页
课程设计基于51单片机的压力数据采集_第2页
第2页 / 共20页
课程设计基于51单片机的压力数据采集_第3页
第3页 / 共20页
点击查看更多>>
资源描述
xxxxxx大学课 程 设 计 报 告课程设计名称:单片机系统综合课程设计课程设计题目:基于51单片机的压力数据采集院(系): 专 业:班 级:学 号:姓 名: 指导教师:完成日期:xxxxxx大学课程设计报告 目 录第1章 总体设计方案11.1 设计原理11.2 设计思路11.3 实验环境2第2章 详细设计方案32.1 硬件电路设计32.2 主程序设计42.2 功能模块的设计与实现5第3章 结果测试及分析113.1 结果测试113.2 结果分析11参考文献12附 录A(源程序代码)13附 录B(电路原理图)16附 录C(元件列表)17-18-xxxxxx大学课程设计报告 第1章 总体设计方案第1章 总体设计方案1.1 设计原理根据课程设计任务书的内容与要求,需要使用伟福Lab6000试验箱上提供的压力传感器实现压力的实时传感,利用A/D转换装置将压力传感器输出的模拟信号转换成为数字信号,在利用箱上的数码管将转换数字信号结果显示出来。为了保证压力传感的准确性,开始执行时,需要将压力传感器软件调整出零点,如不进行压力零点的调整,压力传感器将不进行工作。压力传感器工作时,由于硬件的原因压力传感结果经常波动,如果想进行压力传感值的锁定,程序提供了利用开关实现的此功能,以方便对于压力测算值的读取。1.2 设计思路 采用C语言编程,结合伟福Lab6000试验箱的固定硬件模块加以实际连线调整硬件部分。1) 提出方案a) 需要实验箱上压力传感器提供准确的压力测算值;b) 压力传感器的模拟信号通过箱上的A/D转化模块转化为可以显示的数字信号;c) A/D转换的结果通过中断的方式显示到数码管上。2) 方案论证 由于压力传感器的硬件原因,其A/D转换结果并非从零开始的,为提供准确的压力测算值,程序开始须等待调零,否则不提供压力的测定值。若进行过调零,则之后不断的测试压力的变化,提供测定值。模拟信号进入A/D转化之后,每一次完成转化,通过EOC端口向外发出中断,使用该中断信号作为输出数据的采集信号。进入中断后采集的数字信号通过公式转化成为可现实的数字,用显示程序通过对数码管的扫描显示显示出来。1.3 实验环境硬件环境:伟福Lab6000实验箱,PC机。软件环境:Wave应用软件。xxxxxx大学课程设计报告 第2章 详细设计方案第2章 详细设计方案2.1 硬件电路设计硬件电路共由以下四个部分组成,分别包括压力传感器硬件模块,A/D转换硬件模块(ADC0809),8031硬件模块以及数码管硬件模块。硬件电路连线如图2.1所示。 图2.1 硬件电路连线图压力传感器模块:压力传感器模块将传感器接受到的压力转化成模拟信号输出到端口上,大致分为电源、电阻电路、运放、输出四部分。A/D转化模块:以ADC0809芯片为基础集成的硬件模块,ADC0809芯片为逐次逼近型8位A/D转化器,可采用中断方式读结果,在中断方式下,A/D转换结果会自动产生EOC信号,将其与CPU外中断相连,即可用中断方式读取A/D转换结果。8031CPU模块:8031CPU上提供并行口进行输入输出,提供内部时钟计时,并可以接受外部中断信号进行中断服务子程序的处理。数码管模块:提供6位8段码LED显示电路,8位段码、6位位码由两片74LS374输出,位码经过MC1413倒向驱动后,选择相应位显示。8位段码输出地址为0x004H,位码输出地址为0x002H。2.2 主程序设计主程序流程图如图2.2所示。图2.2 主程序流程图 程序开始时等待程序调零,若不进行调零则一直处于等待的状态下。调零后,压力转化器将采集数据传入A/D转换器中,A/D转换器转化完成将通过EOC端口发出一个中断信号,接受到中断信号后,若中断开启,将A/D转化结束的数值取出,输出到数码管的显示;若中断关闭,则开始新一轮的采集压力,不予显示。锁定测定值原理同中断关闭,不接受新的中断,而保持原来需要输出的数值不变。2.2 功能模块的设计与实现程序主要包括以下几个部分:a) 对中断方式,计数器计数方式的初始化;b) 等待压力传感器调零;c) 等待中断,等待期间不断输出压力值;d) 中断服务子程序,A/D转换结果的保存;e) 定时器定时。1)中断方式,计数器计数方式的初始化模块对中断的设置包括:开外中断0(即INT0);设置中断优先等级为五个中断同一优先级;设置触发方式为边沿触发;最后开启中断。对计数器的设置包括:计数器工作方式设置为T0工作于方式一定时器;设置计数器初值为0xFE0C(这个初值下计数器为1ms级别定时器)。计数器初值计算由下面的公式得出:(216-X)*(6*106)=1ms可得X=0xFE0C。中断方式,计数器计数方式的初始化流程图如图2.3所示。图2.3 初始化流程图2)等待压力传感器调零模块 由于压力传感器的硬件局限,不施加压力时,依然会有一个非零的模拟信号发送出来,经A/D转化后将在数码管上显示出不符合事实标准的一个非零压力值,所以设计了等待清零的模块,防止此种状况的出现。程序初始化完成之后,进入等待调零的状态,此状态下数码管不显示具体数值,显示字母P以表示等待。当开关给出清零信号之后,跳出等待状态,进入压力值正常显示状态。 等待压力传感器调零流程图如图2.4所示。图2.4 等待调零流程图3)输出压力值模块利用数码管显示测定出的压力值,显示时需要将每一位的数值转换为八段码送给数码管的段码地址,将不同使能信号送入位码地址选通相应位使能。将上述的操作循环,则可以看到连续的输出,显示出压力值数值。当接收到新的中断,则更改寄存器中表示压力的数值,由输出模块输出新的压力数值。扫描输出压力值流程图如图2.5所示。图2.5 输出压力值流程图4)中断服务子程序 中断服务子程序实现接受到外中断0之后的处理,每一次A/D转换完成之后,都会通过EOC引脚向外发送一个上升沿信号,将该信号通过非门连接到外中断0的引脚上,该引脚每次接收到下降沿信号就会进入中断服务子程序。中断服务子程序包括两个部分:第一部分,当调零开关与中断使能开关同为高电平时,此时将采集压力数据作为新的调零基准值保存。第二部分,当之后中断使能开关高电平时,采集压力值,将采集数据减去调零基准值,得到传感器上所施加的压力值,送入专门的变量中保存。中断服务子程序流程图如图2.6所示。图2.6 中断服务子程序流程图)定时器定时程序定时器利用8031内部提供定时器,为防止与外中断的影响,利用查询方式进行定时器的定时器的重装载,设定时间为1ms,使用参数x来确定具体的延时程序时常x乘以1ms,即为xms延时程序。定时器定时程序流程图如图2.7所示。图2.7 定时器定时流程图xxxxxx大学课程设计报告 第3章 编程下载与硬件测试第3章 结果测试及分析3.1 结果测试 程序开始数码管显示P表示等待调零,若不进行调零则程序不向下执行,按动压力传感器无反应;当检测到清零开关与中断允许开关同为高电平时,数码管显示0.0表示清零完成,得到此时刻的零点基准值。当中断允许开关维持高电平时,数码管的示数随着压力传感器上作用的压力大小来显示数值,数值保留一位小数。当中断允许开关从高电平向低电平跳变,并维持低电平时,数码管显示电平跳变时刻的压力值,此后再按动传感器数码管显示不发生改变。清零操作与中断开关状态可重复改变。3.2 结果分析对于上述的运行结果和操作过程,达到了课程设计任务书中的要求,并且添加了清零功能与压力测定值的锁定功能。清零可以避免无意义压力值的出现,保证压力值出现偏差波动时可以及时调整清零。可以实时的监控压力值的变化,当有压力作用于压力传感器上的时候,可以从数码管上面直观的看到压力大小的变化,可实现实时的观测。鉴于压力值通常情况下不稳定,想要记录或者稳定观察压力值的时候,波动的压力值将给示数的读取带来不便,所以增加压力值锁定功能,之后压力传感器上的波动对示数无影响,从而方便读取。xxxxxx大学课程设计报告 参考文献参考文献1张毅刚.单片机原理及应用M.哈尔滨:哈尔滨工业大学出版社,20102李伯成.基于MCS-51单片机的嵌入式系统设计M.北京: 电子工业出版社,20043何利民.单片机应用系统设计M.北京: 北京航空航天大学出版社,19954阎石.数字电子技术基础M.北京: 高等教育出版社,19985徐伟.C51单片机高效入门M.北京: 机械工业出版社,20066付家才.单片机控制工程实践技术M.北京: 化学工业出版社,2004xxxxxx大学课程设计报告 附 录附 录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&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(!TF0); TH0=0X0FE; TL0=0X0C; TF0=0; TR0=0;void main() int m=0; int count=0; int i; unsigned char c=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; unsigned char p=0x01,0x02,0x04,0x08,0x10,0x20; IP=0X00; IE=0X81; IT0=1; TMOD=0x01; TH0=0XFE; TL0=0X0C; *ad_adr=0X00; exp_0=0x00; i=0; II=00; while(1) if(exp_0=0x00) *pledcs=p0; *pled=0x73; else while(i=0) if(m=0) *pled=(ci%10&0x7f); else if(m=1) *pled=(ci%10|0x80); else *pled=ci%10; *pledcs=pm; delay(10); i=i/10; if(i=0) break; m=m+1; if(m=0) *pled=c0|0x80;*pledcs=p1;delay(3); EA=START; m=0; count+; i=(II)/255.0)*500; if(count7)*ad_adr=0x00; count=0; 附 录B(电路原理图)附 录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 SO141 74HC138 U13 DIP-161 74LS02 U11 DIP-142 74LS374 U19 U20 DIP-202 103pF C7 C83 120 R25 R26 R271 200 R441 7404 U17 DIP-141 8751 U18 DIP-401 ADC0809 U7 DIP-281 CA324 U5 DIP-141 CHUANGAN U61 CLK U232 SW SPDT S2 S5Xxxxxx大学课程设计报告课程设计总结:本次课程设计是基于单片机和硬件试验箱的课程设计,与以往主要以软件编译环境的课程设计或者是软件模拟硬件的仿真课程设计不同,更要求我自己去了解硬件电路的原理和软件硬件之间的配合方式。在软件编程设计方面,使用C语言编程代替汇编语言编程,这对于平时上课习惯于用汇编语言编程的我是一种挑战,但是在这个过程之中,我更加熟悉了基于单片机上的语言编程方式方法,相信对我以后的学习将大有裨益。在硬件设计方面,虽然有伟福公司提供的试验箱指导手册,可是硬件电路方面的芯片,由于数字电路学习时隔很久,加上硬件方面本身比较薄弱,所以加入硬件调试的时候,曾经使的课程设计进度大为拖延,也使我充分的意识到相对于软件方面,我在硬件方面的学习更加的捉襟见肘。这样的课设经历使我意识到自身学习的贫乏,更加督促我学习与了解硬件,不仅仅局限于软件的编程和虚拟的仿真,只有真正的动手操作,软硬件结合起来调试运行,才能切实的提高自己的动手能力,提高自己的编程水平。感谢课设老师的悉心指导,使得课程设计圆满完成,本次课程设计让我获益匪浅。指导教师评语:指导教师(签字): 年 月 日课程设计成绩
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!