数字电子技术创新实验设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电子技术实验课程FPGA创新实验设计报告
设计名称上下课铃声模拟系统
姓名林嘉颖金延鑫
学号 3090100768 3090104182
专业班级机械电子工程0902
指导教师樊伟敏
日期 2011.6.6 浙江大学电工电子基础实验中心
一摘要
通过QUATURS 软件的程序编译及FPGA的应用,模拟出浙江大学紫金港校区的上下课铃系统。
该系统分为两部分:电子钟部分和铃声部分
电子钟部分将实现二十四小时计时,时间设置等功能。铃声部分将实现特定时间(如上课时间)响起特定铃声功能。
二关键词
时序电路时钟系统调节装置声音系统 QUATURS应用
三正文
3.1 设计思路
整个上下课铃响可分为时钟系统和铃声系统两大部分。
时钟系统:
时钟部分分为铃声选择器,时间调试部分,时钟部分等三大模块。
1时钟部分
时钟部分实现24小时时钟运行及循环功能,按照1:60时间进行缩放,其中LED灯表示小时数,采用24进制计数器实现;led灯两位表示分钟数,采用60进制计数器实现,计
数频率设置为1HZ,以节省时间。此部分设置能完全模拟时钟循环功能,即分钟部分逢六十进一,时钟部分逢24归零,同时23:59后自动返回00:00
2 时间调试部分
时间调试部分实现时间暂停,移位调试时间(其中移到的位置会发生闪烁),时间设置等功能,具有调试目标明确,调试时间不会超过时钟表示范围等优点。
使用方法:将clr置为0之后,可以发现时钟十位在闪烁,此时通过按trf键可以将闪烁点移到下一个即时钟个位,以此类推。在移到自己想调节的位置以后通过按住plus键,每一个秒脉冲之后可以发现该数加一,加到九跳回一。
通过一些条件语句,防止了当时钟十位等于2时,时钟个位不会大于3;时钟个位大于3时,时钟十位不会等于2。
3 铃声选择器:
根据紫金港校区上下课的时间,制成铃声选择器。
铃声部分
铃声部分分为JK触发器,分频器,铃声部分,选择器,音频调试,音频转换器,六个模块。
1 分频器
分频器将50MHZ的脉冲电路调节到合适的频率,在铃声系统部分中需使用两次,一次为对上下课铃音频电路的触发(1HZ),一次为音频转换器的触发(6250000HZ).
2 铃声部分
铃声部分设置成上课铃和下课铃两个子模块,分别存放上下课铃的乐谱。
3音频调试电路
根据十二平均律将两个八度共十六个音符设置成相应的频率。使其转换成相应的音高。4音频转换器
原理为一个计数器,通过脉冲电路将每次的音符转换成相应的频率,通过小喇叭输出。
5 JK触发器
整个音乐系统的开始与停止通过两个JK触发器来控制。
原理如图
当选择器发出信号时,第一个JK触发器中J通道接高,K通道为0,Q输出高电平,使第二个JK触发器触发(第二个JK触发器设置成T’触发器)此后即使第一个触发器中J=0.Q1状态保持,仍为1.
在铃声部分设置逻辑出口K,当输出最后一个音符时,k=1,反馈到第一个JK触发器的K端上,此时Q1=0,使第二个触发器清零,停止向铃声部分输送脉冲信号。铃声停止。
3.2实验原理图展示
时钟部分
铃声部分
综合电路
3.3仿真波形及分析
Trf 仿真波形
由图可知,每一个trf 下降沿使trfo 从3减到0再到3从而实现循环,当clr 变为0了之后,trfo 立即变为3。
SS仿真波形
15为变暗。由图可知,假定plus键按住,trfo为3,因此h_hi从0开始加到5,然后放开plus之后h_hi交替5与15,说明正在闪烁。假定当按下trf,trfo变为2,即闪烁从h_hi改为h_lo,同样trfo为1时,闪烁m_hi。
SZ仿真波形
上三图为时钟正常工作时的输出。
上图为当clr为1,按plus的时候,当trfo为3,2,1时h_hi,h_lo,m_hi的数值的增加。Lj仿真波形
当时间为08:00,08:45时分别输出tmp1,tmp2为10和01,当下一个脉冲到来,08:00变成00:00之后,tmp1,tmp2为00。通过tmp1与tmp2实现上下课铃的控制。
Nacklass,vorklass仿真波形
通过clk可以实现放歌曲,当歌曲结束时k=1,此时通过jk触发器使clk停止,等到下一个lj模块中的tmp1,tmp2的信号到来,clk重新开始,此时通过条件语句时cnt归零,重新放歌曲。
3.4源程序及注释
1 分频器(50MHZ=>8MHZ)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY fenpinqi IS
PORT(clk:IN STD_LOGIC;
clk_out:OUT STD_LOGIC);
END fenpinqi;
ARCHITECTURE fwm OF fenpinqi IS
CONSTANT m : INTEGER:=4;--when we need 8M HZ。INTEGER=6250000when we need 2HZ SIGNAL tmp :STD_LOGIC;
BEGIN
PROCESS(clk, tmp)
V ARIABLE cout : INTEGER:=0;
BEGIN
IF clk'EVENT AND clk='1' THEN cout:=cout+1;
IF cout<=m THEN tmp<='0';
ELSIF cout ELSE cout:=0; END IF; END IF; END PROCESS; clk_out<=tmp; END fwm; 2 JK触发器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY JANDK IS PORT (clr,clk,j,k:IN STD_LOGIC; q, qn : out STD_LOGIC); END JANDK; ARCHITECTURE CONTROL OF JANDK IS SIGNAL TMP : STD_LOGIC; BEGIN PROCESS(clr,clk,j,k) BEGIN if clr='0' then TMP<='0'; elsIF (clk'EVENT AND clk='0') THEN IF ((j='1')and(k='1'))then TMP<= NOT TMP;--J=1K=1翻转) ELSIF ((j='1')and(k='0'))then TMP<= '1'; --J=1K=0置高 ELSIF ((j='0')and(k='1'))then TMP<= '0'; --J=1K=1置零 END IF; END IF;