ch375的軟件流程

我已經(jīng)申請(qǐng)了貴公司的ch375芯片,按照說明書上的電路已經(jīng)進(jìn)行了焊接 我要實(shí)現(xiàn)的功能是:從計(jì)算機(jī)下傳一個(gè)數(shù)據(jù)(我需要的數(shù)據(jù)只有八種000,001,010,011,100,101,110,111),單片機(jī)依據(jù)數(shù)據(jù)的不同作出不同的動(dòng)作,我現(xiàn)在不太了解ch375的工作流程,請(qǐng)幫忙 還有命令 具體是如何寫入的 謝謝 我用的晶振都是11.0592M的[Emot]1[/Emot]

操作流程是這樣的: 1,首先給375設(shè)置模式2,這個(gè)時(shí)候,USB插到計(jì)算機(jī)上面會(huì)找到設(shè)備 2,接下來就是等待中斷。 3,當(dāng)有中斷來之后,首先發(fā)送0X22的命令,在讀取數(shù)據(jù)端口,看下返回的狀態(tài)碼是多少,這個(gè)時(shí)候如果計(jì)算機(jī)通過端點(diǎn)2發(fā)送數(shù)據(jù)下來的話,這個(gè)時(shí)候,你讀取到的狀態(tài)碼為02h,這個(gè)時(shí)候你發(fā)送0X27的命令讀取數(shù)據(jù),在讀取數(shù)據(jù)長(zhǎng)度,接著在根據(jù)長(zhǎng)度讀取數(shù)據(jù),讀取完成之后退出中斷函數(shù)。 4,相同的,在讀取的中斷狀態(tài)為0AH的話,你需要發(fā)解鎖命令23h命令,但是注意,在上傳數(shù)據(jù)成功中斷之前,你應(yīng)該要通過端點(diǎn)2往372里面寫數(shù)據(jù)。


樓上是沁恒的技術(shù)人員馬?我寫的程序您能不能看看,幫忙?。?!


是技術(shù)人員,你把程序帖出來看下


375的晶振一定要用12M,11.0592是不可以的,我們的說明書有說明的!


;主程序的例子 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 ;如果時(shí)鐘頻率低于16MHz則無需該指令延時(shí) DEC DPL ;數(shù)據(jù)口地址 MOV A,#02H MOVX @DPTR,A ;設(shè)置為使用內(nèi)置固件的USB設(shè)備方式 NOP ;如果時(shí)鐘頻率低于16MHz則無需該指令延時(shí) NOP ;如果時(shí)鐘頻率低于16MHz則無需該指令延時(shí) CH375_INIT_WT: MOVX A,@DPTR ;返回操作狀態(tài) XRL A,#CMD_RET_SUCCESS JNZ CH375_INIT_WT ;等待操作成功,通常需要等待10uS-20uS ; 下述三條指令用于啟用中斷 CLR IT0 ;置外部信號(hào)為低電平觸發(fā) SETB PX0 ;置高優(yōu)先級(jí) CLR IE0 ;清中斷標(biāo)志 SETB EX0 ;允許CH375中斷 RET CH375_INTER:PUSH PSW ;現(xiàn)場(chǎng)保護(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)并取消中斷請(qǐng)求 NOP ;如果時(shí)鐘頻率低于16MHz則無需該指令延時(shí) NOP ;如果時(shí)鐘頻率低于16MHz則無需該指令延時(shí) MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 MOVX A,@DPTR ;返回操作狀態(tài) CLR IE0 ;清中斷標(biāo)志,對(duì)應(yīng)于INT0中斷 LJMP CH375_DOWN_OK ;USB批量數(shù)據(jù)接收成功,USB端點(diǎn)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中斷的端點(diǎn)緩沖區(qū)讀取數(shù)據(jù)塊,并釋放緩沖區(qū) NOP ;如果時(shí)鐘頻率低于16MHz則無需該指令延時(shí) NOP ;如果時(shí)鐘頻率低于16MHz則無需該指令延時(shí) MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 MOVX A,@DPTR ;首先讀取后續(xù)數(shù)據(jù)長(zhǎng)度 MOV R2,A JZ CH375_INT_RET ;長(zhǎng)度為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

; ;**************************************************************************** ; 您看一下 這是我把您的東西刪刪減減得到的 不知道對(duì)不對(duì) 我自己的動(dòng)作程序還沒寫


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

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