《數(shù)字邏輯電路基礎(chǔ)》課件第8章_第1頁(yè)
《數(shù)字邏輯電路基礎(chǔ)》課件第8章_第2頁(yè)
《數(shù)字邏輯電路基礎(chǔ)》課件第8章_第3頁(yè)
《數(shù)字邏輯電路基礎(chǔ)》課件第8章_第4頁(yè)
《數(shù)字邏輯電路基礎(chǔ)》課件第8章_第5頁(yè)
已閱讀5頁(yè),還剩272頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章綜合設(shè)計(jì)開(kāi)發(fā)示例8.1多數(shù)碼管顯示8.2交通信號(hào)燈控制器8.3鍵盤掃描8.4同步串型通信接口8.5語(yǔ)音合成器

8.1多數(shù)碼管顯示

8.1.1工作原理顯示單元含有n個(gè)數(shù)碼管,驅(qū)動(dòng)電路中含有n個(gè)8位寄存器來(lái)保存所對(duì)應(yīng)數(shù)碼管各段的控制電平。靜態(tài)顯示是將n個(gè)寄存器與n個(gè)數(shù)碼管直接相連,如圖8.1所示,共需要8n個(gè)輸出、8n+1個(gè)輸入。該電路連接線太多,并且功耗也比較大。圖8.1多數(shù)碼管靜態(tài)顯示電路結(jié)構(gòu)

動(dòng)態(tài)顯示是指分時(shí)輪流驅(qū)動(dòng)數(shù)碼管。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms。由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),只要輪流點(diǎn)亮的速度足夠快,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,同時(shí)能夠節(jié)省大量的I/O端口,而且功耗更低。

動(dòng)態(tài)顯示電路結(jié)構(gòu)如圖8.2所示。

圖8.2動(dòng)態(tài)顯示電路結(jié)構(gòu)

脈沖分配電路共有n個(gè)輸出C1~Cn,分別用來(lái)控制數(shù)碼管的COM端,每個(gè)低電平時(shí)長(zhǎng)為2ms(時(shí)鐘CP的周期為2ms),每個(gè)數(shù)碼管的顯示周期為2nms。若增加顯示周期,可以增加計(jì)數(shù)值。數(shù)碼管的控制輸出和數(shù)據(jù)波形如圖8.3所示。

圖8.3數(shù)碼管的控制和數(shù)據(jù)輸出波形

8.1.2模塊設(shè)計(jì)

為了方便書(shū)寫(xiě)和描述,以n=6,m=3的模塊為例進(jìn)行設(shè)計(jì)。

1.變量

1)輸入變量

inputCP,G;

input[7:0]D;

input[2:0]A;

2)輸出變量

utput[8:1]LQ;

output[6:1]C;

3)寄存器變量

reg[6:1]E,C;

reg[7:0]Q1,Q2,Q3,Q4,Q5,Q6;

reg[8:1]LQ;

reg[2:0]S;

2.數(shù)據(jù)鎖存電路

鎖存信號(hào)產(chǎn)生電路的輸入為m個(gè)地址信號(hào)A0~Am-1,其輸出為n個(gè)數(shù)據(jù)鎖存信號(hào)E1~En。A0~Am-1所對(duì)應(yīng)的鎖存信號(hào)為高,其它鎖存信號(hào)都為低。在鎖存信號(hào)G上升沿鎖存數(shù)據(jù)D。由于E1~En是中間量,并與A0~Am-1的值一一對(duì)應(yīng),所以程序中可以省略該中間量。

3.模6計(jì)數(shù)器

always@(CP)

