实验一 存储器读写实验
- 格式:pptx
- 大小:288.89 KB
- 文档页数:26
微机原理存储器读写实验微机原理是指计算机系统的硬件和软件运行原理,包括中央处理器、存储器、输入输出设备等。
存储器是计算机系统中重要的组成部分,用于存储程序、数据和中间结果。
本实验主要介绍存储器的读写操作。
实验目的:1.了解存储器的读写原理;2.掌握存储器读写指令的编写和执行;3.理解存储器的地址映射方式。
实验原理:计算机存储器的基本单位是字节(Byte),每个字节包含8个二进制位。
存储器可以根据访问速度和成本的不同分为不同级别,包括缓存、内部存储器和外部存储器。
存储器可以按照地址访问模式分为随机存储器(RAM)和只读存储器(ROM)。
RAM用于存储程序和数据,可读可写;ROM用于存储固定程序和只读数据,只能读取不能修改。
存储器的读写操作是通过存储器控制器和CPU之间的数据、地址和控制信号交互来实现的。
存储器读操作包括将地址传给存储器控制器、存储器控制器将地址进行解码,找到存储单元并将数据读出。
存储器写操作类似,也需要将地址传给存储器控制器、进行解码定位目标存储单元,并将数据写入存储器。
此外,在写操作中还可能需要一些控制信号,如读/写选择信号、写使能信号等。
实验步骤:1.将计算机主机开机,启动操作系统;2.打开计算机的命令行终端,进入存储器读写实验目录;3.编写C语言程序,实现存储器的读写操作;4.将程序编译生成可执行文件;5.运行程序,观察存储器读写操作的结果;6.分析程序的运行结果,验证存储器读写操作的正确性;7.对比不同存储器读写操作的速度和性能。
实验注意事项:1.实验过程中需遵守实验室安全规定,注意用电安全;2.在进行存储器读写操作时,注意操作的顺序和正确性,防止对存储器数据的意外修改;3.在编写程序过程中要注意代码的规范性和可读性,以便于后续的维护和改进;4.实验结束后,及时关闭计算机主机,保护好存储器的安全。
实验结果分析:通过本实验,我们可以加深对存储器读写原理的理解,了解存储器的读写操作需要地址、数据和控制信号的配合,才能完成对存储器单元的操作。
西安邮电大学智能卡技术及应用课内实验报告实验名称:存储器卡读写实验专业名称:智能科学与技术班级:学生姓名:学号:指导教师:实验日期:2016年4月18日实验一存储器卡读写实验一.实验目的1.了解CI2串行总线的工作原理;2.通过实验了解存储器卡存、取数据的过程。
二.实验器材1.KEIL软件;2.PROTEUS仿真软件。
三.实验内容往24C04芯片中写入一个数据(如“129”),然后再从24C04芯片中读出刚才的数据并把它显示在数码管上。
四.实验步骤1.硬件电路仿真使用Proteus软件画出如图1所示的电路图,要求:使用两个按钮来分别模拟读卡和拔卡(清除数据)的过程,用一个发光二极管来模拟卡座上电的过程。
(注:电路图画好后,给存储器24C04导入24C04.bin文件,给51单片机导入hex文件)图 1 硬件电路图2.软件编写图2 程序流程图程序截图:图33.实验结果刚开始运行时,单片机没有读取任何数据,此时数码管显示数字为0;当“读卡”按钮按下时,此时发光二极管亮,数码管显示预先存入24C04芯片的数值;当“清除”按钮按下时,此时此时发光二极管灭,数码管数值清零。
图4图5图6五、实验总结通过本次实验我了解了存储器卡存、取数据的过程,同时了解CI2串行总线的工作原理。
实验在程序编写过程中遇到了问题,还是参考过老师以及网上的程序得到同学的帮助,才大体上完成。
每次实验都有新的收获,以后我会更加努力学习的。
六、实验代码#include <reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char#define NOP4(){_nop_();_nop_();_nop_();_nop_();} //延时4ussbit SCL = P1^0; //SCL引脚sbit SDA = P1^1; //SDA引脚sbit BUTTON = P1^5; //定义读卡按键sbit LED = P1^6;//定义模拟上电卡座sbit BUTTONQ = P1^7;//定义模拟取卡按键uint shu; //定义写入变量//数码管显示数组uchar code DUAN_XUAN[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x8 2,0xf8,0x80,0x90};//延迟函数void Delay(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}void DelayMS(uint x){uchar t;while(x--){for(t=120;t>0;t--);}}/*IIC启动*/void Start(){SDA=1;SCL=1;NOP4();SDA=0;NOP4();S CL=0;}/*IIC停止*/void Stop(){SDA=0;SCL=0;NOP4();SCL=1;NOP4();S DA=1;}/*读取应答*/void RACK(){SDA=1;NOP4();SCL=1;NOP4();SCL=0; }/*发送非应答信号*/void NO_ACK(){SDA=1;SCL=1;NOP4();SCL=0;SDA=0; }/*向24c04中写一字节*/void Write_A_Byte(uchar b){uchar i;for(i=0;i<8;i++){//循环移入8位b<<=1;SDA=CY;_nop_();SCL=1;NOP4() ;SCL=0;}RACK(); //读取应答}/*向24c04中读一字节*/uchar Receive_A_Byte(){uchar i,d;for(i=0;i<8;i++){SCL=1;d<<=1;d|=SDA;SCL=0;}return d;}/*任意地址写数据*/void Write_Random_Address_Byte(uchar add,uchar dat){Start();Write_A_Byte(0xa0);Write_A_Byte(add);Write_A_Byte(dat);Stop();DelayMS(10);}/*当前地址读数据*/uchar Read_Current_Address_Data(){ uchar d;Start();Write_A_Byte(0xa1);d=Receive_A_Byte();NO_ACK();Stop();return d;} /*任意地址读数据*/uchar Random_Read(uchar addr){ Start();Write_A_Byte(0xa0);Write_A_Byte(addr);Stop();returnRead_Current_Address_Data();}//显示函数void display(uint x){uchar bai,shi,ge;bai=x/100; //取百位shi=x%100/10; //取十位ge=x%10; //取个位P0=0xff; //消影Delay(1);P2=0x01;P0=DUAN_XUAN[ge]; //显示个位Delay(10);P0=0xff;P2=0x02;P0=DUAN_XUAN[shi]; //显示十位Delay(10);P0=0xff;P2=0x04;P0=DUAN_XUAN[bai]; //显示百位Delay(10);}//主函数void main(){uint x;x=0;shu=129; //把要写的值赋给变量BUTTON=1;LED=0;Write_Random_Address_Byte(0x00,sh u); //往00地址写入一个值shu = Random_Read(0x00) ; // 读00地址的值while(1){if(BUTTON==0) {//判断读卡按键Delay(40);if(BUTTON==0) { //消抖LED=1; //灯亮x=shu; //把读出的数赋给显示变量}}if(BUTTONQ==0) {//判断清除按键Delay(40);if(BUTTONQ==0){LED=0; //灯灭x=0;//对显示变量的值清零}}display(x); //显示 }}。
微机原理存储器的读写实验一、实验目的1.了解存储器的基本原理和工作过程;2.掌握存储器的读写操作;3.通过实验验证存储器的读写正确性和可靠性。
二、实验器材1.存储器电路板;2.存储器读取电路板;3.逻辑分析仪;4.示波器。
三、实验原理1.存储器的组成存储器由多个存储单元组成,每个存储单元可存储一个数据位。
存储器的组成方式可以是并行结构或串行结构。
2.存储器的工作原理存储器的工作过程包括读取和写入两个部分。
读取操作:当控制信号使得读信息有效(RE=1)时,存储器从指定单元中输出数据到数据输出总线。
写入操作:当控制信号使得写信息有效(WE=1)时,数据从数据输入总线写入到指定单元。
3.存储器读写时序存储器读写时序包括地址输入、读写控制信号的生成和数据输入输出等步骤。
四、实验步骤1.连接实验电路将存储器电路板与逻辑分析仪、示波器等设备连接。
2.设置操作模式将存储器电路板上的读写模式设置为读写模式。
3.编写代码并烧录使用程序设计语言编写读写存储器的代码,并将代码烧录到EPROM或其他可编程存储器中。
4.运行实验程序将存储器电路板上的读写控制信号接入示波器或逻辑分析仪,观察读写时序是否正确。
5.验证读写正确性和可靠性通过读取和写入不同地址的数据,检查读取到的数据是否正确,写入后再读取是否一致。
五、实验结果与分析通过观察示波器或逻辑分析仪的输出结果,可以判断存储器的读写控制信号是否正确生成。
同时,通过验证读写数据的正确性,可以评估存储器的可靠性。
六、实验总结1.存储器的读写操作是微机系统的基本操作之一,对于存储器的工作原理和时序要有一定的了解;2.在实验过程中,要确保读写时序和控制信号的正确生成;3.通过验证读取和写入数据的正确性,可以评估存储器的可靠性。
通过完成存储器的读写实验,我们可以更深入地理解存储器的工作原理和操作方式,并通过验证读写数据的正确性,进一步评估存储器的可靠性。
这对于进一步研究和应用微机系统具有重要意义。
实验一:扩展存储器读写实验一.实验要求编制简单程序,对实验板上提供的外部存贮器(62256)进行读写操作。
二.实验目的1.学习片外存储器扩展方法。
2.学习数据存储器不同的读写方法。
三.实验电路及连线将P1.0接至L1。
CS256连GND孔。
四.实验说明1.单片机系统中,对片外存贮器的读写操作是最基本的操作。
用户藉此来熟悉MCS51单片机编程的基本规则、基本指令的使用和使用本仿真实验系统调试程序的方法。
用户编程可以参考示例程序和流程框图。
本示例程序中对片外存贮器中一固定地址单元进行读写操作,并比较读写结果是否一致。
不一致则说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段(本示例程序通过熄灭一个发光二极管来表示出错)。
读写数据的选用,本例采用的是55(0101,0101)与AA(1010,1010)。
一般采用这两个数据的读写操作就可查出数据总线的短路、断路等,在实际调试用户电路时非常有效。
用户调试该程序时,可以灵活使用单步、断点和变量观察等方法,来观察程序执行的流程和各中间变量的值。
2.在I状态下执行MEM1程序,对实验机数据进行读写,若L1灯亮说明RAM读写正常。
3.也可进入LCA51的调试工具菜单中的对话窗口,用监控命令方式读写RAM,在I状态执行SX0000↓ 55,SPACE,屏幕上应显示55,再键入AA,SPACE,屏幕上也应显示AA,以上过程执行效果与编程执行效果完全相同。
注:SX是实验机对外部数据空间读写命令。
4.本例中,62256片选接地时,存储器空间为0000~7FFFH。
五.实验程序框图实验示例程序流程框图如下:六.实验源程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV DPTR,#0000H ;置外部RAM读写地址MOV A,#55H ;测试的数据一MOV B,AMOVX @DPTR,A ;写外部RAMMOVX A,@DPTR ;读外部RAMXRL A,B ;比较读回的数据JNZ ERRORMOV A,#0AAH ;测试的数据二MOV B,AMOVX @DPTR,AMOVX A,@DPTRXRL A,BJZ PASS ;测试通过ERROR: SETB P1.0 ;测试失败,点亮LEDSJMP $PASS: CPL P1.0 ;LED状态(亮/灭)转换MOV R1,#00H ;延时DELAY: MOV R2,#00HDJNZ R2,$DJNZ R1,DELAYLJMP START ;循环测试END实验二P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
实验一存储器读写实验一、实验目的1. 熟悉静态RAM 的使用方法,掌握8088 微机系统扩展RAM 的方法;2. 掌握静态RAM 读写数据编程方法。
二、实验内容对指定地址区间的RAM(4000H~43FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~53FFH 中。
三、实验接线图(系统中已连接好)四、实验步骤1. 在PC 机和实验系统联机状态下,编辑源程序。
2. 从存储器窗口检查和记录4000H~43FFH 中的内容和5000~53FFH 中的内容。
3. 对源程序进行编译和装载,生成可执行文件。
4. 对可执行文件进行调试,调试方法有:单步,宏单步,自动单步,自动宏单步,注意这些方法之间的区别。
5. 连续运行实验程序。
6. 从存储器窗口检查和记录4000H~43FFH 中的内容和5000~53FFH 中的内容,比较程序运行前、后存储器内容的变化情况。
五、实验程序清单CODE SEGMENT ;RAM.ASMASSUME CS:CODEPA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口ORG 1850hSTART: JMP START0BUF DB ?,?,?,?,?,?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: MOV AX,0HMOV DS,AX ;写数据段地址MOV BX,4000H ;内存首址MOV AX,55AAH ;要写入的字MOV CX,0200H ;数据长度RAMW1: MOV DS:[BX],AX ;写数据ADD BX,0002H ;下一个单元LOOP RAMW1 ;循环写MOV AX,4000H ;首址MOV SI,AX ;SI置源首址MOV AX,5000HMOV DI,AX ;DI置目首址MOV CX,0400H ;数据长度CLD ;增址REP MOVSB ;串传送call buf1 ;写”62256-”mov cx,0ffhcon1: push cxcall disp ;显示pop cxloop con1call buf2 ;写”--good”con2: call disp ;显示jmp con2DISP: MOV AL,0FFH ;显示子程序 ,5msMOV DX,PAOUT DX,ALMOV CL,0DFH ;20H ;显示子程序 ,5msMOV BX,OFFSET BUFDIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,06H ;写”62256-”MOV BUF+1,02HMOV BUF+2,02HMOV BUF+3,05HMOV BUF+4,06HMOV BUF+5,17HRETBUF2: MOV BUF,17H ;写”--good”MOV BUF+1,17HMOV BUF+2,09HMOV BUF+3,00HMOV BUF+4,00HMOV BUF+5,0dHRETCODE ENDSEND START六、实验总结这个自己实现!!!。
第1篇一、实验目的1. 理解存储器的基本组成和工作原理;2. 掌握存储器的读写操作过程;3. 熟悉存储器芯片的引脚功能及连接方式;4. 了解存储器与CPU的交互过程。
二、实验环境1. 实验设备:TD-CMA计算机组成原理实验箱、计算机;2. 实验软件:无。
三、实验原理1. 存储器由地址线、数据线、控制线、存储单元等组成;2. 地址线用于指定存储单元的位置,数据线用于传输数据,控制线用于控制读写操作;3. 存储器芯片的引脚功能:地址线、数据线、片选线、读线、写线等;4. 存储器与CPU的交互过程:CPU通过地址线访问存储器,通过控制线控制读写操作,通过数据线进行数据传输。
四、实验内容1. 连线:按照实验原理图连接实验箱中的存储器芯片、地址线、数据线、控制线等;2. 写入操作:将数据从输入单元IN输入到地址寄存器AR中,然后通过控制线将数据写入存储器的指定单元;3. 读取操作:通过地址线指定存储单元,通过控制线读取数据,然后通过数据线将数据输出到输出单元OUT;4. 实验步骤:a. 连接实验一(输入、输出实验)的全部连线;b. 按实验逻辑原理图连接两根信号低电平有效信号线;c. 连接A7-A0 8根地址线;d. 连接13-AR正脉冲有效信号线;e. 在输入数据开关上拨一个地址数据(如00000001,即16进制数01H),拨下开关,把地址数据送总线;f. 拨动一下B-AR开关,实现0-1-0”,产生一个正脉冲,把地址数据送地址寄存器AR保存;g. 在输入数据开关上拨一个实验数据(如10000000,即16进制数80H),拨下控制开关,把实验数据送到总线;h. 拨动控制开关,即实现1-0-1”,产生一个负脉冲,把实验数据存入存储器的01H号单元;i. 按表2-11所示的地址数据和实验数据,重复上述步骤。
五、实验结果与分析1. 通过实验,成功实现了存储器的读写操作;2. 观察到地址线、数据线、控制线在读写操作中的协同作用;3. 理解了存储器芯片的引脚功能及连接方式;4. 掌握了存储器与CPU的交互过程。
存储器读写实验实验总结
存储器读写实验是一种常见的电子实验,通过这个实验,我们可以了解存储器的读写原理以及存储器的工作方式。
本次实验中,我们使用了Arduino UNO开发板和24C02 EEPROM存储器芯片,下面对实验进行总结。
实验目的:
本次实验的目的是了解存储器的读写原理、存储器芯片的类型、接口方式、存储器操作等基本概念,并通过实验掌握使用Arduino控制EEPROM存储器读写操作的方法。
实验步骤:
1. 准备材料,包括Arduino UNO开发板、24C02 EEPROM存储器芯片、杜邦线等。
2. 将EEPROM存储器芯片与Arduino开发板连接,具体连接方式可以参考实验指导书。
3. 编写程序,在程序中定义存储器读写操作所需的引脚和操作函数。
4. 将程序烧录到Arduino开发板中。
5. 运行程序,进行存储器读写操作。
实验结果:
我们通过实验成功地实现了对EEPROM存储器芯片的读写操作,确认了存储器
芯片的工作状态和数据存储情况。
通过查看串口输出信息,我们可以看到读取的数据和写入的数据以及相应的内存地址信息。
实验体会:
本次实验让我们更加深入地了解了存储器的读写原理和存储器芯片的类型、接口方式、存储器操作等基本概念。
同时,我们通过实验也掌握了使用Arduino控制EEPROM存储器读写操作的方法,对我们今后的学习和工作都将有很大帮助。
总之,存储器读写实验是一项非常有意义的实验,通过实验的学习,我们可以更好地理解存储器的工作原理,为今后的学习和工作打下坚实的基础。
微机原理及单片机应用实验实验报告实验存储器读写实验实验内容对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~5FFH中。
实验步骤l、在系统提示符“P”状态下,按SCAL键。
2、输入执行地址1850后,按EXEC键。
3、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的内容和5000~53FFH中的内容应都是55AA。
实验程序清单CODE SEGMENT ;RAM.ASMASSUME CS:CODEPA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口ORG 1850hSTART: JMP START0BUF DB ?,?,?,?,?,?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTART0: MOV AX,0HMOV DS,AX ;写数据段地址MOV BX,4000H ;内存首址MOV AX,55AAH ;要写入的字MOV CX,0200H ;数据长度RAMW1: MOV DS:[BX],AX ;写数据ADD BX,0002H ;下一个单元LOOP RAMW1 ;循环写MOV AX,4000H ;首址MOV SI,AX ;SI置源首址MOV AX,5000HMOV DI,AX ;DI置目首址MOV CX,0400H ;数据长度CLD ;增址REP MOVSB ;串传送call buf1 ;写”62256-”mov cx,0ffhcon1: push cxcall disp ;显示pop cxloop con1call buf2 ;写”--good”con2: call disp ;显示jmp con2DISP: MOV AL,0FFH ;显示子程序 ,5ms MOV DX,PAOUT DX,ALMOV CL,0DFH ;20H ;显示子程序 ,5ms MOV BX,OFFSET BUFDIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,06H ;写”62256-”MOV BUF+1,02HMOV BUF+2,02HMOV BUF+3,05HMOV BUF+4,06HMOV BUF+5,17HRETBUF2: MOV BUF,17H ;写”--good”MOV BUF+1,17HMOV BUF+2,09HMOV BUF+3,00HMOV BUF+4,00HMOV BUF+5,0dHRETCODE ENDSEND START实验总结通过实验进一步了8086的使用,学习汇编语言编程方法及调试技巧。
实验1 存储器读写实验一、实验设备微机实验箱、8086CPU模块。
二、实验内容向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。
三、实验步骤和要求1、实验接线:本实验无需接线。
2、编写调试程序3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。
本实验的主要目的是学会用使用工具软件,掌握用单步执行和断点方式运行程序,观察寄存器和内存中的数据变化等程序调试的手段。
四、思考题流程图及代码五、思考题解答1、单步执行到“intram”标号的语句时,ds寄存器的数据是什么?采用断点方式运行时执行到第一个断点处,2000H~202FH内存单元的数据是什么?执行到第二个断点处,2000H~200FH内存单元的数据是什么?并根据观察结果和对源程序的判读简述源程序的运行效果。
2、修改程序,实现从2010H到201FH内存单元依次赋值00H~0FH,从2020H到202FH内存单元依次赋值0FH~00H的功能。
六、调试问题及解答过程实验2 简单I/O口扩展实验一、实验设备微机实验箱、8086CPU模块。
二、实验内容逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。
三、实验步骤1、实验接线:(↔表示相互连接)CS0 ↔CS244; CS1↔CS273;平推开关的输出K1~K8 ↔IN0~IN7(对应连接);O0~O7↔LED1~LED8。
2、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。
4、编写实验报告。
四、实验要求程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。
例如:K2置于L 位置,则对应的LED2应该点亮。
五、思考题流程图及程序代码六、调试问题及解决过程实验3 8255并行口实验一、实验设备微机实验箱、8086CPU模块。
二、实验内容8255A的A口作为输入口,与逻辑电平开关相连。