刚开始学单片机的时候,一直没搞明白,为什么89C58RD+的芯片,编写代码时要选择reg52.h的头文件,还有为什么89C52的芯片要在keil5中创建工程时选择AT89C51而在烧录时又必须选择相同型号。好在我对比了几位小伙伴他们写的程序与使用的芯片,又去看了他们各自看的学习视频,终于这个答案浮出水面。
首先就是烧录软件,烧写的单片机型号在STC-ISP中选择时,必须选择与芯片相同的型号!!!我用的是STC89C58RD+的老版芯片(这个芯片确实太老,有很多模块的程序都需要自己对着老版原理图敲,刚开始我没有太在意这个问题,直到我的数码管和LCD1602都报错之后我才找到这个问题。在此还是要提醒各位工程师,一定一定不要用STC89C5xRC的头文件写STC89C58RD+.)烧写方面的流程我就不献丑了。
然后就是工程搭建时的选择,之所以用89C52芯片时要选择工程环境为AT89C52是因为二者的端口原理(即开发原理图)大致相同。原理图大家可以在博客上找找(其实是因为我是新手找不到上传原理图的方法)。编写代码时的头文件问题与之相似,stc89c52与AT89c52相同,stc89c58RD+与reg52也大致相同,所以才能相互使用。但如果像我stc89c58RD+的芯片头文件选择为STC89C5xRC就会出现端口错乱现象,比如说你的LCD1602代码烧录不进去