单片机应用程序一般存放在哪一个存储器中?

单片机应用程序一般存放在哪一个存储器中?,第1张

ROM。只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。

ROM所存数据通常是装入整机前写入的,整机工作过程中只能读出,不像随机存储器能快速方便地改写存储内容。ROM所存数据稳定 ,断电后所存数据也不会改变,并且结构较简单,使用方便,因而常用于存储各种固定程序和数据。

扩展资料

单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展到64k,用于存储实时输入的数据。8051内部有256个单元的内部数据存储器,其中00H~7FH为内部随机存储器RAM,80H~FFH为专用寄存器区。

实际使用时应首先充分利用内部存储器,从使用角度讲,搞清内部数据存储器的结构和地址分配是十分重要的。因为将来在学习指令系统和程序设计时会经常用到它们。

8051内部数据存储器地址由00H至FFH共有256个字节的地址空间,该空间被分为两部分,其中内部数据RAM的地址为00H~7FH(即0~127)。

而用做特殊功能寄存器的地址为80H~FFH。在此256个字节中,还开辟有一个所谓“位地址”区,该区域内不但可按字节寻址,还可按“位(bit)”寻址。对于那些需要进行位 *** 作的数据,可以存放到这个区域。从00H到1FH安排了四组工作寄存器,每组占用8个RAM字节,记为R0~R7。

外部数据存储器的读写,用指令MOVX来实现,汇编语言来编制的话,是很容易理解的。下面给出汇编代码,供参考:

SETD:

    MOV DPTR,#7000H

    MOV R2,#30

LOOP:

    MOVX A,#0ffh

    MOVX @DPTR,A

    INC DPTR

    DJNZ R2,LOOP

    RET

如果用C语言的话,程序代码如下:

unsigned char *str

unsigned char i

str=0x7000

for(i=0i<30i++)

{

*str=0xff

str++

}

FLASH程序存储器存程序,单片机上电后会自动从这里读代码开始运行。而EEPROM是掉电也不丢数据的存储器,一般都用来存设置的。你可以一字节一字节的把每字节的8位1任意编写成0。但这片一般是按扇区为单位,一擦除就是全成1。一般来说应该是存放在FLASH里的吧,如果CODE区域用完了才会去找EEPROM写代码。ISP功能实现系统代码升级维护只能用STC自己的编程器

STC有的片FLASH也能在跑程序的时候由程序控制擦写。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11495005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存