久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

數(shù)字電子技術設計性實驗報告

時間:2019-05-15 09:21:55下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《數(shù)字電子技術設計性實驗報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《數(shù)字電子技術設計性實驗報告》。

第一篇:數(shù)字電子技術設計性實驗報告

數(shù)字電子技術設計性實驗報告

設計題目:

專業(yè)

班級

學號

學生姓名

指導教師

教師評分

年月日

第二篇:數(shù)字電子時鐘實驗報告

華大計科學院

數(shù)字邏輯課程設計說明書

題目:

多功能數(shù)字鐘

專業(yè):

計算機科學與技術

班級:

網(wǎng)絡工程1班

姓名:

劉群 學號:

1125111023

完成日期:

2013-9

一、設計題目與要求

設計題目:多功能數(shù)字鐘 設計要求:

1.準確計時,以數(shù)字形式顯示時、分、秒的時間。2.小時的計時可以為“12翻1”或“23翻0”的形式。

3.可以進行時、分、秒時間的校正。

二、設計原理及其框圖 1.數(shù)字鐘的構成

數(shù)字鐘實際上是一個對標準頻率1HZ)進行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路。圖 1 所示為數(shù)字鐘的一般構成框圖。

圖1 數(shù)字電子時鐘方案框圖 ⑴多諧振蕩器電路

多諧振蕩器電路給數(shù)字鐘提供一個頻率1Hz 的信號,可保證數(shù)字鐘的走時準確及穩(wěn)定。⑵時間計數(shù)器電路

時間計數(shù)電路由秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器及時個位和時十位計數(shù)器電路構成。其中秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器為60 進制計數(shù)器。而根據(jù)設計要求,時個位和時十位計數(shù)器為24 進制計數(shù)器。⑶譯碼驅動電路

譯碼驅動電路將計數(shù)器輸出的8421BCD 碼轉換為數(shù)碼管需要的邏輯狀態(tài),并且為保證數(shù)碼管正常工作提供足夠的工作電流。⑷數(shù)碼管

數(shù)碼管通常有發(fā)光二極管(LED)數(shù)碼管和液晶(LCD)數(shù)碼管。本設計提供的為LED數(shù)碼管。2.數(shù)字鐘的工作原理 ⑴多諧振蕩器電路

555 定時器與電阻R1、R2,電容C1、C2 構成一個多諧振蕩器,利用電容的充放電來調節(jié)輸出V0,產生矩形脈沖波作為時鐘信號,因為是數(shù)字鐘,所以應選擇的電阻電容值使頻率為1HZ。⑵時間計數(shù)單元

六片74LS90 芯片構成計數(shù)電路,按時間進制從右到左構成從低位向高位的進位電路,并通過譯碼顯示。在六位LED 七段顯示起上顯示對應的數(shù)值。⑶校時電源電路

當重新接通電源或走時出現(xiàn)誤差時都需要對時間進行校正。通常,校正時間的方法是:首先截斷正常的計數(shù)通路,然后再進行人工出觸發(fā)計數(shù)或將頻率較高的方波信號加到需要校正的計數(shù)單元的輸入端,校正好后,再轉入正常計時狀態(tài)即可。

根據(jù)要求,數(shù)字鐘應具有分校正和時校正功能。因此,應截斷分個位和時個位的直接計數(shù)通路,并采用正常計時信號與校正信號可以隨時切換的電路接入其中。圖8所示即為帶有基本RS 觸發(fā)器的校時電路。

三、元器件

1.實驗中所需的器材 單刀雙擲開關4 個.5V 電源.共陰七段數(shù)碼管 6 個.74LS90D 集成塊 6 塊.74HC00D 6個 LM555CM 1個 電阻 6個 10uF 電容 2個

2.芯片內部結構及引腳圖

圖2 LM555CM集成塊

圖3 74LS90D集成塊

五、各功能塊電路圖

1秒脈沖發(fā)生器主要由555 定時器和一些電阻電容構成,原理是利用555 定時器的特性,通過電容的充放電使VC 在高、低電平之間轉換。其中555 定時器的高、低電平的門閥電壓分別是2/3VCC 和1/3VCC電容器充電使VC 的電壓大于2/3VCC 則VC 就為高電平,然

而由于反饋作用又會使電容放電。當VC 小于1/3VCC 時,VC 就為低電平。同樣由于反饋作用又會使電容充電。通過555 定時器的這一性質我們就可以通過計算使他充放電的周期剛好為1S這樣我們就會得到1HZ 的信號。其中555 定時器的一些功能對照后面目錄。其中 555 定時器組成的脈沖發(fā)生器電路見附圖4.圖4 555 定時器組成的脈沖發(fā)生器

由于我們要得到1HZ 的信號,所以我們就可以通過555 定時器充放電一次所需的時間的公式。將那時間設為1S然后設定兩個電阻計算出另外那個電容值.在設定電阻值時我們要記住將電阻值設為比較常用的那種電阻值,得到的電容值也盡可能讓它是比較普遍使用 的。這樣就避免了在實際組裝過程中很難買到當初設定的那電阻和計算出 的電容值。

在這次設定中我們設定的電阻值RA=10KΩ,RB=62kΩ,C=10uF 經公式

f = 1.43 ÷【(RA + 2RB)×C 】 可得近似為1HZ。

2、利用一個LED 數(shù)碼管一塊74LS90D 連接成一個十進制計數(shù)器,電路在晶振的作用下數(shù)碼管從0—9 顯示見圖5。

圖5、利用2 片74LS90D 芯片連接成一個六十進制電路,電路可從0—59 顯示。第一片74LS90D芯片構成10 進制計數(shù)器,第二片74LS90D 芯片構成6 進制計數(shù)器。74LS90D 具有異步清零功能。

在第一片74ls90 構成的十進制計數(shù)器中,當?shù)谑畟€脈沖來到時。此時他的四級觸發(fā)器的狀態(tài)為“1001”。這時他就會自動清零。同時給第二片74ls90 構成的6 進制計數(shù)器進一,第六個脈沖進位到來時,此時第二片74ls90 芯片的觸發(fā)器的狀態(tài)為“0110”,這時QB,QC 均為高電平。將QB 與RO1 相連,將Ro2 與Qc 相連,就會進行異步清零。如此循環(huán)就會構成60 進制計數(shù)器.見附圖6.圖6 十六進制電路

4、利用2 片74LS90D 芯片構成24 進制計數(shù)器。一片構成二進制計數(shù)器,一片構成四進制計數(shù)器。由于74LS90D 芯片清零是由兩個清零端控制的,所以當?shù)?4 個脈沖到來時,第一片74lLS90D芯片的Qc 為高電平。第二片74LS90D 芯片的Qb 為高電平,讓第一片74LS90D 芯片的Qc 與兩片芯片的Ro1 相連.讓第二片74ls90 芯片的QB 與兩片芯片的Ro2 相連。當?shù)?4 個脈沖到來時就會進行異步清零。如此循環(huán)就會構成24 進制計數(shù)器。見附圖7.圖7 24進制電路

5、數(shù)字鐘電路由于秒信號的精確性和穩(wěn)定性不可能坐到完全準確無誤,又因為電路中其他的原因數(shù)字鐘總會產生走時誤差的現(xiàn)象。所以,電路中就應該有校準時間功能的電路。在這次設計中教時電路用的是一個RS 基本觸發(fā)器的單刀雙置開關,每搬動開關一次產生一個計數(shù)脈沖.實現(xiàn)校時功能。見附圖8。

7、利用兩個六十進制和一個二十四進制連接成一個時、分、秒都會進位的電路總圖。見附圖8

圖8 總電路圖

六、心得體會

在這次設計中我們深深地體會到了理論跟實踐的不同,理論學的再好不會動手那也只能是紙上談兵。我們了解了集成電路芯片的型號命名規(guī)律,懂得了沒有某種芯片時的替代方法,以及在網(wǎng)上查找電子電路資料的方法,掌握了各芯片的邏輯功能及使用方法,進一步熟悉了集成電路的引腳安排,掌握了數(shù)字鐘的設計方法,明白了數(shù)字鐘的組成原理以及工作原理。掌握了計數(shù)器的工作原理,以及計數(shù)器進制的組成方法和級聯(lián)方法,實現(xiàn)了一次理論指導實踐、理論向實踐過渡的跨越,雖然期間遇到一些困難,但這些困難卻增強了我們分析問題、解決問題的能力,使我們以后不僅只學習書本中的理論知識,而且知道學以致用,動過動手實踐是我們對書本中的理論知識掌握地跟牢固、理解地跟深刻,這對我們今后的工作及學習有積極的影響。這次課程設計不僅再次復習了數(shù)字電子和模擬電子,而且讓我對于芯片的使用更加了解。增加了我的動手操作能力,加深了對該軟件的了解。這就是這次課程設計的成果,相信這些實際的操作經驗會是我們以后的寶貴財富。

第三篇:模擬電子技術設計制作流程

模擬電子技術設計制作流程

1、選題:每班學生分十個小組組,設組長一名,統(tǒng)一管理本組人員。每個小組

只能選擇一個題目。每班每個題目選擇個數(shù)不能超過3個。完成選題后將組長和小組姓名交給學習委員,由學習委員統(tǒng)一交輔導老師。

2、準備過程:

(1)每個小組完成選題后,要對電路進行仿真和理論講解,最終要給教師演示

仿真(仿真軟件可選用multisim或proteus),制作pcb版圖(使用protel軟件)和說明電路工作原理。

(2)每個小組在研究明白電路工作原理后,由組長上交元件清單并領取。

(3)焊接制作。

(4)調試電路。

3、驗收環(huán)節(jié):

(1)驗收過程中,產品應該能實現(xiàn)電路的主要功能。

(2)完成電子設計報告。電子設計報告中應該說明:設計任務,電路原理框圖,電路原理,元件參數(shù)說明,電子制作心得,最后附整體電路圖和PCB版圖。

4、說明:

(1)電子制作是模擬電子實驗課程的重要組成部分,和實驗成績掛鉤。

(2)完成電子制作是模擬電子實驗課程及格的先決條件。所有未完成的小組模

電實驗成績將被判為不及格。

(3)寫作部分要求大家按照一定格式,格式隨后公布。

2011.6.1

第四篇:數(shù)字電子鐘實驗報告

本科實驗報告

學號: 指導教師:

2016年7月19日

課程名稱:

姓名: 院系: 專業(yè):

電子電路安裝與調試 陳肖葦、李曉杰、張晨靖 信息與電子工程學院 電子科學與技術 3140104544 王子立

實驗報告

課程名稱:電子電路安裝與調試指導老師:王子立成績:______________ 實驗名稱:多功能數(shù)字鐘的設計與制作實驗類型:設計型同組成員:

一、實驗目的和要求

實驗目的:

1.學習并掌握中規(guī)模集成電路設計制作數(shù)字電路系統(tǒng)的方法,裝調技術和數(shù)字鐘的功能擴展電路的設計。

2.熟悉集成電路的使用方法。實驗要求:

1.選用74系列或COMS系列中規(guī)模集成電路,LED數(shù)碼顯示器為主要器件設計并制作一多功能數(shù)字電子鐘,要求具有如下功能:

①基本功能:以數(shù)字形式顯示時、分、秒的時間,小時的顯示為“12”翻“1”,手動快校時。

②擴展功能:仿廣播電臺整點報時,報整點時數(shù),定時控制(時間自定)。自行設計電路,至少實現(xiàn)其中兩個擴展功能,電路形式盡可能不與前述電路相同。

2.設計與制作要求

①擬定數(shù)字電子鐘電路的組成框圖,要求電路的基本功能與擴展功能同時實現(xiàn),使用的器件要盡量少、成本低。

②設計、仿真、制作各單元電路,要求器件布局合理、美觀,便于級聯(lián)與調試。③測試數(shù)字電子鐘系統(tǒng)的邏輯功能,同時滿足基本功能與擴展功能的要求。

