基于vhdl数字电子时钟的设计说明书内容摘要:
39。 039。 then if clk39。 event and clk=39。 139。 then 信号为 1时有效 if(count=100) then 当扫描为次数为 100 次时 q=39。 039。 count :=0。 else count:=count+1。 否则开始计数 end if。 end if。 else q=39。 139。 end if。 秒 /分 /时计数模块的软件设计 entity count is port (cl_r,clk,add: in std_logic。 gsec,ssec: out std_logic_vector(3 downto 0)。 c: out std_logic)。 end entity。 architecture art of count is signal co,rclk: std_logic。 begin process(cl_r,clk,rclk,co,add) is variable secg,secs,ad: std_logic_vector(3 downto 0)。 定义 秒的端口 个位,十位 begin rclk=add xnor clk。 扫描时钟要低于系统时钟 if cl_r=39。 039。 then secg:=0000。 secs:=0000。 co=39。 039。 elsif (rclk=39。 139。 and rclk39。 event) then If secg=1001 and secs=0101 then secg:=0000。 secs:=0000。 co=39。 139。 elsif secg=1001 then secs:=secs+1。 secg:=0000。 co=39。 039。 elsif secg1001 then secg:=secg+1。 end if。 当计数个位为 9,十位为 5,计数值为 59 时,秒的个位十位都为零,进位为一,说明此时计数为一分钟。 秒的个位一直计数,计数值不到 9时,一直加,直到出现个位出现 9,十位加一。 模式选择模块的软件设计 15 entity slc is port( add: in std_logic_vector(2 downto 0)。 sel:in std_logic。 naout,clkout : out std_logic_vector(2 downto 0))。 end entity。 architecture art of slc is begin process(sel,add) begin if(sel=39。 139。 ) then sel 为一时,闹 钟模式开启,否则继续时钟的显示 naout=add。 else clkout=add。 数码管 位选和段选 architecture art of sel is signal data: std_logic_vector(3 downto 0)。 begin process(sel,f0,f1,f2,f3,f4,f5) begin case sel is 数码管的位选,数码管为共阳极的,秒分时共用六个 when 000=data=f0。 wei=111110。 数码管显示 when 001=data=f1。 wei=111101。 when 010=data=f2。 wei=111011。 when 011=data=f3。 wei=110111。 when 100=data=f4。 wei=101111。 when 101=data=f5。 wei=011111。 when others=data=f0。 wei=111111。 end case。 end process。 process(data,sel) begin if sel=010 or sel=100 then 若是第二个或是第四个数码管亮,则低位的两个点要显示,低电平有效。 case data is when0000=du=01000000。 16 when0001=du=01111001。 when0010=du=00100100。 when0011=du=00110000。 when0100=du=00011001。 when0101=du=00010010。 when0110=du=00000010。 when0111=du=01111000。 when1000=du=00000000。 when1001=du=00010000。 when others=du=01000000。 end case。 else case data is when0000=du=11000000。 when0001=du=11111001。 when0010=du=10100100。 when0011=du=10110000。 when0100=du=10011001。 when0101=du=10010010。 when0110=du=10000010。 when0111=du=11111000。 when1000=du=10000000。 when1001=du=10010000。 when others=du=11000000。 段选 end case。 end if。 end process。 闹钟模块的软件设计 闹钟能否正常计数、能否对计时时间进行调整,定时闹铃功能是否正常,动态扫描显示是否正常。 原理框图: 17 ( 1)计数模块:按照时钟模式完成一天 24小时的计时功能。 ( 2)译码模块:根据计时模块的状态输出值来确定对应位的数据的,其输出是 7段高低电平,以点亮相应的数码管; ( 3)计数控制模块:根据外部控制信号,进行时钟计数的调整和计时的控制; ( 4)响铃控制模块:根据外部闹钟控制信号完成闹钟的定时,当计数模块技术到和该模块所设定时间一致时,该模块将驱动蜂鸣器响铃。 ( 5)分频 器:根据外部的输入时钟,将外部时钟成两路信号,一路用于正常的计数,一路用于七段显示数码管的动态扫描输出。 architecture art of beep is signal bep : std_logic。 begin process(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2) begin if (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1=0000 and mm2=0000) then 当前时间的时分秒完全等于设置的闹钟时间,蜂鸣器才有效,否则蜂鸣器不响,继续显示当前的时间 if clk=39。 139。 and clk39。 event then bep=not bep。 end if。 else bep=39。 139。 end if。 18 系统时钟的软件设计 process(clk) variable counts:integer range 0 to 50000000。 系统时钟为 50MHZ begin if clk39。 event and clk=39。 139。 then 时钟高电平有效 if(counts25000000) then 计数周期为 1ms,1ms 扫描 100 次, clks=39。 139。 0 到 毫秒为高电平 counts:=counts+1。 elsif(counts50000000) then 毫秒到 1 毫秒为低电平 clks=39。 039。 counts:=counts+1。 else counts:=0。 end if。 end if。 end process。 process(clk) variable countms:integer range 0 to 50000。 分频段 begin if clk39。 event and clk=39。 139。 then 时钟高电平有效 if(countms25000) then 计数周期为 到 毫秒为低电平 clkms=39。 139。 countms:=countms+1。 elsif(countms50000) then 到 毫秒为低电平 clkms=39。 039。 countms:=countms+1。 else countms:=0。 end if。 end if。 end process。 end architecture fenp。 end if。 c=co。 ssec=secs。 19 gsec=secg。 end process。 end architecture。 位选六位,段选 8 位 三个图分别为秒分时的输入端口 模式的切换,闹钟的输入端口 时钟信号的输入 计数达到59 秒后本身清零, 进位给分位,依次类推 动态扫描,时间1s 20 硬件的测试 本次选用 EP2c5Q208C8N 芯片。 外部需接几上升沿按键,并接扬声器和不许译码器的数码管。 下载测试后,按复位键后数码管显示 0时 0 分 0秒开始计数,分秒时计数都正确。 按动调分键或调小时键后,分位或小时位开始自加,再按键后停止。 当时间到整点时会有十秒报时,按动停止键停止报时,不按此键时自动到十秒后停止报时。 设计结果达到要求。 模拟时钟电 路图与实物图 数字钟实际上是一个对标准频率( 1HZ)进行计数的计数电路。 由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的 1HZ 时间信号必须做到准确稳定。 通常使用石英晶体振荡器电路构成数字钟 实物电路图: 21 22 此图为拨码开关的实物图,当 4 开关处于高电平时,说明选择模式已经打开了,你可以选择是计数模式,还是显示时分秒模式,还是闹钟模式 当拨码开关 2,拨至高电平时,所有数码管显示的数值将全部清零 校对分的独立按键,每按一下,计数值加一,计数范围 0 到 59 校对时的独立按键,每按一下,计数值加1,计数范围 0 到 23 校对秒的独立按键,每按一下,计数值加 1,计数范围, 0 到 59 23 假使此刻时间为早上九点九分 57秒,我们在选择的模式(拨码开关)下,将状态调为闹钟模式,将闹钟定为十点整,也就是。 然后将拨码开关拨下,则数码管继续此刻的时间显示,当时 间显示为 时,此时蜂鸣器将产生滴答滴答的声音。 时间为一分钟。 设计心得 通过两星期的紧张工作,最后完成了我的设计任务 —— 数字钟的设计与制作。 通过 本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。 本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。 它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。 希望学校以后多安排一些类似的实践环节,让同学们学以致用。 课程设计中要求要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错。基于vhdl数字电子时钟的设计说明书
相关推荐
复位 信号 喇叭 4 方波生成模块 FEN 分频占空比为 1: 1000 的方波,用于消除抖动。 分频电路的输入时钟CLK是由外部时钟提供的,外部时钟周期取 200ns。 FEN模块程序如下: LIBRARY IEEE。 USE ENTITY fen IS PORT(clk:in std_logic。 clk1:out std_logic)。 END fen。 ARCHITECTURE
两条横线的长度与版芯尺寸相同,线粗 )。 页眉 、 页脚 边距分别为 和。 页码。 页码 用小五号字,居中标于页面底部。 摘要、目录等文前部分的页码用罗马数字单独编排,正文以后的页码用阿拉伯数字编排。 摘要 中文摘要一般为 300字左右,外文摘要应与中文摘要内容相同,在语法、用词和书写上应正确无误,摘要页勿需写出论文题目。 中、外文摘要应各占一页,编排装订时放置正文前,并且中文在前,外文在后。
MOV 22H,00H。 一小时时间到 ○ 2 74LS161 构成二十四进制计数器 : 二十四进制计数器,也是用两个 74LS161 集成块来实现的,方法与二十四进制计数器大同小异,但其要求个位是十进制,状态变化在 0000~ 1001 间循环,十位是二进制,状态变化在 0000~ 0010 间循环,显示为 0~23 时。 原理:由分计数器送来的进位脉冲送入时个位计数器
5ns的时钟信号;清 0端( reset)前面一小段( 100ns)为低电平,后面均为高电平;置数端( set)前面一小段( 200ns)为低电平,后面均为高电平;时重置端( h1)可设置数值为 20时,保存波形图,进行仿真,产生如下波形: 由上述波形可以清楚的看到:当清 0信号( reset)无效时,时计时器置数,从 20时开始计数,到 23时回到 0,并且从 enhour输出一个高电平。
if min1b=0101 then min1b=0000。 if hou1b=0010 and hou2b=0011 then hou1b=0000。 hou2b=0000。 elsif hou2b=1001 then hou2b=0000。 hou1b=hou1b+1。 else hou2b=hou2b+1。 end if。 end if。 end if。 end if。 ELSE
供电源,节约成本,但输出功率不高。 复位电路部分,考虑到程序的简洁,避免冗长,采用按键复位,在芯片的复位端口外接复位电路,通过按键对单片机输入一个高电平脉冲,达到复位目的。 输入信号部分,直接在 I/O 口接上按键开关,精简和优化电路,该系统对于交通灯及数码管的控制只用单片机本身的 I/O口就可以实 现,显示电路采用共阳数码管。 整个系统组成框图如图 : 图 方案二系统组成框图 A 车道信号 灯