STC15F2K60S2单片机兼容问题

之前使用89系列一直好好的,这几天换了15F2K60S2这款,发现硬件上下载总是下不进去,时好时坏的,软件上不兼容是C语言,加好几个NOP都不好用,后来打电话问STC的杜工,说硬件就是这样,此问题还没解决,软件上不是加NOP的问题,是什么时序怎么改 的云云我也没听到如何解决问题。现在我连12864液晶都驱动不了,以前可以。有没有遇到相同问题的朋友,请不吝赐教。

首先89系列和15F系列在硬件上是不兼容的,引脚不同的,需要重新做板,下载程序所用的软件也必须用最新的stc-isp-15xx-v6.65.exe。在软件上完全可以用C语言编程,没有“不兼容是C语言”的问题。最好用STC15F2K60S2.H头文件,用C语言编程是不能直接写NOP的,要装头文件intrins.h,而且是用_nop_();函数。
你之前用的89系列也是STC的吗,请注意,如果是AT89系列的程序就不能直接用了,需要改的,特别是用软件延时的程序,因STC单片机的时序确实变化了。
我原来用的是STC12C5A60S2,也是配12864屏,现在换成了15F2K60S2,只需要将引脚重新定义一下,因重新设计的电路板,引脚发生变化了,其它都不用改,编译后下载就正常运行了,一点问题也没有的。追问

原来用的STC89C52,硬件重新做的,昨天焊板子焊了老半天,下载也是时好时坏的,我都快用崩溃了,准备换回89系列呢 ,软件头文件也换成STC15F2K60S2的了,就是软件的时序是哪里不对了,写的东西很多,要找的话想想都头疼

追答

STC89C52是6时钟周期的单片机,而STC15F2K60S2是单时钟周期的,在速度上肯定是不同的,有NOP延时的程序就不兼容了。首先在晶振频率上要与原程序一致,如原来是12M,现在也要选12M的,因15F系列可选内部的时钟了。而要改程序中延时程序,因“写的东西很多”不好找,不妨给15F系列的时钟降频,设置CLK_DIV寄存器,4分频,或8分频,尽量与原程序兼容,这只好做测试了,看能不能正常工作。
以后,再写程序就按(1周期)15F系列的写就好了,程序就能移植了。
还有一点提醒:重新做的板子,程序中的引脚需要重新定义的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-12
我下载程序有时不行,多下载几次就可以了,但是下载完后运行正常追问

包括器件的时序都是吻合么,如18B20,12864什么的

追答

没用12864,我用的串口屏,我喜用 了串口和ADC

第2个回答  2014-02-12
其实就是和89之间的区别就是延时时间。

其它都差不多。

解决办法,用示波器看看波形,不符合芯片资料要求的地方就改,直到能正常工作。追问

不如89好用。真的太麻烦了,以后写东西部一定什么时候就时序不对了

追答

这个用过的都有同感,用多了,熟悉了就好了。

本回答被提问者采纳