④畫出數(shù)字鐘系統(tǒng)的整機邏輯電路圖,設計印制電路板,要求器件布局合理,布線整齊、美觀。

⑤安裝并調試整個數(shù)字電子鐘。

二、實驗內容和原理

實驗內容:

1.設計主體電路,完成基本功能:以數(shù)字形式顯示時、分、秒的時間,小時的顯示為“12”翻“1”,手動快校時。

2.設計擴展電路,完成擴展功能:仿廣播電臺整點報時,報整點時數(shù),定時控制(時間自定)。

3.仿真各單元電路。4.制作PCB板并印刷電路。5.焊接電路板并調試。實驗原理:

1.數(shù)字電子鐘電路原理

數(shù)字電子鐘實際上是一個對標準頻率(1Hz)進行計數(shù)的電路,主要由基準頻率源、分頻器、計數(shù)器、譯碼顯示驅動器、數(shù)字顯示器和校準電路等組成。基準頻率源是數(shù)字電子鐘的核心,它產生一個矩形波時間基準信號,其頻率精度和穩(wěn)定性決定了計時的精度。分頻器采用計數(shù)器實現(xiàn),以得到1秒(即頻率1Hz)的標準秒信號脈沖。在計數(shù)器電路中,對秒、分計數(shù)采用60進制的計數(shù)器,對時計數(shù)器采用12翻1 的計數(shù)器。譯碼器采用BCD碼七段譯碼顯示驅動器。顯示器采用LED七段數(shù)碼管。

整個數(shù)字電路系統(tǒng)的原理如圖2.1所示,分為主體電路和擴展電路兩大部分。其中主體電路完成數(shù)字鐘的基本功能,擴展電路實現(xiàn)數(shù)字鐘的擴展功能。

圖2.1多功能數(shù)字鐘系統(tǒng)組成框圖

該系統(tǒng)的工作原理是:由振蕩器產生穩(wěn)定的高頻脈沖信號,作為數(shù)字鐘的時間基準,經分頻器輸出標準脈沖信號。秒計數(shù)器滿60后想分計數(shù)器進位,分計數(shù)器滿60或向小時計數(shù)器進位,小時計數(shù)器按照“12翻1”規(guī)律計數(shù)。計數(shù)器的輸出經譯碼器送顯示器。計時出現(xiàn)誤差時可以用校時電路進行校時、校分。擴展電路必須在主體電路正常運行的情況下才能進行功能擴展。

2.主體電路原理 ①振蕩器

振蕩器是數(shù)字鐘的核心。振蕩器頻率的精確度及穩(wěn)定度決定了數(shù)字鐘計時的準確程度,通常選用石英晶體構成振蕩器電路。一般來說,振蕩器的頻率越高,計時精度越高。

由于石英晶體振蕩器的輸出頻率較高,為了得到1Hz的秒信號,需要對振蕩器的輸出信號進行分頻。通常用計數(shù)器實現(xiàn)分頻,一般用多級二進制計數(shù)器實現(xiàn)。

圖2.2為時鐘專用集成電路(CD4060)的晶體振蕩電路及分頻電路,取晶振的頻率為32768Hz,該電路內部含有一個振蕩電路和一個14級2分頻電路,使用非常方便。在他的輸出端可以得到2Hz的標準脈沖和其他高頻信號。2Hz再經過一個D觸發(fā)器二分頻后得到1Hz的秒信號。

圖2.2 用CD4060構成的電子鐘振蕩與分頻電路

如果精度要求不高,也可以采用由集成邏輯門與RC組成的時鐘源振蕩器,或由集成定時器555與RC組成的多諧振蕩器。選用555構成的多諧振蕩器,設振蕩頻率f0=103Hz,電路參數(shù)如圖2.3所示:

圖2.3 555構成的振蕩器

②分頻器

分頻器的功能主要有兩個:一是產生標準秒脈沖信號,二是提供功能擴展電路所需要的信號,如仿電臺報時用的1kHz的高音頻信號和500Hz的低音頻信號等。選用3片中規(guī)模集成電路計數(shù)器74LS90可以完成上述功能,因為每片是1/10分頻,3片級聯(lián)則可以獲得所需要的頻率信號,即第一片的Q0端輸出頻率為500Hz,第二片的Q3端輸出為10Hz,第三片的Q3端輸出為1Hz。

③時分秒計數(shù)器

時間計數(shù)單元有時計數(shù)、分計數(shù)和秒計數(shù)三個部分。分和秒都是模M=60的計數(shù)器,輸出為兩位的BCD嘛,其計數(shù)規(guī)律為00→01→?→58→59→00→?。選用74LS92作為十位計數(shù)器,74LS90作為個位計數(shù)器,再將他們級聯(lián)組成模數(shù)M=60的計數(shù)器。

也可以選用10進制計數(shù)器,無需進制轉換,只需要將Q0和CP1’相連即可。CP0’與脈沖輸入信號相連,Q3可作為向上的進位信號與秒的十位計數(shù)電路CP0’相連,電路連接如圖2.4所示:

圖2.4 十進制計數(shù)器電路

秒十位計數(shù)電路為6進制計數(shù)器,需要進制轉換。10進制計數(shù)器轉換為6進制計數(shù)器的電路如圖2.5所示,Q2、Q1通過與門與1清零端R相連,實現(xiàn)6進制轉換,與門的輸出同時還作為向上的進位信號與分個位計數(shù)電路CP0’相連。

圖2.5 十進制-六進制計數(shù)器轉換電路

分計數(shù)器與秒計數(shù)器設計相同。

時計數(shù)器是一個12翻1的特殊進制計數(shù)器,即當數(shù)字中運行到12時59分59秒時,秒的個位計數(shù)器再輸入一個秒脈沖后,數(shù)字鐘應自動顯示為01時00分00秒,實現(xiàn)日常生活中習慣用的計時規(guī)律。選用74LS191和74LS74,其電路原理見圖2.6:

圖2.6 時計數(shù)器

74LS191是帶異步置數(shù)端的16進制可逆計數(shù)器,設計成0-9的10進制加法器和2→1的減法計數(shù)器,用它做1-9的計數(shù)何從12→1的減法計數(shù)。74LS74是D觸發(fā)器,用作時十位計數(shù)。

工作過程:74LS191從0開始計數(shù),到第九個技術脈沖過后,其輸出為1010,與非門G1輸出低電平,計數(shù)器異步置零,與非門G1又回到高電平。與非門G1回到高電平的瞬間(上升沿),74LS74觸發(fā)器被置1,完成9-10的進位過程。第十一、十二個脈沖過后計數(shù)狀態(tài)分比為10001/10010,這時與非門G2輸出低電平,計數(shù)控制端為高電平74LS191被設置為減法計數(shù)器,第十三個脈沖到來是74LS191的狀態(tài)由0010轉變?yōu)?001.這時,與非門G3的兩輸入端都為高電平,輸出變?yōu)榈碗娖剑笵觸發(fā)器清零,整個計數(shù)器的狀態(tài)為00001,完成了從12→1的狀態(tài)轉換。同時計數(shù)器74LS191的控制端又恢復為低電平,重新開始下一個12的計數(shù)周期。

④譯碼、驅動及顯示電路

各計數(shù)單元的計數(shù)器實現(xiàn)了對時間的累計,并分別從Q0-Q3端以BCD碼的形式輸出,譯碼驅動顯示電路是將計數(shù)器的輸出數(shù)碼轉換為數(shù)碼顯示器所需要的邏輯并驅動顯示器進行顯示。圖2.7是使用CD4511作為譯碼驅動電路,選用LED數(shù)碼管作為顯示器。CD4511是CMOS BCD碼到7段鎖存、譯碼、驅動電路,它可以直接驅動共陰極LED,圖中電阻器限流的作用,其阻值應根據(jù)電源電壓來決定,一般限制LED數(shù)碼管每段筆畫10mA左右。

圖2.7 譯碼、驅動及顯示電路

⑤時分校正電路

當數(shù)字鐘剛接通電源或計時出現(xiàn)誤差時,需要校正時間,校時是數(shù)字鐘應具備的基本功能。一般電子鐘都有時、分、秒等校時功能。

對校時電路的要求是:在小時校正的時候不影響分和秒的正常計數(shù),在分校正時不影響小時和秒的正常計數(shù)。校時方法有快校時和慢校時兩種:快校時通過開關控制,使計數(shù)器會1Hz的校時脈沖計數(shù),慢校時用手動產生單脈沖作為校時脈沖。圖2.8為校時分電路,它是由基本RS觸發(fā)器和與非門組成,基本RS觸發(fā)器的功能是產生單脈沖,防止抖動。其中K為校正用的控制開關。校正脈沖采用1Hz的秒信號,當K處于圖示位置時,與非門G1輸出高電平,基本RS觸發(fā)器處于1狀態(tài),這是數(shù)字鐘正常工作,來自分或秒的進位信號能進入時或分計數(shù)器。撥動開關K時,與非門G2輸出高電平,基本RS觸發(fā)器處于0狀態(tài),這時數(shù)字鐘處于校正狀態(tài),秒信號可以直接進入計數(shù)器,而進位信號被阻止,因而能夠較快地校正相應計數(shù)器的計數(shù)值。校準后將校正開關K薄回原位,數(shù)字鐘繼續(xù)進行正常的計數(shù)工作。如果校時脈沖改由單位脈沖產生器提供,則可以進行慢校時。

圖2.8 時分校正電路

3.功能擴展電路 ①仿廣播電臺整點報時電路

一般數(shù)字電子鐘都具備整點報時的功能,及在時間到達整點前數(shù)秒鐘內數(shù)字鐘會自動發(fā)出聲響報時。報時方式是發(fā)出連續(xù)的或者有節(jié)奏的音頻信號,較復雜的也可以是實時語音提示。仿廣播電臺整點報時是在整點前數(shù)秒內開始報時,響1秒停1秒共5聲,前4聲低音,最后1聲高音。電路功能要求:每當數(shù)字鐘計時快要到正點時發(fā)出聲響,通常按照4低音1高音的順序發(fā)出間斷聲響,以最后一聲高音結束的時刻為整點時刻。

設4聲低音(約500Hz)分別發(fā)生在59分的51秒、53秒、55秒和57秒,最后一聲高音(約1kHz)發(fā)生在59分59秒,它們的持續(xù)時間為1秒,如下表所示: CP(秒)

00 Q3S1 0 0 0 0 0 0 0 0 1 1 0

Q2S1 0 0 0 0 1 1 1 1 0 0 0

Q1S1 0 0 1 1 0 0 1 1 0 0 0

Q0S1 0 1 0 1 0 1 0 1 0 1 0

功能 低音 停 低音 停 低音 停 低音 停 高音 停

當Q3S1=0時鳴低音,當Q3S1=1時鳴高音。

只有當十位的(Q2Q0)M2=11,分個位的(Q3Q0)M1=11,秒十位的(Q2Q0)S2=11以及秒個位的Q0S2=1時,音響電路才能工作。

②定時控制電路

數(shù)字鐘在制定的時刻發(fā)出信號,或驅動音響電路“鬧時”,或對某裝置的電源進行接通或斷開控制,不管是鬧時還是控制,都要求時間準確,即信號的開始時刻與持續(xù)時間必須滿足規(guī)定的要求。

例:要求上午7時59分發(fā)出鬧時信號,持續(xù)時間為1min。7時59對應的時個位計數(shù)器狀態(tài)0111,分十位計數(shù)器狀態(tài)0101,分個位計時器狀態(tài)1001.若將上述計數(shù)器輸出為1的所有輸出端經過與門電路控制音響電路,可以使音響電路正好在7點59響,持續(xù)1min后停響。實現(xiàn)的電路如圖2.9所示:

圖2.9鬧時電路

有圖可見到達時刻時,音響電路的晶體管導通,揚聲器發(fā)出1kHz的聲音,持續(xù)1min后晶體管因為輸入端為0而截至,電路停鬧。

③報整點時數(shù)電路

