|
摘要:數(shù)碼管是一類顯示屏通過對(duì)其不同的管腳輸入相對(duì)的電流,會(huì)使其發(fā)亮,從而顯示出數(shù)字能夠顯示時(shí)間、日期、溫度等所有可用數(shù)字表示的參數(shù)。由于它的價(jià)格便宜,使用簡(jiǎn)單,在電器特別是家電領(lǐng)域應(yīng)用極為廣泛,空調(diào)、熱水器、冰箱等。絕大多數(shù)熱水器用的都是數(shù)碼管,其他家電也用液晶屏與熒光屏。
然而在信息時(shí)代的今天,單片機(jī)技術(shù)應(yīng)用越來越廣泛,涉及各行各業(yè),也滲透到人們的日常生活之中,如洗衣機(jī)、空調(diào)、冰箱等的控制系統(tǒng),就可以用單片機(jī)實(shí)現(xiàn)。為了讓人們很直觀的了解相關(guān)設(shè)備當(dāng)前的工作狀態(tài),很多時(shí)候需要將當(dāng)前的時(shí)間、溫度、工作程序等狀態(tài)通過數(shù)碼管顯示出來,這就涉及到單片機(jī)的數(shù)碼管顯示技術(shù)。動(dòng)態(tài)顯示是一種最常見的多位顯示方法,應(yīng)用非常廣泛。
關(guān)鍵詞:數(shù)碼管,動(dòng)態(tài)顯示
Abstract:The digital tube is a kind of display. It can brighten the lightsthrough the input of the relative current to the different pins, so that thenumber can display all the available parameters expressed by time, date,temperature and so on. Because of its cheap price and simple use, it is widelyused in electrical appliances, especially household appliances, airconditioners, hot water heaters, refrigerators and so on. Most of the waterheaters are used in the digital tube, and the other appliances also use the LCDscreen and the fluorescent screen.
However, in today's informationage, the application of single chip microcomputer technology is more and moreextensive. It involves all walks of life and penetrates into people's dailylife. For example, the control system of washing machines, air conditioners,fridges and so on can be realized by single chip microcomputer. In order tomake people understand the current working state of related devicesintuitively, many times, we need to display the current time, temperature,working procedures and other status through digital tube, which involves thetechnology of digital tube display of single chip microcomputer. Dynamicdisplay is one of the most common multi - digit display methods, which iswidely used.
Keywords: Digital tube, dynamic display
目 錄
1 前言(緒論). 1
2 總體方案設(shè)計(jì). 2
2.1 方案比較. 2
2.2 方案論證. 2
2.3 方案選擇. 3
3單元模塊設(shè)計(jì). 4
3.1顯示電路. 4
3.2時(shí)鐘電路. 5
3.3電源電路. 5
3.4配置電路. 6
3.5FPGA器件介紹. 7
3.6CPLD器件介紹. 7
3.7最小系統(tǒng)原理圖. 8
4Verilog HDL設(shè)計(jì). 9
4.1頂層文件. 9
4.2地址掃描模塊. 9
4.3譯碼器模塊. 10
4.4內(nèi)部結(jié)構(gòu). 11
4.5 Verilog HDL設(shè)計(jì)工具. 11
5系統(tǒng)仿真與調(diào)試. 12
5.1系統(tǒng)軟件編譯. 12
5.2時(shí)序仿真. 12
5.3引腳鎖定. 14
5.3調(diào)試. 15
6結(jié)論. 16
7總結(jié)與體會(huì). 17
8致謝. 18
9參考文獻(xiàn). 19
附錄1:設(shè)計(jì)原理圖. 20
附錄2:設(shè)計(jì)源程序. 21
1前言(緒論)
電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation,EDA)技術(shù)是現(xiàn)代電子工程領(lǐng)域的一門新技術(shù),它提供了基于計(jì)算機(jī)和信息技術(shù)的電路系統(tǒng)設(shè)計(jì)方法,主要能輔助進(jìn)行IC、電子電路和PCB等的設(shè)計(jì)。EDA技術(shù)的發(fā)展極大地推動(dòng)了電子行業(yè)的發(fā)展。目前,硬件描述語言Verilog HDL(HDL:HardwareDescription Language),已成為許多EDA工具普遍采用的標(biāo)準(zhǔn)化硬件描述語言,具有設(shè)計(jì)效率高、可靠性好、易讀易懂等諸多優(yōu)點(diǎn)。
數(shù)碼顯示已在整個(gè)工農(nóng)業(yè)生產(chǎn)、航空業(yè)、交通運(yùn)輸、醫(yī)療衛(wèi)生、儀器儀表以及軍民融合技術(shù)產(chǎn)業(yè)中有了廣泛的用途,給人們的視覺帶來了不可置疑的效果,是現(xiàn)代社會(huì)發(fā)展過程中不可或缺的部分。本文通過Quartus II 9.0的Verilog HDL文本設(shè)計(jì)輸入方式,設(shè)計(jì)了一個(gè)基于Verilog HDL的八位數(shù)碼掃描顯示電路,將8個(gè)數(shù)碼管的7個(gè)段都分別連在一起,但8個(gè)數(shù)碼管分別由8個(gè)選通信號(hào)來選擇,被選通的數(shù)碼管將顯示希望的數(shù)據(jù)。于是,隨著選通信號(hào)的掃變,就能實(shí)現(xiàn)8個(gè)數(shù)碼管的掃描顯示。
2總體方案設(shè)計(jì)
2.1方案比較
方案一:基于單片機(jī)實(shí)現(xiàn)8位數(shù)碼掃描顯示電路設(shè)計(jì)
圖2-1 方案一框圖
如圖2-1所示,方案一利用AT89C51的內(nèi)部定時(shí)器來對(duì)外部輸入信號(hào)進(jìn)行計(jì)數(shù),從而達(dá)到測(cè)頻的目的,這種方案,結(jié)構(gòu)簡(jiǎn)單容易掌握,各部分電路實(shí)現(xiàn)起來比較容易。
方案二:基于FPGA技術(shù)實(shí)現(xiàn)8位數(shù)碼掃描顯
圖2-2 方案二框圖
圖2-2所示,采用FPGA(現(xiàn)場(chǎng)可編程門陣列)作為系統(tǒng)的控制器。FPGA可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,密度高,它將所有器件集中在一塊芯片上,減小了體積,提高了穩(wěn)定性,并且可以應(yīng)用EDA軟件仿真、調(diào)試,易于進(jìn)行功能擴(kuò)展。FPGA采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。
2.2方案論證
通過方案一二的比較,可以看出方案一的設(shè)計(jì)使用分立元件電路較為多,因此會(huì)增加電路調(diào)試難度,且電路的不穩(wěn)定性也會(huì)隨之增加,而采用FPGA芯片實(shí)現(xiàn)的電路,由于在整體性上較好,在信號(hào)的處理和整個(gè)系統(tǒng)的控制中,F(xiàn)PGA的方案能大大縮減電路的體積,提高電路的穩(wěn)定性。此外其先進(jìn)的開發(fā)工具使整個(gè)系統(tǒng)的設(shè)計(jì)調(diào)試周期大大縮短,一般來講,同樣的邏輯,基于FPGA要比基于單片機(jī)要快很多,因?yàn)樗鼈児ぷ鞯脑硎峭耆煌摹纹瑱C(jī)是基于指令工作的,同樣的激勵(lì)到達(dá)單片機(jī)后,單片機(jī)首先要判斷,然后讀取相應(yīng)的指令,最后作出相應(yīng),這每一步都是需要在單片機(jī)的時(shí)鐘驅(qū)動(dòng)下一步步的進(jìn)行。而基于FPGA則是把相應(yīng)的邏輯“暫時(shí)”固化為硬件電路了,它對(duì)激勵(lì)作出的響應(yīng)速度就是電信號(hào)從FPGA的一個(gè)管腳傳播另一個(gè)管腳的傳播速度,當(dāng)然這指的是異步邏輯,同時(shí)電信號(hào)也要在芯片內(nèi)進(jìn)行一些柵電容的充放電動(dòng)作,但這些動(dòng)作都是非常非?斓摹
2.3方案選擇
結(jié)合現(xiàn)代測(cè)量技術(shù)的要求和精確,對(duì)其各個(gè)部件的性能提出了更高的要求,精確度是高于一切的,也是衡量一個(gè)器件的標(biāo)準(zhǔn)。在器件的合理使用和再度利用的考慮下,可編程的邏輯器件是占優(yōu)勢(shì)的,而且更方便,低功耗,體積小,結(jié)合本設(shè)計(jì)的要求及綜合以上比較的情況,我們選擇了基于FPGA的8位數(shù)碼掃描顯示電路設(shè)計(jì)的方案,選擇方案二。
3單元模塊設(shè)計(jì)
本設(shè)計(jì)由現(xiàn)場(chǎng)可編程門陣列(FPGA)作為控制芯片,通過VerilogHDL硬件描述語言設(shè)計(jì),運(yùn)用自頂而下的設(shè)計(jì)思想,按功能逐層分割實(shí)現(xiàn)層次化的設(shè)計(jì)。下面介紹主要模塊的功能及作用。
3.1顯示電路
8位數(shù)碼掃描顯示的電路圖3-1所示。輸入信號(hào):時(shí)鐘信號(hào)CLK。輸出控制信號(hào):段控制信號(hào)seg[7:0];地址選通控制信號(hào)scan[7:0]。其中每個(gè)數(shù)碼管的8個(gè)段h、g、f、e、d、c、b、a(h是小數(shù)點(diǎn))都分別連接在一起,8個(gè)數(shù)碼管分別由8個(gè)選通信號(hào)k1~k8來選擇。被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。如在某一時(shí)刻,k3為高電平,其余選通信號(hào)為低電平,這時(shí)僅為k3對(duì)應(yīng)的數(shù)碼管顯示來自段信號(hào)端的數(shù)據(jù),而其他7個(gè)數(shù)碼管呈現(xiàn)關(guān)閉狀態(tài)。根據(jù)這種電路狀況,如果希望在8個(gè)數(shù)碼管顯示希望的數(shù)據(jù),就必須使得8個(gè)選通信號(hào)k1~k8分別被選通,與此同時(shí),在段信號(hào)輸入口加上希望在該對(duì)應(yīng)數(shù)碼管上顯示的數(shù)據(jù),于是隨著選通信號(hào)的掃變,就能實(shí)現(xiàn)掃描顯示的目的。
實(shí)驗(yàn)參考掃描顯示程序中CLK是掃描時(shí)鐘;seg為7段控制信號(hào),由高到低為分別接g、f、e、d、c、b、a7個(gè)段;scan是為地址選通信號(hào),接圖3-1中的8個(gè)位選通信號(hào):k1、k2、…k8。
圖3-1 七段數(shù)碼管電路原理圖
3.2時(shí)鐘電路
晶振是為電路提供頻率基準(zhǔn)的元器件,通常分成有源晶振和無源晶振兩個(gè)大類,無源晶振需要芯片內(nèi)部有振蕩器,并且晶振的信號(hào)電壓根據(jù)起振電路而定,允許不同的電壓,但無源晶振通常信號(hào)質(zhì)量和精度較差,需要精確匹配外圍電路(電感、電容、電阻等),如需更換晶振時(shí)要同時(shí)更換外圍的電路。有源晶振不需要芯片的內(nèi)部振蕩器,可以提供高精度的頻率基準(zhǔn),信號(hào)質(zhì)量也較無源晶振要好。本FPGA芯片采用50MHZ的有源貼片晶振作為芯片工作的時(shí)鐘輸入,如圖3-2所示:
圖3-2 晶振電路原理圖設(shè)計(jì)
3.3電源電路
在直流電源回路中,負(fù)載的變化會(huì)引起電源噪聲。例如在數(shù)字電路中,當(dāng)電路從一個(gè)狀態(tài)轉(zhuǎn)換為另一種狀態(tài)時(shí),就會(huì)在電源線上產(chǎn)生一個(gè)很大的尖峰電流,形成瞬變的噪聲電壓。配置去耦合電容可以抑制因負(fù)載變化而產(chǎn)生的噪聲,是印制電路板的可靠性設(shè)計(jì)的一種常規(guī)做法.。一般在電源部分都采用大電容與小電容并聯(lián)接在電源兩端的,這樣對(duì)高頻和低頻都有一定抑制作用。如圖3-3所示:
圖3-3 供電電源去耦合電路原理圖設(shè)計(jì)
本課題研究的是Altera公司制作的FLEX10K10可編程邏輯芯片,芯片整體都是由5V電源供電,所以在電源這塊我們省去了更多地考慮電源設(shè)計(jì)的復(fù)雜問題,而是使用了我們最常見的USB口來供電,不需要額外的開關(guān)電源供電,并增加電源控制開關(guān),使用方便。這樣一來既省去制作電源的費(fèi)用和精力,同時(shí)又為芯片的可靠又高質(zhì)量的供電有了很好的保證。如圖3-4所示:
圖3-4 USB接口供電電路原理圖設(shè)計(jì)
3.4配置電路
我們的最小系統(tǒng)使用的FPGA是Altera公司制作的FLEX10K10芯片,因此我們配置的PROM選用的型號(hào)為EPC2LC20N,其中上拉電阻R4是1K,其余上拉電阻則都是5K,TDI、TCK、TMS和TDO分別和JTAG標(biāo)準(zhǔn)接口相連接,完成了配置電路的設(shè)計(jì),如圖3-5所示:
圖3-5 JTAG模式配置電路原理圖設(shè)計(jì)
3.5FPGA器件介紹
FPGA(Field-Programmable Gate Array)可以達(dá)到比PLD更高的集成度,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展起來的,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)。PLD器件和FPGA的主要區(qū)別在于PLD是通過修改具有固定內(nèi)連電路得邏輯功能來進(jìn)行編程,而FPGA是通過修改一根或多根分割宏單元的基本功能塊的內(nèi)連線的布線來進(jìn)行編程。它一般由可嵌入式陣列塊(EAB)、邏輯陣列塊(LAB)、快速互聯(lián)通道(Fast Track)、IO單元(IOE)組成。
Altera Cyclone II 采用全銅層、低K值、1.2伏SRAM工藝設(shè)計(jì),裸片尺寸被盡可能最小的優(yōu)化。采用300毫米晶圓,以TSMC成功的90nm工藝技術(shù)為基礎(chǔ),Cyclone II 器件提供了4,608到68,416個(gè)邏輯單元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、專用外部存儲(chǔ)器接口電路、4kbit嵌入式存儲(chǔ)器塊、鎖相環(huán)(PLL)和高速差分I/O能力。Cyclone II 器件擴(kuò)展了FPGA在成本敏感性、大批量應(yīng)用領(lǐng)域的影響力,延續(xù)了第一代Cyclone器件系列的成功。
由于FPGA是基于查找表(LUT)結(jié)構(gòu)的器件,且每個(gè)LAB由10個(gè)LE組成,一個(gè)LE由LUT和寄存器組成,適合于時(shí)序邏輯電路的設(shè)計(jì)。
3.6CPLD器件介紹
CPLD是ComplexProgrammable Logic Device的縮寫,它是有最早的PLD器件發(fā)展形成的高密度可編程邏輯器件,它具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制造成本低、對(duì)設(shè)計(jì)者的硬件經(jīng)驗(yàn)要求低、標(biāo)準(zhǔn)產(chǎn)品無需測(cè)試、保密性強(qiáng)、價(jià)格大眾化等特點(diǎn)。CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開發(fā)軟件平臺(tái),用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。
許多公司都開發(fā)出了CPLD可編程邏輯器件。比較典型的就是Altera、Lattice、Xilinx世界三大權(quán)威公司的產(chǎn)品。如Altera公司的MAXII器件,就是其極具代表性的一類CPLD器件,是有史以來功耗最低、成本最低的CPLD。MAX II CPLD基于突破性的體系結(jié)構(gòu),在所有CPLD系列中,其單位I/O引腳的功耗和成本都是最低的。
Altera公司的MAX7000A系列器件是高密度、高性能的EPLD,它是基于第二代MAX結(jié)構(gòu),采用CMOS EPROM工藝制造的。該系列的器件具有一定得典型性,其他結(jié)構(gòu)都與此結(jié)構(gòu)非常的類似。它包括邏輯陣列塊、宏單元、擴(kuò)展乘積項(xiàng)、可編程連線陣列和IO控制部分。由于大多數(shù)CPLD是基于乘積項(xiàng)的“與或”結(jié)構(gòu),故適合設(shè)計(jì)組合邏輯電路。
3.7最小系統(tǒng)原理圖
整個(gè)設(shè)計(jì)用到的模塊組成的最小系統(tǒng)原理圖如圖3-6所示:
圖3-6 最小系統(tǒng)原理圖
4VerilogHDL設(shè)計(jì)
4.1頂層文件
module scan_led(seg,scan,clk);
input clk;
output[7:0]seg,scan;
reg[7:0]seg,scan;
reg[2:0]cnt8;
reg[3:0]data;
4.2地址掃描模塊
地址掃描模塊電路如圖4-1所示
圖4-1 地址掃描電路圖
程序:
always@(posedge clk)
begin
cnt8<=cnt8+1;
end
always
begin
case(cnt8[2:0])
3'b000:begin scan<=8'b10000000;data[3:0]<=4'b0001;end
3'b001:begin scan<=8'b01000000;data[3:0]<=4'b0010;end
3'b010:begin scan<=8'b00100000;data[3:0]<=4'b0100;end
3'b011:begin scan<=8'b00010000;data[3:0]<=4'b0101;end
3'b100:begin scan<=8'b00001000;data[3:0]<=4'b0111;end
3'b101:begin scan<=8'b00000100;data[3:0]<=4'b1001;end
3'b111:begin scan<=8'b00000010;data[3:0]<=4'b1101;end
3'b111:begin scan<=8'b00000001;data[3:0]<=4'b1111;end
default:begin scan<='bx;data[3:0]<='bx;end
endcase
4.3譯碼器模塊
譯碼器電路圖如圖4-2所示。
圖4-2 譯碼器電路圖
程序:
case(data[3:0])
4'b0000:seg[7:0]<=8'b11111100;//0
4'b0001:seg[7:0]<=8'b01100000;//1
4'b0010:seg[7:0]<=8'b11011010;//2
4'b0011:seg[7:0]<=8'b11110010;//3
4'b0100:seg[7:0]<=8'b01100110;//4
4'b0101:seg[7:0]<=8'b10110110;//5
4'b0110:seg[7:0]<=8'b10111110;//6
4'b0111:seg[7:0]<=8'b11100000;//7
4'b1000:seg[7:0]<=8'b11111110;//8
4'b1001:seg[7:0]<=8'b11110110;//9
4'b1010:seg[7:0]<=8'b11101110;//a
4'b1011:seg[7:0]<=8'b00111110;//b
4'b1100:seg[7:0]<=8'b10011100;//c
4'b1101:seg[7:0]<=8'b01111010;//d
4'b1110:seg[7:0]<=8'b10011110;//e
4'b1111:seg[7:0]<=8'b10001110;//f
default:seg[7:0]<='bx;
endcase
4.4內(nèi)部結(jié)構(gòu)
內(nèi)部結(jié)構(gòu)如下圖4-3所示:
圖4-3 內(nèi)部結(jié)構(gòu)原理圖
4.5Verilog HDL設(shè)計(jì)工具
簡(jiǎn)介:Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,原理圖、VHDL、Verilog HDL以及AHDL(AlteraHardware 支持Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD/FPGA設(shè)計(jì)流程。
功能:Quartus II提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計(jì)的全部特性,包括:可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計(jì)實(shí)體文件;芯片(電路)平面布局連線編輯。
|
|