想吃火鍋雞
級別: 正式會員
|
圖片:
圖片:
初學(xué)定位控制,在書中出現(xiàn)3U新增位元件的介紹。 n為寄存器D編號,0-8511 b為寄存器中二進制位的編號,0-F 把H8421送入D0,其最高位為1。 則位元件D0.F常開點閉合,驅(qū)動D0.3 同時,當(dāng)D0.3被驅(qū)動后,D0中的b3位由0變1,此時D0中的數(shù)發(fā)生變化 由H8421變?yōu)镠8429 H8421換算為二進制 1000 0100 0010 0001 H8429換算為二進制 1000 0100 0010 1001 可以看出b3位由0變1,所以H8421變?yōu)镠8429,到這里可以理解。 但是從監(jiān)視模式中讀取D0數(shù)值可以發(fā)現(xiàn),把H8421送入D0中時,D0為-31711,D0變?yōu)镠8429時,D0為-31703 -31711轉(zhuǎn)二進制 1 111 1011 1101 1111 -31703轉(zhuǎn)二進制 1 111 1011 1101 0111 最左邊1表示正負(fù),其余15位表示數(shù)值,也是b3位變化, 但是-31711的二進制化為十六進制是FBDF -31703的二進制化為十六進制FBD7,并不是上面的8421和8429。 請高手賜教上面的進制換算問題出在哪里? |
---|---|
|
菜鳥入行
級別: 論壇先鋒
|
H8421太大了。 相當(dāng)于K33825. 已經(jīng)超過了單字節(jié)D可以存儲的上限,所以變成負(fù)數(shù)了。 在32767以內(nèi),你的算法是對的。 超過32767,要用DMOV ,會占用D0和D1,這樣才能按你的算法來。 |
|
---|---|---|
|