報整點時數(shù)電路功能:每當數(shù)字鐘計時到整點時發(fā)出音響,且?guī)c響幾聲,實現(xiàn)這一功能的電路主要由以下幾部分組成:

①減法計數(shù)器:完成幾點響幾聲的功能,即從小時計數(shù)器的整點開始進行減法計數(shù),直到零為止。

編碼器:將小時計數(shù)器的5個輸出端Q4、Q3、Q2、Q1、Q0按照12翻1的編碼要求轉換為減法計數(shù)器的4個輸入端D3、D2、D1、D0所需的BCD碼。

③邏輯控制電路:控制減法計數(shù)器的清零與置數(shù),控制報時音響電路的輸入信號。根據(jù)以上要求,采用過了如圖2.10的報整點時數(shù)的電路。

圖2.10自動報整點時數(shù)的電路

編碼器是由與非門實現(xiàn)的組合邏輯電路,其輸出端的邏輯表達式由5變量的卡諾圖可得: D0=Q0

D1=((Q4’Q1)’·(Q1Q4)’)’ D2=(Q2’·(Q4Q1)’)’ D3=(Q3’Q4’)’

減法計數(shù)器選用74LS191,個控制端的作用如下:LD’為置數(shù)端,當LD’=1時將小時計數(shù)器輸出的數(shù)據(jù)經數(shù)據(jù)輸入端D0D1D2D3置入,CP0’為溢出負脈沖輸出端,當減計數(shù)到0時,CP0’輸出一個負脈沖,U’/D為加減控制器。U’/D=1做減法計數(shù)。

邏輯控制電路由D觸發(fā)器74LS74與多級與非門組成。電路的工作原理是:接通電源后按出發(fā)開關S,使D觸發(fā)器清零。該清零脈沖有兩個作用,一是使74LS191的置數(shù)端LD’=0,即將此時對應的小時計數(shù)器輸出的整點時數(shù)置入74LS191,二是封鎖1kHz的音頻信號,使音響電路無輸入脈沖而停止發(fā)聲。當分十位計數(shù)器的進位脈沖的上升沿來到時,小時計數(shù)器加1,新的小時數(shù)被置入74LS191,進位脈沖的上升沿同時又使74LS191的狀態(tài)翻轉,輸出高電平,經G2、G3延時后使LD’=1,此時74LS191進行減法計數(shù)技術脈沖由1Hz秒信號提供。秒信號低電平時音響電路發(fā)出1kHZ聲音,秒信號高電平時停響。當減法計數(shù)到0時,74LS191的CP0’會輸出一個負脈沖,使D觸發(fā)器的觸發(fā)信號回到0,單觸發(fā)器的狀態(tài)保持不變,當74LS191的CP0’結束負脈沖回到高電平時,因此時分進位信號仍為高電平,經與非門G1和非門后產生一個上升沿,使D觸發(fā)器翻轉到0狀態(tài),74LS191又回到置數(shù)狀態(tài)。

如果出現(xiàn)某些整點數(shù)不準確,主要原因是邏輯控制電路中的與非門延時時間不夠,產生了競爭冒險現(xiàn)象,可以適當增加與非門的級數(shù)或接入小電容進行延時。

三、主要儀器設備

裝有AD、Proteus軟件的電腦,各類元件,鑷子,焊錫,電烙鐵等

四、操作方法和實驗步驟

1.實驗電路的設計:

①由圖2.1所示的數(shù)字鐘系統(tǒng)組成框圖,按照信號的流向分級安裝,逐級級聯(lián)。②級聯(lián)時如果出現(xiàn)時序配合不同步或尖峰脈沖干擾,引起邏輯混亂,可以增加多級邏輯門來延時,如果顯示字符變化很快,模糊不清,可能由于電源電流的跳變引起,可以在集成電路器件的電流端Vcc加退耦濾波電容。

③畫數(shù)字鐘的主題邏輯電路圖。經過聯(lián)調并糾正設計方案中的錯誤和不足,再測試電路的邏輯功能是否滿足設計要求,最后畫出滿足設計要求的總體邏輯電路圖。

2.實驗電路的仿真

①在Proteus軟件中繪制電路圖。

②依次進行主體電路和各擴展電路的功能仿真,觀察各電路模塊的功能是否滿足需求,必要時在關鍵節(jié)點添加示波器探針觀察電路的波形情況。根據(jù)仿真結果對電路進行適當?shù)恼{整。

3.PCB板的繪制 4.實驗電路的裝調

五、設計方案及仿真分析

1.實驗電路的設計: ①主體電路

圖5.1主體電路

圖5.2 振蕩器

圖5.3 計數(shù)器

圖5.3 譯碼顯示

②擴展電路

圖5.4 正點報時

圖5.5仿廣播電臺正點報時

圖5.6 定時控制

圖5.7 音響電路

圖5.8 電源電路

2.實驗電路的仿真: ①計時顯示功能

起初仿真發(fā)現(xiàn)小時、分、秒的數(shù)字都能夠正常顯示,且分、秒為60進制,但小時信號出現(xiàn)滿7復0的狀況,即狀態(tài)為0→1→2→3→4→5→6→7→10→11→12。此時我們的局部電路如圖5.9所示:

圖5.9 原小時計數(shù)顯示電路 當H11=1,H13=1即Q3Q2Q1Q0=1010,U2進行置零操作,但觀察仿真發(fā)現(xiàn)Q3Q2Q1Q0= 0111即置零。我們將H11、H12、H13和LD信號添加到示波器中觀察到波形如圖5.11所示。

圖5.10 添加示波器

圖5.11 波形顯示

結合數(shù)碼管顯示發(fā)現(xiàn),當數(shù)字從7將要變成8時,H13和LD都出現(xiàn)了跳變,H13原本應當從0狀態(tài)變?yōu)?狀態(tài)并保持一段時間但實際上H13從0變?yōu)?后又迅速跳回0,導致電路計數(shù)器被置0。

結合這一現(xiàn)象,我們分析原因為,當H13從0狀態(tài)變成1狀態(tài)時,H10、H11和H12也同時從1狀態(tài)變成0,由于電路的延遲,以及計數(shù)器采用異步置數(shù),導致跳變現(xiàn)象的產生。因此,我們將原本輸入為H11、H13的與非門U18改為輸入為H10’、H11、H12’、H13的四輸入與非門,然后再進行仿真,發(fā)現(xiàn)功能可正常實現(xiàn)。

圖5.12 修改后局部電路

②時間校準功能

對電路進行快速時間校準功能的仿真,發(fā)現(xiàn)當校時開關下按時,小時數(shù)會升高,實現(xiàn)小時校準;當校分開關下按時,分鐘數(shù)會升高,實現(xiàn)分鐘校準,時間校準功能正常。

③正點報時功能

圖5.13 音響電路示波器

如圖5.13將示波器探針放置在音響電路上,觀察當整點來臨時,示波器顯示的波形情況。圖5.14所示是4時來臨時,音響發(fā)出4聲提示音的波形。另外選取其他若干整時數(shù),均能實現(xiàn)正點報時功能。

圖5.14正點報時

④仿廣播電臺報時功能

圖5.15仿廣播電臺報時

觀察整點即將來臨時音響的波形顯示,發(fā)現(xiàn)在整點前10s開始報時,并從揚聲器中聽出先報四聲低音再報一聲高音,更改若干整點數(shù)功能均能正常實現(xiàn)。

⑤定時控制

圖5.16 定時控制

利用撥碼開關設定好定時的小時數(shù)和分鐘數(shù),仿真發(fā)現(xiàn)到達定時時間時揚聲器開始發(fā)出提示音,聲音持續(xù)一分鐘,更換若干定時時間再次測試,發(fā)現(xiàn)定時控制功能都能夠正常實現(xiàn)。

⑥電源電路

圖5.15 電源電路

3.PCB板的繪制

最終設計完成的PCB版如下:

圖5.16 電路整體設計

電路排版的整體設計理念是將電源以及指示燈放在右上角,通電的同時即可檢驗電路是否能工作以及電源電路是否正常工作,同時,將整塊電路中的用戶交互界面,即時間顯示界面和按鈕操作界面分別置于電路板的上下兩側,其中,將時間顯示界面放在最上方,方便觀察和調試,將按鈕操作界面放在電路板的最下方,方面用戶操作;至于其他的功能模塊,則放在電路板的中間部分,并按功能相關的原則進行排版。

電路布線的整體設計理念是在電路板的一周布上一圈的電源線和地線,當有需要時直接橫向延伸進去進行連接;電路的其它部分則采取自動布線然后手動進行調整的方法。

下面,將針對電路中的關鍵模塊進行詳細的介紹。

圖5.17 電源電路

上圖為電源電路,將8~12V的直流電接在JP1上,若電源正常工作,則電源指示燈LED被點亮,同時經過7805輸出5V穩(wěn)壓;其中四個電容C11,C12,C13,C14起到濾波的作用,用來穩(wěn)定穩(wěn)壓器輸出的電壓。

圖5.18 晶振電路 上圖為晶振電路,其中32468為頻率為32.768KHz的晶體振蕩器,U1是14次分頻的分頻器,晶振的輸出信號經過U1產生一個1KHz的信號和一個2Hz的信號,其中2Hz的信號再次經過分頻產生1Hz的信號,當作計數(shù)器的時鐘。

圖5.19 數(shù)字鐘主體部分

上圖為數(shù)字鐘的主體部分從上到下分別是共陰數(shù)碼管顯示器,分壓限流電阻,顯示譯碼器和16進制計數(shù)器。首先由16進制計數(shù)器由1Hz信號進行計數(shù)和產生進位,同時將狀態(tài)傳遞給顯示譯碼器4511,顯示譯碼器4511將計數(shù)器傳遞來的狀態(tài)進行譯碼,輸出對應的高電平信號,經電阻分壓后,點亮對應的共陰數(shù)碼管顯示器,即可實現(xiàn)電路的主體功能。

圖5.20 開關控制電路

上圖是我們的開關控制電路,左邊四個撥碼開關分別對應小時的十位,小時的個位,分鐘的10位,分鐘的各位,用其對應的二進制代碼進行控制。SW2是鬧鐘控制電路,其中僅開關1閉合,鬧鐘打開;僅開關2閉合,鬧鐘關閉;開關1和開關2同時斷開,芯片默認高電平,鬧鐘打開;開關1和開關2同時閉合,則電源和地會短路,所以不能同時閉合。SW1是整點報時控制電路,當開關1閉合時,整點報時功能使能,開關1打開,整點報時功能關閉。S1是小時電路的手動快校時按鍵,S2為分鐘電路的手動快校時按鍵。

4.電子鐘的安裝與調試 ①安裝電路 按照原理圖、PCB圖和板子上的元件名稱安裝、焊接電路,芯片先焊插座,方便出現(xiàn)問題時進行修改。老師告知PCB板可能出現(xiàn)幾處錯誤,因為修改元件時自動布線把過孔取消了,因此幾根地線沒有連上。我們檢查PCB板與AD中的PCB圖連線,計劃用導線將沒連上的線連上,后來發(fā)現(xiàn)錯誤已經被修改。

②電源電路

安裝好電路后,在沒有裝芯片的情況下,測試電源電路是否正常。將直流電源調整為10V,限流在0.6A左右,按下OUTPUT,電源電路的指示LED燈亮,用萬用表測量輸出端的電壓,在5V左右,故電源電路正常工作。

③主體電路的調試

按照原理圖首先安裝CD4060芯片,測試振蕩電路是否正常。示波器探頭首先接CD4060的4腳,接地端接電源地,測得1kHz左右的方波信號。在將探頭接至5腳,測得500Hz左右的方波信號。在晶振處可以測得32.7KHz左右的信號(很遺憾忘記拍照記錄波形)。因此振蕩電路正常工作。