S<=(S<3'd5)?S+3’d1:3’d0;

4.顯示數(shù)據(jù)與控制輸出電路

always@(S)

case(S)

0:{LQ,C}<={Q1,6'b111110};

1:{LQ,C}<={Q2,6'b111101};

2:{LQ,C}<={Q3,6'b111011};

3:{LQ,C}<={Q4,6'b110111};

4:{LQ,C}<={Q5,6'b101111};

5:{LQ,C}<={Q6,6'b011111};

default:{LQ,C}<={8'd0,6'b111111};

endcase

8.1.3仿真波形

多數(shù)碼顯示電路的仿真波形如圖8.4所示。

圖8.4仿真波形

為了保證數(shù)據(jù)穩(wěn)定可靠地鎖存,要求地址A和數(shù)據(jù)D在G的低電平內(nèi)不能發(fā)生變化。波形中,前六個(gè)G的上升沿分別將數(shù)據(jù)0x23~0x28鎖存到Q1~Q6中,而顯示則在CP脈沖的控制下輪流顯示。當(dāng)?shù)?個(gè)G的上升沿到達(dá)時(shí),此時(shí)A=3、D=0x2E,Q4將數(shù)據(jù)鎖存輸出0x2E,在后續(xù)的顯示數(shù)據(jù)LQ中,第4個(gè)數(shù)碼管顯示的數(shù)據(jù)為0x2E。

8.2交通信號(hào)燈控制器

8.2.1工作原理

1.系統(tǒng)結(jié)構(gòu)十字路口的東西方向和南北方向均有綠燈、黃燈、紅燈指示,并有一個(gè)顏色可控的兩位數(shù)碼管。數(shù)碼管顯示各燈剩余時(shí)間,綠燈亮?xí)r數(shù)碼管為綠色顯示,黃燈亮?xí)r數(shù)碼管為黃色顯示,紅燈亮?xí)r數(shù)碼管為紅色顯示。

整個(gè)交通控制系統(tǒng)結(jié)構(gòu)如圖8.5所示。

圖8.5交通控制系統(tǒng)結(jié)構(gòu)

2.操作流程

兩個(gè)方向交通燈的變化規(guī)則如圖8.6所示。

圖8.6交通燈變化規(guī)則

3.狀態(tài)圖

電路由倒計(jì)時(shí)器組成,并由組合電路產(chǎn)生顯示數(shù)據(jù)和顏色。倒計(jì)時(shí)器由模110減法計(jì)數(shù)器,狀態(tài)S為0~109。輸出C用來(lái)控制顯示顏色,0表示東西綠燈亮、南北紅燈亮,1表示東西黃燈亮、南北紅燈亮,2表示東西紅燈亮、南北綠燈亮,3表示東西紅燈亮、南北黃燈亮。輸出A和B分別為東西方向和南北方向數(shù)碼管要顯示的數(shù)值。

圖8.7交通燈控制狀態(tài)圖

8.2.2模塊設(shè)計(jì)

1.變量

1)輸入變量

inputCP;

2)輸出變量

output[5:0]A,B;

output[1:0]C;

3)寄存器變量

reg[5:0]A,B;

reg[1:0]C;

reg[6:0]S;

2.模計(jì)數(shù)器

always@(posedgeCP)

S<=(|S)?S-1:7‘d109;

3.控制信號(hào)產(chǎn)生

由于A和B均為6位,而S為7位,A和B值均由S產(chǎn)生,故會(huì)產(chǎn)生截位。

8.2.3仿真波形

圖8.8交通燈控制仿真波形

8.3鍵盤掃描

8.3.1工作原理

1.電路結(jié)構(gòu)鍵盤采用行列開(kāi)關(guān)矩陣,m行n列的鍵盤如圖8.9所示。若某鍵被按下,則該鍵所在的行與列導(dǎo)通。圖8.9m行n列鍵盤的開(kāi)關(guān)矩陣

鍵盤掃描是反復(fù)逐列進(jìn)行的,共有n列,所以需要采用模n計(jì)數(shù)器來(lái)產(chǎn)生列序號(hào)。所有列中同時(shí)只能有一個(gè)為低電平,所以采用譯碼器對(duì)列序號(hào)進(jìn)行譯碼來(lái)產(chǎn)生所要的列信號(hào)。

當(dāng)鍵按下時(shí)m行中只有一個(gè)為低電平,其它均為高電平,所以可以用編碼器來(lái)生成低電平所在行的序號(hào),并產(chǎn)生有鍵按下的標(biāo)志(低電平有效)。當(dāng)有鍵被按下時(shí),計(jì)數(shù)器停止掃描,直到鍵被松開(kāi)。

其控制電路結(jié)構(gòu)如圖8.10所示。

