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