安裝所有的芯片,接通電源,電源電路指示燈亮,數(shù)碼管亮,顯示小時的兩個數(shù)碼管顯示18,顯示分鐘的兩個數(shù)碼管顯示88,顯示秒的兩個數(shù)碼管從零開始以1Hz的頻率計數(shù)。秒數(shù)碼管的變化說明秒計數(shù)正確,分鐘和小時則說明了我們在設計中忽略了自啟動問題。通過校時、校分按鍵調節(jié)小時和分鐘數(shù)合適。

當秒到“59”后,兩數(shù)碼管變?yōu)?,同時分鐘位加1,說明秒到分鐘的邏輯正確。

長按校分按鈕,可以看到兩個分鐘的數(shù)碼管顯示按60進制以秒計數(shù),到達59后小時加1,說明分鐘模塊正常工作。

長按校時按鈕,小時以1Hz頻率實現(xiàn)1→12計數(shù),小時模塊正常工作。主體電路數(shù)字鐘正常工作。

在測試按鈕短按實現(xiàn)快校時時,發(fā)現(xiàn)短按校時按鈕,小時顯示有可能不變、或有可能亂跳,如從12跳到6跳到2;校分按鈕短按時有不變情況,在校分計數(shù)超過40后經常直接置零;并且校分按鈕會影響到小時的顯示;長按時按鍵按下和松開時也會影響計數(shù)變化。這可能與按鍵開關的抖動有關系;在測試過程中還發(fā)現(xiàn)PCB板的抖動也會影響到數(shù)碼管顯示。開關防抖動與上拉電阻與并聯(lián)電容組成的RC電路有關,所以通過改變電容電阻的值來增大RC電路的時間常數(shù)。我們把104的電容換成220uF的電容,使RC電路的時間常數(shù)在100ms左右,焊接時注意電容的正負極。但是改變電容后按鍵短按校時校分情況并沒有明顯改變。

最后我們決定將按鍵開關換成撥碼開關來得到電平,通過1Hz信號來校時。換成撥碼開關后,打開撥碼開關后小時、分鐘能夠正常計數(shù)。但是撥碼開關與底座有些接觸不良,撥動開關時也有可能有抖動,因此撥動撥碼開關時需要小心,固定電路板和撥碼開關撥動開關可以正常工作。

在調節(jié)校時、校分時曾經在板子后方接一個電容,并接過示波器,這個過程中分鐘數(shù)碼管曾突然不顯示,按校時、校分按鈕并不能使其恢復正常。后發(fā)現(xiàn)電路板上分鐘電路用到的74LS390非常燙,可能已被燒壞。拆下74LS390后用萬用表測試插座上各個管腳的電壓,發(fā)現(xiàn)電壓并沒有異常情況,接地腳與電源地直接的電壓為0V左右。檢查電路板電路沒有發(fā)現(xiàn)問題。猜測可能背后接電容和示波器測波形時可能有短路等情況發(fā)生導致74LS390燒壞。更換74LS390后,電路正常工作,390有稍微發(fā)熱但不會發(fā)燙,390接地腳電壓與電源地相同,可以正常使用。

④調節(jié)鬧鐘功能。

鬧鐘電路通過撥碼開關設置鬧鐘時間。

首先確定電路板上從左到右四個開關順序按照小時的十位、個位,分鐘的十位、個位排列,之后按照當前時間設置撥碼開關的數(shù)值。此處輸入分別為數(shù)碼管上顯示數(shù)字的二進制編碼,打開鬧鐘開關后發(fā)現(xiàn)喇叭并沒有響。檢查原理圖和電路板,發(fā)現(xiàn)每個撥碼開關的高位到低位是從右向左的,重新調整撥碼開關的撥碼后,喇叭持續(xù)發(fā)出1kHz的聲音。關閉鬧鐘電路的控制開關后聲音停止,在同一分鐘內,再次打開控制開關,仍然發(fā)出聲音,當分鐘改變時,聲音停止。說明鬧鐘電路正常工作。

調試過程中,應該注意控制開關的作用。由于設計電路的原因,控制開關有兩個撥碼開關接入狀態(tài),左數(shù)第一個與電源相接,第二個與地相接,當?shù)诙€開關未接通(0)時不論第一個撥碼開關接通與否輸入都為高電平(1),鬧鐘電路工作;當狀態(tài)為01時,鬧鐘電路控制開關處于打開狀態(tài),相當于鬧鐘電路不工作。但是如果同時使兩個開關狀態(tài)處于“ON”狀態(tài),電源直接與地相接,整個電路都被短路,停止工作。因此調試時應小心不能同時撥開兩個開關。

⑤調節(jié)仿廣播臺報時功能

首先通過校分按鈕使分鐘顯示為59分,當秒數(shù)達到50后,每逢奇數(shù)秒數(shù)會響一低音聲音,持續(xù)一秒鐘,到達59分響一高音。實現(xiàn)來四聲低音一聲高音的仿廣播電臺報時功能。該電路能夠正常工作。

⑥調節(jié)仿廣播臺報時功能

打開該電路模塊的控制開關后,發(fā)現(xiàn)喇叭一直發(fā)出一秒一響的聲音。電路存在問題。找到該模塊的電路,與原理圖對照的過程中發(fā)現(xiàn)有一網(wǎng)絡名寫錯,在最后版本的原理圖中沒有改正過來。我們將電路板上相連的LD線用小刀刮斷,通過導線將正確的兩個相連的管腳連接后,接通電源,在非整點時喇叭不再發(fā)聲。

因為該電路是在小時數(shù)變化時工作,所以我們只需要通過校時開關改變小時數(shù),而不需要將數(shù)字鐘調至整點來測試電路。

測試過程中,首先我們將時間調至整點,此時仿廣播電臺報時與整點報時接連工作,我們在數(shù)整點報小時數(shù)時發(fā)現(xiàn)少一聲認為可能兩功能報時在整點處重疊。

之后再改變校時按鈕后,聽報小時數(shù)是正常的。但多次測試后,發(fā)現(xiàn)報小時數(shù)的聲音普遍比當前的小時數(shù)少一聲。并且在12→1過程中,小時數(shù)報了12聲。這說明該電路中存在競爭冒險現(xiàn)象,置數(shù)信號LD1比置數(shù)要先到達減法計數(shù)器導致電路報了之前的小時數(shù),我們通過接入電容來增加LD1所在電路的延遲時間,使置數(shù)先傳到減法器后再有置數(shù)信號的變化。

在LD1的輸出端與計數(shù)器74LS191的置數(shù)管腳之間并聯(lián)一個104電容,注意焊接時使電容管腳與其他管腳不相接,以免發(fā)生短路情況。并聯(lián)電容后再次測試,發(fā)現(xiàn)所有時間的整點報小時數(shù)功能所報聲音數(shù)都正常。

仿廣播電臺報時模塊能夠正常工作。

六、討論、心得 李曉杰:

在本次實驗過程我主要承擔的工作有鬧鐘電路和電源電路的設計,利用Proteus對電路進行仿真并修改電路,協(xié)助進行電路板的安裝,與組員一起進行電路的調試。

在確定實驗項目后,首先對給出的電路原理進行理解掌握。在學習過程中,發(fā)現(xiàn)數(shù)字鐘的顯示是一一分開的,因此每一個個位、十位都可以看成一個單獨的計數(shù)器,而不能整體地看成秒鐘和分鐘是60進制而小時是從1計數(shù)到12的11進制計數(shù)器,因為這樣不利于數(shù)碼管每一位的顯示,超過9的數(shù)無法通過7段譯碼器使數(shù)碼管有顯示數(shù)值。另外,整點報小時數(shù)電路中通過D觸發(fā)器來實現(xiàn)減法計數(shù)器和置數(shù)狀態(tài)的轉換也值得學習。原理部分也加深了我對邊沿觸發(fā)的理解。

在設計鬧鐘電路時,運用了撥碼開關撥二進制數(shù)來實現(xiàn)鬧鐘時間的設定,又用數(shù)值比較器來確定數(shù)字鐘到達了設定時間。在設計過程,要注意TTL門電路中輸入懸空時輸入的是高電平,所以設計電路時要注意添加接地,同時也要加電阻。我們在設計鬧鐘電路的控制開關時經過多次修改,與數(shù)值比較器相連設置時間的撥碼開關電路在此處仿真會出現(xiàn)問題,最終我們確定用兩個撥碼開關一個接電源一個接地實現(xiàn)控制作用。電源電路能使8~12V左右的電壓轉換為穩(wěn)定的5V左右的電壓,提供了穩(wěn)壓電源,因此電源輸入時可能有的變化使提供的電壓造成太大的影響,能保證電路的正常工作。

在電路仿真過程中,我們學習了Proteus軟件的使用。Proteus在繪制出電路原理圖后可以很方便地進行仿真,同時還可以提供激勵電源和虛擬的示波器,方便我們觀察電路中的時序變化圖和仿真的波形圖。在用Proteus仿真振蕩、分頻電路中,發(fā)現(xiàn)晶振不能起振,在網(wǎng)上查詢發(fā)現(xiàn)這個問題很普遍,Proteus仿真振蕩電路是一個短板,我們可以直接設置CD4060的振蕩頻率為32768Hz來實現(xiàn)振蕩電路的觀察,但是此時仿真會提示CPU負載達到99~100%使仿真時間與實際時間相差非常大,時間變化得非常慢,并且在示波器上無法顯示波形。我們通過對顯示出的紅藍塊指示高低電平經過一段時間觀察可以看出能得到1Hz的信號。在后續(xù)仿真中,我們不加入振蕩電路,而通過給予激勵電源來提供輸入信號。在主體電路調試中發(fā)現(xiàn)了小時電路變化至7時就發(fā)生了進位,通過示波器觀察波形發(fā)現(xiàn)因為從7(0111)到8(1000)存在著1變0,0變1的情況使LD瞬間有低電平,而將置數(shù)電路改成在同時滿足1001情況下置數(shù)可以解決問題。后來發(fā)現(xiàn)將7400改為74LS00后就不會存在這個問題。在仿真過程學習了Proteus軟件的使用方法,也對數(shù)字電路的內容加深了理解。軟件的仿真與實際還是存在差別的,并且每個軟件的長處和優(yōu)點都不一樣,我們要根據(jù)電路功能選擇合適的軟件進行仿真。而我們在計數(shù)器的設計時,置數(shù)電路中只考慮置數(shù)數(shù)字的1信號,只將1信號對應的網(wǎng)絡接至與非門而不考慮0信號對應的網(wǎng)絡,是因為計數(shù)是由高到低有順序的,而仿真告訴我們這樣做可能會在實際電路中遇到問題;7400和74LS00也說明這個問題的存在也與不同類型的芯片有關系。

調試過程加深了我對各個芯片作用的理解,也積累了調試和修改電路的經驗。我們在調試中也遇到了很多問題,首先電路在設計繪制時有一網(wǎng)絡名寫錯,在修改時我們將連線斷開后用導線重新連線解決了問題。在實際電路調試中,我們也遇到了競爭冒險的問題,通過增加電容延時的方法來解決問題。在調試過程中,理解了增加并聯(lián)電容通過電容的充放電來延遲電平達到的時間來達到延遲目的。我們也對開關防抖動電路加深了理解,開關防抖動是通過一個RC電路來減輕開關抖動產生的時間很短的脈沖尖刺等造成電路的變化,可以通過R、C來改變時間常數(shù)達到防抖動。

這次實驗幫助我們對數(shù)字電路的知識進行復習和加深理解,數(shù)字電路的理論多數(shù)是邏輯問題,當邏輯正確時,實際電路中會遇到的競爭冒險、開關抖動、尖刺等現(xiàn)象,在實驗過程中更清晰地展現(xiàn)在我們面前,也讓我們掌握對這些問題的解決方法。另外,我覺得我們在設計原理圖和繪制PCB板時對后續(xù)問題的預見和為調試過程做準備的意識有待增強,我們可以提前增加多余的引腳方便我們接示波器等設備對波形進行測量。這是我們需要提高的能力。張晨靖:

