
作者共發了10篇帖子。
![]() |
![]() |
![]() |
電路文件下載地址:http://pan.baidu.com/s/1gfqmhDh
|
![]() |
中間的165B的D1~D7接第一個乘數,D1為符號位,D0必須和D1相同。如圖所示接的是1010010=-46。
165C的D1~D7為另一個乘數,D0電平任意(可直接接地)。如圖所示接的是0110101=53。 通電後,先按START鍵復位並置入操作數,然後給63個時鐘脈衝(按CLK鍵63下),即可在輸出端得出計算結果(把左下角U15的Q0~Q7和U16的Q0~Q5拼在一起,11011001 111010,最高位為符號位,對應的十進制數是-2438)。 -46*53=-2438。 |
![]() |
此乘法器使用的算法是:補碼一位乘法。
|
![]() |
回復5樓 @巨大八爪鱼 的內容:此乘法器使用的算法是:補碼一位乘法。
準確的說是:比較法
|
![]() |
乘法器數據表(每個CLK時鐘周期內各寄存器的數值變化情況): http://pan.baidu.com/s/1o7IhTSA 表格「分步乘法部分」的單元格E2為第一個乘數,採用雙符號位,正數為00,負數為11。 單元格J2為第二個乘數,採用單符號位,最高位為任意電平X。 可以手動修改這兩個單元格的值(必須為8位二進制數),Excel自動計算其他單元格的值。
D65為最終U15_595A寄存器的值,J65為最終U16_595C寄存器的值。
|
![]() |
此電路還可以做一些改進: 1.通過14個按鍵或開關輸入兩個乘數 2.通過14個LED燈輸出計算結果 3.由於按63下CLK按鍵很麻煩。可以乾脆接一個晶振(比如8MHz的)作為時鐘信號,每計算完畢一次就自動將START置0重新裝載操作數並計算。並且仿照單片機的復位電路,接一個10μF的電容實現上電復位(START自動從0變到1)。 這樣就可以完全去掉那兩個按鍵,只要操作數一變,計算結果馬上就顯示出來了。 |
![]() |
實際上在這個電路中,如果按CLK鍵63次以上,雖然各寄存器還在工作,但輸出不會改變,直到按下START鍵復位(重裝操作數)
|
![]() |
【本電路用到的主要集成電路器件】 與門12個:74HC08三個 與非門4個:74HC00一個 或門6個:74HC32兩個,閒置2個或門 非門5個:74HC04一個,閒置1個非門 異或門3個:74HC86一個,閒置1個異或門 D觸發器4個:74HC74一個 74HC161計數器兩個 74HC165併入串出寄存器三個 74HC595串入並出寄存器兩個 |
![]() |
一共用到集成電路16個。其中集成門電路8個。 若每個集成門電路的價格是1.5元,其餘集成電路每個3元,那麼成本就是36元。 可見,用74系列晶片搭建數字電路的成本很高,還不如直接使用單片機。 |