欢迎来到天天文库!上传客服QQ1290478887点击这里,给天天文库发消息,QQ:1290478887 | 帮助中心 分享价值,快乐你我!
天天文库
全部分类
  • 学术论文 >
    毕业论文 毕业设计 临时分类
    学术论文
    毕业论文 毕业设计 临时分类 土木工程毕业设计 asp毕业设计 安卓毕业设计 php毕业设计 文献综述 其他论文 外文翻译 Java毕业设计 asp.net论文 英语论文 机械毕业设计 船舶工程毕业论文 法学专业毕业论文 工商管理毕业论文 汉语言文学毕业论文 行政管理毕业论文 护理学毕业论文 化学专业毕业论文 会计学毕业论文 计算机论文 教育学论文 金融管理论文 景观设计毕业论文 旅游管理毕业论文 文秘秘书毕业论文 人力资源管理毕业论 期刊论文 数学专业毕业论文 心理学毕业论文 平面艺术设计论文 开题报告 音乐专业毕业论文 市场营销论文 装修毕业论文
  • 应用文档 >
    商业计划 设计方案 施工方案
    应用文档
    商业计划 设计方案 施工方案 事迹材料 使用与维护手册 工作思想汇报 表格清单 应急预案 调研报告 策划书 项目建议书 技术措施与指南 可行性研究报告 分析报告 演讲稿 自查报告 党校课件 党校讲课稿 合同协议范本 ppt模板 工作总结 工作计划 工作报告 讲话稿 心得体会 活动方案 规章制度 读后感 汇报材料 其他办公文档
  • 行业资料 >
    专业技术 解决措施 指导说明书
    行业资料
    专业技术 解决措施 指导说明书 组织施工设计 技术规范 国家标准 行业标准 经营营销
  • 教育资源 >
    课后答案 笔记讲义 主题班会
    教育资源
    课后答案 笔记讲义 主题班会 医学课件 PDF书籍 商业培训 优质公开课课件 考试资料 教学课件 职业培训课件 大学学习资料 高中学习资料 初中学习资料 小学学习资料 其他学习资料 练习与试题 英语资料 课程设计 临时分类
  • 其他资料 >
    其他文档 免费文档
    其他资料
    其他文档 免费文档
  • 首页 天天文库 > 资源分类 > DOC文档下载
     

    单片机水流流速实习报告

    • 资源ID:18800089       资源大小:543.50KB        全文页数:21页
    • 资源格式: DOC        下载权限:游客/注册会员    下载费用:20积分 【人民币20元】
    游客快捷下载 游客一键下载
    会员登录下载
    下载资源需要20积分 【人民币20元】

    邮箱/QQ:
    温馨提示:
    支付成功后,系统会根据您填写的邮箱或者QQ号作为您下次登录的用户名和密码(如填写的是QQ,那登陆用户名和密码就是QQ号),方便下次登录下载和查询订单;
    特别说明:
    付款后即可正常下载,下载内容为可编辑文档格式,推荐使用支付宝;
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    1、本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器);
    2、文档下载后都不会有天天文库的水印,预览文档经过压缩,下载后原文更清晰;
    3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
    4、所有文档都是可以预览的,天天文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供保证;
    5、文档的总页数、文档格式和文档大小以系统显示为准(不同办公软件显示的页数偶尔有区别),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
    6、如果您还有什么不清楚的,可以点击右侧栏的客服对话;
    下载须知 | 常见问题汇总

    单片机水流流速实习报告

    单片机课程设计报告 题目水流流速测试仪题目水流流速测试仪 院系名称院系名称自动化学院自动化学院 学生姓名学生姓名 3 3 号张拓航号张拓航 8 8 号杨永发号杨永发 1313 号姚义飞号姚义飞 1818 号杨翰林号杨翰林 专业名称专业名称测控技术与仪器测控技术与仪器 班班 级级测控测控 11021102 班班 时间时间 2014.09.15-2014.09.282014.09.15-2014.09.28 水流流速仪的设计水流流速仪的设计 一、设计目的一、设计目的 使用 MJ-HZ21FA 传感器测量水的流速,实时显示其值。并相应地做出动 作当高于某值时,控制电机正转,当低于另一值时,控制电机反转。同时, 从串口输出流速值。 二、设计要求二、设计要求 (1)熟悉 MJ-HZ21FA 传感器,ADC0809 的使用; (2)熟悉电机控制方法。 (3)熟悉主控制器的使用。 三、设计器材三、设计器材 STC52 单片机 1 个 极性电容(33pF,2 个) MJ-HZ21FA传感器(1 个) 排阻(10K) 电阻(1K 200 8.2K)3 个 晶振(12MHz ,1 个) 电机 ULN2003 驱动电路 LCD1602 四、水流流速仪系统原理四、水流流速仪系统原理 水流流速仪的系统框图如下图所示 五、设计方案及分析(包含设计电路图)五、设计方案及分析(包含设计电路图) 4.1 硬件电路设计硬件电路设计 4.1.1 单片机最小系统控制模块设计 采用 STC52 单片机控制。STC52 单片机是一种低功耗、高性能 CMOS8 位 传 感 器 模 块 单片 机模 块 LCD 显示模块 电机驱动模块 微控制器,具有 8KB 的系统可编程 Flash 存储器。AT89S52 具有以下标准 功能 8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双 工串行口, 片内晶振及时钟电路,能够满足题目设计的所有要求,加之我 们对 STC52 单片机也比较熟悉,最小系统电路图如图 4 所示 图 4 4.1.2 显示模块设计 采用 LCD1602 显示,连接电路简单,显示电路连接图如下所示 4.1.3传感器采集模块 本系统采用 MJ-HZ21FA 传感器采集信号,该模块使用直流 5V 供电,理想 条件下输出脉冲信号,广泛应用于测量水流流速领域,模块性能稳定,测度较 精确. 传感器测速原理MJ-HZ21FA 传感器先收集水量,当容量达到传感器容积 的四分之一,传感器输出脉冲信号,这些脉冲信号输入到单片机,完成数据采 集。 4.1.4 电机驱动模块 我们采用的是 ULN2003 作为驱动电路 4.1.5 其他电路设计 a.复位电路 单片机在 RESET 端加一个 大于 20ms 正脉冲即可实现复位, 上电复位和按钮组合的复位电路如 下 在系统上电的瞬间,RST 与电 源电压同电位,随着电容的电压逐 渐上升,RST 电位下降,于是在 RST 形成一个正脉冲。只要该脉冲 足够宽就可以实现复位,即 ms。一般取20 RC R1,C22uF。当人按下按钮 S1 时,使电容 C1 通过 R1 迅速放电,待 S1K 弹起后,C 再次充电,实现手动复位。R1 一般取 8.2K。 b.时钟电路 当使用单片机的内部时钟电路时,单片机的 XATL1 和 XATL2 用来接 石英晶体和微调电容,如图所示,晶体一般可以选择 3M24M,电容选择 30pF 左右。我们选择晶振为 12MHz,电容 33pF。 4.2 软件程序设计软件程序设计 软件分为两部分,主程序和中断服务程序。主程序完成初始化工作、超声 波发射和接收顺序的控制。外部中断服务子程序主要完成时间值的读取、距离 计算、结果的输出、数码管显示等工作。 主程序首先是传感器模块初始化,通过延时函数产生 10us 的高电平,再将 计数器初始化,判断超声波接收端是否收到回波,进而执行外部中断程序。 中断程序首先关闭外部中断,关闭计数器,然后读出计数值,根据公式计 算距离,然后将结果送往数码管显示。 为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时 约 0.1 ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开 外中断 0 接收返回的超声波信号。由于采用的是 12 MHz 的晶 振,计数器每计 一个数就是 1μs,当主程序检测到接收成功的标志位后,将计数器 T0 中的数 (即超声波来回所用的时间)按公式计算,即可得被测物体与测距仪之间的距 离,设计时取 30℃时的声速为 340 m/s 则有 dct/2170T0/10000cm 其中,T0 为计数器 T0 的计算值。 六、问题分析与解决方法六、问题分析与解决方法 1.在拿到设计要求之后,我们先确定采用压力传感器模块,根据压力传感 器模块的工作原理给压力传感器模块一个压力,将采集到的模拟信号输入 ADC 模数转换模块,然后经过 51 单片机输出其流速,并驱动电机模块,当流速 大于设定值时电机正转,否则电机反转,但是最后传感器模块变换,不用经过 模数转换,因此相对简单。 2.在设计 LCD1602 显示电路时,因为 LCD1602 引脚相对比较复杂,设置起 来还是有不少困难,另外在刚开始连接电路时,发现连好之后,显示屏不亮, 最后我们分析电路,最后加了一个电位器,改变电位器的阻值,显示屏恢复正 常。 3.驱动模块的设计也有一定的难度,我们使用的是直流电机,刚开始给驱 动模块的电源太小,不能驱动电机正常转动,又重新加了 12V 的电源,电机也 完成正常工作。 七、设计结果七、设计结果 在传感器中装进水,传感器采集到水流所形成的信号,产生脉冲输入到单 片机中从而根据具体流速驱动电机正反转,并且显示具体数值。 八、设计体会与收获八、设计体会与收获 对比此次本班课程设计其他小组课题,我组水流流速测试仪看似简单,并 没有超声波测距仪的硬性要求,但实验进行到仿真步骤时才发现,本实验实则 更加考验实际焊接中排线布局的能力,仿真中 LCD 显示模块和单片机芯片接线 复杂,排线冗余,还要考虑线路重叠产生的电流回路误差影响。因此我们用最 简单的排线以及排阻完成显示模块的连接。 仿真程序中并没有实际中所需要的 MJ-HZ21FA 传感器,所以我们只能使 用脉冲信号来代替。 本次实验的成功离不开成员间的密切配合,每一个人的努力都对实验的最 终结果都起到十分的作用。实际操作中每个人都能体会到自己的不足之处,并 加以改进,整个实验结束后,各人的能力均得到提升。除此之外,我们还应该 感谢指导老师的耐心指导,许多看似复杂的问题,老师就能一针见血地指出关 键所在,实验过程中,老师给我们提供了无限的帮助。 杨翰林杨翰林我们这次主要是基于 51 单片机和 MJ-HZ21FA 传感器以及 LCD 显示还有驱动电路的硬件与软件结合的实习,它的目的是通过 MJ-HZ21FA 传 感器采集到信号转换为脉冲完成水流流速测试系统。我们在网上找了好多基于 单片机和 MJ-HZ21FA,还有各个模块的官方资料,经过层层筛选,我们结合那 些资料将大致的电路图画了出来,然后就是软件编程。我们合作查资料,请教 老师和会的同学,终于将仿真图成功的做了出来。焊接是整个过程中最简单地, 但是也考验了我们的耐心。如何运用所学的知识去解决实际的问题,提高我们 的动手能力,明白理论和实践还是有差距的,我们不能只学理论而不实践,要 多结合理论进行实践,这样才更加理解掌握知识,把理论应用于实践,从实践 中得出结论。 杨永发杨永发这次水流流速的实验主要是基于单片机,以及驱动电路的硬件 与软件结合,实验初期老师给出了水流流速测定的原理,以及大致过程。我们 在网上查阅了相关资料,请教老师后,将电路图确定下来,在同学的帮助下完 成了软件的编程以及仿真,最后是焊接和调试。这次课程设计锻炼了我的动手 能力,加强了对理论知识的了解,让我学会了与他人合作。不知不觉中将理论 知识与实践结合了起来,对于单片机的理解更加深刻了。 张拓航张拓航两周的课程设计结束了,在这次的课程设计中不仅检验了我所 学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完 成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习, 相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会 了做人与处世。 课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会, 从事职业工作前一个必不少的过程. ”千里之行始于足下” ,通过这次课程设计, 我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚 踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础. 姚义飞姚义飞通过这次实习,我学到了很多东西,我们的实习题目是水流流 速测试。整个过程充满了挑战,也遇到了很多问题,主要原因是对这类题目的 陌生所导致的。最大的问题也就是程序的编写,好在同学和老师的帮助下程序 勉强算是完成。在这次实习我们接触了一些新的东西,比如传感器,水流测量 仪等等。这次试验是我们很晚才做出来,这也说明我们的知识还不足,相信我 们在以后的学习中会多多观察,多学习,争取能掌握更多的知识。 附录附录ⅠⅠ原理图原理图 附录附录ⅡⅡ程序代码程序代码 1.stepmotordrive.h ifndef __STEPMOTORDRIVE_H__ define __STEPMOTORDRIVE_H__ include reg52.h include LcdDrive.h sbit SMA P24; sbit SMB P25; sbit SMC P26; sbit SMD P27; /*********************************************************** *functionforward *paravoid *desc电机正转一圈 ************************************************************/ void forwardvoid; /*********************************************************** *functionforward *paravoid *desc电机正转一圈 ***********************************************************/ void reversalvoid; /*********************************************************** *functionstopSM *paravoid *desc电机停止转动 ***********************************************************/ void stopSMvoid; endif 2.stepmotordrive.c include stepMotorDrive.h include reg52.h //A-AB-B-BC-C-CD-D-DA //0001 0011 0010 0110 0100 1100 1000 1001 //电机正转表 unsigned char code smft[] {0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x09}; //电机反转表 unsigned char code smst[] {0x08, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01, 0x09}; void forwardvoid { int i; for i 0; i 8; i { P1 P1 0xF0 | smft[i]; delay4; } } void reversalvoid { int i; for i 0; i 8; i { P1 P1 0xF0 | smst[i]; delay4; } } void stopSMvoid { P1 P1 0xF0; delay4; } 3..lcddrive.h ifndef __LCDDRIVE_H__ define __LCDDRIVE_H__ include reg52.h sbit LcdRS P20;//lcd 数据/命令 sbit LcdRW P21; //lcd 读写 sbit LcdEN P22;//lcd 使能 /**************************************** *functiondelay *paraunsigned int *desc12M 晶振,每次延时 1ms * para ****************************************/ extern void delayunsigned int ms; /**************************************** *functionwriteCom *paraunsigned char *desc写命令函数,向 LCD 写入命令,由 八位字符确定。 ****************************************/ extern void writeComunsigned char com; /**************************************** *functionwriteDat *paraunsigned char *desc写数据函数,向 LCD 写入数据,由 八位字符确定。 ****************************************/ extern void writeDataunsigned char dat; /**************************************** *funtioninitLcd *paravoid *desc初始化 Lcd,使用 Lcd 前必须执 行这个函数。 ****************************************/ extern void initLcdvoid; endif 4.lcddrive.c include LcdDrive.h void delayunsigned int ms { int x 0, y 0; for x ms; x 0; x-- for y 110; y 0; y-- ; } void writeComunsigned char com { LcdRS 0;//命令模式 LcdRW 0; P0 com; delay5; LcdEN 1; delay5; LcdEN 0; } void writeDataunsigned char dat { LcdRS 1; LcdRW 0; P0 dat; delay5; LcdEN 1; delay5; LcdEN 0; } void initLcdvoid { LcdEN 0; writeCom0x38;//16*2 显示,5*7 点阵,8 位数据接口 writeCom0x0c;//开显示,不显示光标 writeCom0x06;//写一个字符后自动加一 writeCom0x01;//显示清零,数据指针清零 } 5.Flow.c include reg52.h include LcdDrive.h include stepMotorDrive.h /******** 流速三个标量 ****************/ define FAST1 define Slow2 define Suit 0 unsigned int cnt 0;//水流脉冲次数计数器 unsigned int timeCnt 0; //时间计数器 unsigned int fre 0;//记录上一次脉冲总数 unsigned char flowStatus Suit; //流速状态 unsigned char code table1[] Flow Velocity; unsigned char code table2[] by zmx zm hx zl; unsigned char code table3[] Vel L/min; /*************************************************** *functioninitInt0 *paravoid *desc初始化外部中断一 ***************************************************/ void initInt0void; /*************************************************** *functioninitTime0 *paravoid *desc初始化定时器一,50ms 中断 ***************************************************/ void initTime0void; /*************************************************** *functioncalflow *paravoid *desc计算[水流流速和快慢是否超过低于预定值 ***************************************************/ void calflowvoid; void mainvoid { int i 0; int tmp 0; initLcd; initInt0; initTime0; delay5; writeCom0x800x01; for i 0; i 13; i { writeDatatable1[i]; delay5; } writeCom0x800x400x01; for i 0; i 15; i { writeDatatable2[i]; delay5; } //让开始界面停留 2S delay100; writeCom0x04;//因为在初始化中光标是右移的,这里 //设为左移地址减一 writeCom0x800x4F;//第二行写入“” for i 16; i 0; i-- { writeData; delay200; } delay10; writeCom0x06;//设置回来,光标右移地址加一 writeCom0x800x40;//清除第二行的“” for i 0; i 16; i { writeData ; } EA 1; TR0 1; writeCom0x800x400x01;//写上速度指示 for i 0; i 14; i { writeDatatable3[i]; delay5; } writeCom0x800x47;//从 Vel 后面开始写上流速 while 1 { if fre 0 { writeCom0x800x400x06; writeData1; tmp fre 10 - 0; writeData0; } //if flowStatus Suit { for i 0; i 1000; i { reversal; writeCom0x800x47; writeData1; writeData5; } for i 0; i 1000; i { stopSM; writeCom0x800x47; writeData2; writeData0; //writeCom0x800x48; //writeData2; //writeData0; } // } /*else if flowStatus Slow { for i 0; i 5; i forward; } else { stopSM; }*/ } } void initTime0void { TMOD 0x01; TH0 0x3c; TL0 0xb0; ET0 1; } void initInt0void { EX0 1; IT0 1; } void I0Cntvoid interrupt 0 { cnt; } void Time0void interrupt 1 { TH0 0x3c; TL0 0xb0; timeCnt; if timeCnt 10 { //0.5 秒计算一次 fre cnt; cnt 0; timeCnt 0; calflow; } } void calflowvoid { if fre 11 {//等于 20L/min 认为适中 flowStatus FAST; } else if fre 9 { flowStatus Slow; } else { flowStatus Suit; } } 附录附录ⅢⅢ实物图实物图

    注意事项

    本文(单片机水流流速实习报告)为本站会员(cailibin)主动上传,收益归上传者所有,天天文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知天天文库(发送邮件至[email protected]或直接QQ联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

    网站客服QQ:1290478887        微信公众号:iwenku365

    [email protected] 2017-2027 wenku365.com 网站版权所有   聚力网络工作室

    经营许可证编号:鄂ICP备17008239号-1 

    收起
    展开