通過這次實驗,我學習了中規(guī)模集成電路如何設計制作數(shù)字電路系統(tǒng),了解了數(shù)字鐘的基本功能和擴展功能的設計實現(xiàn)方法,學會使用protuesISIS軟件進行電路的仿真以及仿真出錯后怎樣快速尋找問題原因并進行修調,同時進一步熟練了AD軟件的使用和電路板的安裝調試。

在此次實驗中,我們小組三個組員都有各自的分工,我主要負責答辯ppt的準備、電路的仿真分析和部分電路的修改以及最后的電路調試等。

在進行電路仿真的過程中,由于是第一次使用protues ISIS軟件,我一開始還不太熟悉軟件的操作方法和功能。開始的時候我認為在AD中已經繪制完成的原理圖應當存在某種方法可以直接兼容至ISIS使用而無需重新繪制,后來查詢了各種資料,發(fā)現(xiàn)ISIS的電路圖可以在AD中打開,而AD中的原理圖無法使用ISIS打開,所以最后我們決定重新繪制一遍原理圖。

在protues中畫好原理圖后,我們開始進行電路仿真。但仿真一開始,就立刻出現(xiàn)了問題,電路的分、秒顯示和進位都正確,但是小時的計數(shù)功能在進制卻有錯誤,出現(xiàn)了滿7復0的情況,即狀態(tài)為0→1→2→3→4→5→6→7→10→11→12→0。我們分析錯誤原因,觀察仿真顯示的高低電平,發(fā)現(xiàn)D觸發(fā)器的輸入沒有任何變化,但輸出卻會自行變化,我們知道,因為D觸發(fā)器的下一位輸出狀態(tài)是取決于上一位輸入的,所以對于這一現(xiàn)象的發(fā)生完全不能理解,另外,74191計數(shù)器的狀態(tài)轉換也存在問題,當輸出狀態(tài)達到0111時,下一狀態(tài)就會變成0000,即高位一直無法出現(xiàn)1狀態(tài)。

在請教過老師之后,老師建議我們在仿真電路中添加示波器觀察波形,于是我們在H11(74191計數(shù)器的Q1)、H12(74191計數(shù)器的Q2)、H13(74191計數(shù)器的Q3)和LD四處防止了示波器探針,并再次執(zhí)行仿真,這一次我們通過觀察波形發(fā)現(xiàn)了問題所在。

當0111轉換為1000狀態(tài)時,Q3從0變成1,Q0、Q1、Q2則應“同時”從1變成0,電路中出現(xiàn)了競爭冒險現(xiàn)象,而原本的進位信號是Q3=1,Q0=1,在狀態(tài)改變的過程中出現(xiàn)了7直接進位的情況,而我們之前觀察到的的觸發(fā)器輸入沒有變化,輸出卻發(fā)生了變化的現(xiàn)象也找到了原因,是因為我們開始觀察電平高低變化的方法無法顯示出電路波形的跳變,即當信號快速變化又快速跳回時,肉眼是看不到電平有所變化的,而我們采用示波器就可以很明顯地看到這一現(xiàn)象了。分析出電路問題原因后,我們也很快地找到了解決問題的方法,將原本的進位信號Q3=1,Q0=1改為Q3=1,Q2=0,Q1=0,Q0=1,這樣只有四位到達穩(wěn)定狀態(tài)后,才會產生進位信號,再次仿真就發(fā)現(xiàn)功能已經可以正確實現(xiàn)了。

之后的仿真都比較順利,在獲得了正確的仿真結果后,我們心里也變得有底,覺得電路板焊接完成后應該也不會出現(xiàn)大的問題,但真正安裝完成電路板進行調試時還是出現(xiàn)了一些問題。

調試的第一天上午,我們的電路板的功能基本還正確,但下午回來后再進行調試一段時間后,卻發(fā)現(xiàn)數(shù)字鐘的分突然不顯示了,并且芯片U22發(fā)燙非常嚴重,后來我們找老師更換了一塊芯片,發(fā)現(xiàn)數(shù)字鐘工作一段時間之后芯片還是會微微發(fā)熱,懷疑是電路哪里存在短路問題,但是測量芯片接地和連接VCC的管腳,發(fā)現(xiàn)電壓是正常的,直觀來看電路板的器件焊接也沒有明顯問題,所以一直也沒有找到芯片發(fā)熱的具體原因,好在之后的調試我們會時常留意U22的溫度,沒有再出現(xiàn)嚴重發(fā)燙的問題。

另外數(shù)字鐘還有一個問題,就是整點報時功能不準確,到達1點時會報時12聲,2點會報時1聲,3點會報時2聲等等,以此類推。我們分析認為,出現(xiàn)這種整點不準確的現(xiàn)象,原因應該是邏輯控制電路的與非門延時時間不夠,也產生了競爭冒險現(xiàn)象,查詢資料和講義后我們覺得可以直接接入一個小電容,延長延時獲得正確的報時數(shù),在接入電容之后,這一問題得到了解決。

在板子的裝調過程中,我們發(fā)現(xiàn)了之前電路的設計上存在一些細節(jié)問題,很多實際電路中可能存在的細節(jié)在先前的設計中沒有考慮到。比如部分電容的封裝選擇不合適,導致焊接時接入不便,也影響了電路的美觀,還有校時電路的濾波電容距離主體較遠,對于抖動的消除作用很不明顯,另外,定時電路的撥碼開關排布也很不方便操作,我們定時電路撥碼開關的排布十位個位順序和表示某位數(shù)字的二進制高低位是相反的,導致調節(jié)定時時刻不方便等,這讓我更加深刻地意識到,電路板的設計是一個不斷調整不斷完善的過程,需要考慮到各種實際情況,才能設計出美觀實用的電路板。另外,我們在調試過程中不斷的發(fā)現(xiàn)問題、尋找原因、探索解決方法,進一步完善電路板的功能,這一過程需要足夠的耐心和嚴謹,有時解決一個問題需要嘗試多種方法,尋找最佳方案,才能最終獲得一個功能比較健全的電路板,獲得一個自己滿意的結果。

陳肖葦:

這次實驗主要擔任的工作是原理圖主體部分以及兩個擴展部分的繪制,PCB的全部設計以及修改過程,PCB的安裝與焊接以及電路板的調試幾個過程,下面我講分塊講一下我在幾個方面的心得體會:

PCB版圖的設計與修改 為了節(jié)約時間考慮,所以在原理圖繪制完成之后,PCB版圖就和原理圖的仿真同步進行了,但是由于一些細節(jié)上的原因,導致提前進行版圖設計并沒有很好的提高時間利用率。

PCB版圖的繪制主要包括了元器件的導入與檢查,排版,手動布線與自動布線,手動布線更改,以及原理圖更改邏輯設計之后的大改和經過老師檢查之后的大改幾部分組成。

首先第一步就是進行元器件的導入,但是導入之后,經過元器件的對比檢查之后,發(fā)現(xiàn)一些元器件的封裝不對,或者是一些元器件甚至沒有選擇封裝,于是經過了更改之后,繼續(xù)進行下面的工作。

接下來,進行的是元器件的排版工作。首先最容易想到的就是將數(shù)碼管顯示器即數(shù)字鐘的顯示部分放到板子的最上方,這樣可以一眼就看到整個電路的工作性質;其次就是想到了要將手動校時和鬧鐘開關等按鍵以及開關放在板子的最下面,方便進行操作;至于其它的部分,主要就是為了美觀進行了一個相對整齊的排布,同時也留出了一定的空間,為以后的布線留下余地。當然,中間這一步并沒有按照功能排布,僅僅是按照美觀排布,為版子的功能實現(xiàn)埋下了隱患(雖然這個隱患經過老師指導后進行了大改,已經基本排除,但是修改的過程也是相當?shù)膹碗s,以后盡可能要做到一步到位);其次,經過這一次的實踐,發(fā)現(xiàn)當初元器件之間留下的空間對于這么大的一個工程來說還是相當有限的,以后對于空間要有更合理的把握。

圖1:main_saved2(排好版)接下來,就是進行布線了。因為上一次的電子工程訓練,我全部都是手動布的線,所以這一次是第一次嘗試自動布線,結果發(fā)現(xiàn)自動布線速度這么快,看起來結果也很可靠,所以我還有一點驚喜,因為上一次布線所耗費的時間實在是太久了,下面就是布線之后的版圖。

圖2:main_saved3(第一次自動布線)然而這樣的自動排版的最大的問題就是電源和地線過細,而且又不能直接批量修改,因為在內部的地方,直接修改會導致電路互聯(lián),引起短路。所以,我參考了一下別人設計的版圖,于是設計成了將電源和地在外圈周圍布線,然后通過橫向的布線將電源和地導入到所需位置,經修改后的電路板如下:

圖3:電源和地布完

上面這塊板子算是我們第一版的最終版了,這是基于我們設計是正確的前提。幾乎就在我布完線的同時,曉杰她們的仿真結果出來了,小時的翻轉是不正確的,所以我們在討論了之后,對小時控制電中的D觸發(fā)器的輸入邏輯進行了修改,然后加入了兩個芯片,分別是74LS04的非門和74LS20的與非門。因為電路板內部沒有空隙,所以考慮將兩片芯片放在了右下角單獨開出的一片小區(qū)域里。如下圖:

圖4:邏輯錯誤修改 修改完邏輯錯誤之后就產生了我們電路的第二版的最終版,然后就拿去給老師檢查我們的板子有沒有什么問題。經過檢查之后,老師給我們指出了兩個比較重要的設計失誤,一個就是電源的四個濾波電容離電源太遠,效果不好,二是晶振和14次分頻器距離太遠。于是回去之后我就將這兩部分電路單獨拿了出來,放在了右上方,改正了電路設計沒有按功能排在一起的失誤。修改后的部分如下圖:

圖5:修改后的電源電路

圖6:修改后的晶振電路 經過以上三大步的修改,在對一些小的地方自動布線沒有解決的錯誤進行修改之后,產生了我們上交的電路的最終版,如下

圖7:最終上交版

在這份最終上交版中,經過老師的檢查,還是發(fā)現(xiàn)了四處錯誤,分別是兩根連線沒有連上,以及兩個過孔沒有打通。這既是我當時檢查不夠仔細導致的問題,同時也是我不會使用DRC的原因,在電路板發(fā)下來之后,經過向老師請教,知道了如何用軟件檢查布線的結果,即DRC(design rule check 設計規(guī)則檢查),極大的減少了以后出現(xiàn)這種細節(jié)性錯誤的可能性,也算是一種進步吧。

這塊PCB板總共花了我一天的時間進行排版和布線,然后花了整整三天的時間,更改銅線的粗細,修改電源和晶振電路,然后還修改了四十多處沒連上或者過孔沒打通的錯誤,不得不說PCB的設計是一個集技術與耐心于一體的工作。四天的時間里讓我對PCB的設計產生了更深刻的認識,包括電源和地的布線方式,模塊化設計的方法以及DRC確認設計等等,同時也切身的體會到了自己經驗的不足,也有了以后努力的方向。

調試過程中的經驗談

調試的具體過程已經附在上文的安裝與調試環(huán)節(jié)了,所以在此就不再贅述了,這里簡單講一下在調試過程中所發(fā)現(xiàn)的一些設計上的注意事項以及小組成員溝通之間的注意事項。

在這次的調試中發(fā)現(xiàn)的主要的設計錯誤和不合理的地方有網(wǎng)絡名在組員的原理圖更改之后沒有更新,鬧鐘的數(shù)值比較器比較的開關和計數(shù)器的二進制順序相反,沒有設計自啟動,以及整點報時功能存在競爭冒險現(xiàn)象,以及按鈕開關存在較大不確定性等問題。

