大家好,我在做单片机读U盘,程序用的exam6,用的STC89C53,外扩了个2K的6116,现在程序调不通,该咋办啊,请求大家帮助我,谢谢啊!
现在程序运行到插入U盘,led亮,然后就没反应了,请给予指点啊
执行哪个库函数了,返回值是多少呢?
用的HF6.LIB,我不会了连串口,请你指点啊
是这样的,我想用单片机把U盘里的文件名读出来,然后在12864上显示,硬件都焊好了,但是375的程序运行不通,有可能是6116的地址算错了,6116的A8,A9,A10分别接P2.4,P2.3,P2.2,CE#接P2.5,375的CS#接的P2.0,A0接P2.1,这样行不?我算的6116的地址是0xC300
首先你需要去跟踪下你的程序运行到哪步,至少需要去跟踪下。 其次,按照你给的这个的话,你的RAM地址是不连续的,所以可能会出现问题,这样的话RAM分配就比较麻烦。
请指点一下跟踪程序的方法吧,我不会用串口呢,串口调试助手我有了,剩下的怎么接? 如果需要地址连续,我改一下硬件,请问应该怎么连接这些地址线和控制线
通过单片机的串口接RS232芯片,接到计算机的串口上面去,计算机端用串口工具检测单片机发送出来的数据。硬件设计的时候你需要把地址设计成连续的,否则RAM可能会无法全部利用到。至于怎么设计那你需要自己计算下地址是怎么改了。
返回的都是16进制是数 , 1E 33 E0 3F 06 3C 18 3F E0 3F E6 00 18 00 FE 33 06 3C 06 1E E0 3F 00 18 E6 33 18 C6 CC E6 F8 E6 E6 E6 0F 18 06 FC 18 33 E6 3C 06 3C E0 3C 06 06 C0 18 18 3E 30 63 C0 请问是什么意思啊
请大家指点,再次谢谢了啊
我改了地址线了,A8,A9,A10分别接P2.0,P2.1,P2.2了,那我的DISK_BASE_BUF_ADDR就是0x0000了吧,那CH375_CMD_PORT_ADDR和CH375_DAT_PORT_ADDR分别是多少呢
RAM的地址是可以了,CH375的CS,A0现在是怎么接的,原来的接法不可以了
6116的CE#接的P2.3,CH375的CS#接的P2.4,A0接的P2.5
这样的话,我的DISK_BASE_BUF_ADDR就是0x0000了吧,那CH375_CMD_PORT_ADDR和CH375_DAT_PORT_ADDR分别是多少呢
依12楼的接法,RAM地址:0x1000~0x17FF,CH375地址:0x2800和0x0800(符合条件的还很多) 总线扩展的原理,简单的说,器件片选信号必须互斥,不可以同时选中,如果想使RAM地址分布在0x0000~0x07FF间,简单的做法,CH375的片选通NPN三极管反向选择,其他硬件不变,如图: VCC | 电阻4K7 |_______375 CS# P2.4___电阻4K7___/ \ | GND CH375地址:0x3800和0x1800 建议你还是先了解一些总线扩展的原理
非常感谢你啊,地址改了以后已经能够正常读写U盘了,不知该怎么表达谢意! 还请您教我一下这个地址是如何算出来的,我一点也算不对,我算的差了很多