CH375應(yīng)用中的問題

我要實現(xiàn)的功能是:從計算機(jī)下傳一個數(shù)據(jù)(我需要的數(shù)據(jù)只有八種000,001,010,011,100,101,110,111),單片機(jī)依據(jù)數(shù)據(jù)的不同作出不同的動作。 我仿照貴公司CH375DS1中的電路圖進(jìn)行了連接并作了如下修改將CS#與P2.7直接連接,A0#與P2.6直接連接,去掉了存儲芯片62256和鎖存器373、3-8譯碼器。 系統(tǒng)加電后375不工作。 程序是從貴公司網(wǎng)站上下載并進(jìn)行刪改而成的,以下只是51單片機(jī)與375通信程序。程序如下: 程序運(yùn)行環(huán)境 ; ;CH375_CS_ BIT P2.7 ;MCS-51單片機(jī)的A15引腳,用于CH375片選,不必定義 ;CH375_A0 BIT P2.0 ;MCS-51單片機(jī)的A8引腳,用于CH375地址0,不必定義,也可用外部74373鎖存的A0地址 ;CH375_INT_ BIT P3.2 ;MCS-51單片機(jī)的INT0引腳,用于CH375中斷請求,無需定義 ;CH375_WR_ BIT P3.6 ;MCS-51單片機(jī)的RD引腳,用于CH375寫選通,無需定義 ;CH375_RD_ BIT P3.7 ;MCS-51單片機(jī)的WR引腳,用于CH375讀選通,無需定義 ; ; 本程序適用于時鐘頻率不高于24MHz的標(biāo)準(zhǔn)MCS-51單片機(jī), 如果高于24MHz則應(yīng)該適當(dāng)增加延時, 如果低于24MHz則可以適當(dāng)減少延時 ; ; 需要主程序定義的參數(shù) CH375_CMD_PORT EQU 04000H ;CH375命令口的地址,地址譯碼后自動片選 CH375_DAT_PORT EQU 00000H ;CH375命令口的地址,地址譯碼后自動片選 RECV_LEN DATA 3FH ;剛接收到的數(shù)據(jù)的長度 RECV_BUFFER DATA 40H ;數(shù)據(jù)緩沖區(qū),用于保存接收到的下傳數(shù)據(jù),長度為0到64字節(jié) ; 由于MCS-51單片機(jī)存取外部RAM的讀寫速度低于內(nèi)部RAM, 并且需要用到DPTR, 所以讀寫速度較慢, 其程序可以參考本程序修改 ; ; 定義位標(biāo)志 FLAG_SEND_WAIT BIT 20H.1 ;發(fā)送等待標(biāo)志,1指示有數(shù)據(jù)塊正在CH375中等待發(fā)送 FLAG_INT_WAIT BIT 20H.2 ;中斷數(shù)據(jù)等待發(fā)送標(biāo)志,1指示有中斷數(shù)據(jù)正在CH375中等待發(fā)送 ; ; $INCLUDE (CH375INC.ASM) ; ;**************************************************************************** ; ;對外接口子程序,僅供參考 ; ; 1. CH375_INIT 初始化子程序 ; USE: ACC, R7, DPTR ; ; 2. CH375_UPLOAD 上傳數(shù)據(jù)塊子程序(通過批量端點上傳) ; ENTRY: R0 指向存放了準(zhǔn)備上傳數(shù)據(jù)的緩沖區(qū), R7 準(zhǔn)備上傳的數(shù)據(jù)長度, 有效數(shù)值是0到64 ; USE: ACC, R0, R7, DPTR ; ; 3. CH375_UP_INT 上傳中斷數(shù)據(jù)子程序(通過中斷端點上傳),可選子程序 ; ENTRY: R0 指向存放了準(zhǔn)備上傳數(shù)據(jù)的緩沖區(qū), R7 準(zhǔn)備上傳的數(shù)據(jù)長度, 有效數(shù)值是0到8 ; USE: ACC, R0, R7, DPTR ; ; 4. CH375_INTER 中斷服務(wù)子程序 ; USE: 堆棧8字節(jié) ; ;**************************************************************************** ;主程序的例子 ORG 0000H ;復(fù)位后單片機(jī)入口 LJMP START ORG 0003H ;CH375中斷 LJMP CH375_INTER START: LCALL REST ;初始化 SETB EA ;允許中斷 WAIT_REQUEST:NOP SJMP WAIT_REQUEST ;主循環(huán)

;**************************************************************************** ; ; 初始化子程序 ; USE: ACC, R7, DPTR REST: LCALL CH375_INIT RET CH375_INIT: MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_SET_USB_MODE MOVX @DPTR,A ;設(shè)置USB工作模式 nop ;如果時鐘頻率低于16MHz則無需該指令延時 MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 MOV A,#02H MOVX @DPTR,A ;設(shè)置為使用內(nèi)置固件的USB設(shè)備方式 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 CH375_INIT_WT: MOVX A,@DPTR ;返回操作狀態(tài) XRL A,#CMD_RET_ABORT mov XRL A,#CMD_RET_SUCCESS JNZ CH375_INIT_WT ;等待操作成功,通常需要等待10uS-20uS ; 下述三條指令用于啟用中斷 CLR IT0 ;置外部信號為低電平觸發(fā) SETB PX0 ;置高優(yōu)先級 CLR IE0 ;清中斷標(biāo)志 SETB EX0 ;允許CH375中斷 RET CH375_INTER:PUSH PSW ;現(xiàn)場保護(hù) PUSH ACC PUSH DPL PUSH DPH PUSH 01H ;R1 PUSH 02H ;R2 MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_GET_STATUS MOVX @DPTR,A ;獲取中斷狀態(tài)并取消中斷請求 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 MOVX A,@DPTR ;返回操作狀態(tài) CLR IE0 ;清中斷標(biāo)志,對應(yīng)于INT0中斷 LJMP CH375_DOWN_OK ;USB批量數(shù)據(jù)接收成功,USB端點2的OUT