其中,網(wǎng)絡名的問題屬于組內成員溝通問題,因為坐在一起,我們此次的交流基本上就是將原理圖直接發(fā)給對方,然后口頭告訴對方所更改的地方,然后對方再將所修改的地方直接復制過去。這種交流方式的優(yōu)點當然就是交流效率非常高,但是缺點就是如果一次性有太多修改的時候,尤其是只是更改網(wǎng)絡名,而沒有更改其他設計的時候,容易被忽視。建議以后如果需要一個小組一起努力完成一個項目的話,每次都應該將自己修改過的地方寫成文檔,讓其他成員按照文檔修改,而且這樣以后在調試的時候也有可以參考的文獻。

而對于數(shù)值比較器的問題,設計的時候是按3210的數(shù)序進行高低比較的,但是撥碼開關上的順序是1234(錯位的以為因為不影響正常的大腦譯碼,所以不考慮,即對人腦來說不論是3210,還是4321只要是連續(xù)的四位數(shù),結果都是一樣的),因此出現(xiàn)的問題就是邏輯上的高低和物理上的高低相反,因此對于單個撥碼開關使用的時候,最高位在右邊,要從右向左讀數(shù),增加了使用難度,而讓用戶違反常規(guī)思維使用,讓用戶適應產品的做法,是一款產品設計的非常大的缺陷,這也是以后在設計電子產品的時候要考慮的重要問題——在功能以及價格相同的時候,用戶體驗往往決定了產品的出路。

圖8:撥碼開關的設計問題

至于沒有設計自啟動,也是一個很嚴重的問題,雖說剛通電的時候,數(shù)字中可以處在任何有用的狀態(tài),但有時候進去就是10:62,這樣還要通過校時30多秒才能進入正常的循環(huán),這也是一個弊端。鑒于修改自啟動問題需要對整個電路的邏輯進行修改,工作量很大,而且對電路整體功能影響不大,所以這一問題我們小組暫未修改,且經過所有其他調整之后,一般開機后會處于10:00(不穩(wěn)定),已經不需要很長的校時調整。

至于整點報時不準確的問題,開始的時候我們以為是計數(shù)器少數(shù)了一個,或者是和電臺報時重疊。但我仔細考慮了一下,認為事實并不是這樣,因為怎么想也不覺得每次計數(shù)器都會少數(shù),原因肯定在輸入數(shù)據(jù)部分。結果接下來就發(fā)現(xiàn)了1點的時候報時是響12下,于是,我立馬確定了錯誤是跟我想的一樣,存在于輸入部分,即輸入部分存在競爭冒險——時鐘脈沖到達時,對應的譯碼器因為眾多門電路的延時還沒有將新的狀態(tài)傳遞過來,減法計數(shù)器的數(shù)據(jù)輸入端還是上一個狀態(tài),然后當時鐘到達時,置入了上一個狀態(tài),所以才存在報時的錯位現(xiàn)象。修改的關鍵就是延遲時鐘信號的到達,修改方案有加兩級反相器或者加上一個電容進行延時,因在調試的時候加入反相器過于麻煩,選擇了第二個方案,即加上一個電容進行延時。經過修改之后,整點報時功能正常,符合設計要求。

圖9:整點報時的數(shù)據(jù)輸入端最多經過了三段延時

最后,不得不說這么大的一個項目真的是對自己的一個鍛煉,不僅僅開始的時候要進行邏輯設計和改錯,要耗費那么長的時間進行一個PCB的設計和修改,要把一塊漏洞百出的電路調試到正常狀態(tài),無論哪一步都很燒腦子,但是無論哪一步收獲都很大。

我還要感謝我的兩個可愛的組員,沒有她們協(xié)助和付出,憑我一個人,很難在這么短的時間內完成這么一個產品設計開發(fā)的全過程。還要感謝王老師的指導,指出了我們電路設計的不合理的地方,并告訴了我們修改方式,并且因為之前我不會DRC,在板子加工之前還幫我們修正了四處設計錯誤,使我們調試過程中的工作量極大的降低。

附錄:原始調試記錄

調試日期:2016/7/17 早上來到,安裝好芯片和撥碼開關之后,我們就安上了電源,開始了調試過程。? UH2引腳錯誤(沒錯,是兩個等效的網(wǎng)絡)

? 開關與計數(shù)器大小順序,對應撥碼開關右側為高位(對應問題)? H1H2對應順序等

? 開關沒有防抖動,長按可正常調時(大部分),短按不確定 ? 6,9不好看

? 電臺報時和整點報時重疊 ? 沒有設計自啟動

? 網(wǎng)絡名不對(LD與LD1,外加飛線)下午調試:

1. 長按的不確定性

2. 分鐘和小時按鍵互相影響 3. 版子震動會改變狀態(tài)

4. 分鐘不顯示——390發(fā)燙——按鍵失靈——整點報時一直響——換掉芯片,恢復正常。5. 整點報時少一聲(或許是重疊)

調試日期:2016/7/18 接著昨天的進行調試,認為需要修改的主要存在以下三個方面 ? U22即74LS390存在發(fā)熱現(xiàn)象

? 整點報時存在錯位現(xiàn)象(加電容延時)

? 按鈕開關存在抖動現(xiàn)象,長按正常,短按不確定(懷疑是版子震動問題,換成撥碼開關并固定住版子,功能正常)

設計的不合理:

撥碼開關方向,按鈕開關,鬧鐘開關

因未出現(xiàn)亂碼問題,所以開關上沒有出現(xiàn)對應功能的提示,這也是一個很大的遺憾。

AD布線

1.交互式布線:小鍵盤上的星號;或者shift+ctrl+滾輪 2.先自動布線,后手動布線 3.電源和地繞圈布線

1.PCB板留白問題——方便修改

2.電源和地的雙層布線問題——分不同層,同時繞圈,區(qū)分縱橫

3.模塊化設計的重要性——同一功能的元件盡量放在一起,尤其是電源,晶振等地方的電容,不然就沒用惹。

4.布線查錯:design——DRC——右下角message——下方窗口

小組分工:

李曉杰:答辯展示,鬧鐘電路原理圖繪制,電路行為仿真,原理圖修改,電路調試 張晨靖:答辯PPT制作,電路行為仿真,原理圖修改,電路調試 陳肖葦:答辯展示,原理圖主體部分及整點報時和仿電臺報時部分繪制,PCB排版布線,PCB版修改,PCB版焊接,電路調試

第五篇:北航_電子實習_數(shù)字部分實驗報告

報告名稱:電子電路設計訓練數(shù)字部

學院:儀器科學與光電工程學院

目錄

實驗報告概述:...............................................................................................................3

一、選做實驗總結:.................................................................................................3(1)補充練習2:樓梯燈設計.............................................................................3(2)練習題6:用兩種不同的設計方法設計一個功能相同的模塊,完成4個數(shù)據(jù)的冒泡排序...................................................................................................................5(3)(4)(5)

二、(1)(2)(3)(4)(5)練習題3:利用10MB的時鐘,設計一個單周期形狀的周期波形..................6 練習題4:運用always塊設計一個8路數(shù)據(jù)選擇器......................................6 練習題5:設計一個帶控制端的邏輯運算電路.............................................7 練習一:簡單組合邏輯設計.........................................................................7 練習三:利用條件語句實現(xiàn)計數(shù)分頻失序電路.............................................7 練習四:阻塞賦值與非阻塞賦值得區(qū)別.......................................................8 練習五:用always塊實現(xiàn)較復雜的組合邏輯電路........................................8 練習六:在verilog HDL中使用函數(shù)..............................................................9 必做實驗總結:.................................................................................................7(6)練習七:在verilog HDL中使用任務..............................................................9(7)練習八:利用有限狀態(tài)機進行時許邏輯設計..............................................10

三、實驗總結及體會:............................................................................................10

四、選作程序源代碼...............................................................................................11(1)練習題3:利用10MB的時鐘,設計一個單周期形狀的周期波形................11(2)練習題4:運用always塊設計一個8路數(shù)據(jù)選擇器....................................12(3)練習題5:設計一個帶控制端的邏輯運算電路...........................................13(4)練習題6:用兩種不同的設計方法設計一個功能相同的模塊,完成4個數(shù)據(jù)的冒泡排序.................................................................................................................14(5)補充練習2:樓梯燈設計...........................................................................16

圖表目錄

Figure 1 樓梯燈任務4..............................................................................................5 Figure 2 組合邏輯.....................................................................................................5 Figure 3 時序邏輯.....................................................................................................6 Figure 4 周期波形....................................................................................................6 Figure 5 8路數(shù)據(jù)選擇器..........................................................................................6 Figure 6 邏輯運算電路.............................................................................................7 Figure 7 組合邏輯設計.............................................................................................7 Figure 8 計數(shù)分頻時序電路......................................................................................8 Figure 9 阻塞賦值與非阻塞賦值得區(qū)別....................................................................8 Figure 10 always塊組合邏輯電路.............................................................................9 Figure 11 使用函數(shù)..................................................................................................9 Figure 12 使用任務................................................................................................10 Figure 13 有限狀態(tài)機............................................................................................10

電子電路設計訓練(數(shù)字部分)實驗報告

實驗報告概述:

本實驗報告為對四次電子電路設計訓練(數(shù)字部分)實驗的總結,主要包括以下四部分:

第一部分為選做實驗總結,主要包括每個選擇實驗的設計思路、運行結果、注意事項、心得體會;

第二部分為必做實驗總結,包括運行結果、總結、心得體會; 第三部分為課程總結和體會,是對全部實驗及課程的總結; 第四部分為選做實驗部分源代碼;

一、選做實驗總結:

(1)補充練習2:樓梯燈設計

設計思路:

本題給出樓梯的運行規(guī)則,并分別給與四個相應任務進行編程設計,考慮到程序的通用性及FPGA高速并行處理的優(yōu)點,主要思路如下:

根據(jù)運行規(guī)則(8s內和大于8s等),對每個燈的相應狀態(tài)進行編程,設計時序邏輯及有限狀態(tài)機;由于在總體上看,每個燈的狀態(tài)變化相對獨立(只有一個人上樓除外),故對每個燈編程所得到的程序代碼可通用于其它燈(只需要改變相應寄存器定義即可),此即為燈控制模塊,對4個不同的任務,只需設計其它部分判斷邏輯,即可完成任務要求;如此設計,可大大提高程序設計效率、易用性,同時如果面對更多的燈控制需要,也可快速進行修改部署。

下面針對不同任務給出不同處理方法:

任務1/任務3:由于任務1和任務3在定義上有很大相同點,比如同樣是一個人走樓梯,若不考慮一個人同時在兩層使兩個燈亮,則事實上就是一個人始終只能使一盞燈亮,亮起后盞時熄滅前一盞;在保持每個燈控制模塊不改變的情況下,利用非阻塞賦值,判斷該人目前所處狀態(tài)及位置(上樓/下樓,樓層),同時規(guī)定輸出,同時只能亮一盞燈;

任務2:由于輸入信號已被賦值給寄存器變量,此時只需在系統(tǒng)時鐘作用下對寄存器中輸入變量進行判斷,滿足要求即為正確信號,再輸入燈控制模塊;

任務4:由于已有燈控制模塊,此時只需結合任務2防抖電路,直接輸出狀態(tài)信號所對應的結果即可;

(單個)燈控制模塊代碼:

always @(posedgeclk)begin signal_test[0]<=signal[0];if(signal_test[0]==signal[0])

begin

i0=i0+1;

end else

i0=0;if(i0>=5)

begin signal_reg[0]=signal[0];

end

if(state0==light_off)

begin

k0=0;

k0a=0;

k0b=0;

end else

k0=k0+1;

case(signal_reg[0])

1: if(!reset)

begin

state0=light_off;

end

else

begin

k0a=k0a+1;*分欄顯示,詳細代碼見報告第四部分;

運行結果:

if((k0a >= 79)&&(k0<=119))

state0=light_on12;

else

state0=light_on8;

end

0:if(!reset)

begin

state0=light_off;

end

else if(k0a==0)

state0=light_off;endcase

case(state0)

light_off:light_reg[0]=0;

light_on8:

begin light_reg[0]=1;

if(k0b==79)

state0=light_off;

else

k0b=k0b+1;

end

light_on12:

begin

