請教大家:AD轉換結果寄存器
分為轉換結果的高4位(如:00001101)和轉換結果的低8位(如:10001001),共12位輸出.用什么方法或指令把這兩個寄存器里的數合并在一起,然后再和設定的寄存器里的內容(8位)進行比較.
全部回復(8)
正序查看
倒序查看
@sdjufeng
你可以先把兩字節的數據暫存一下,右移只是為了比較而已,為了與8位的單字節相比較,必須這樣做,另一種防辦法就是把8位的數據左移4位,然后比較,不麻煩嗎?右移四位很簡單:MOV R2,#4MOV R5,ByteHMOV R4,ByteLLOOP:MOV A,R5CLR CRRC AMOV R5,AMOV A,R4RRC AMOV R4,ADJNZ R2,LOOPCJNE A,ByteRef,$+3JNC BigOrEqu
如果我要得到12位高精度的轉換結果就只能把RC,RD合在一起,然后右移變成8位.
如果我只要得到8位精度的轉換結果,就可以直接讀取RB里的數據.
也就是兩種結果的精度是不一樣的,是嗎?
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/39/1143034354.gif');}" onmousewheel="return imgzoom(this);">
如果我只要得到8位精度的轉換結果,就可以直接讀取RB里的數據.
也就是兩種結果的精度是不一樣的,是嗎?

0
回復
@hxdjb
如果我要得到12位高精度的轉換結果就只能把RC,RD合在一起,然后右移變成8位.如果我只要得到8位精度的轉換結果,就可以直接讀取RB里的數據.也就是兩種結果的精度是不一樣的,是嗎?[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/39/1143034354.gif');}"onmousewheel="returnimgzoom(this);">
是的
0
回復
@hxdjb
如果我要得到12位高精度的轉換結果就只能把RC,RD合在一起,然后右移變成8位.如果我只要得到8位精度的轉換結果,就可以直接讀取RB里的數據.也就是兩種結果的精度是不一樣的,是嗎?[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/39/1143034354.gif');}"onmousewheel="returnimgzoom(this);">
你用的這種單片機是用這種方法實現8/12位精度轉換的,ADuC812的方式是有一個精度設置位A,當設置成8位精度時,結果高字節無效.
0
回復
@sdjufeng
你用的這種單片機是用這種方法實現8/12位精度轉換的,ADuC812的方式是有一個精度設置位A,當設置成8位精度時,結果高字節無效.
我用的是義隆78P417單片機.
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/39/1143089073.gif');}" onmousewheel="return imgzoom(this);">

0
回復