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