ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:62.19KB ,
资源ID:1471541      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1471541.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多功能手持数字示波表Word.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

多功能手持数字示波表Word.docx

1、多功能手持数字示波表Word软件设计1 .软件流程图Verilog HDL和C语言程序相结合的软件流程图见图2。图2 软件流程图2 . 软件设计部分程序源码频率计(Verilog HDL程序) 本程序主要用于测量出输入信号的频率。采用等精度测量的方法,在整个测量范围内误差相同。可以自动切换量程,指示数据小数点的位置和频率单位。当输入信号频率过低时还能发出相应的指示信号,通知CPU做出相应控制。通过适度的采样控制减小了测量误差。module frequency(clk,ret,Fx_clr,Fxin,Fout,LF,spoint,flag_MK); input wire clk,ret; inp

2、ut wire Fxin; /待测频率输入端口input wire Fx_clr; /CPU的控制信号,控制频率计清零output reg 15:0Fout; /测得的频率值output reg LF; /低频标志,高电平是表示为低频output reg 1:0spoint; /指示小数点的位置output reg 1:0flag_MK; /频率单位:M 标志 K 标志 wire Fx_cph;reg 7:0cp_ch;reg Fend; /测频结束标志reg Fsst; /控制本地标频开始计数的标志 0:开始计数 reg 39:0Ns; /对本地标频的计数reg 23:0LFCH; /低频检

3、测计数器,对底频率和直流做出警报和指示reg 15:0Nx,Nx1; /对待测频率的计数,Nx1检测低频被测信号的暂存器reg s0,s1,s2,s3,s4,s5,s6,s7,s8,sx1000;always(posedge clk or negedge ret)if(!ret) begin sx1000=1b0; s0=1b0; s1=1b0; s2=1b0; s3=1b0; s4=1b0; s5=1b0; s6=1b0; s7=1b0; s8=1b0; endelse begin sx1000=1000); s0=(Ns=40d100_0); s1=(Ns=40d100_00); s2=(

4、Ns=40d100_000); s3=(Ns=40d100_000_0); s4=(Ns=40d100_000_00); s5=(Ns=40d100_000_000); s6=(Ns=40d100_000_000_0); s7=(Ns=40d100_000_000_00); s8=40d100_000_000_000); endalways(posedge clk or negedge ret)if(!ret) begin Fend=1b0; flag_MK=2b00; spoint=2b00; Fout=16h0000; endelse begin if(Fend) Fend=1b0; if

5、(Fx_clr) Fend=1b1; if(sx1000) case(s0,s1,s2,s3,s4,s5,s6,s7,s8) /-F-sp-MK 9b10_0000_000:Fout,Fend,spoint,flag_MK=Nx,5b1_01_10; 9b01_0000_000:Fout,Fend,spoint,flag_MK=Nx,5b1_10_10; 9b00_1000_000:Fout,Fend,spoint,flag_MK=Nx,5b1_11_10; 9b00_0100_000:Fout,Fend,spoint,flag_MK=Nx,5b1_01_01; 9b00_0010_000:F

6、out,Fend,spoint,flag_MK=Nx,5b1_10_01; 9b00_0001_000:Fout,Fend,spoint,flag_MK=Nx,5b1_11_01; 9b00_0000_100:Fout,Fend,spoint,flag_MK=Nx,5b1_01_00; 9b00_0000_010:Fout,Fend,spoint,flag_MK=Nx,5b1_10_00; 9b00_0000_001:Fout,Fend,spoint,flag_MK=Nx,5b1_11_00; endcase end always(posedge clk or posedge Fend)if(

7、Fend) begin LFCH=24h000000; LF=1b0; endelse begin LFCH=LFCH+1b1; if(LFCH=24d100_000_00) begin LF=(Nx1=Nx); LFCH=24h000000; end if(LFCH=24d0) Nx1=Nx; end always(posedge clk or negedge ret)if(!ret) Fsst=1b0;else if(Fx_cph) Fsst=!Fend; /边沿对齐always(posedge clk or posedge Fend)if(Fend) Ns=40h0000000000;e

8、lse if(Fsst) Ns=Ns+1b1;assign Fx_cph=(cp_ch=8b11110000); always(posedge clk or posedge Fend)if(Fend) cp_ch=2b00;else cp_ch=cp_ch7:0,Fxin; always(posedge clk or posedge Fend) if(Fend) Nx=16h0000; else if(Fx_cph) Nx=Nx+1b1; endmodule6.3.2 LCD控制器(Verilog HDL程序) 主要用于转换控制液晶的协议,加快CPU的写入和控制,可以做到两时钟并行周期访问。内

9、部有的PWM模块用于控制液晶的显示亮度,CPU只需要向相应的寄存器写入亮度控制数就能控制液晶的亮度。 module TFT_LCD_IP( / Clcok Input时钟和复位 input csi_clk, input csi_reset_n, / Avalon-MM Slave 总线的连接 input avs_chipselect, input 8:0 avs_address, /RS,A2,A1,A0 / 3-2-1-0 位 input avs_write, input 31:0 avs_writedata, input avs_read, output 31:0 avs_readdata

10、, / ip_TFT 液晶的接口 output 15:0coe_lcd_data, output coe_lcd_cs, output coe_lcd_rs, output coe_lcd_wr, output reg coe_lcd_pwm, output reg coe_lcd_res, input coe_touch_int, input coe_touch_dout, output reg coe_touch_din, output reg coe_touch_busy, output reg coe_touch_dclk, output reg coe_touch_cs);reg d

11、iv_se;reg 19:0 div_buf; /PWM的前置分频寄存器reg 2:0 count; /脉频计数器reg 2:0 pwm_buf; /占空比(07)reg 31:0 read_data;/总线从外界读取的数据寄存器wire check; /中间检测信号 wire all_cs;assign all_cs=(avs_address7:0=8h00);/ write to ip_TFT form NiosII cpuassign check=avs_write & all_cs;assign coe_lcd_wr=check? 1b1:1b0;assign coe_lcd_cs=(

12、avs_chipselect & all_cs)? 1b0:1b1;assign coe_lcd_rs=avs_address8;assign coe_lcd_data=(avs_chipselect & all_cs)? avs_writedata15:0:16hzzzz; /使用一个时钟读取时,触摸板能读出正常数据,但是出现闪屏assign avs_readdata=read_data;always(negedge csi_clk or negedge csi_reset_n) begin if (!csi_reset_n) begin pwm_buf=3b111; coe_lcd_res

13、=1b1; coe_touch_din=1b1; coe_touch_busy=1b1; coe_touch_dclk=1b1; coe_touch_cs=1b1; end else if(avs_chipselect & (!all_cs) begin case (avs_address7:0) 8b0000_0001:pwm_buf=avs_writedata2:0; 8b0000_0010:coe_lcd_res=avs_writedata0; 8b0000_0100:coe_touch_din = avs_writedata0; 8b0000_1000:coe_touch_busy =

14、 avs_writedata0; 8b0001_0000:coe_touch_dclk = avs_writedata0; 8b0010_0000:coe_touch_cs = avs_writedata0; 8b0100_0000: read_data0= coe_touch_int; 8b1000_0000: read_data0= coe_touch_dout; endcase endendalways(posedge csi_clk or negedge csi_reset_n)begin if (!csi_reset_n) begin div_buf=20h00000; div_se=1b0; end else if(div_buf=20d100000) begin div_buf=20h00

copyright@ 2008-2022 冰豆网网站版权所有

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