- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《可编程数字系统》课程设计[论文]
学 生 姓 名: 学号:
专 业 年 级:
年月 日
一、课程设计原理
1、测频原理及误差分析
本次课程设计采用测频法。测频法就是在确定的闸门时间内,记录被测信号的脉冲个数。这种方法的计数值也会产生±1个脉冲误差产生待测的信号,此程序要求将1Mhz的频率控制信号的标准输入时钟该模块产生的3个控制信号,分别为ENLOAD,CLR。CLR信号用于在每次测量开始时,对计数器进行复位,以清除上次测量的结果,该复位信号高电平有效。EN为计数允许信号,在EN信号的上升沿时刻计数模块开始对输入信号的频率进行测量在此时间里被测信号的脉冲数进行计数,即为信号的频率。然后将值锁存,并送到数码管显示出来。设置锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。在每一次测量开始时,都必须重新对计数器清0。process(clk)
begin
if clkevent and clk = 1 then
temp1=temp1+1;
end if;
end process;
freq=temp1(16); --381Hz=50Mhz/2^17
2、计数模块
计数模块分为2个子模块。模块一为对频率的测量,模块二为对占空比的测量。为了分开计数和显示,采用一个按键key1。每当按一次key1按键,类型为std_logic_vector的m会加1,利用末位是0还是1区分显示频率还是占空比。因此每按一次按键,数码管会在频率和占空比之间切换。
区分显示的程序如下:
process(key1)
begin
if key1=0 then m=m+1; ---按下按键,m加1
end if;
end process;
process(clk,m)
begin
if rising_edge(clk) then
if m(0)=1 then -----------由key1产生m末位是1,选择显示频率
bcd3=d3;
bcd2=d2;
bcd1=d1;
bcd0=d0;
xsd=h;
else
bcd3=0; -----------------如果是0,选择显示占空比
bcd2=e2;
bcd1=e1;
bcd0=e0;
xsd=0111;
end if;end if;
end process;
2.1 频率测量模块
本次课程设计采用测频法PROCESS(freq,CLR_CNT,TSTEN) IS
BEGIN
IF CLR_CNT= 1 THEN -----清零信号
b1=0;b2=0;b3=0;b4=0;b5=0;b6=0;b7=0;
ELSIF freqEVENT AND freq= 1 THEN
IF TSTEN= 1 THEN ----使能信号
if b1=9 then b1=0;
if b2=9 then b2=0;
if b3=9 then b3=0;
if b4=9 then b4=0;
if b5=9 THEN b5=0;
if b6=9 then b6=0;
if b7=9 then b7=0;
else b7=b7+1;
end if;
else b6=b6+1;
end if;
else b5=b5+1;
end if;
else b4=b4+1;
end if;
else b3=b3+1;
end if;
else b2=b2+1;
end if;
else b1=b1+1;
end if;
end if;
end if;
END PROCESS;
PROCESS ( LOAD1,b1,b2,b3,b4,b5,b6,b7 ) IS
BEGIN
IF LOAD1 EVENT AND LOAD1= 1
THEN
c1=b1; --- ------锁存输入数据
c2=b2;
c3=b3;
c4=b4;
c5=b5;
c6=b6;
c7=b7;
END IF;
END PROCESS;
process(clk) -------------选出首位非0的前四位十进制数输出
begin
if rising_edge(clk) then
if c70 then d3=c7; d2=b6; d1=c5; d0=c4; h=1110;
elsif c60 then d3=c6; d2=c5; d1=c4; d0=c3; h=1101;
elsif c50 then d
您可能关注的文档
- 矿山机械的选型设计毕业论文.doc
- 立体仓库模型毕业论文.doc
- 土木工程毕业论文计算书(商场).doc
- 小功率调幅发射机设计毕业论文.doc
- 虚拟数字电压表的毕业设计.doc
- 洋岩煤矿防治煤与瓦斯突出专项毕业设计.doc
- 用Popov抗干扰的模型参考自适应控制研究毕业论文(论文).doc
- 中空成型机液压系统的毕业设计.doc
- SRP基于单片机的红外测温仪.doc
- VFP工资管理系统 毕业论文论文.doc
- 某某单位2024年党建工作总结及2025年工作计划.doc
- 某某市发改委关于2024年度落实党风廉政建设工作责任制情况的报告.doc
- 某某局2024年全面从严治党和党风廉政建设工作总结.doc
- 某某区财政局2024年法治政府建设总结及2025年工作谋划.doc
- 2024年党管武装工作述职报告2篇.doc
- 2024年度国企党委书记抓基层党建工作述职报告3篇.doc
- 公司党委书记2024年述职述廉报告.docx
- 2024年度乡镇党委领导班子民主生活会(四个带头)对照检查材料.doc
- 市医疗保障局关于2024年法治政府建设工作情况的报告.docx
- 市民政局党组2024年巡察整改工作情况报告.docx
文档评论(0)