收藏 分销(赏)

水位显示及控制报告.doc

上传人:w****g 文档编号:4136491 上传时间:2024-07-31 格式:DOC 页数:17 大小:1.07MB
下载 相关 举报
水位显示及控制报告.doc_第1页
第1页 / 共17页
水位显示及控制报告.doc_第2页
第2页 / 共17页
水位显示及控制报告.doc_第3页
第3页 / 共17页
水位显示及控制报告.doc_第4页
第4页 / 共17页
水位显示及控制报告.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、-+-西 南 交 通 大 学课程设计实习报告水位显示与控制 (第八组)年 级: 学 号: 姓 名: 专 业: 指导老师: 2013年7月设计任务及要求设计并制作一种水位显示与控制电路。其原理框图如下。基本要求:(1) 用10个发光二极管作为水位高低的指示(类似于音量指示)(2) 可以给出无水,水满等指示信号提高部分:(1) 数字显示水位(2) 用水泵进行抽水和蓄水控制频率/水位 扫描与驱动二进制/BCD自制水位传感器AC/DC5V4位7段LED显示频率计数频率/水位10 位LED驱动电路提高部分图1 系统框图要求:1)水位传感器由555电路构成,输出为不同频率的方波。2)频率/水位实际就是一个

2、并行比较器,这里用CPLD来实现,即粗略给出水位范围再由LED BAR显示出来。 3)频率/水位主要是除法运算和减法运算,即精确计算出水位,也可以由CPLD完成。4)根据计算出的水位给出控制信号(如水已满,无水,或继续加水)5)根据计算出的水位用7段LED动态显示出来摘 要 用QuartusII软件Verilog语言编程,包括频率计数器、比较器、除法器、减法器、二进制转BCD码、动态扫描器、译码器、Motor驱动等模块单元,然后利用这些单元整合成功能电路,在计算机中模拟成功后下载到EPC2T114C8芯片中,以此为控制中心,对整个电路进行控制。用漆包线和水杯做成电容型水位感应器,水位的高低可以

3、改变电容的大小,以此作为信息采集平台。电容变化信息通过频率计数器和555构成的振荡器进行波形处理,再经过比较器电路处理后经10个LED灯的亮灭粗略显示水位高低。提高部分则进是通过除法器,减法器,二进制转BCD码,动态扫描,译码等单元模块对信号进一步处理,以毫米为单位通过四位数码管精确显示水位高低及变化情况。通过对采集频率信号的分析,也可采用Motor电机通过抽水、放水等操作实现对水位的控制。关键词:QuartusII; Verilog; 并行比较计数器; Motor; 水位传感器; 555电路; 扫描驱动; 数码管等总体方案:1、 传感器自制水杯+漆包线+导线电容效应代替555中电容而改变55

4、5输出信号频率。实物图如下:2、555利用555构成振荡电路对传感器传输信号进行处理,产生代表水位信息的脉冲信号,不同水位对应不同电容,从而对应不同频率。图如下:3、 晶振事先内封于实验板上的50MHZ晶振4、 频率计数模块总体分为分频+并行频率计数+锁存分频器:分频器通过调用w_count1模块,位数设置为20位,50M分频,再经过FenPin模块二分频。频率计数器:频率计数模块通过自编程序生成元器件实现,此处因程序所占逻辑单元过大而先对555输出频率进行1000000分频再处理,此方法会将频率百位及以下位舍去而造成误差,但在允许范围内。程序代码如下:module W_count1(clkn

5、,clk,W_counter);input clkn,clk;output15:0 W_counter;/Dai Ce 555 signalreg clk_2s;/1s signal outputreg15:0 W_counter;reg15:0 data_out;parameter N=100000000;integer n=0;always(posedge clk)beginif(nN-1) n=0;else n=n+1;if (n16d17302) begin led=b0000000000;cout=1b1;/warning emptyendelse if(data16d10856)

6、begin led=b0000000001;cout=1b0; / 1 LEDsendelse if(data16d8142) begin led=b0000000011;cout=1b0;/ 2 LEDsendelse if(data16d6835) begin led=b0000000111;cout=1b0;/ 3 LEDsendelse if(data16d5767) begin led=b0000001111;cout=1b0;/ 4 LEDsendelse if(data16d5174) begin led=b0000011111;cout=1b0;/ 5 LEDsendelse

7、if(data16d4496) begin led=b0000111111;cout=1b0;/ 6 LEDsendelse if(data16d4041) begin led=b0001111111;cout=1b0;/ 7 LEDsendelse if(data16d3643) begin led=b0011111111;cout=1b0;/ 8 LEDsendelse if(data16d3335) begin led=b0111111111;cout=1b0;/ 9 LEDsendelse if(data16d3058) begin led=b1111111111; cout=1b0;

