水位显示及控制报告

上传人:jiups****uk12 文档编号:90983244 上传时间:2019-06-20 格式:DOC 页数:17 大小:1.08MB
返回 下载 相关 举报
水位显示及控制报告_第1页
第1页 / 共17页
水位显示及控制报告_第2页
第2页 / 共17页
水位显示及控制报告_第3页
第3页 / 共17页
水位显示及控制报告_第4页
第4页 / 共17页
水位显示及控制报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《水位显示及控制报告》由会员分享,可在线阅读,更多相关《水位显示及控制报告(17页珍藏版)》请在金锄头文库上搜索。

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

2、 系统框图要求:1)水位传感器由555电路构成,输出为不同频率的方波。2)频率/水位实际就是一个并行比较器,这里用CPLD来实现,即粗略给出水位范围再由LED BAR显示出来。 3)频率/水位主要是除法运算和减法运算,即精确计算出水位,也可以由CPLD完成。4)根据计算出的水位给出控制信号(如水已满,无水,或继续加水)5)根据计算出的水位用7段LED动态显示出来摘 要 用QuartusII软件Verilog语言编程,包括频率计数器、比较器、除法器、减法器、二进制转BCD码、动态扫描器、译码器、Motor驱动等模块单元,然后利用这些单元整合成功能电路,在计算机中模拟成功后下载到EPC2T114C

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

4、描驱动; 数码管等总体方案:1、 传感器自制水杯+漆包线+导线电容效应代替555中电容而改变555输出信号频率。实物图如下:2、555利用555构成振荡电路对传感器传输信号进行处理,产生代表水位信息的脉冲信号,不同水位对应不同电容,从而对应不同频率。图如下:3、 晶振事先内封于实验板上的50MHZ晶振4、 频率计数模块总体分为分频+并行频率计数+锁存分频器:分频器通过调用w_count1模块,位数设置为20位,50M分频,再经过FenPin模块二分频。频率计数器:频率计数模块通过自编程序生成元器件实现,此处因程序所占逻辑单元过大而先对555输出频率进行1000000分频再处理,此方法会将频率百

5、位及以下位舍去而造成误差,但在允许范围内。程序代码如下:module W_count1(clkn,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;

6、cout=1b1;/warning emptyendelse if(data16d10856) 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)

7、 begin led=b0000011111;cout=1b0;/ 5 LEDsendelse 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

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

9、( b, bcd ); parameter B_SIZE = 8; input b; output 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 :

10、8 + 4d3; if ( result15 : 12 4 )result15 : 12 = result15 : 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个一位的选位信号产生,仅被选信号的选位信号为高电平。动态扫描码

11、程序代码如下:module h_to_b(data_in,BCD_1,BCD_2,BCD_3,BCD_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_o

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

当前位置:首页 > 中学教育 > 其它中学文档

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