|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
在用24BIT A/D轉(zhuǎn)換器CS5532時遇到的怪問題 |
| 作者:jiang83 欄目:單片機 |
大大們好,我現(xiàn)在在用CS5532,雖然能讀,但是特別怕干擾,用金屬隨便碰下系統(tǒng)的導(dǎo)電部分,5532的DO立刻停在LOW,但同樣的系統(tǒng),用的ADI公司的AD7714卻一點事沒有,請問和程序有關(guān)系嗎?都能工作了,程序還會有什么問題呢? ORG 0000H AJMP MAIN ORG 0013H AJMP AdIn ORG 0030H ;I/O口定義 sclk3 EQU P1.0 sdi3 EQU P1.1 sdo3 EQU P1.2 cs3 EQU P1.4 MAIN: MOV TCON,#00H ;INT1是邊沿觸發(fā) MOV IE,#84H ;enable interrent 1 lcall delay_time20 lcall init553x MAIN1: ;調(diào)用顯示部分 clr p1.5 lcall hb2 lcall disp setb p1.5 ;調(diào)用顯示部分 ljmp MAIN1 ;=========================================================== ;in: ;out: ;use: r1,2sp ;note: ;=========================================================== init553x: clr p1.6 setb sdo3 clr sdi3 clr sclk3 mov r1,#127 setb sdi3 init3x1: setb sclk3 clr sclk3 djnz r1,init3x1 clr sdi3 setb sclk3 clr sclk3 lcall delay_time100 ;reset serial PORT mov a,#03h lcall writebyte3 mov a,#20h ;reset SYSTEM lcall writebyte3 mov a,#00h lcall writebyte3 mov a,#00h lcall writebyte3 mov a,#00h lcall writebyte3 lcall delay_time100 setb p1.6 mov a,#03h ;write configur for reset lcall writebyte3 mov a,#02h ;Voltage Reference SELECT 1v < Vref < 2.5v lcall writebyte3 mov a,#00h lcall writebyte3 mov a,#00h lcall writebyte3 mov a,#00h lcall writebyte3 clr p1.6 mov a,#05h ;write channel1 setup register lcall writebyte3 mov a,#030h ;SELECT physical channel1,set gain=64,word rate is 15HZ lcall writebyte3 mov a,#0c0h ;SELECT unipolar mode lcall writebyte3 mov a,#032h lcall writebyte3 mov a,#040h lcall writebyte3 mov a,#0c0h lcall writebyte3 ;normal read channel1 data ,perform conversions continuously setb p1.6 ret ;mov config3a,#02h ;=========================================================== readbyte3: mov r1,#8 clr sdi3 readbyte31: mov c,sdo3 ;read msb 1st rlc a setb sclk3 clr sclk3 djnz r1,readbyte31 ret ;=========================================================== ;in: a ;out: none ;use: a,r1,2sp ;note: send one byte[a] to cs553x ;=========================================================== writebyte3: mov r1,#08 ;set count clr sclk3 writebyte31:rlc a ;send msb 1st mov sdi3,c setb sclk3 clr sclk3 djnz r1,writebyte31 clr sdi3 ret ;=========================================================== ;input -none ;OUTPUT -none ;desc -tog 8 sclk to tog sdo ;use ;=========================================================== toggsdo3: clr sdi3 mov r1,#8 toggsdo31: setb sclk3 clr sclk3 djnz r1,toggsdo31 ret delay_time20:MOV R7,#2 delay_time1:MOV R6,#10 delay_time2:MOV R5,#249 delay_time3:DJNZ R5,delay_time3 DJNZ R6,delay_time2 DJNZ R7,delay_time1 RET delay_time100:MOV R7,#10 delay_time1x:MOV R6,#10 delay_time2x:MOV R5,#249 delay_time3x:DJNZ R5,delay_time3x DJNZ R6,delay_time2x DJNZ R7,delay_time1x RET AdIn: clr ea PUSH psw PUSH 01h PUSH acc clr p1.6 lcall toggsdo3 ;togo ad read lcall readbyte3 ;receive bytes high byte first mov 30h,a lcall readbyte3 mov 31h,a lcall readbyte3 mov 32h,a lcall readbyte3 ;mov 33h,a setb p1.6 pop acc pop 01 pop psw setb ea reti |
| 2樓: | >>參與討論 |
| 作者: jiang83 于 2005/12/17 9:31:00 發(fā)布:
各位大大幫忙。 急!是不是輸出速率太高了?我用的60HZ的 |
|
| 3樓: | >>參與討論 |
| 作者: ma30182003 于 2005/12/23 8:25:00 發(fā)布:
我也剛開始用 以前也是用AD7714,現(xiàn)在改成CS5532,讀出的數(shù)據(jù)老是零,正在找問題 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |