一、静态ram和动态ram的区别
动态RAM会周期性的刷新,静态RAM不进行刷新
1、静态RAM,指SRAM:
- 只要有供电,它保存的数据就不会丢失,且为高速存储器,如CPU中的高速缓存(cache)
2、动态RAM,指DRAM:
- 有供电,还要根据它要求的刷新时间参数,才能保持存储的数据不丢失,如电脑中的内存条
- 静态RAM的优点:速度快,数据不易丢失,控制简单
- 动态 RAM的优点:存储密度高
- 静态RAM是靠双稳态触发器来记忆信息的;动态RAM是靠MOS电路中的栅极电容来记忆信息的。
由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用动态RAM,而高速缓冲存储器(Cache)则使用静态RAM。另外,内存还应用于显卡、声卡及CMOS等设备中,用于充当设备缓存或保存固定的程序及数据。
二、原理图
三、源代码
#include <reg52.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED = P1^0;
void main()
{
uint i;
LED = 1;
for(i=0;i<200;i++)
{
XBYTE[i]=i+1;
}
for(i=0;i<200;i++)
{
XBYTE[i+0x0100]=XBYTE[199-i];
}
LED=0;
while(1);
}
扩展
一、程序要求
二组数组a〔2〕={9,0x0f,2,0x0a,5,0x0d,3,0x0c,8,0x0e,6,0x0b},要求先将写入5254以0x0080为首址的连续存储单元中。然后将其读出,并转换为相应的ASCII码,存入80C51内RAM数组b[]中。
二、原理图
#include<reg51.h>//包含
#include<absacc.h>//包含
unsigned char a[12]={/定义
9,0x0f,2,0x0a,5,0x0d,3,0x0c,8,0x0e,6,0x0
void main(){
unsigned char i;
unsigned char b[12]//定义
for(i=0;i<12;i++)//循环
XBYTE[0x0080+i]=a[i];//数组存入6264
for(i=0;i<12;i++){
if(XBYTE[0x0080+i]<10)//转换为相应的ASCII码,数据存入单片机
b[i]=XBYTE[0x0080+i]+0x30;//数字加0x30,存入数组B
else//数据为字母
b[i]=XBYTE[0x0080+i]+0x37;}//字母加0x37,存入数组B
while(1);}原地等待
结束
总有一个人要赢的,那为什么不能是我! – 科比・布莱恩特
版权声明:本文为m0_46152804原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。