您的位置 首页 动态

单片机的“魂灵”—数据存储器的运用

我们可以说程序存储器的里面存放的是单片机的灵魂,它就是工作程序。小的可能只有1KB(最多只能装1024条8位数据,因为实际指令还有许多2字节

咱们能够说程序存储器的里边寄存的是单片机魂灵,它便是作业程序。小的或许只需1KB(最多只能装1024条8位数据,由于实践指令还有许多2字节、3字节指令,所以它还装不下1024条指令)大的也有128KB的。这些8位数据要么在工厂里做摸子光刻进去,要么一次性的烧写进去,要么……用编程器这个特别东西把调试成功的机器码装载进去,或许像AVR单片机那样自己花几块钱做一条下载线,把电脑里这些东西灌进去(或许是AVR最吸引人之处),它一旦进驻电脑的程序存储器中,除了凭借上述设备便不能自在改写,在单片机运转时,仅仅从其间读出指令或固定的数据,所以给程序存储器一个“只读存储器”的别号,简写为ROM,包含用编程器写紫外线擦除内容的EPROM.用电擦除的EEPROM和现在新式的FLASH ROM;一次性写入的ROM仅用于电路和程序固定的批量产品中,实践作业起来,都是相同的。

在实践的运用中,单片机运转时为了定位ROM中的数据,其实每个8位存储单元都有一个固定的“地址”,通常用16进数表明:例如关于一个所谓4K的ROM,地址从0000H到0FFFH,(便是从0000,0001…4095),单片机运转时从哪个地址取数据,彻底由程序自身决议,并不要咱们干涉。记住,给单片机一通电,它经过一个时间短的复位进程,当即转向ROM的最低地址0000H,在这儿边放置的往往是一条“跳转”指令,它从这儿一步跳到另一个地址:程序的真实开始地址,例如51机的0080H.莫非ROM中就只需指令不能来点其他?ROM是程序存储器,除了指令外还包含运转程序有必要的某些固定数据。假设,咱们要求在单片机的某口上输出00H到FFH(255)按正弦半波改变的数值,每秒10000次,那假设硬要它依照公式一个个核算,关于它来说不免无能为力,可是咱们能够把预先核算好的数值存入ROM中,到时候直接取出。

提到数据存储器,它其实是个能够随时存取数据的一块存储器,也便是能够读(取)也能够写(存)的存储器,简称RAM.现在的单片机里边运用的RAM归于静态RAM或SRAM,这个和电脑用的内存条有所不同,只需你把数据写入SRAM后,只需不断电,或许不铲除去,这个数据就一向保存在那里,电脑是用的动态RAM,要不断给它加改写脉冲才干保存数据。由于单片机处理的信息量比电脑小许多,所以它带的RAM也比较少:从彻底不带、带128、256、……1K、2K到4K,比ROM少多了。由于实践上RAM仅仅作为数据暂时寄存的当地,除非进行图画处理需求寄存很多的数据外,一般关于履行较简略使命的单片机,有这么多也够用,假设真实不够用也只能采纳外加SRAM如6116、6264等等来扩展。为了对RAM单元存取8位二进数,当然也的和ROM相同用“地址”来标明它的详细位置假设某单片机有1K(1024)RAM,它的地址也是从0000到1024,或16进数的0000H到03FFH可见和ROM的地址是相同的,不会混淆不清?不会,由于读ROM是由单片机的程序指针或搬运指令或查表指令进行,而这些指令是不会进入RAM区的,读写RAM是别的的数据传送指令,也不会进入ROM区,这点也是和电脑不同之处,后者程序和数据都在内存条里边,地址不同,假设窜位了就会形成不行预见结果。单片机的这种存储器结构也称为哈佛结构。

在这儿本文中要提到的RAM,其在单片机里的用处主要是寄存暂时数据,例如用单片机测温,每秒测1次,显现1分钟的均匀值(1分钟更新一次);咱们先经过传感器,扩大电路,A/D转化,把温度这个模拟量转变为成份额的二进数,然后每秒钟1次把数字量经过输进口次序存入到单片机的RAM中,然后对他们进行两两求和再均匀的核算(题外话:要单片机进行“除法”运算比较费事,破例的是除以2,4,8……却十分简略。运用“右移”指令1、2、3次便可)最终的数值显现出来,然后把这60个存储单元通通写0铲除旧数据,下次又如此这般地循环进行。别的在单片机里边还有若干寄存器,数量不多可是效果很大,除了暂存数据,还能够交流、加工、传递等等,以及随时纪录单片机当时处于什么状况,输入输出口,也是作为特别功用的寄存器存在,详细各有不同,就不是随便说说能够搞清楚的,要看有关书本了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/249944.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部