在论坛上找别人成功的程序实验通不过,别人都通过了,应该没有时序问题吧,仔细检查了硬件连接,也没发现什么错误啊,真是崩溃啊,都找了快一小天了
CH372上电之后需要延时50ms左右,测试命令不通过 说明硬件上或者时序上肯定是有问题的,把程序贴出来看看
各位帮忙看看吧
我上传的附件怎么看不见啊
不知道能不能看见附件程序
#pragma NOAREGS #include #include #include "CH375INC.H" /* 头文件,在网上下载的CH372或者CH375评估板资料中有 */
unsigned char volatile xdata CH375_CMD_PORT _at_ 0X7FFF; /* CH375命令端口的I/O地址 1011 1101 1111 0000 */ unsigned char volatile xdata CH375_DAT_PORT _at_ 0X3FFF; /* CH375数据端口的I/O地址 1011 1100 1111 0000 */ sbit led0 = P1^0; sbit led1 = P1^1; sbit led3 = P1^3; /* 延时2微秒,不精确 */ void delay2us( ) { unsigned char i; for ( i = 2; i != 0; i -- ); /* 根据单片机的时钟选择初值 */ }
/* 延时1微秒,不精确,因为MCS51单片机较慢所以实际上无需延时 */ void delay1us( ) { unsigned char i; for ( i = 1; i != 0; i -- ); }
/* 基本操作 */
void CH375_WR_CMD_PORT( unsigned char cmd ) { /* 向CH375的命令端口写入命令,周期不小于4uS,如果单片机较快则延时 */ delay2us(); CH375_CMD_PORT=cmd; delay2us(); }
void CH375_WR_DAT_PORT( unsigned char dat ) { /* 向CH375的数据端口写入数据,周期不小于1.5uS,如果单片机较快则延时 */ CH375_DAT_PORT=dat; delay1us(); /* 因为MCS51单片机较慢所以实际上无需延时 */ }
unsigned char CH375_RD_DAT_PORT( void ) { /* 从CH375的数据端口读出数据,周期不小于1.5uS,如果单片机较快则延时 */ delay1us(); /* 因为MCS51单片机较慢所以实际上无需延时 */
return( CH375_DAT_PORT ); }
/* 延时50毫秒,不精确 */ void Delay50ms( ) { unsigned char i, j; for ( i=200; i!=0; i-- ) for ( j=250; j!=0; j-- ); }
main( ) { unsigned char i; Delay50ms( ); /* 延时等待CH375初始化完成,如果单片机由CH375提供复位信号则不必延时 */ Delay50ms( ); /* 测试CH375是否正常工作,可选操作,通常不需要 */ CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); CH375_WR_DAT_PORT( 0x55 ); i = ~0x55; if ( CH375_RD_DAT_PORT( ) == i ) led0 = 0; else led1 = 0; while ( 1 ); /* 以下指令开始工作循环,等待PC机命令进行操作 */ }
有没有可能是芯片坏了啊,我的数据口连接的是51单片机的P0口,P2.7连接CS,P2.6连接A0,单片机的RD连接CH372的RD,WR连接372的WR,每次上电以后都是led1亮
用的是哪一种型号单片机,有没有外扩RAM? 看看CH372的晶振有没有起振? 用示波器看看单片机发出的数据信号是否正确
用的是STC90c516,没有外扩RAM,晶振工作正常
study是怀疑单片机的问题吗?应该不是,单片机烧写的其他程序都能正常实现
如果手上有示波器的话,去看下CS以及WR,RD的信号是否正常,如果硬件如你所说,上面的软件是没有问题的。那么就需要怀疑你单片机和CH372之间的连线是否有问题,不要拿万用表测试,拿示波器去看真正的波形是什么。
还有楼上所说的有没有外扩RAM的目的是担心你的硬件地址有冲突。所以这部分也可以顺带的检查下。
我是用淘宝上的单片机开发板做实验的,开发板有外扩的ram,但是在程序里面,我没有进行读写操作,应该不会影响的吧,另外,WR,CS以及RD是什么样的波形才算正常呢,谢谢
那你看下你的RAM的地址从什么地方开始到什么地方结束。如果地址冲突的话,你写给CH375的数据实际上是写到RAM里面去了,从而导致不正常。至于WR,RD,CS的波形你可以看下CH375的说明书,上面有详细的介绍。
lz你能留下QQ吗?我们也自己交流一下啊,我好像和你用的一样的芯片啊,我的QQ是184930560