单片机的构成和工作状态都十分像一台小型的计算机,计算机想要运行就需要内存的支持,单片机也不例外,在九十年代的国内,很多单片机都是需要依靠外加的RAM和ROM进行工作的,早但现在很多厂家早已经能将CPU或RAM进行集成,那么RAM在单片机中的作用是什么呢?在本文中小编就来为大家介绍程序存储器在单片机中的用途。

程序存储器

里面存放的是单片机的灵魂:工作程序。小的可能只有1KB(最多只能装1024条8位数据,因为实际指令还有许多2字节,3字节指令,所以它还装不下1024条指令)大的也有128KB的。这些8位数据要么在工厂里做摸子光刻进去,要么一次性的烧写进去,要么业余或开发最多的用编程器这么个特殊工具把调试成功的机器码装载进去,或者像AVR单片机那样使用下载线,把电脑里这些东西灌进去(或许是AVR最吸引人之处),它一旦进驻电脑的程序存储器中,除了借助上述装置便不能自由改写。

在单片机运行时,只是从其中读出指令或固定的数据,所以给程序存储器一个只读存储器的别名,简写为ROM,包括用编程器写紫外线擦除内容的EPROM。用电擦除的EEPROM和现在新兴的FLASH ROM;一次性写入的ROM仅用于电路和程序固定的批量产品中,实际工作起来都是一样的。

为了定位ROM中的数据,每个8位(bit:二进制位)存储单元都有一个固定的地址,通常用16进数表示:

例如对于一个所谓4K的ROM,地址从0000H到0FFFH,(即是从0000,0001...4095)。

单片机运行时从哪个地址取数据,完全由程序本身决定,并不需要开发者干预。记住,单片机一旦通电,它经过一个短暂的复位过程后立即转向ROM的最低地址0000H,在这里面放置的往往是一条跳转指令,它从这里一步跳到另一个地址:程序的真正起始地址。

有人会问,难道ROM中就只有指令不能来点别的?ROM是程序存储器,除了指令外,还包括运行程序必须的某些固定数据,例如:数据表。假如要求在单片机的某口上输出00H到FFH(255)按正弦半波变化的数值,每秒10000次,那如果硬要它按照公式一个个计算,对于它来说未免力不从心,可是把预先计算好的数值存入ROM中,再直接取出就会方便很多。

此外,很多开发者一定见过不少单片机的东西上面都有数码显示,那些个数字其实就是用单片机的口线控制数码管的字段电极电位,这些字形也是存放在ROM中的字模表,各个字模和0-9的数字(机器内当然是0000-0101二进数)对应起来,例如常见的共阳极7段数码管,必须在阳极加正电,7个阴极都是地电位,才能显示数字8,数字8对应的显示字码值是二进数“10000000“(1对应的是小数点,高电位不会显示)。

通过以上介绍,相信大家对于单片机程序存储器作用有了一定程度的了解。程序存储器当中保存的是单片机最重要的部分——工作执行程序。这部分的重要性自是不用小编多说,因此程序存储器也是单片机存储中的重点,掌握本文内的知识点将很大程度上巩固开发者的基础知识。

推荐内容