【正文】
時(shí)間時(shí)高位, QM_ARM_A[3..0]為定時(shí)時(shí)間分低位, QM_ARM_B[3..0]為定時(shí)時(shí)間分高位;Q_HAO[3..0]為時(shí)間切換模塊的時(shí)低位, Q_HBO[3..0]為時(shí)間切換模塊的時(shí)高位,Q_MAO[3..0]為時(shí)間切換模塊的分低位, Q_MBO[3..0]為時(shí)間切換模塊的分高位,Q_SAO[3..0]為時(shí)間切換模塊的秒低位, Q_SBO[3..0]為時(shí)間切換模塊的秒高位。雖然在同一時(shí)刻只有一位顯示器在工作(點(diǎn)亮),但利用人眼的視覺暫留效應(yīng)和發(fā)光二極管熄滅時(shí)的余輝效應(yīng),看到的卻是多個(gè)字符 “ 同時(shí) ” 顯示。 7 段數(shù)碼管一般由 8 個(gè)發(fā)光二極管組成,其中由 7 個(gè)細(xì)長 的發(fā)光二極管組成數(shù)字顯示,另外一個(gè)圓形的發(fā)光二極管顯示小數(shù)點(diǎn)。 圖 228 七段數(shù)碼管結(jié)構(gòu) 如圖 229 所示 為 數(shù)碼管顯示 連接圖 。只要保證每一位顯示的時(shí)間間隔不要太大,利用人眼的視覺暫留的現(xiàn)象,就可以造成各位數(shù)據(jù)同時(shí)顯示的假象 [13]。由分頻模塊提供,數(shù)碼管顯示時(shí)、分和秒,以及報(bào)警時(shí)間。 圖 231 動(dòng)態(tài)掃描模塊波形仿真圖 按鍵電路設(shè)計(jì) 本設(shè)計(jì)需要對計(jì)時(shí)時(shí)間和鬧鐘時(shí)間進(jìn)行調(diào)整,調(diào)整的過程需要用到按鍵電路,用到兩種按鍵,一種是機(jī)械式開關(guān),另外一種是撥碼開關(guān)。 第三章 實(shí)驗(yàn)結(jié)果分析 測試過程 將設(shè)計(jì)程 序下載到實(shí)驗(yàn)箱上 進(jìn)行實(shí)際測試 , 以下為實(shí)際測試過程: 當(dāng)前狀態(tài)為正常計(jì)時(shí)狀態(tài),將復(fù)位按鍵設(shè)為高電平,計(jì)時(shí)開始,時(shí)鐘、鬧鐘顯示切換按鍵為高電平時(shí)顯示時(shí)鐘時(shí)間,可通過時(shí)鐘調(diào)時(shí)、調(diào)分鍵對時(shí)鐘時(shí)間進(jìn)行調(diào)整,數(shù)碼管顯示從左到右依次為:報(bào)警時(shí)長十位、個(gè)位,時(shí)鐘時(shí)間時(shí)高位、時(shí)低位,分高位、分低位,秒高位、秒低位 ,顯示時(shí)間為十二點(diǎn)十九分十八秒,報(bào)警時(shí)長為十五秒 。總的來說,通過這次的設(shè)計(jì)實(shí)驗(yàn)更進(jìn)一步地增強(qiáng)了實(shí)驗(yàn)的動(dòng)手能力,對打鈴器的工作原理也有了更加透徹的理解。 在檢測按鍵時(shí),由于有些按鍵控制是秒時(shí)鐘同步的,所以控制起來顯得稍微慢些,但是工作正常,能滿足實(shí)際的需要。 第四章 小結(jié)與體會(huì) 經(jīng)過 課外學(xué)分 的設(shè)計(jì),過程曲折可謂一語難盡??简?yàn)了我的耐心和直面挫折的精神。挫折是一份財(cái)富,經(jīng)歷是一份擁有。 entity fenpin25k is port( clk :in std_logic。 begin co=39。else 39。139。 end if。 use 。 Architecture art of t5 is signal cqi : integer range 1 to 5。039。event and clk=39。 end if。 ( 3) library ieee。 end entity。 when cqi=200 and clk=39。 process (clk) is begin if clk39。 else cqi=cqi+1。 end architecture art。 co:out std_logic)。139。039。then if cqi=50e3 then cqi=1。 end process。 entity t250 is port( clk :in std_logic。 begin co=39。else 39。139。 end if。 use 。 architecture art of Dcfq is begin process(clk)is begin if(clk39。 end if。 use 。 co:out std_logic)。039。event and cp=39。 t0:=1001。 else t1:=0000。 end if。 end process。 use 。 end MINUTE。139。139。 if t10101 then t1:=t1+1。 end if。 min1=t1。 ( 3)時(shí)計(jì)數(shù)模塊 library ieee。 clr:in std_logic。 architecture bhv of sh24 is begin process(clk,clr) begin if (clr=39。 elsif(clk39。sl=0000。 if(sh2)then sh=sh+1。 end if。 ( 4)調(diào)時(shí)模塊 library ieee。 29 entity mux2to1 is port( key: in std_logic。 architecture one of mux2to1 is begin process(key) begin if key=39。 end if。 USE ?!皶r(shí) ”低位 Q_minueb:OUT INTEGER RANGE 0 TO 9。 VARIABLE Q_tmpmb: INTEGER RANGE 0 TO 9。039。 Q_tmphb:= 0。 THEN IF k1=39。 ELSIF Q_tmpha=9 THEN Q_tmpha:=0。 else IF Q_tmpmb=5 AND Q_tmpma=9 THEN Q_tmpmb:=0。 ELSE Q_tmpma:=Q_tmpma+1。 Q_hourb=Q_tmphb。 END PROCESS 。 30 ENTITY BIJIAOQI IS PORT( CLk0: IN STD_LOGIC。 HARM_A,MARM_A: IN INTEGER RANGE 0 TO 9。 END BIJIAOQI。139。 LIBRARY ieee。 Q_HB: IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 ARCHITECTURE a OF COMP_TIME IS SIGNAL QTIME:STD_LOGIC_VECTOR(15 DOWNTO 0)。 Q_MA。139。139。139。139。139。139。139。139。139。139。139。139。 ELSE CASE QTIME IS WHEN 0000100000110000 = Q_Y=39。 WHEN 0000100100010101 = Q_Y=39。 WHEN 0000100100100101 = Q_Y=39。 WHEN 0001000000010000 = Q_Y=39。 WHEN 0001000000100000 = Q_Y=39。 WHEN 0001000100000101 = Q_Y=39。 WHEN 0001000100010101 = Q_Y=39。 WHEN 0001001000000000 = Q_Y=39。 WHEN 0001010000000000 = Q_Y=39。 WHEN 0001010001000101 = Q_Y=39。 WHEN 0001010001010101 = Q_Y=39。 WHEN 0001010101000000 = Q_Y=39。 END CASE。 ( 1)報(bào)警時(shí)長設(shè)定模塊 LIBRARY ieee。 END ctrl_s。 THEN Q_tmpma:=0。 THEN IF Q_tmpma15 THEN Q_tmpma:=Q_tmpma+1。 speaktime=Q_tmpma。 USE 。 END s20。139。Q_20S=39。039。039。 END a。 QSAI,QMAI,QHAI:IN INTEGER RANGE 0 TO 9。 QH_ARM_B: IN INTEGER RANGE 0 TO 9。 Q_MBO,Q_SBO: OUT INTEGER RANGE 0 TO 9)。 ELSE QH_ARM_A。 Q_MAO=QMAI WHEN K2=39。139。 ELSE 0。 END a。 entity dongtaism2 is port(clk:in std_logic。 fh:in std_logic_vector(3 downto 0)。 segout:out std_logic_vector(7 downto 0))。 signal sel:std_logic_vector(7 downto 0)。139。 case temp is wh。 else temp=temp+1。 begin if (clk39。 architecture a of dongtaism2 is signal temp:std_logic_vector(2 downto 0)。 mh:in std_logic_vector(3 downto 0)。 sh:in std_logic_vector(3 downto 0)。 use 。139。 Q_SAO=QSAI WHEN K2=39。 ELSE QM_ARM_A。139。 ARCHITECTURE a OF NOR_ARM_CTL IS BEGIN Q_HAO=QHAI WHEN K2=39。 Q_HAO,Q_MAO,Q_SAO:OUT INTEGER RANGE 0 TO 9。 QHBI:IN INTEGER RANGE 0 TO 9。 USE 。 END IF 。 ELSE tmp:=0。 ELSE tmp:=tmp+1。139。 BEGIN IF CLK39。 32 speaktime : in INTEGER RANGE 0 TO 15。 END a。 END IF 。event AND up_key=39。 BEGIN IF reset=39。 ENTITY ctrl_s IS PORT( reset,up_key: IN STD_LOGIC。 END PROCESS。 WHEN OTHERS= Q_Y=39。WHEN 0010001000000000 = Q_Y=39。WHEN 0010000100000000 = Q_Y=39。WHEN 0010000000010101 = Q_Y=39。WHEN 0010000000000101 = Q_Y=39。WHEN 0001100100100000 = Q_Y=39。WHEN 0001100100010101 = Q_Y=39。WHEN 0001100000110000 = Q_Y=39。WHEN 0001011100110000 = Q_Y=39。WHEN 0001011001000101 = Q_Y=39。WHEN 0001011000110101 = Q_Y=39。WHEN 0001010101010000 = Q_Y=39。039。139。139。139。139。139。139。139。139。139。139。139。139。 Q_HA amp。 Q_Y: OUT STD_LOGIC)。 ENTITY COMP_TIME IS PORT( K3: IN STD_LOGIC。039。 BEGIN SPEAK=CLK0 AND Y。 MARM_B: IN INTEGER RANGE 0 TO 9。 QH_B:IN INTEGER RANGE 0 TO 9。 ( 2)比較模塊 LIBRARY ieee。 Q_minueb=Q_tmpmb。 END IF。 ELSIF Q_tmpma=9 THEN Q_tmpma:=0。 ELSE Q_tmpha:=Q_tmpha+1。 THEN IF Q_tmphb=2 AND Q_tmpha=3 THEN Q_tmphb:=0。event AND up_key=39。 Q_tmpmb:= 0。 VARIABLE Q_tmphb: INTEGER RANGE 0 TO 9。 END ctrl_memo。