8、/ 10 LEDs endelse if(data=16d3058) begin led=b1111111111;cout=1b1;/warning fullendendendmodule6. 除法减法模块除法器:通过调用lpm divid器件实现。减法器:通过调用lpmaddsub器件实现7. 二进制转BCD码模块除法减法模块出来的是二进制信号,而数码管显示十进制,为了使显示方便,此处进行二进制和BCD码的转换,程序核心是add3中移位,判断是否加三,具体程序代码如下:module B_to_D ( b, bcd ); parameter B_SIZE = 8; input b; outpu

9、t bcd; wire 19:0 b;reg 19:0 bin;reg 22:0 bcd; reg 22:0 result; always( b )beginbin = b;result = 0;/*if ( ena = 0 )bcd 4 )result3 : 0 = result3 : 0 + 4d3;if ( result7 : 4 4 )result7 : 4 = result7 : 4 + 4d3;if ( result11 : 8 4 )result11 : 8 = result11 : 8 + 4d3; if ( result15 : 12 4 )result15 : 12 = r

10、esult15 : 12 + 4d3;if ( result19 : 16 4 )result19 : 16 = result19 : 16 + 4d3;result = result 1;bin = bin d553677)bcd=0;elsebcd = result;/endendendmodule8. 动态扫描模块前面转码模块产生4个4位BCD码信号,扫描模块则在每个扫描时钟上升沿对信号进行扫描后输出一个选中的4位BCD码,同时有4个一位的选位信号产生,仅被选信号的选位信号为高电平。动态扫描码程序代码如下:module h_to_b(data_in,BCD_1,BCD_2,BCD_3,B

11、CD_4);input22:0 data_in; /Hz input output3:0 BCD_1,BCD_2,BCD_3,BCD_4;/ WeiXuanreg3:0 BCD_1,BCD_2,BCD_3,BCD_4;always(data_in)beginBCD_1=data_in15:12;BCD_2=data_in11:8;BCD_3=data_in7:4;BCD_4=data_in3:0;endendmodulemodule scan(clk,BCD_1,BCD_2,BCD_3,BCD_4,BCD_out_1,BCD_out_2,BCD_out_3,BCD_out_4,data);in

12、put clk; /Sao miao clock signalinput3:0 BCD_1,BCD_2,BCD_3,BCD_4;output BCD_out_1,BCD_out_2,BCD_out_3,BCD_out_4;/ Wei Xuanoutput3:0 data;/output2:0 sel;reg BCD_out_1,BCD_out_2,BCD_out_3,BCD_out_4;reg3:0 data;reg2:0 sel=3b000;always(posedge clk)begin if(sel3b011) sel=sel+1;else sel=0; /Sao Miaoendalwa

13、ys(sel or BCD_1 or BCD_2 or BCD_3 or BCD_4)begincase(sel)3b000:begin data=BCD_1;BCD_out_1=1;BCD_out_2=0;BCD_out_3=0;BCD_out_4=0;end3b001:begin data=BCD_2;BCD_out_1=0;BCD_out_2=1;BCD_out_3=0;BCD_out_4=0;end3b010:begin data=BCD_3;BCD_out_1=0;BCD_out_2=0;BCD_out_3=1;BCD_out_4=0;end3b011:begin data=BCD_

14、4;BCD_out_1=0;BCD_out_2=0;BCD_out_3=0;BCD_out_4=1;end /Wei Xuan Sao Miaoendcaseendendmodule9. 译码模块动态扫描输出一个4位信号,通过译码模块转换成相应的数码管点亮信号,传输给数码管。译码器程序代码如下:module BCD_Dec7(data_in,Dout);input3:0 data_in;/BCD_datasoutput7:0 Dout;/7_seg DuanXuanreg7:0 Dout; always(data_in)begincase(data_in)4b0000: Dout=8b0011

15、1111;4b0001: Dout=8b00000110;4b0010: Dout=8b01011011;4b0011: Dout=8b01001111;4b0100: Dout=8b01100110;4b0101: Dout=8b01101101;4b0110: Dout=8b01111101;4b0111: Dout=8b00000111;4b1000: Dout=8b01111111;4b1001: Dout=8b01101111;4b1010: Dout=8b01110111;4b1011: Dout=8b01111100;4b1100: Dout=8b00111001;4b1101:

16、 Dout=8b01011110;4b1110: Dout=8b01111001;4b1111: Dout=8b01110001; endcaseendendmodule10.Motor驱动通过程序实现对驱动电机高低信号电平的输出控制,程序如下:module motor(lever,data_in,IN1_3,IN2_4);input15:0 lever,data_in;output IN1_3=1,IN2_4=1;reg IN1_3,IN2_4;integer n,m;always(data_in)begin if(data_inlever+14000)beginIN1_3=1;IN2_4=

17、0;endelsebeginIN1_3=1;IN2_4=1;end end endmodule 数码管以毫米为单位显示个、十、百、千4位数水位信息,稳定后仅个位数在部分情况下有加减较小的变化,误差控制在10%以内。此实验因为使用铜线较细,导致所测频率过大而使参数A过大,而使程序所占逻辑单元太多,QuartusII软件不能编译,为解决此问题,对555输出信号进行1000000分频,相应的A会缩小1000000倍,而解决了位数过大的问题,然而,这样做会将一部分频率舍去,必然会使误差加大。4位数码管在选位信号及译码器输出信号作用下被点亮,此时数码管是一位一位亮的,4个时钟为周期,每个时钟亮一位,但在

18、频率高时,人眼区别不了闪烁,所以看起来就像是4位同时亮了。(注:需用10K电阻+NPN型BJT制作驱动电路。)Protel电路图、以及铜线形状12.电路模拟结果: 模拟电路图:仿真波形图:13.Protel原理图PCB图测试数据:水位高度mm频率1Hz频率2Hz05167651334251730218445401085610899558142828970683571358557675933100517451681154465439413040413996145364235881603335338917030583034通过数据可大致估得:A=553000;B=8;实物照片:测试步骤:1、程序调

19、试程序测试过程当中,我们组采用分功能模块测试的办法,先将各功能模块电路进行波形分析,具体可如以下系列图所示:(1) LED灯控制模块波形图(2) 数码管显示模块波形图(3) motor模块波形图2、硬件调试使用说明:首先保证开关电源处在打开状态,将编译通过的各模块下载到开发板内。将水位传感器的地线及信号输入线分别接入开发板相应位置,开始往水瓶内加水在此过程当中可以明显的看到,随着水位的上升,亮着的LED灯的数目会随着增加,同时数码管也能相对比较准确的反映出此时水位的高度并通过数字(以毫米为最小单位)显示出来。此时打开控制水泵的开关(我们组事先已经在程序内设定当水位处在下警戒水位以下以及上警戒水

20、位以上时,水泵会自己进行抽水或排水操作),当水位传感器测出水位处在下警戒水位以下时,水泵会启动并进行抽水操作往水瓶内抽水,当水位在上警戒水位以上时,水泵则会启动将水瓶内的水往外抽,而若当水位处于两警戒水位中间时,水泵则保持不工作状态。收获体会:此次暑期实习,我们组三人完成了水位显示与控制课题的基础要求以及数码管显示水位、电机抽水蓄水的提高部分要求的设计及制作,能够通过LED灯的数量大致反映水位高情况以及数码管相对精确反应水位情况,按时完成并实现课题实验的所有要求。在老师的指导下,我们掌握了通过555电路频率换算的测量方法,在此期间我们巩固并强化了数字电路及模拟电路实验中的各项知识点,掌握了电子

21、课程设计,protel软件学习及quartus软件应用的基本要点,并在此基础上编写程序,实现各项功能,真正做到了学有所用,达到了老师的要求。在此感谢史燕老师对我们的细心教学及耐心指导,让我们了解简单的电子课程设计和制作过程,也让我们认识到电子信息理论与实际结合的重要性和必要性,以及实验在今后工程项目中的重要地位。当然,在此过程当中也走了很多弯路,比如说在线路连接过程当中,线路连接出来了,但测试的时候结果总和预期的不同,没办法的情况下,我们组的每个人都自己连了一遍,最后还是不行,绝望之余的无意间才发现是电路有地方接触不良;还有程序在使用过程当中也走了不少的弯路,程序调好之后使用时总发现显示不好,调了好长时间才发现是有些参数使用不当、这些问题看似微小,但却非常的浪费时间,从而使得我们在设计过程当中的效率大大降低。但是事后细想之余,感觉还是收获很多。正因为我们在这走了很多的弯路,我们以后在做其他设计时才会有所注意,我们的思考面才会更宽广,从而大大提高我们工作的效率。当然,我们还有很多亟待解决的问题,而这些实际上是本次实习最宝贵的地方,只有出现问题,解决问题才能很好地总结经验,才能在解决问题中学会最全面的知识。通过本次实习,我们的动手能力及理论运用能力也提升了,当然我们还需要更加努力地在学习中成长,同时以一种严谨的态度对待专业知识。并在以后的学习当中不断进取,争取早日成为合格的人才。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服