圖8.10鍵盤掃描控制電路

2.計(jì)數(shù)器

計(jì)數(shù)器的模為n,狀態(tài)S為k位,k=élog2nù,即S={S0,S1,…,Sk-1},有效狀態(tài)為0~n-1??刂菩盘?hào)E為1時(shí)正常計(jì)數(shù),E為0時(shí)停止計(jì)數(shù)。

狀態(tài)轉(zhuǎn)移如8.11所示。

圖8.11鍵盤掃描計(jì)數(shù)器的狀態(tài)圖

3.譯碼器

譯碼器的輸入為S={S0,S1,…,Sk-1},輸出為C1~Cn。

其真值表如表8.1所示。

4.編碼器

編碼器的輸入為R1~Rm,編碼有效輸出為E,輸出為Y={Y1,Y2,…,YL},其中L=élog2mù。其功能真值表如表8.2所示。

8.3.2模塊設(shè)計(jì)

以n=6、m=6為例。

1.變量

1)輸入變量

inputCP;

input[6:1]R;

2)輸出變量

output[6:1]C;

output[5:0]D;

outputE;

3)寄存器變量

regE;

reg[6:1]C;

reg[2:0]S,Y;

2.計(jì)數(shù)器

always@(posedgeCP)

if(E)S<=(S<3’d5)?S+3’d1:3’d0;

3.譯碼器

always@(S)

case(S)

0:C<=6'b111110;

1:C<=6'b111101;

2:C<=6'b111011;

3:C<=6'b110111;

4:C<=6'b101111;

5:C<=6'b011111;

default:C<=6'b111111;

endcase

4.編碼器

always@(R)

case(R)

6'b0xxxxx:{E,Y}<={1’d0,3'd0};

6'b10xxxx:{E,Y}<={1’d0,3'd1};

6'b110xxx:{E,Y}<={1’d0,3'd2};

6'b1110xx:{E,Y}<={1’d0,3'd3};

6'b11110x:{E,Y}<={1’d0,3'd4};

6'b111110:{E,Y}<={1’d0,3'd5};

6'b111111:{E,Y}<={1’d1,3'd7};

endcase

5.數(shù)碼輸出

assignD={Y,S};

8.4同步串型通信接口

8.4.1工作原理

1.功能波形

SPI的接口有SCK、LE、MOSI、MISO四個(gè)信號(hào),SPI有主次之分。對(duì)于主SPI,SCK、LE和MOSI為輸出,MISO為輸入;對(duì)于從SPI,SCK、LE、MOSI為輸入,MISO為輸出。

對(duì)于主SPI,啟動(dòng)發(fā)送后,LE變低,隨后產(chǎn)生發(fā)送時(shí)鐘SCK,同時(shí)將發(fā)送寄存器的數(shù)據(jù)逐位輸出到MOSI上,同時(shí)鎖存MISO上的數(shù)據(jù)。當(dāng)SCK上輸出規(guī)定數(shù)目的時(shí)鐘后,不再產(chǎn)生時(shí)鐘脈沖,并將LE變高。

對(duì)于從SPI,LE變低后,準(zhǔn)備收發(fā)。當(dāng)?shù)谝粋€(gè)時(shí)鐘到達(dá)時(shí),在規(guī)定的接收邊沿對(duì)MOSI上的數(shù)據(jù)鎖存到接收寄存器,在規(guī)定的發(fā)送邊沿上將數(shù)據(jù)發(fā)送寄存器的數(shù)據(jù)逐位輸出。

下面以8位數(shù)據(jù)收發(fā)器為例,其工作波形如圖8.12所示。

圖8.12SPI的工作波形

2.SPI波形產(chǎn)生機(jī)制

MOSI和MISO受控于LE和SCK,所以要先分析SCK和LE的產(chǎn)生。通過(guò)SCK和LE的波形可知需要采用如圖8.13所示的18個(gè)狀態(tài)S0~S17來(lái)產(chǎn)生。

圖8.13SCK和LE波形關(guān)系

