[摘 要] 本設計為基于CPLD的1/100秒計時器電路。計時器能實現0.01s~59.99s的計時功能,計時誤差≤ 0.01s,具有啟、停和清零功能,計時數據采用七段數碼管顯示。所有電路采用美國ALTERA公司的EPM7128SLC84-15芯片實現,使外圍電路簡單,性能可靠,特別是該芯片具有現場可編程功能,使修改設計簡單。在軟件設計中使用了功能按鍵消抖技術,使功能操作準確無誤。
[關鍵詞] CPLD VHDL 計時器
一、引言
1/100s計時器常用于體育競賽及各種要求有較高精確定時的領域。本文設計的1/100s計時器具有如下功能:
1.分、秒、1/100秒計時功能;
2.具有分、秒、1/100秒顯示功能;
3.具有啟停功能;
4.具有復位功能。整個系統的設計借助于VHDL,在EDA設計工具maxplus下進行仿真,得到了良好的結果。由于采用模塊化的設計思想,使設計變得簡單、方便、靈活性強。
二、設計方案分析
如圖1所示,為1/100s計時器的整體方框圖。包括四部分組成:計時控制芯片(cpld)、復位及啟停開關、四位數碼管、時鐘。
根據計時器的功能特點,具體實現時可分為五個子模塊:鍵輸入模塊、時鐘產生模塊、定時計數數模塊、控制模塊、四位數碼管顯示驅動模塊。各模塊的功能獨立,可擴充性強,具有再次開發的潛力。各模塊的關系如圖2所示。
三、模塊設計
1.鍵輸入模塊(keyin)
鍵輸入模塊(keyin)即鍵掃描電路,25HZ鍵掃描脈沖對按鍵掃描,產生啟/停單脈沖(stst)和清零單脈沖(res),并具有消抖功能。
鍵掃描電路工作原理如下(以產生清零單脈沖res為例,啟/停單脈沖stst與此相同):
IF(keyclk'EVENT AND keyclk='0')THEN
res1<=res0;
res0<=reset_sw;
stst1<=stst0;
stst0<=start_stop_sw;
END IF;
2.時鐘產生模塊(clkgen)
時鐘產生模塊是一個分頻電路,對1000HZ時鐘脈沖(clk)分頻產生100HZ的計時脈沖(cntclk)和25HZ的鍵掃描脈沖(keyclk)。
3.定時計數模塊(Cntblk)
定時計數模塊為分、秒、1/100秒計時電路。兩個10進制計數器進行1/100秒計時,一個6進制計數器和一個10進制計數器進行秒計時,限于實驗板只有四位數碼管,沒有設計分計時功能。10進制計數器子模塊前面已經生成,將10進制計數器程序適當修改可設計一個6進制計數器。在原理圖編輯器中調用三個10進制計數器和一個6進制計數器及相應輸入輸出端口即可建成定時計數數模塊(Cntblk),編譯通過后點File/Greate Default Symbol,生成符號(注.vhd文件編譯完成時會自動生成符號,而.GDF文件編譯完成時不會自動生成符號,要手動生成)。
4.控制模塊(ctrl)
控制模塊產生定時計數模塊的使能控制信號(cnten)。
…
IF( res='1')THEN
enb1<='0';
ELSIF(stst'EVENT AND stst='1')THEN
enb1<=NOT enb1;
END IF;
END PROCESS;
cnten<=enb1 AND cntclk;
…
若res=0,則cnten=0;若stst發生一次跳變,則cnten=cntclk,若stst發生二次跳變,則cnten=0。
5.四位數碼管顯示驅動模塊(Disp)
因為實驗板上四個共陰數碼管是四位一體的,即四個數碼管的碼段(a~g)是共用的,若要逐位顯示可通過位選端(A)控制,但必須采用掃描方式,只要掃描頻率足夠快,將看不到閃爍(圖7)。
當A4A3A2A1=“1110”,顯示第一位;當A4A3A2A1=“1101”,顯示第二位;
當A4A3A2A1=“1011”,顯示第三位;當A4A3A2A1=“0111”,顯示第四位。
四位數碼管顯示驅動模塊的原理框如圖8:
四進制加法計數器模塊(cnt4_v)對時鐘脈沖clk計數,四個時鐘脈沖循環一次,產生00,01,10,11四種狀態,分別對應四個數碼管的四位。二-四譯碼器模塊(decode2_4_v)將00,01,10,11譯碼成位選信號1110,1101,1011,0111從dig_sel[3..0]端口輸出。十六-四多任務器模塊(multi16_4_v)從輸入的待顯示的十六位數據d[15..0]中每次選取四位輸出。七段譯碼器模塊(seven_v)將待顯示的四位二進制數據轉換成七段碼從dig_out[6..0]端口輸出。
三、結束語
本設計從總體要求出發,采用自頂向下逐步細化的方法,將系統模塊化,使得系統具有很強的擴充性,并且在實現設計的基礎上,采用maxplus的仿真環境得到理想的仿真效果。在軟件設計中使用了功能按鍵消抖技術,使功能操作準確無誤。
參考文獻
[1]梁 麗:基于CPLD的多功能計時器的設計[J].北京工商大學學報,2005.23~1,53~55
[2]郭在華 馬 洪 明楊玲:基于數字邏輯的多功能計時器的設計及實現[J].世界電子元器件,2003~3,73~74
[3]張勝宇 譚作亙:基于CPLD的計算機并口EPP模式通訊實現[J].微計算機信息,2007~26,231~233
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”