基于FPGA的數(shù)字溫度測量儀設(shè)計與實現(xiàn)
1.3 控制模塊
通過控制模塊,將從DS18B20讀取的二進(jìn)制溫度信息傳給數(shù)制轉(zhuǎn)換模塊,如圖6所示。本文引用地址:http://m.butianyuan.cn/article/190050.htm
程序中設(shè)定了三個狀態(tài)(清除clear、使能enable、顯示display),當(dāng)ena為‘1’時,狀態(tài)從顯示轉(zhuǎn)到清除;ena為‘0’時,狀態(tài)一直為顯示,把輸入數(shù)據(jù)win[11..1]從輸出端口wout[11..1]輸出到下一模塊,之間的轉(zhuǎn)換關(guān)系如圖7所示。
控制模塊仿真結(jié)果如圖8所示。
圖8中,clock輸入為1 MHz信號,經(jīng)過500分頻后,得到頻率為1kHz的信號clk lk,此時累加器cnt0為‘0’。當(dāng)cnt0為‘1’時,系統(tǒng)狀態(tài)由原來的清除狀態(tài)轉(zhuǎn)變?yōu)槭鼓軤顟B(tài),此時enb為‘1’,cnt0進(jìn)行累加;當(dāng)cnt0=‘1’時,系統(tǒng)狀態(tài)從使能狀態(tài)轉(zhuǎn)變到顯示狀態(tài),系統(tǒng)就把win[11..1]輸入的數(shù)據(jù)通過wout[11..1]輸出到下一模塊。
1.4 數(shù)制轉(zhuǎn)換模塊
利用數(shù)制轉(zhuǎn)換模塊將輸入的11位二進(jìn)制的溫度數(shù)據(jù)轉(zhuǎn)換為3位十進(jìn)制表示,如圖9所示。
圖9中,clear為清零輸入端口,enable為使能輸入端口,indata[11..1]為數(shù)據(jù)輸入端口,b1『3..0]、b2[3..0]、b3[3..0]為三個輸出端口。如果clear輸入信號為‘1’時,程序?qū)⑶宄龝捍婕拇嫫髦袛?shù)據(jù);反之則不清除。enable輸入信號出現(xiàn)上升沿時,程序開始進(jìn)行數(shù)制轉(zhuǎn)換,并通過b1[3..0]、b2[3..0]、b3[3..0]端口將得到的十進(jìn)制數(shù)輸出到相應(yīng)的顯示模塊中。數(shù)制轉(zhuǎn)換模塊仿真見圖10。
由圖10知,輸入數(shù)據(jù)為“010011 10000”,clear端為低電平,當(dāng)enable信號有上升沿時,數(shù)據(jù)開始轉(zhuǎn)換。轉(zhuǎn)換后數(shù)據(jù)為b1=0、b2=9、b3=3,符合設(shè)計值。
評論