[求助]INT不變低[求助]

命令、數(shù)據(jù)端口的定義: CH375_CMD_PORT_ADDR EQU 0BDF1H ; CH375命令端口的I/O地址 */ CH375_DAT_PORT_ADDR EQU 0BCF0H ; CH375數(shù)據(jù)端口的I/O地址 */ 命令B**1,數(shù)據(jù)B**0,中間的地址是任意的嗎?還是對(duì)于這個(gè)電路來說,必須是0BDF1H、0BCF0H,為什么不是0BDF1H、0BCF0H?

我的電路,A0連接地址總線A0 P1.0 628128片選,P1.1 8255片選,P1.2 628128的地址A16,P1.3 CH375片選。不知道這電路的命令、數(shù)據(jù)端口地址是多少? 謝謝

保證CS為0就可以了,P1.3?是什么MCU?如果是51的話就不是的了,要用模擬IO.P1不是地址總線


STC89C58 CS也必須是地址總線嗎?單獨(dú)使CS的片選P1.3=0可以嗎?不是地址總線 定義: CH375_CMD_PORT_ADDR EQU 0001H ;CH375命令端口的I/O地址 CH375_DAT_PORT_ADDR EQU 0000H ;CH375數(shù)據(jù)端口的I/O地址

是否正確?


如果不接的話,那你就在讀寫函數(shù)里拉低拉高.


CS不是一直保持低電平嗎?》


這樣定義感覺有問題,把地址定義高點(diǎn)吧,因?yàn)?8有內(nèi)部自帶的XRAM,如果不禁自帶的XRAM的話,就無法訪問CH375了.定義高點(diǎn)


我把58自帶的EXTRM禁止了 那CS單獨(dú)片選是否有問題? 地址改高了還是不行,我感覺查詢不到INT中斷是地址定義不對(duì)吧


程序和電路都在上面,不知能否幫忙檢查下? 謝謝

怎么能檢查命令、數(shù)據(jù)端口的定義是否正確?


 可以做一下測試命令,檢查你的命令端口地址和數(shù)據(jù)端口地址定義是否正確. 硬件上面,在操作ch375的時(shí)候不能片選其他的設(shè)備 ; 測試CH375是否正常工作,可選操作 ;MOV DPTR,#CH375_CMD_PORT ;命令口地址 ;MOV A,#CMD_CHECK_EXIST ;MOVX @DPTR,A ;測試CH375是否正常工作,可選操作 ;NOP   ;如果時(shí)鐘頻率低于16MHz則無需該指令延時(shí),高于30MHz要多加2條指令 ;MOV DPTR,#CH375_DAT_PORT ;數(shù)據(jù)口地址 ;MOV A,#55H ;MOVX @DPTR,A ;寫入測試數(shù)據(jù) ;CPL A ;MOV R7,A ;取反數(shù)據(jù) ;MOVX A,@DPTR ;返回?cái)?shù)據(jù)應(yīng)該是測試數(shù)據(jù)取反 ;XRL A,R7 ;JZ CH375_INIT_OK ;測試通過 ;MOV DPTR,#CH375_CMD_PORT ;命令口地址 ;MOV A,#CMD_RESET_ALL ;MOV R7,#50H ;多次重復(fù)發(fā)命令


測試命令返回?cái)?shù)據(jù)正確 U盤連接后,INT引腳還是高電平,但取出U盤時(shí),INT變?yōu)榈碗娖?/p>


我看下你測試命令是怎么寫的?還有你讀取到的數(shù)據(jù)是什么樣子?


測試命令按上面給我的程序?qū)懙? MOV DPTR, #CH375_CMD_PORT ;命令口地址 MOV A, #CMD_CHECK_EXIST MOVX @DPTR, A ;測試CH375是否正常工作,可選操作 MOV DPTR, #CH375_DAT_PORT ;數(shù)據(jù)口地址 MOV A, #55H MOVX @DPTR, A ;寫入測試數(shù)據(jù) CPL A MOV R7, A ;取反數(shù)據(jù) MOVX A, @DPTR ;返回?cái)?shù)據(jù)應(yīng)該是測試數(shù)據(jù)取反 XRL A, R7 JZ CH375_INIT_OK

我將讀到的數(shù)據(jù)送到液晶顯示,為170,就是0AAH


那你看下在寫0AAH之后讀取到的數(shù)據(jù)是不是55H,然后設(shè)置模式6之后插上U盤把中斷引腳撬起來看中斷引腳電壓是高還是低


現(xiàn)在已經(jīng)偏離了你的問題,前幾天已經(jīng)查出來你的單片機(jī)檢測不到,但是CH375的INT引腳是變低了. 你的程序在每次操作CH375之前要把片選拉低,把628128的CE拉高,操作完畢后CH375的CS要拉高.否則的話操作是有問題,你的628128已經(jīng)把所有的地址線全部占用了,另外DISK_BASE_BUF地址定義在0X0000,這樣的話就會(huì)出現(xiàn)地址重疊了.你的片選如果一直為低的話,那這樣你去操作628128的時(shí)候就會(huì)出現(xiàn)問題了. 不知道上面的解釋您有沒有明白.


1、寫0AAH后,讀到85,是55H,變化其他數(shù)據(jù),讀到也是相應(yīng)數(shù)據(jù)取反 2、INT懸空,中斷引腳可變?yōu)榈碗娖? 3、連接INT,設(shè)置模式6,連接U盤INT仍是高電平,取下U盤變?yōu)榈碗娖?/p>

連接INT,如果375初始化完成后,不執(zhí)行其他操作,連接U盤后,INT會(huì)變低,但好象一執(zhí)行xQueryInterrupt,INT就是高電平


我明白您的意思,現(xiàn)在程序中628128的片選一直為高,只測試375部分的程序,液晶顯示是為了檢測結(jié)果,相應(yīng)的片選也進(jìn)行了設(shè)置。 現(xiàn)在定義 CH375_CMD_PORT_ADDR EQU 0BDF1H ;CH375命令端口的I/O地址 CH375_DAT_PORT_ADDR EQU 0BCF0H ;CH375數(shù)據(jù)端口的I/O地址 我這個(gè)電路,單獨(dú)片選375,應(yīng)該只確保A0分別為0、1就可以了吧

以后讀U盤中文件數(shù)據(jù)存放到628128,所以定義DISK_BASE_BUF_ADDR EQU 0000H

現(xiàn)在我檢查不出單片機(jī)檢測不到中斷的原因……

INT0的中斷觸發(fā)方式是否需要設(shè)置?低電平還是負(fù)跳變觸發(fā)?


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

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