您好:
完全可以,不用修改程序,C52只是多了一个定时器和多了一点存储空间,如果你程序在C51上能运行,那在C52上当然也能运行。
楼上说得对,C51语言在算法上,逻辑关系上,的确比汇编优秀得多,也容易看明白,C51程序的设计,不管是在硬件上,还是在软件上,个人建议都采用统一的模块化设计,这样在调试和修改,维护上都方便得多,主程序一般都是由多个子函数构成,什么时候需要直接调用就行了,比起汇编在调用的地址范围上的限制,要人行化得多。所以,你说,能不能汇编那样,跳到任意地方,其实,确切的说,不是跳到任何地方,是我程序在哪个地方需要什么功能,直接去调用相关功能的子程序就行了。而不是像汇编那样用LCALL,ACALL等指今。
当然C语言里面有一条语句,GOTO,它可以跳到你和程序的任何地方,但建议一般不这样用,会打破你的模块化设计结构。如果你非要用,建议只用在子程序里面,而且跳转地址也只在该子程序里。不要在主程序中用此语句。
祝你好运
AT89C52的长处主要有两个:定时器2和高128字节的RAM。
如果程序中,没有用到这两部分,就可以把51的程序,直接用到AT89C52上。
完全可以
不过你的下载器可能不支持
最好把头文件和驱动芯片改成C52