基于fpga的计数器的程序设设计(编辑修改稿)内容摘要:
IF CNT8 = 11111111 THENCNT8 := DD。 当CNT8计数计满时,输入数据D被同步预置给计数器CNT8FULL = 39。 139。 同时使溢出标志信号FULL输出为高电平ELSE CNT8 := CNT8 + 1。 否则继续作加1计数FULL = 39。 039。 且输出溢出标志信号FULL为低电平END IF。 END IF。 END PROCESS P_REG。 P_DIV: PROCESS(FULL)VARIABLE CNT2 : STD_LOGIC。 BEGINIF FULL39。 EVENT AND FULL = 39。 139。 THENCNT2 := NOT CNT2。 如果溢出标志信号FULL为高电平,D触发器输出取反IF CNT2 = 39。 139。 THEN FOUT = 39。 139。 ELSE FOUT = 39。 039。 END IF。 END IF。 END PROCESS P_DIV。 END。 图2 分频器仿真波形 RTL电路图图3 分频器RTL电路图 计数器设计 计数器及其应用计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。 计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。 计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。 它主要的指标在于计数器的位数,常见的有3位和4位的。 很显然,3位数的计数器最大可以显示到999,4位数的最大可以显示到9999。 在数字电子技术中应用的最多的时序逻辑电路。 计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。 但是并无法显示计算结果,一般都是要通过外接LCD或LED屏才能显示。 计数器源程序及其仿真 (1) 十进制计数器加数的合法设计范围为0到9,故当输入的加数大于9的时候要将其统一变换成0。 本实验采用一个带有异步复位和同步时钟使能的十进制加法计数器,这种计数器有许多实际的用处。 如果rst为“1”,将对时钟清零;如果为1,且有clk信号,则允许计数器就数,若计数器小于9,计数器加1,否则清零。 第二个if语句功能是当计数器cqi的只达到9时产生进位溢出信号。 library ieee。 use。 use。 entity t10 is port (rst,clk,ena:in std_logic。 cout: out std_logic。 outy :out std_logic_vector(3 downto 0))。 end t10。 architecture behv of t10 isbeginprocess (rst,ena,clk)variable cqi :std_logic_vector(3 downto 0)。 beginif rst=39。 139。 then cqi :=(others =39。 039。 )。 elsif clk39。 event and clk=39。 139。 thenif ena =39。 139。 thenif cqi 9 then cqi:=cqi+1。 cout=39。 039。 elsif cqi=9 thencqi :=(others =39。 039。 )。 cout=39。 139。 end if。 elsif ena=39。 039。 then cqi:=(others =39。 039。 )。 end if。 end if。 outy =cqi。 end process。 end behv。 图4 十进制计数器仿真波形(2)四位计数器下面是一含计数使能、异步复位功能的4位计数器, rst是异步清信号,高电平有效。 library ieee。 use。 entity t10_4 isport(clkk,rst,ena:in std_logic。 d:out std_logic_vector(15 downto 0))。 end entity。 architecture one of t10_4 isponent t10 port (rst,clk,ena:in std_logic。 cout: out std_logic。 outy :out std_logic_vector(3 downto 0))。 end ponent。 signal e:std_logic_vector(3 downto 0)。 beginu1:t10 port map(clk=clkk,rst=rst,ena=ena,cout=e(0),outy=d(3 downto 0))。 u2:t10 port map(clk=e(0),rst=rst,ena=ena,cout=e(1),outy=d(7 downto 4))。 u3:t10 port map(clk=e(1),rst=rst,ena=ena,cout=e(2),outy=d(11 downto 8))。 u4:t10 port map(clk=e(2),rst=rst,ena=ena,cout=e(3),outy=d(15 downto 12))。 end architecture one。 锁存器设计 锁存器及其应用所谓锁存器,就是输出端的状态不会随输入端的状态变化而变。基于fpga的计数器的程序设设计(编辑修改稿)
相关推荐
在 一起,焊接牢固。 若 VCC脱开未接,传感器只送 ℃ 的温度值。 ( 4)实际应用时,要注意单线的驱动能力,不能挂接过多的 DS18B20,同时还应注意最远接线距离。 另外还应根据实际情况选择其接线拓扑结构。 本设计中,两片 DS18B20 芯片串接在单片机的 口 ,如图 310 所示 : AT89C51 DS18B20 1 DS18B20 2 DS18B20 3 DS18B20 20
std_logic_vector( 3 downto 0 )。 档位选择信号 sss : in std_logic_vector( 4 downto 0 )。 波形选择信号 Data3, Data2, Data1,Data0 : in std_logic_vector(3 downto 0)。 BCD 码输入 p180 : out std_logic。 预留接口 lcd : out
) 这个函数来实现。 其完整代码是int FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber){ int i,r。 float fWork。 r=0。 for ( i=0。 inCoeffNumber。 i++ ) { fWork=nx[i]*nError*fU。 nh[i]+=fWork。 r+=(nx[ii]*nh[i])。
相应按键是否已被按下。 重键与连击的处理:实际按键操作中,若无意中同时或先后按下两个以上的键,系统确定哪个键操作是有效的,完全取决设计者的意图。 如视按下时间最长者为有效键,或认为最先按下的键为当前的按键,也可以将最后释放的键看成是输入键。 不过单片机控制系统的资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则。 有时,由于操作人员按键动作不够熟练
(112) 基于 DSP 的图像去噪实现 6 3. 伽马 (爱尔兰 )噪声 伽马噪声的 PDF 如 下式: 错误 !未找到引用源。 (113) 其中, a0, b 为正整数且 “ !” 表示阶乘。 其密度的均值和方差由下式给出: 错误 ! 未 找 到 引 用 源。 (114) 4. 指数分布 噪声 指数噪声的 PDF 可由下式给出: 错误 !未找到引用源。 (115) 其中 a0。 概
9 读忙标志或地址 0 1 BF 计数器地址 10 写数到 CGRAM 或 DDRAM) 1 0 要写的数据内容 11 从 CGRAM 或 DDRAM 读数 1 1 读出的数据内容 表 3 字符控制命令说明: 通过指令编程来实现 1602 液晶模块的读写操作、屏幕和光标的操作。 (其中 1 为高电平、 0 为低电平) 指令 1:清显示,将指令码 01H 复位到地址 00H 位置。 指令 2