CH375_INT_4:MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_UNLOCK_USB MOVX @DPTR,A ;釋放當(dāng)前USB緩沖區(qū) SJMP CH375_INT_RET CH375_INT_RET: POP 02H ;R2 POP 01H ;R1 POP DPH POP DPL POP ACC POP PSW ;恢復(fù)寄存器 RETI ;中斷返回 ; USB批量數(shù)據(jù)接收成功 CH375_DOWN_OK: MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_RD_USB_DATA MOVX @DPTR,A ;從當(dāng)前USB中斷的端點緩沖區(qū)讀取數(shù)據(jù)塊,并釋放緩沖區(qū) NOP ;如果時鐘頻率低于16MHz則無需該指令延時 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 MOVX A,@DPTR ;首先讀取后續(xù)數(shù)據(jù)長度 MOV R2,A JZ CH375_INT_RET ;長度為0,沒有數(shù)據(jù)則直接退出 MOV RECV_LEN,A MOV R1,#RECV_BUFFER ;接收緩沖區(qū) CH375_INT_RECV: MOVX A,@DPTR ;接收數(shù)據(jù) MOV @R1,A INC R1 DJNZ R2,CH375_INT_RECV ;繼續(xù)接收數(shù)據(jù)直至結(jié)束 ; CALL PROCESS ;分析下傳數(shù)據(jù)并準(zhǔn)備應(yīng)答 LJMP CH375_INT_RET end


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

程序有誤,重發(fā)如下 主程序的例子 ORG 0000H ;復(fù)位后單片機(jī)入口 LJMP START ORG 0003H ;CH375中斷 LJMP CH375_INTER START: LCALL REST ;初始化 SETB EA ;允許中斷 WAIT_REQUEST:NOP SJMP WAIT_REQUEST ;主循環(huán)

;**************************************************************************** ; ; 初始化子程序 ; USE: ACC, R7, DPTR REST: LCALL CH375_INIT RET CH375_INIT: MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_SET_USB_MODE MOVX @DPTR,A ;設(shè)置USB工作模式 nop ;如果時鐘頻率低于16MHz則無需該指令延時 MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 MOV A,#02H MOVX @DPTR,A ;設(shè)置為使用內(nèi)置固件的USB設(shè)備方式 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 CH375_INIT_WT: MOVX A,@DPTR XRL A,#CMD_RET_SUCCESS JNZ CH375_INIT_WT ;等待操作成功,通常需要等待10uS-20uS ; 下述三條指令用于啟用中斷 CLR IT0 ;置外部信號為低電平觸發(fā) SETB PX0 ;置高優(yōu)先級 CLR IE0 ;清中斷標(biāo)志 SETB EX0 ;允許CH375中斷 RET CH375_INTER:PUSH PSW ;現(xiàn)場保護(hù) PUSH ACC PUSH DPL PUSH DPH PUSH 01H ;R1 PUSH 02H ;R2 MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_GET_STATUS MOVX @DPTR,A ;獲取中斷狀態(tài)并取消中斷請求 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 MOVX A,@DPTR ;返回操作狀態(tài) CLR IE0 ;清中斷標(biāo)志,對應(yīng)于INT0中斷 LJMP CH375_DOWN_OK ;USB批量數(shù)據(jù)接收成功,USB端點2的OUT

CH375_INT_4:MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_UNLOCK_USB MOVX @DPTR,A ;釋放當(dāng)前USB緩沖區(qū) SJMP CH375_INT_RET CH375_INT_RET: POP 02H ;R2 POP 01H ;R1 POP DPH POP DPL POP ACC POP PSW ;恢復(fù)寄存器 RETI ;中斷返回 ; USB批量數(shù)據(jù)接收成功 CH375_DOWN_OK: MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_RD_USB_DATA MOVX @DPTR,A ;從當(dāng)前USB中斷的端點緩沖區(qū)讀取數(shù)據(jù)塊,并釋放緩沖區(qū) NOP ;如果時鐘頻率低于16MHz則無需該指令延時 NOP ;如果時鐘頻率低于16MHz則無需該指令延時 MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 MOVX A,@DPTR ;首先讀取后續(xù)數(shù)據(jù)長度 MOV R2,A JZ CH375_INT_RET ;長度為0,沒有數(shù)據(jù)則直接退出 MOV RECV_LEN,A MOV R1,#RECV_BUFFER ;接收緩沖區(qū) CH375_INT_RECV: MOVX A,@DPTR ;接收數(shù)據(jù) MOV @R1,A INC R1 DJNZ R2,CH375_INT_RECV ;繼續(xù)接收數(shù)據(jù)直至結(jié)束 ; CALL PROCESS ;分析下傳數(shù)據(jù)并準(zhǔn)備應(yīng)答 LJMP CH375_INT_RET end

;


你發(fā)下測試命令測試下看芯片有沒有正常工作


如果設(shè)置模式2后PC沒反應(yīng)的話,你做一下測試命令~


CH375 固化程序是什么 難道還要給375下載程序不成


不需要下載程序。固化了USB底層傳輸?shù)南嚓P(guān)固件。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频