light_reg[0]=1;

if(k0b==119)

state0=light_off;

else

k0b=k0b+1;

end endcase end

Figure 1樓梯燈任務4

Figure 2樓梯燈信號防抖部分放大結果

(2)練習題6:用兩種不同的設計方法設計一個功能相同的模塊,完成4個數(shù)據(jù)的冒泡排序

設計思路:

純組合排序中,設計sort排序任務對數(shù)列中的元素進行排序,通過調用任務實現(xiàn)對不同元素的排序功能,并將排序完成的結果直接輸出;

冒泡排序即為每次將兩個相鄰數(shù)進行比較,大的數(shù)后“浮”,每一趟比較獲得較大值并置于數(shù)列末位;

根據(jù)題目要求,每比較一次,即將調換位置的數(shù)字進行輸出;同樣設計sort任務,對兩數(shù)字進行比較并排序;

通過排序控制和邏輯判斷代碼,控制sort任務的有效調用,進而實現(xiàn)冒泡排序功能;

根據(jù)設計要求,程序中只設計有一個輸入端口,通過對輸入信號不斷移位,模擬串并行信號轉換,從而完成穿行輸入,并行比較的功能;

運行結果:

Figure 3組合邏輯

Figure 4時序邏輯

(3)練習題3:利用10MB的時鐘,設計一個單周期形狀的周期波形

設計思路:

對輸入時鐘進行計數(shù),通過if語句進行判斷,若滿足判斷條件,則按要求改變輸出信號;如此循環(huán)往復,即可產生所需單周期形狀的周期波形;

運行結果:

Figure 5周期波形

(4)練習題4:運用always塊設計一個8路數(shù)據(jù)選擇器

設計思路:

利用define宏定義預先定義,利于后期程序功能的擴充和調整;同時利用case語句判斷信號,并將相對應信號輸出,進而完成系統(tǒng)目標功能;

運行結果:

Figure 68路數(shù)據(jù)選擇器

(5)練習題5:設計一個帶控制端的邏輯運算電路

設計思路:

設計三個函數(shù)分別完成三個要求的計算,通過函數(shù)調用實現(xiàn)相應功能;設計的控制端為同步控制端,需要通過時鐘信號從而進行檢測復位;

運行結果:

Figure 7邏輯運算電路

二、必做實驗總結:

(1)練習一:簡單組合邏輯設計

語法要點:

Assign語句構成的組合邏輯電路,若輸入a,b改變,則輸出equal;

利用assign equal=(a==b)?1:0語句,可同時完成判斷賦值功能,大大減少代碼量; 運行結果:

Figure 8組合邏輯設計

(2)練習三:利用條件語句實現(xiàn)計數(shù)分頻時序電路

語法要點:

此程序主要練習了對輸入時鐘進行計數(shù),判斷,從而實現(xiàn)分頻輸出;

在實際應用中,可以通過該方式獲得不同占空比或頻率的信號供系統(tǒng)使用;

課本程序問題修改:

課本測試程序中未定義F10M_clk變量,故應將測試程序fdivision_TOP中出現(xiàn)的該變量改為已定義的F10M;

運行結果:

Figure 9計數(shù)分頻時序電路

(3)練習四:阻塞賦值與非阻塞賦值的區(qū)別

語法要點:

阻塞賦值呈現(xiàn)的是一種立即賦值的狀態(tài),即同一個變量在前后語句中用到,語句間的順序會影響到輸出的結果;

非阻塞賦值對每一個塊中語句間的相對位置沒有要求,只在該塊語句全部運行完成后同一進行賦值;

運行結果:

Figure 10阻塞賦值與非阻塞賦值得區(qū)別

(4)練習五:用always塊實現(xiàn)較復雜的組合邏輯電路

語法要點:

Always@實現(xiàn)了對若干輸入信號的敏感,即只要有一個信號改變,輸出即改變; 通過case語句,實現(xiàn)了選擇性輸出,對不同功能進行綜合;

運行結果:

Figure 11 always塊組合邏輯電路

(5)練習六:在verilog HDL中使用函數(shù)

語法要點:

函數(shù)最基本功能即實現(xiàn)計算,通過對不同函數(shù)定義,實現(xiàn)不同的計算功能;同時定義函數(shù),可以利于在該模塊外對某函數(shù)功能的調用,增強了程序的通用性和功能性,同時可以使程序結構更加清晰,易讀易懂;

運行結果:

Figure 12使用函數(shù)

(6)練習七:在verilog HDL中使用任務

語法要點:

相比函數(shù),任務的調用功能更強大,可以實現(xiàn)運算并輸出多個結果的功能,同時任務并不返回計算值,只通過類似C語言中的形參和實參的數(shù)據(jù)交換,實現(xiàn)功能;任務的定義和調用可

以只程序結構更明晰,功能更豐富;

程序中通過對比較順序的設計,實現(xiàn)了對4個數(shù)字,進行5次比較即可成功完成排序功能的目的;

運行結果:

Figure 13使用任務

(7)練習八:利用有限狀態(tài)機進行時許邏輯設計

語法要點:

設計有限狀態(tài)機主要需要進行狀態(tài)分配,狀態(tài)編碼,然后利用case語句進行判斷,從而改變相應狀態(tài),實現(xiàn)狀態(tài)轉移和輸出變換;

對涉及時鐘的一般時序邏輯,主要運用非阻塞(〈=)賦值完成功能;

課本程序問題修改:

在modelsim 10中,測試文件時鐘無法仿真,故只能保持與課本測試文件相同的思路,重新編寫測試文件,仿真結果如下,與課本完全一致;

運行結果:

Figure 14有限狀態(tài)機

三、實驗總結及體會:

通過半個學期的學習和實驗,我初步掌握了verilogHDL語言和modelsim軟件,可以通過編程實現(xiàn)數(shù)字電路基礎中幾乎全部簡單邏輯芯片的功能,同時可以用編程實現(xiàn)相對復雜一點的邏輯電路和功能.總體而言,四次實驗內容相對簡單,幾乎是在課后實驗的基礎上稍稍做了提高,以利于我們掌握并鞏固課上學習的知識。有幾個課后實驗內容,按照程序輸入后無法進行波形仿真,在改正一些錯誤定義,或者重寫測試程序后,都能順利完成實驗任務。通過實驗上機,鞏固了我們的理論知識,加強了實際運用的能力,對整個課程的學習起到了很好的作用。

最后一個補充實驗相對復雜,但實現(xiàn)的方法卻可以有很多,在實際寫代碼前進行構思分析,在這個實驗中顯得尤為重要,例如,如何發(fā)揮FPGA并行處理的能力,如何提高程序的通用性,能夠將所設計的模塊結構同時完成四個任務,如何設計代碼提高效率的同時節(jié)省硬件資源??都是在設計構思中不得不考慮的環(huán)節(jié),因此,通過最后一個實驗的設計,能夠很好的鍛煉我們解決實際生活中問題的能力,使我們對所學的知識能夠真正有所使用。

運用verilog HDL語言進行硬件電路設計,已成為未來電路設計的主要趨勢,學習這門語言及相應軟件,能夠幫助我們在以后的學習及科研中,大大提高我們的效率,使我們能夠快速搭建實驗平臺,完成目標功能。

雖然8周的課,時間相對較短,但通過這8周的學習,我對verilog HDL語言有了全面的認識,對基本的語法都有了很好的掌握,雖然時間有限,不能對verilog HDL語言有更深入的認識,但通過這8周的學習,我為我將來進一步深化使用這個工具打下了堅實的基礎。

四、選作程序源代碼(1)練習題3:利用10MB的時鐘,設計一個單周期形狀的周期波形 主程序:

module fdivison_2(RESET,F10M,clk_out,j);input F10M,RESET;output clk_out;output[12:0] j;

regclk_out;

reg[12:0] j;always @(posedge F10M)begin if(!RESET)begin clk_out<=0;j<=0;end

else begin if(j==199)

begin

j<=j+1;clk_out<=1;

end

else if(j==299)

begin

j<=j+1;clk_out<=0;

end

else if(j==499)

j<=0;

else j<=j+1;end end

endmodule

output[3:0] out;

reg[3:0] out;

always @(a or b or c or d or e or f or g or h or selet)

begin

case(selet)

`s1:out=a;

`s2:out=b;

`s3:out=c;

`s4:out=d;

`s5:out=e;

`s6:out=f;

`s7:out=g;

`s8:out=h;default:out=4'hz;endcase

end

endmodule

測試程序: `timescale 1 ns/1 ns

module muxtest;

wire[3:0] out;reg[3:0] a,b,c,d,e,f,g,h;reg[2:0] selet;

parameter times1=8;

initial

begin

a=0;

b=1;

c=2;d=3;

e=4;

f=5;

g=6;

h=7;selet=3'h0;

repeat(5)測試程序:

`timescale 1ns/100ps `define clk_cycle 50 module TOP_2;reg F10M,RESET;wire clk;wire[12:0] j;always #`clk_cycle

F10M = ~F10M;

initial

begin

RESET=1;

F10M=0;

#100 RESET=0;

#100 RESET=1;

#10000 $stop;

end

fdivison_2 fdivison_2(.RESET(RESET),.F10M(F10M),.clk_out(clk),.j(j));

endmodule

(2)練習題4:運用always塊設計一個8路數(shù)據(jù)選擇器

主程序: `define s1 3'd0 `define s2 3'd1 `define s3 3'd2 `define s4 3'd3 `define s5 3'd4 `define s6 3'd5 `define s7 3'd6 `define s8 3'd7

module mux_8(a,b,c,d,e,f,g,h,selet,out);

input[3:0] a,b,c,d,e,f,g,h;

input[2:0] selet;

begin

#100 selet=selet+1;

end

selet=0;repeat(times1)

begin

#100 selet=selet+1;

a={$random}%16;

b={$random}%16;

c={$random}%16;

d={$random}%16;

e={$random}%16;

f={$random}%16;

g={$random}%16;

h={$random}%16;

end

#100 $stop;

end

mux_8 m0(a,b,c,d,e,f,g,h,selet,out);endmodule

(3)練習題5:設計一個帶控制端的邏輯運算電路

主程序:

`define sqrR 4'd0 `define triR 4'd0 `define factR 4'd0

module sqr(a,reset,clk,sqr_out,tri_out,fact_out);

input[3:0] a;input reset,clk;output[7:0] sqr_out,tri_out,fact_out;reg[7:0] sqr_out,tri_out,fact_out;

always @(posedgeclk)begin

if(!reset)

