早期一样平常是将调试好的单片机程序写入到 ROM、 EPROM 中,这种操作就像刻制光盘一样,实在高电压办法下写入,PROM 是一次性写入,存储内部发生变革,有些线路或元件就被烧断,不可再规复,以是叫做烧写,EPROM 可以利用紫外线将原来写入的内容擦除,重新烧写,目前大量采取 EEPROM,是可以电擦写的存储器。
单片机启动时会直接运行这些芯片中的程序,完成既定的功能。

所谓烧写,实在便是对单片机中的 rom 进行擦写。当代工艺下,rom 已经可以进行多次擦写,但在早期,rom 只能一次性设计好,例如早期的 PLC,把二极管上的丝烧了后就永久编码出 1。而我们知道,单片机程序经编译连接后传给机器便是机器措辞,简而言之便是一大堆 1 和 0。在少些过程中,我们将烧不烧一大堆 MOS 管和 BJT 的丝或连不连上通道来表示这些 1 和 0。

烧写的三种办法:
1. 把单片机当做一个 ROM 芯片,早期的单片机都是如此。将单片机放在通用编程上编程时,就像给 28C256 这样的 ROM 中写程序的过程一样。只是不同的单片机利用的端口,编程用的时序不一样。
2. 像 AT89S52 或 AVR 单片机一样,在单片机上有 SPI 接口,这时用专用的下载线将程序烧写到单片机中。这时不同的是,单片机的 CPU 除了实行单片机本身的指令之外,还能实行对 ROM 进行操作的分外指令,如 ROM 擦除、烧写和校验指令。在编程 ROM 时,下载线先通过传输这些指令给 CPU 实行 (擦除 ROM、读入数据、烧写 ROM、和校验 ROM),这样完成对单片机的 ROM 的烧写。此外,现在普遍利用的 JTAG 仿真器也是这样,单片机的 CPU 能实行 JTAG 的分外指令,完成对 ROM 的烧写操作。
3. 勾引程序,即单片机中已经存在了一个烧写程序。启动单片机时首先运行这程序,程序判断端口状态,如果符合“要烧写 ROM”的状态存在,就从某个端口(串口、SPI 等等)读取数据,然后写入到单片机的 ROM 中。如果没有“要烧写 ROM”的状态,就转到用户的程序开始实行。像 AVR 单片机的 bootloader 办法、STC 的串口下载办法,还有其他单片机的串口编程等等都是这样。








