




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学本科毕业设计(论文) 第II页-+-西 南 交 通 大 学课程设计实习报告水位显示与控制 (第八组)年 级: 学 号: 姓 名: 专 业: 指导老师: 2013年7月 西南交通大学电子技术课程设计(报告) 第XVII页设计任务及要求设计并制作一种水位显示与控制电路。其原理框图如下。基本要求:(1) 用10个发光二极管作为水位高低的指示(类似于音量指示)(2) 可以给出无水,水满等指示信号提高部分:(1) 数字显示水位(2) 用水泵进行抽水和蓄水控制频率/水位 扫描与驱动二进制/BCD自制水位传感器AC/DC5V4位7段LED显示频率计数频率/水位10 位LED驱动电路提高部分图1 系统框图要求:1)水位传感器由555电路构成,输出为不同频率的方波。2)频率/水位实际就是一个并行比较器,这里用CPLD来实现,即粗略给出水位范围再由LED BAR显示出来。 3)频率/水位主要是除法运算和减法运算,即精确计算出水位,也可以由CPLD完成。4)根据计算出的水位给出控制信号(如水已满,无水,或继续加水)5)根据计算出的水位用7段LED动态显示出来摘 要 用QuartusII软件Verilog语言编程,包括频率计数器、比较器、除法器、减法器、二进制转BCD码、动态扫描器、译码器、Motor驱动等模块单元,然后利用这些单元整合成功能电路,在计算机中模拟成功后下载到EPC2T114C8芯片中,以此为控制中心,对整个电路进行控制。用漆包线和水杯做成电容型水位感应器,水位的高低可以改变电容的大小,以此作为信息采集平台。电容变化信息通过频率计数器和555构成的振荡器进行波形处理,再经过比较器电路处理后经10个LED灯的亮灭粗略显示水位高低。提高部分则进是通过除法器,减法器,二进制转BCD码,动态扫描,译码等单元模块对信号进一步处理,以毫米为单位通过四位数码管精确显示水位高低及变化情况。通过对采集频率信号的分析,也可采用Motor电机通过抽水、放水等操作实现对水位的控制。关键词:QuartusII; Verilog; 并行比较计数器; Motor; 水位传感器; 555电路; 扫描驱动; 数码管等总体方案:1、 传感器自制水杯+漆包线+导线电容效应代替555中电容而改变555输出信号频率。实物图如下:2、555利用555构成振荡电路对传感器传输信号进行处理,产生代表水位信息的脉冲信号,不同水位对应不同电容,从而对应不同频率。图如下:3、 晶振事先内封于实验板上的50MHZ晶振4、 频率计数模块总体分为分频+并行频率计数+锁存分频器:分频器通过调用w_count1模块,位数设置为20位,50M分频,再经过FenPin模块二分频。频率计数器:频率计数模块通过自编程序生成元器件实现,此处因程序所占逻辑单元过大而先对555输出频率进行1000000分频再处理,此方法会将频率百位及以下位舍去而造成误差,但在允许范围内。程序代码如下: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;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) 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 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 ( 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 : 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个一位的选位信号产生,仅被选信号的选位信号为高电平。动态扫描码程序代码如下: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_out_4,data);input 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 Miaoendalways(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_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=8b00111111;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: 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=0;endelsebeginIN1_3=1;IN2_4=1;end end endmodule 数码管以毫米为单位显示个、十、百、千4位数水位信息,稳定后仅个位数在部分情况下有加减较小的变化,误差控制在10%以内。此实验因为使用铜线较细,导致所测频率过大而使参数A过大,而使程序所占逻辑单元太多,QuartusII软件不能编译,为解决此问题,对555输出信号进行1000000分频,相应的A会缩小1000000倍,而解决了位数过大的问题,然而,这样做会将一部分频率舍去,必然会使误差加大。4位数码管在选位信号及译码器输出信号作用下被点亮,此时数码管是一位一位亮的,4个时钟为周期,每个时钟亮一位,但在频率高时,人眼区别不了闪烁,所以看起来就像是4位同时亮了。(注:需用10K电阻+NPN型BJT制作驱动电路。)Protel电路图、以及铜线形状12.电路模拟结果: 模拟电路图:仿真波形图:13.Protel原理图PCB图测试数据:水位高度mm频率1Hz频率2Hz05167651334251730218445401085610899558142828970683571358557675933100517451681154465439413040413996145364235881603335338917030583034通过数据可大致估得:A=553000;B=8;实物照片:测试步骤:1、程序调试程序测试过程当中,我们组采用分功能模块测试的办法,先将各功能模块电路进行波形分析,具体可如以下系列图所示:(1) LED灯控制模块波形图(2) 数码管显示模块波形图(3) motor模块波形图2、硬件调试使用说明:首先保证开关电源处在打开状态,将编译通过的各模块下载到开发板内。将水位传感器的地线及信号输入线分别接入开发板相应位置,开始往水瓶内加水在此过程当中可以明显的看到,随着水位的上升,亮着的LED灯的数目会随着增加,同时数码管也能相对比较准确的反映出此时水位的高度并通过数字(以毫米为最小单位)显示出来。此时打开控制水泵的开关(我们组事先已经在程序内设定当水位处在下警戒水位以下以及上警戒水位以上时,水泵会自己进行抽水或排水操作),当水位传感器测出水位处在下警戒水位以下时,水泵会启动并进行抽水操作往水瓶内抽水,当水位在上警戒水位以上时,水泵则会启动将水瓶内的水往外抽,而若当水位处于两警戒水位中间时,水泵则保持不工作状态。收获体会:此次暑期实习,我们组三人完成了水位显示与控制课题的基础要求以及数码管显示水位、电机抽水蓄水的提高部分要求的设计及制作,能够通过LED灯的数量大致反映水位高情况以及数码管相对精确反应水位情况,按时完成并实现课题实验的所有要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南对口高考试题及答案
- 重难点解析人教版八年级上册物理《机械运动》章节测试练习题(含答案解析)
- 2025教师编制考试真题及答案
- 考点攻克苏科版八年级物理下册《从粒子到宇宙》单元测评试卷(含答案详解)
- 考点解析-苏科版八年级物理上册《光现象》专题练习试卷(含答案详解版)
- 驻外预算员招聘考试题库及答案
- 2025年病历书写规范管理试题及答案
- 移动支付O2O影响分析-洞察与解读
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷:法律专业知识
- 事业单位综合类面试真题模拟试卷训练
- 【员工培训研究的国内外文献综述2400字】
- T/CSPSTC 112-2023氢气管道工程施工技术规范
- 2025-2030年中国醋酸铅行业市场现状供需分析及投资评估规划分析研究报告
- 农业养殖回收合同书10篇
- 机电维修考试题及答案
- GB/T 15340-2025天然、合成生胶取样及其制样方法
- 开通会员合同协议
- 公司货物放行管理制度
- 项目建设业务管理制度
- 太平小学特异体质学生应急预案
- 2025年人工智能(AI)训练师专业知识考试题(附答案)
评论
0/150
提交评论