- 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
您可能关注的文档
最近下载
- 保护动物 从我做起主题班会ppt课件(图文).pptx
- (JS-101-2004)关键件和重要件质量管理与控制(马新宇04-07-15).doc VIP
- 项目技术方案与选型.pptx
- 江西省南昌市2022-2023学年七年级上学期期末考试数学试题.pdf VIP
- 八年级地理上中国的地形同步测试(有答案).doc
- 全国医师定期考核人文医学考核题库500题(含参考答案).pdf VIP
- 韩国影视文化产业.ppt VIP
- SL 629-2014引调水线路工程地质勘察规范.pdf
- 钢筋混凝土及砌体结构课程设计.docx VIP
- 己雷琐辛作用机制 - Medchemexpress - MCE中国.pdf
文档评论(0)