|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
基于8051的數(shù)字轉(zhuǎn)換問(wèn)題,請(qǐng)各位指教一下 |
| 作者:kevinluo 欄目:單片機(jī) |
在8051上,用匯編(一定要用匯編)語(yǔ)言編寫(xiě)輸入為0~255,輸出為0~99.9這樣一個(gè)程序,想了很久,也試了很久,就是出不來(lái),最困難的地方就是8051為8位的,這在做乘除法的時(shí)候位數(shù)顯然不夠,而且小數(shù)好象在匯編里面不能表示,為了這個(gè)問(wèn)題我已經(jīng)失眠了一個(gè)晚上,請(qǐng)各位大哥,大姐幫小弟想想啊,小弟將不勝感激 |
| 2樓: | >>參與討論 |
| 作者: dengm 于 2005/3/9 22:49:00 發(fā)布:
255 * 251 /64 = 1000.078125 ; A ==X ----- BIN MOV B, #251 MUL AB SWAP A RR A RR A ANL A, #3 ; Y*10 = 4 * B + A MOV R1, A MOV A, B MOV B, #100 DIV AB MOV R2, A MOV A, B MOV B, #10 DIV AB SWAP A ORL A, B ACALL BCD_MUL2 ACALL BCD_MUL2 ; R2:A ADD A, R1 DA A MOV R1, A JNC $+3 INC R2 CJNE R2, #10, $ + 6 DEC R2 MOV R1, #99H RET ; Y*10 = R2:R1 ---- BCD BCD_MUL2: ADD A, ACC DA A XCH A, R2 ADDC A, ACC DA A XCH A, R2 ; R2:A RET * - 本貼最后修改時(shí)間:2005-3-9 22:51:46 修改者:dengm |
|
| 3樓: | >>參與討論 |
| 作者: lzqemil 于 2005/3/10 9:56:00 發(fā)布:
赫赫,51也有多字節(jié)乘除法子程序阿,網(wǎng)上就找的到, 另外別死腦精,匯編當(dāng)然無(wú)小數(shù),運(yùn)算時(shí)你可以把除數(shù)、被除數(shù)都放大10倍,就是整數(shù)了,計(jì)算完成后輸出時(shí)再縮小10倍即可。 |
|
| 4樓: | >>參與討論 |
| 作者: 西安周公 于 2005/3/10 12:20:00 發(fā)布:
顯示的時(shí)候加個(gè)點(diǎn)! |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |