電子技術(shù)實驗報告_第1頁
電子技術(shù)實驗報告_第2頁
電子技術(shù)實驗報告_第3頁
電子技術(shù)實驗報告_第4頁
電子技術(shù)實驗報告_第5頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

電子技術(shù)實驗報告四位二進制數(shù)的可控加法/減法系統(tǒng)實現(xiàn)的功能:用撥碼開關(guān)輸入兩個四位二進制數(shù),按下運算按鈕后,以led的方式顯示運算結(jié)果的補碼表示,用數(shù)碼管顯示十進制結(jié)果。具有清零功能。顯示結(jié)果范圍大,不會溢出。圖解:in1[3:0]in1[3:0]in2[3:0]addsubclrclkdisplayNUM[3:0]displayNUM[3:0]result[7:0]an[3:0]a_to_g[7:0]calc實現(xiàn)說明:display模塊功能是把二進制的數(shù)NUM轉(zhuǎn)換成數(shù)碼管的亮暗以顯示。特別說明:為方便顯示全暗和負號,分別把它們編為NUM的10和11。moduledisplay(input[3:0]NUM,outputreg[7:0]a_to_g); always@(*) case(NUM) 0:a_to_g=8'b10000001; 1:a_to_g=8'b11001111; 2:a_to_g=8'b10010010; 3:a_to_g=8'b10000110; 4:a_to_g=8'b11001100; 5:a_to_g=8'b10100100; 6:a_to_g=8'b10100000; 7:a_to_g=8'b10001111; 8:a_to_g=8'b10000000; 9:a_to_g=8'b10000100; 10:a_to_g=8'b11111111; 11:a_to_g=8'b11111110; default:a_to_g=8'b10000001; endcaseendmodulecalc模塊此模塊為主要模塊,把輸入進行計算后輸出。主要過程是用result存儲結(jié)果的補碼,檢測加、減或清零是否按下,按下則更新result,實時由result計算出十位和個位,再綜合結(jié)果的正負來進行顯示。modulecalc(input[3:0]in1, //這是左四個開關(guān)的輸入input[3:0]in2, //右四個開關(guān)inputadd, //加按鈕A7inputsub, //減按鈕M4inputclr, //清零按鈕C11inputclk, //時鐘輸入B8outputreg[3:0]an, //控制4個數(shù)字的亮暗output[7:0]a_to_g, //控制每個數(shù)字的每個筆畫 outputreg[7:0]result //控制LED燈顯示結(jié)果); reg[3:0]NUM; //當前顯示的數(shù)字 reg[3:0]result1; //結(jié)果的十位 reg[3:0]result2; //結(jié)果的個位 reg[7:0]tmp; reg[3:0]tmp2; reg[3:0]tmp3; reg[15:0]clk_cnt; //時鐘計數(shù) wire[1:0]s; //切換4個數(shù)字顯示的變量 assigns[0]=clk_cnt[14]; //將s的兩位設為時鐘的高兩位以不斷切換 assigns[1]=clk_cnt[15]; always@(*) begin tmp=result; tmp3=0; if(result[7]==0)begin //如果結(jié)果是正數(shù),每次減10計算十位和個位 for(tmp2=0;tmp2<3;tmp2=tmp2+1) begin if(tmp>=10) begin tmp=tmp-10; tmp3=tmp3+1; end end end elsebegin //否則加10來計算 for(tmp2=0;tmp2<1;tmp2=tmp2+1) begin if(tmp<=246&&tmp!=0) //246是8位-10的補碼 begin tmp=tmp+10; tmp3=tmp3+1; end end tmp=0-tmp; end result1=tmp3; result2=tmp[3:0]; if(s==0)beginNUM=result2;an=4'b1110;end //顯示個位 elseif(s==1)beginif(result1==0)NUM=10+result[7];elseNUM=result1;an=4'b1101;end //如果十位是0則隱藏并顯示負號(如果結(jié)果為負),否則顯示十位 elseif(s==2)beginif(result1==0)NUM=10;elseNUM=10+result[7];an=4'b1011;end //如果十位是0則百位一直隱藏,否則顯示負號(如果結(jié)果為負) elseif(s==3)beginNUM=10;an=4'b0111;end //隱藏千位 end always@(posedgeclk) begin clk_cnt=clk_cnt+1; //計時 end always@(posedgeclrorposedgeaddorposedgesub) begin if(clr)result=0; //清零按下則結(jié)果置零 elseif(add)result=in1+

溫馨提示

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

評論

0/150

提交評論