LE為一個(gè)狀態(tài)位,SCK為一個(gè)狀態(tài)位,由于SCK在LE為0期間是周期變化,所以將狀態(tài)S的最后一位作為SCK。但在LE=0期間共有17個(gè)狀態(tài),所以狀態(tài)S共有6位。狀態(tài)分配如表8.3所示,產(chǎn)生該狀態(tài)的時(shí)序電路的時(shí)鐘CP的周期為SCK的周期的1/2。

時(shí)序電路狀態(tài)的產(chǎn)生由啟動(dòng)信號(hào)ST=1時(shí)產(chǎn)生,其狀態(tài)轉(zhuǎn)移圖如圖8.14所示。

圖8.14SPI時(shí)序電路狀態(tài)圖

在SCK的第一個(gè)時(shí)鐘上升沿置數(shù),將輸入數(shù)據(jù)鎖存在移位寄存器中,并在后續(xù)時(shí)鐘的上升沿移位輸出。MOSI的波形關(guān)系如圖8.15所示。

圖8.15MOSI的波形關(guān)系

置數(shù)信號(hào)的波形關(guān)系如圖8.16所示。由于發(fā)送時(shí)第1個(gè)SCK的上升沿用來(lái)置數(shù),所以在LE為高電平時(shí)LD被置位,當(dāng)LD為低時(shí),在第1個(gè)SCK的下降沿使LD變低。

圖8.16置數(shù)信號(hào)與其它信號(hào)的波形關(guān)系

對(duì)于主SPI來(lái)說(shuō),MISO是輸入,而對(duì)于從SPI來(lái)說(shuō),MOSI是輸入,它們的的波形處理如圖8.17所示,接收采用移位寄存器,每個(gè)時(shí)鐘的下降沿鎖存。

圖8.17MOSI的波形關(guān)系

3.電路結(jié)構(gòu)

SPI電路由主SPI和從SPI兩種結(jié)構(gòu),如圖8.18所示。

圖8.18SPI的電路結(jié)構(gòu)

8.4.2主SPI模塊設(shè)計(jì)

1.變量

1)輸入變量

inputCP,nRST,ST,MISO;

input[7:0]TD;

2)輸出變量

outputSCK,LE,MOSI;

output[7:0]RD;

3)寄存器變量

reg[7:0]RD,SD;//SD為發(fā)送移位寄存器狀態(tài),RD為接收移位寄存器狀態(tài)(也是輸出)

reg[5:0]S;

regLD;

2.模n計(jì)數(shù)器

always@(posedgeCPornegedgenRST)

if(!nRST)S<=6'd32;

elseif(S<6'd17)S<=S+6’d1;

elseif(ST)S<=6'd0;

elseS<=6'd32;

3.發(fā)送控制

assign{LE,SCK}={S[5],S[0]};

always@(negedgeSCKorposedgeLE)

if(LE)LD<=1’d1;

elseLD<=1’d0;

4.數(shù)據(jù)發(fā)送

assignMOSI=SD[0];

always@(posedgeSCK)

if(LD)SD<=TD;

elseSD<={1’d0,SD[7:1]};

5.數(shù)據(jù)接收

always@(negedgeSCK)

RD<={MISO,RD[7:1]};

8.4.3從SPI模塊設(shè)計(jì)

1.變量

1)輸入變量

inputSCK,LE,MOSI;

input[7:0]TD;

2)輸出變量

outputMISO;

output[7:0]RD;

3)寄存器變量

reg[7:0]RD,SD;//SD為發(fā)送移位寄存器狀態(tài),RD為接收移位寄存器狀態(tài)(也是輸出)

regLD;

2.發(fā)送控制

always@(negedgeSCKorposedgeLE)

if(LE)LD<=1’d1;

elseLD<=1’d0;

3.數(shù)據(jù)發(fā)送

assignMISO=SD[0];

always@(posedgeSCK)

if(LD)SD<=TD;

elseSD<={1’d0,SD[7:1]};

4.數(shù)據(jù)接收

always@(negedgeSCK)

RD<={MOSI,RD[7:1]};

8.4.4SPI仿真波形

1.主SPI工作波形

圖8.19主SPI的工作波形

2.從SPI工作波形

圖8.20從SPI的工作波形

8.5語(yǔ)音合成器

8.5.1工作原理

1.功能描述

每個(gè)漢字的發(fā)音時(shí)間為256ms,話音采用8位DAC進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換時(shí)鐘為8KHz,因此每個(gè)漢字需要16384比特的存儲(chǔ)空間。生成話音時(shí),每125us從存儲(chǔ)空間讀取8比特。故漢字語(yǔ)音數(shù)據(jù)的存儲(chǔ)位寬為8比特,每個(gè)漢字占用2048個(gè)地址。

每個(gè)漢字字符采用16位的UNICODE編碼,編碼值范圍為0x4e00~0x9fa5,共有20902個(gè)漢字。所有漢字的話音數(shù)據(jù)以字符編碼值從小到大順序保存,漢字語(yǔ)音數(shù)據(jù)存儲(chǔ)位寬為8比特,共需要42807296個(gè)地址。

2.原理電路

整個(gè)控制電路主要實(shí)現(xiàn)字符的讀取和話音數(shù)據(jù)的讀取及DAC發(fā)送。為了保證話音輸出的連續(xù),每個(gè)時(shí)鐘都向DAC發(fā)送數(shù)據(jù)??刂齐娐吠ㄟ^(guò)發(fā)送讀信號(hào)從FIFO讀數(shù)據(jù),F(xiàn)IFO的空標(biāo)志作為數(shù)據(jù)指示信號(hào),若FIFO為空,不再讀取數(shù)據(jù)。讀取數(shù)據(jù)后,計(jì)算該字符所對(duì)應(yīng)的語(yǔ)音數(shù)據(jù)存儲(chǔ)單元首地址,并不斷從語(yǔ)音存儲(chǔ)器中連續(xù)讀取2048個(gè)存儲(chǔ)數(shù)據(jù)。

圖8.21原理電路

3.控制波形

1)控制單元與DAC之間的接口波形

DAC的鎖存信號(hào)CLK和輸入數(shù)據(jù)VD之間關(guān)系如圖8.22所示,每個(gè)時(shí)鐘的上升沿?cái)?shù)據(jù)變化,同時(shí)DAC鎖存數(shù)據(jù)。一個(gè)字符的語(yǔ)音數(shù)據(jù)共需2048個(gè)時(shí)鐘傳輸。

圖8.22DAC控制波形

2)控制單元與語(yǔ)音存儲(chǔ)器之間的接口波形

語(yǔ)音存儲(chǔ)器有26位地址線A25~A0和8位數(shù)據(jù)線D7~D0,其中A10~A0從0變化到2047,每2048個(gè)變化后A25~A11才會(huì)變化一次,有效地址輸出后有效數(shù)據(jù)才會(huì)輸出。

圖8.23控制單元與語(yǔ)音存儲(chǔ)器之間的接口波形

3)控制單元與FIFO之間的接口波形

FIFO在讀信號(hào)nFR有效時(shí),16位數(shù)據(jù)線FD15~FD0上輸出數(shù)據(jù),nFR無(wú)效時(shí)數(shù)據(jù)線處于高阻態(tài)。若一次計(jì)數(shù)循環(huán)結(jié)束時(shí)FE為0(有數(shù)據(jù)),nFR則產(chǎn)生低電平脈沖。當(dāng)nFR變高時(shí)將FD上的數(shù)據(jù)鎖存。

圖8.24控制單元與FIFO之間的接口波形

4)接口之間的信號(hào)關(guān)系

(1)DAC的CLK、存儲(chǔ)器的A10~A0、FIFO的讀信號(hào)nFR之間關(guān)系如圖8.25所示。

圖8.25CLK、A10~A0和nFR之間關(guān)系

(2)DAC的數(shù)據(jù)VD、存儲(chǔ)器數(shù)據(jù)D和FIFO的數(shù)據(jù)FD之間的關(guān)系如圖8.26所示。

圖8.26VD、D和FD之間的關(guān)系

5)信號(hào)產(chǎn)生關(guān)系

以CLK為輸入時(shí)鐘構(gòu)成模2048的加法計(jì)數(shù)器,時(shí)鐘狀態(tài)作為存儲(chǔ)器的地

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論