




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物醫(yī)藥產(chǎn)業(yè)發(fā)展藍(lán)皮書(shū)
- 商業(yè)保理融資居間合同
- 三農(nóng)產(chǎn)業(yè)數(shù)字化轉(zhuǎn)型方案
- 可行性分析報(bào)告怎么寫(xiě)
- 項(xiàng)目進(jìn)展會(huì)議記錄
- 醫(yī)院應(yīng)急預(yù)案評(píng)估手冊(cè)
- 電動(dòng)車充電樁數(shù)量
- 物流倉(cāng)儲(chǔ)設(shè)施規(guī)劃與布局方案
- 涂料生產(chǎn)與涂裝作業(yè)指導(dǎo)書(shū)
- 商業(yè)太陽(yáng)能光伏發(fā)電
- 叉車-復(fù)審證明
- 機(jī)關(guān)事業(yè)單位電話記錄本(來(lái)電)模板
- 工程概算表【模板】
- 鋼絞線力學(xué)性能試驗(yàn)檢測(cè)報(bào)告
- 導(dǎo)游英語(yǔ)課程教學(xué)大綱
- Q∕GDW 12152-2021 輸變電工程建設(shè)施工安全風(fēng)險(xiǎn)管理規(guī)程
- 第四章邊界層理論基礎(chǔ)合肥工業(yè)大學(xué)傳遞過(guò)程基礎(chǔ)
- E4A使用手冊(cè)(DOC)
- 社會(huì)救助內(nèi)容和工作職責(zé)
- ISO9001_2016年[全套]質(zhì)量管理體系文件
- 正泰電器低壓電器選型手冊(cè)
評(píng)論
0/150
提交評(píng)論