{sqr_out,tri_out,fact_out}={`sqrR,`triR,`factR};

else

begin

sqr_out=sqr_cal(a);tri_out=tri_cal(a);fact_out=fact_cal(a);

end end

function[7:0] sqr_cal;

input[3:0] a;

begin sqr_cal=a*a;

end endfunction

function[7:0] tri_cal;

input[3:0] a;

begin tri_cal=a*a*a;

end endfunction

function[7:0] fact_cal;

input[3:0] a;

begin

if(a>5)fact_cal=0;

else

begin

case(a)

0:fact_cal=1;

1:fact_cal=1;

2:fact_cal=2;

3:fact_cal=6;

4:fact_cal=24;

5:fact_cal=120;endcase

end

end endfunction

endmodule

測試程序:

`timescale 1 ns/100 ps `define clk_cycle 50

module sqrTEST;

reg[3:0] a,i;regreset,clk;

wire[7:0] sqr_out,tri_out,fact_out;

initial

begin clk=0;

a=0;

reset=1;

#100 reset=0;

#100 reset=1;

for(i=0;i<=6;i=i+1)

begin

#200 a=i;

end

#100 $stop;

end

always #`clk_cycleclk=~clk;

sqr m(a,reset,clk,sqr_out,tri_out,fact_out);

endmodule

(4)練習題6:用兩種不同的設計方法設計一個功能相同的模塊,完成4個數(shù)據(jù)的冒泡排序

組合邏輯實現(xiàn)程序:

module bub(ai,bi,ci,di,ao,bo,co,do);

input[7:0] ai,bi,ci,di;output[7:0] ao,bo,co,do;reg[7:0] ao,bo,co,do;reg[7:0] ar,br,cr,dr;reg[3:0] n;

parameter so=4;

//

always @(ai or bi or ci or di)begin

{ar,br,cr,dr}={ai,bi,ci,di};

for(n=so;n>1;n=n-1)

//

bb(ar,br,cr,dr,n);

{ao,bo,co,do}={ar,br,cr,dr};end

task bb;

// inout[7:0] x1,x2,x3,x4;

input[3:0] n;

// reg[7:0] temp;reg[3:0] s;

if(n>0)

for(s=1;s

begin

case(s)

1:sort2(x1,x2);2:sort2(x2,x3);

3:sort2(x3,x4);endcase

end endtask

task sort2;inout[7:0] x,y;reg[7:0] temp;

if(x>y)

begin

temp=x;

x=y;

y=temp;

end endtask

endmodule

組合邏輯測試程序: `timescale 1 ns/100 ps

module bubTEST;reg[7:0] ai,bi,ci,di;wire[7:0] ao,bo,co,do;

initial

begin ai=0;bi=0;ci=0;di=0;

repeat(4)

begin

#100 ai={$random}%256;

bi={$random}%256;

ci={$random}%256;

di={$random}%256;

end

#100 $stop;

end

bub m0(ai,bi,ci,di,ao,bo,co,do);

endmodule

時序邏輯實現(xiàn)程序:

module bub_1(in,clk,ar,br,cr,dr,ao,bo,co,do);

input[7:0] in;input clk;output[7:0] ao,bo,co,do;output[7:0] ar,br,cr,dr;reg[7:0] ao,bo,co,do;reg[7:0] ar,br,cr,dr;reg[3:0] n,s,q;

parameter so=4;

initial

begin

n=0;

s=0;

q=0;

end

always @(posedgeclk)begin

if(n<=so)

begin

n=n+1;ar<=in;br<=ar;cr<=br;dr<=cr;

end

if(n==so+1)

begin

n<=so+2;

s<=so;

q<=1;

end

if(s>1)

begin

{ao,bo,co,do}<={ar,br,cr,dr};

if(q

begin

case(q)

1:sort2(ar,br);

2:sort2(br,cr);

3:sort2(cr,dr);endcase

q<=q+1;

end

else

begin

s<=s-1;

q<=1;

end

end

end

task sort2;inout[7:0] x,y;reg[7:0] temp;

if(x>y)

begin

temp=x;

x=y;

y=temp;

end endtask

endmodule

時序邏輯測試程序: `timescale 1 ns/100 ps

module bubTEST_1;reg[7:0] in;regclk;

wire[7:0] ao,bo,co,do,ar,br,cr,dr;

initial

begin clk=0;

in=0;

begin

repeat(4)

#100 in={$random}%256;

end

#100 $stop;

end

always #50 clk=~clk;

bub_1 m0(in,clk,ar,br,cr,dr,ao,bo,co,do);

endmodule

(5)補充練習2:樓梯燈設計 主程序:

module final2(signal,reset,clk,light);

input[2:0] signal;

input reset,clk;

output[2:0] light;

reg[2:0]

signal_reg,light_reg,light_test,signal_test;

reg[11:0] k0,k1,k2,k0a,k1a,k2a,k0b,k1b,k2b;

reg[1:0] state0,state1,state2;

reg[3:0] i0,i1,i2;

parameter light_off=2'b00,light_on8=2'b01,light_on12=2'b10;initial begin

k0=0;k1=0;k2=0;

k0a=0;k1a=0;k2a=0;

k0b=0;k1b=0;k2b=0;

i0=0;i1=0;i2=0;light_reg=3'b000;

state0=light_off;

state1=light_off;

state2=light_off;signal_reg=0;signal_test=signal;end

//

//

always @(posedgeclk)begin

signal_test[0]<=signal[0];if(signal_test[0]==signal[0])

begin

i0=i0+1;

end else

i0=0;if(i0>=5)

begin

signal_reg[0]=signal[0];

end

if(state0==light_off)

begin

k0=0;

k0a=0;

k0b=0;

end else

k0=k0+1;

case(signal_reg[0])

1: if(!reset)

begin

state0=light_off;

end

else

begin

k0a=k0a+1;

if((k0a >= 79)&&(k0<=119))

state0=light_on12;

else

state0=light_on8;

end

0:if(!reset)

begin

state0=light_off;

end

else if(k0a==0)

state0=light_off;endcase

case(state0)

light_off:light_reg[0]=0;

light_on8:

begin light_reg[0]=1;

if(k0b==79)

state0=light_off;

else

k0b=k0b+1;

end

light_on12:

begin light_reg[0]=1;

if(k0b==119)

state0=light_off;

else

k0b=k0b+1;

end endcase end

always @(posedgeclk)begin

signal_test[1]<=signal[1];if(signal_test[1]==signal[1])

begin

i1=i1+1;

end else

i1=0;

if(i1>=5)

begin

signal_reg[1]=signal[1];

end

if(state1==light_off)

begin

k1=0;

k1a=0;

k1b=0;

end else

k1=k1+1;

case(signal_reg[1])

1: if(!reset)

begin

state1=light_off;

end

else

begin

k1a=k1a+1;

if((k1a >= 79)&&(k1<=119))

state1=light_on12;

else

state1=light_on8;

end

0:if(!reset)

begin

state1=light_off;

end

else if(k1a==0)

state1=light_off;endcase

case(state1)

light_off:light_reg[1]=0;

light_on8:

begin light_reg[1]=1;

if(k1b==79)

state1=light_off;

else

k1b=k1b+1;

end

light_on12:

begin light_reg[1]=1;

if(k1b==119)

state1=light_off;

else

k1b=k1b+1;

end endcase end

//

// always @(posedgeclk)begin signal_test[2]<=signal[2];if(signal_test[2]==signal[2])

begin

i2=i2+1;

end else

i2=0;if(i2>=5)

begin signal_reg[2]=signal[2];

end

if(state2==light_off)

begin

k2=0;

k2a=0;

k2b=0;

end else

k2=k2+1;

case(signal_reg[2])

1: if(!reset)

begin

state2=light_off;

end

else

begin

k2a=k2a+1;

if((k2a >= 79)&&(k2<=119))

state2=light_on12;

else

state2=light_on8;

end

0:if(!reset)

begin

state2=light_off;

end

else if(k2a==0)

state2=light_off;endcase

case(state2)

light_off:light_reg[2]=0;

light_on8:

begin light_reg[2]=1;

if(k2b==79)

state2=light_off;

else

k2b=k2b+1;

end

light_on12:

begin light_reg[2]=1;

if(k2b==119)

state2=light_off;

else

k2b=k2b+1;

end endcase

casex(light_reg)

3'b000:light_test=000;

3'b001:light_test=001;

3'b01x:light_test=010;

3'b1xx:light_test=100;endcase end

assign light=light_test;endmodule

測試程序:

`timescale 10ms/10ms

module final_TOP2;reg[2:0] signal;regclk,reset;

wire[2:0] light;

initial begin clk=0;

reset=1;

#2 reset=0;

#10 reset=1;

#10 signal=3'b111;

#10 signal=3'b000;

#900 signal=3'b111;

#100 signal=3'b000;

#900 signal=3'b011;

#100 signal=3'b000;

#900 signal=3'b001;

#900 signal=3'b000;

#100 $stop;end

always #5 clk=~clk;

final2 m(signal,reset,clk,light);endmodule

下載數(shù)字電子技術設計性實驗報告word格式文檔
下載數(shù)字電子技術設計性實驗報告.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現(xiàn)有涉嫌版權的內容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據(jù),工作人員會在5個工作日內聯(lián)系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    電子支付實驗報告

    《電子支付與安全》課程實驗 報告書 合肥工業(yè)大學管理學院 電子商務13-1班 2013213640沈志 1 實驗目的 本實驗是課程《電子支付與安全》的重要組成部分,通過讓學生進行網(wǎng)......

    電子實驗報告要求

    電子實驗報告要求 1. 實驗報告必須用實驗報告紙?zhí)顚懀▓蟾婕埌嗉壗y(tǒng)一復印,人手一份) 2. 實驗報告的內容包括: (1) 實驗目的 (2) 實驗內容 (3) 實驗儀器 (4) 實驗原理 (5) 實驗結果分析(重點)......

    電子測量實驗報告

    電子測量調研報告 題目: 電子測量技術發(fā)展與儀器姓 名:學 院: 信息科學技術學院 專 業(yè): 班 級: 學 號: 2013年 6月16日 電子測量技術發(fā)展與儀器 摘要::科學技術的不斷發(fā)展促進了......

    電力電子實驗報告

    實驗一、直流斬波電路的性能研究 一、實驗目的 1.熟悉降壓斬波電路和升壓斬波電路的工作原理。 2.掌握這兩種基本轎波電路的工作狀態(tài)及波形情況。 二、實驗項目 降壓型(Buck)斬......

    數(shù)字邏輯電路實驗報告五篇

    數(shù)字邏輯電路設計 --多功能數(shù)字鐘 學院:計算機科學與通信工程 專業(yè): 姓名: 學號: 指導老師: 江蘇大學計算機10 數(shù)字邏輯電路設計報告 多功能數(shù)字鐘 一、設計任務及要求 (1)擁......

    數(shù)字電路設計實驗報告(5篇)

    數(shù)字電路設計實驗報告 引言 本課程是面向智能車制作的課程,但是主要講述的是一些關于智能車制作的一些最基本的基礎知識。比如說一些單片機的知識和一些相應數(shù)字電路的知識。......

    科技創(chuàng)新,創(chuàng)新性實驗報告

    完成時間 : 2011 年 7 月 1日 科技創(chuàng)新設計報告 摘要: 系統(tǒng)采用單片機AT89C52為核心實現(xiàn)對驅動電路的控制使雨傘能自動調整已達到最好的擋雨效果,通過風向風力測量傳感器,接收環(huán)......

    maya提高性實驗報告

    提高型實驗報告實驗課題:教科院系樓場景的設計 √設計型□應用型 實驗類型:□綜合型□實驗課程: 三維角色與場景設計專業(yè)名稱: 數(shù)字媒體技術專業(yè)實驗班級: 0902班 實 驗 者: 吳......

主站蜘蛛池模板: 国产成人精品午夜福利不卡| 午夜无码免费福利视频网址| 男人添女人下部高潮全视频| 9999国产精品欧美久久久久久| 亚洲色偷拍区另类无码专区| 国产精品毛片一区二区| 国产成人久久婷婷精品流白浆| 午夜性色一区二区三区不卡视频| 在线看片无码永久av| 国产欧美日韩一区2区| 中文字幕无码中文字幕有码| 性色av闺蜜一区二区三区| 久热这里只有精品12| 骚片av蜜桃精品一区| 第九色区av天堂| 无码精品国产dvd在线观看久9| 中文成人无码精品久久久| 亚洲国产午夜精品理论片在线播放| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲成a人片在线观看天堂无码| 无码免费的毛片基地| 2017亚洲天堂最新地址| 精品无码成人片一区二区| 免费裸体无遮挡黄网站免费看| 久艾草在线精品视频在线观看| 国产在线精品一区二区中文| 蜜臀av无码国产精品色午夜麻豆| 亚洲欧美日韩综合一区二区| 激情综合色五月丁香六月欧美| 亚洲国产精品线路久久| 午夜精品影视国产一区在线麻豆| 亚洲中文字幕aⅴ天堂自拍| 欧美性生交大片免费看| 无人区乱码一区二区三区| 又爆又大又粗又硬又黄的a片| 国产白丝jk捆绑束缚调教视频| 无码人妻久久一区二区三区免费| 亚洲人成无码网www电影麻豆| 欧美另类精品xxxx| 亚洲美女高清aⅴ视频免费| 精品国产福利视频在线观看|