我現(xiàn)在用STC10F08XE單片機通過CH372進行通信,做了好幾天的初始化,就是不成功,這個單片機是1個時鐘周期為一個機器周期,按照PDF資料上的延時做的,在測試CH372是否正常的時候發(fā)現(xiàn)讀到的數(shù)據(jù)老是00H,請大家指導我一下,看看程序哪是不是還有啥問題,謝謝。程序代碼如下: CH372_INIT: CLR PSEN ;選中CH372 MOV DPTR,#CH372_CMD_PORT ;命令口地址 MOV A,#CHECK_EXIST MOVX @DPTR,A ;測試CH375是否正常工作 MOV R7,#6 ;延時3微秒 CALL DELAY3 DEC DPL ;數(shù)據(jù)口地址 MOV A,#55H MOVX @DPTR,A ;寫入測試數(shù)據(jù) MOV R7,#6 ;延時3微秒 CALL DELAY3 CPL A MOV R6,A ;取反數(shù)據(jù) MOV R7,#2 CALL DELAY3 MOVX A,@DPTR ;返回數(shù)據(jù)應該是測試數(shù)據(jù)取反 XRL A,R6 JZ CH372_INIT_OK ;測試通過 MOV DPTR,#CH372_CMD_PORT ;命令口地址 MOV A,#RESET_ALL MOV R7,#50H ;多次重復發(fā)命令 CH372_INIT_HR: MOVX @DPTR,A ;執(zhí)行硬件復位 DJNZ R7,CH372_INIT_HR MOV R7,#0B8H ;下邊延時40ms CH372_INIT_D2: MOV A,#1 CH372_INIT_D1: DJNZ ACC,CH372_INIT_D1 DJNZ R7,CH372_INIT_D2 SJMP CH372_INIT ;再次測試 CH375_INIT_OK: CLR ONLED ;測試成功則滅燈 RET DELAY3: DJNZ R7,DELAY3 RET
檢查一下總線地址設置的對不對,CH375有沒有正常的工作,25腳電壓應該為低,26腳電壓應該為高,晶振是否起振。上電之后先延時50ms 在操作。
您好 CH372是20腳的哦,您說的25腳和26是啥呢?如果說現(xiàn)在不初始化CH372,那些個I/O口的電平情況是高電平還是低電平???
你說的CH375哦,我說的是372,按照PDF上的時序老是初始化不了。也不知道哪的問題。哎
那你邊如果有示波器的話,那看下你發(fā)出去的數(shù)據(jù)是不是你寫的數(shù)據(jù),按照你上面的程序應該是沒有問題的,但是需要你確認下你的地址是否正確。
哦 那如果硬件有問題,也會出現(xiàn)初始化不成功了?我現(xiàn)只發(fā)送一個命令CHECK_EXIST命令,用萬用表量D0-D7全都為高電平,我也量了片選是對的。實在想不到還有哪有問題拉。
只有硬件問題才會導致初始化不成功,所以我讓你查下你的硬件連線包括你發(fā)送數(shù)據(jù)是否已經(jīng)發(fā)送出來等等來調(diào)試你的硬件上面有沒有什么問題。
恩 收到 用萬用表可以測試芯片的好壞么?現(xiàn)在最大的問題就是沒有示波器。可不可以通過引腳的電平來判斷是不是硬件哪有問題?謝謝
這個不是很好判斷,因為需要看下你時序上面有沒有問題,看了你的匯編代碼,程序上面沒什么問題,估計就是出現(xiàn)在你的硬件上面
軟件上邊?我是按照CH372上邊的延時做的,現(xiàn)在晶振到是好著里,引腳兩端的電壓為VCC/2左右,如果我只發(fā)一個測試芯片好壞的命令(CHECK_EXIST),然后我不讀CH372返回的數(shù)據(jù),最后在測的D0~D7都為高點平。
我剛才用串口返回了下讀來的數(shù)據(jù)老是00H,難道是時序的問題?
先把說明書看透了,主要應該是時序的問題,硬件檢測是簡單的