实验四用状态机实现ADC采样电路设计.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四用状态机实现ADC采样电路设计

实验四 用状态机实现ADC的采样电路设计 实验目的 1、用状态机实现ADC的采样控制电路 2、熟悉QuartusⅡ软件应用环境,了解实验流程。 3、编写简单的Verilog代码,在QuartusⅡ中进行调试和验证,并在magic sopc中下载代码和验证。 二、实验器材 QutersII软件、magic sopc实验箱、电脑 三、实验原理 TLC549是一个8位的串行模数转换器,AD转换时间最大17微秒,I/O时钟可达1.1MHz。 如图21.1所示为TLC549的访问时序,从图中可以看由当CS/拉低时,ADC前一次的转换数据(A)的最高位A7立即出现在数据线DATA OUT上,之后的数据在时钟I/O CLOCK的下降沿改变,可在I/O CLOCK的上升沿读取数据。读完8位数据后,ADC开始转换这一次采样的信号(B),以便下一次读取。转换时片选信号CS/要置高电平。设计操作时序是要注意Tsu(CS)、Tconv及I/O CLOCK的频率几个参数。Tsu(CS)为CS/拉低到I/O CLOCK 第一个时钟到来时间,至少要1.4 秒;Tconv 为ADC的转换时钟,不超过17微秒; 由于ADC是8位的,所以采样的电压值为: V=(D/256)*Vref 其中V 为采样的电压值,D为ADC 转换后读取的8 位二进制数,Vref 为参考电压值,这里是2.5V。 四、实验步骤 步骤1.新建一个文件夹打开vhdl文件 步骤2:编写源程序并保存 module scan_led(clk_1k,d,dig,seg); //模块名scan_led input clk_1k; //输入时钟 input[31:0] d; //输入要显示的数据 output[7:0] dig; //数码管选择输出引脚 output[7:0] seg; //数码管段输出引脚 reg[7:0] seg_r; //定义数码管输出寄存器 reg[7:0] dig_r; //定义数码管选择输出寄存器 reg[3:0] disp_dat; //定义显示数据寄存器 reg[2:0]count; //定义计数寄存器 assign dig = dig_r; //输出数码管选择 assign seg = seg_r; //输出数码管译码结果 always @(posedge clk_1k) //定义上升沿触发进程 begin count = count + 1b1; end always @(posedge clk_1k) begin case(count) //选择扫描显示数据 3d0:disp_dat = d[31:28]; //第一个数码管 3d1:disp_dat = d[27:24]; //第二个数码管 3d2:disp_dat = d[23:20]; //第三个数码管 3d3:disp_dat = d[19:16]; //第四个数码管 3d4:disp_dat = d[15:12]; //第五个数码管 3d5:disp_dat = d[11:8]; //第六个数码管 3d6:disp_dat = d[7:4]; //第七个数码管 3d7:disp_dat = d[3:0]; //第八个数码管 default:disp_dat = 0; endcase case(count) //选择数码管显示位 3d0:dig_r = 8 //no选择第一个数码管显示 3d1:dig_r = 8 //no选择第二个数码管显示 3d2:dig_r = 8 //no选择第三个数码管显示 3d3:dig_r = 8 //no选择第四个数码管显示 3d4:dig_r = 8 //no选择第五个数码管显示 3d5:dig_r = 8 //no选择第六个数码管显示 3d6:dig_r = 8 //选择第七个数码管显示 3d7:dig_r = 8 //选择第八个数码管显示 default:dig_r = 8 endcase end always @(disp_dat) begin case(disp_dat) //七段译码 4h0:seg_r = 8hc0; //显示0 4h1:seg_r = 8hf9

文档评论(0)

189****7685 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档