电脑在通过接口向单片机烧写时,此时单片机内没有程序。电脑是如何通过接口访问内部ROM的?对应的P口怎么就会指向单片机内部ROM的?
有三种方式:
一:把单片机当做一个ROM芯片,早期的单片机都是如此。将单片机放在通用编程上编程时,就像给28C256这样的ROM中写程序的过程一样。
只是不同的单片机使用的端口,编程用的时序不一样。
二:像AT89S52或AVR单片机一样,在单片机上有SPI接口,这时用专用的下载线将程序烧写到单片机中。
这时不同的是,单片机的CPU除了执行单片机本身的指令之外,还能执行对ROM进行操作的特殊指令。
如ROM擦除、烧写和校验指令。在编程ROM时,下载线先通过传输这些指令给CPU执行(擦除ROM、读入数据、烧写ROM、和校验ROM),这样完成对单片机的ROM的烧写。
此外,现在普遍使用的JTAG仿真器也是这样,单片机的CPU能执行JTAG的特殊指令,完成对ROM的烧写操作。
三:引导程序,即单片机中已经存在了一个烧写程序。启动单片机时首先运行这程序,程序判断端口状态。
如果符合“要烧写ROM”的状态存在,就从某个端口(串口、SPI等等)读取数据,然后写入到单片机的ROM中。
如果没有“要烧写ROM”的状态,就转到用户的程序开始执行。像AVR单片机的bootloader方式、STC的串口下载方式,还有其他单片机的串口编程等等都是这样。
联系客服