文档库 最新最全的文档下载
当前位置:文档库 › 实验1清零,移数

实验1清零,移数

实验1清零,移数

实验一清零、移数

将片内50H~5FH及片外0010H~004FH单元清0;然后将片内30H~3FH的数据移到片外0000H~000FH中;判断:

若(30H)≤15,则求其平方存到40H中,并将位00H置1

若(30H)=15,则加15存到40H中,并位01H置1

若(30H)≥15,则减15存到40H中,并位02H置1

code:

org 1000h

mov r0,#50h

mov r1,#16

clr a

lp1:mov r0,a ;piannei

inc r0

djnz r1,lp1

mov dptr,#0010h ;pianwai

clr a

mov r0,#40h

lp2:movx @dptr,a

inc dptr

djnz r0,lp2

mov r0,#30h ;yishu

mov r1,#10h

mov dptr,#0000h

lp3:mov a,@r0

movx @dptr,a

inc r0

inc dptr

djnz r1,lp3

cmp:mov a,30h ;panshu cjne a,#15,ss1

add a,#15 ;dengyu

mov 40h,a

setb 01h

clr 00h

clr 02h

ajmp dd

ss1:jnc ss2

mov b,30h ;xiaoyu

mul ab

mov 40h,a

setb 00h

clr 01h

clr 02h

ajmp dd

ss2:clr c ;dayu subb a,#15

mov 40h,a

setb 02h

clr 00h

clr 01h

dd:ajmp dd

第六章 单片机系统综合实验

第六章 单片机系统综合实验 6.1 单片机基本实验 实验6-1.存储器块清零程序设计 (1)实验目的。1. 掌握存储器读写方法;2. 了解存储器的块操作方法。 (2)实验内容:1. 指定内部RAM 中某块的起始地址和长度,要求能将其内容清零。2. 指定外部RAM 中某块的起始地址和长度,要求能将其内容清零。3. 指定外部RAM 中某块的起始地址和长度,要求能将其内容置为某固定值(如012H )。 (3)实验说明。通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以了解单片机编程、调试方法。 (4)参考程序框图。1、程序参考流程如图6-1所示;2、参考程序如下: BLOCK EQU 0400H ORG 0000H LJMP START ORG 0030H START : MOV DPTR,#BLOCK ;DPTR ←起始地址 MOV R0, #0FFH ;R0←块长度 MOV A,#0 ; A ←0 LOOP: MOVX @DPTR,A ;当前地址内容清0 INC DPTR ;地址加1 DJNZ R0,LOOP ; 计数器减1,循环 SJMP $ ; 结束 END 图6-2 程序窗口(存储器块赋值程序) 图6-3 外部数据存储器XDATA 空 间窗 例如若要将从0400H 开始的255个字节外部数据存储器块的内容置成12H 值,请修改以上程序完成此操作,注意在程序调试过程中数据的变化情况。注意在程序调试过程中数据的变化情况。3、程序调试过程。程序窗口如图6-2所示。可通过观察外部数据存储器窗口XDATA 了解程序运行结果,运行结果如图6-3所示。 图6-1 程序流程图

实验一 Keil软件的使用及简单程序的调试方法

实验一 Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下: 几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程

名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示 单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。

实验1存储器块清零

实验一存储器块清零 软件操作过程:新建文件→保存文件(汇编语言后缀.ASM、C语言后缀.C)→新建项目(出现3个对话框)→对话框1:加入模块文件(选择要加的文件)→对话框2:加入包含文件(头文件之类的,没有可以点取消)→对话框3:保存项目(输入项目名称,注意项目和加入的文件必须在同一个文件夹中)→打开相应的模块文件,输入程序→点击绿色“开始”按钮,运行检查错误修改,直到没有错误为止。 窗口:CPU窗口——特殊功能寄存器窗口、工作寄存器窗口 数据窗口——DATA片内数据存储器 XDAT片外数据存储器 CODE程序存储器 BIT 位存储区 仿真器设置:点仿真器→仿真器设置→选择仿真(Lab2000p仿真)→选择仿真头(MCS51实验)→选择CPU(8031/8032)→选择是否使用软件模拟器→点击好 请编写程序,将片内RAM 30H-4FH单元中的内容清零。 MOV R0,#30H MOV R1,#32 L0:MOV @R0,#00H INC R0 DJNZ R1,L0 SJMP $ 请编写程序,将片内RAM 60H-7FH单元中的内容置为FEH。 MOV R0,#60H MOV R1,#32 L0:MOV @R0,#0FEH INC R0 DJNZ R1,L0 SJMP $

1、片外ram50h—7fh内容置为:feh MOV DPTR,#50H MOV R1,#48 MOV A,#0feH L0:MOVX @DPTR,A INC DPTR DJNZ R1,L0 SJMP $ 2、片内RAM 20H-4FH中内容置为(20h)=00h,(21h)=01h,(22h)=02h, ,(4fh)=2fh MOV A,#00H MOV R1,#20H MOV R0,#48 MOV @R1,A LOOP: INC A INC R1 MOV @R1,A DJNZ R0,LOOP END

实验一-Keil软件的使用及简单程序的调试方法

实验一Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下:

几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示

单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。 (3)将文件添加到工程中 单击“T arget 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。

实验存储器部件实验(精品)

北京林业大学 11学年—12学年第 2 学期计算机组成原理实验任务书 专业名称:计算机科学与技术实验学时: 2 课程名称:计算机组成原理任课教师:张海燕 实验题目:实验四内存储器部件实验 实验环境:TEC-XP+教学实验系统、PC机 实验内容 1.设计扩展8K字存储器容量的线路图,标明数据线、地址线和控制信号的连接关系。 2.扩展教学机的存储器空间,为扩展存储器选择一个地址,并注意读写等控制信号的正确状态。 3.用监控程序的D、E命令对存储器进行读写,比较RAM(6116)、EEPROM (58C65)在读写上的异同。 4.用监控程序的A命令编写一段程序,对RAM(6116)进行读写,用D命令查看结果是否正确。 5.用监控程序的A命令编写一段程序,对扩展存储器EEPROM(58C65)进行读写,用D命令查看结果是否正确;如不正确,分析原因,改写程序,重新运行。 实验目的 1.熟悉ROM芯片和RAM芯片在功能和使用方法等方面的相同和差异之处。 2.理解并熟悉通过字、位扩展技术实现扩展存储器系统容量的方案。 3.了解如何通过读、写存储器的指令实现对58C65ROM芯片的读、写操作。 4.加深理解存储器部件在计算机整机系统中的作用。 实验要求 1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的

必要准备。 2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果; 3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 实验说明 内存储器是计算机中存放正在运行中的程序和相关数据的部件。在教学计算机存储器部件设计中,出于简化和容易实现的目的,选用静态存储器芯片实现内存储器的存储体,包括只读存储区(ROM、存放监控程序等)和随读写存储区(RAM)两部分,ROM存储区选用4片长度8位、容量8KB的58C65芯片实现,RAM存储区选用2片长度8位、容量2KB的6116芯片实现,每2个8位的芯片合成一组用于组成16位长度的内存字,6个芯片被分成3组,其地址空间分配关系是:0-1777H用于第一组ROM,固化监控程序,2000-2777H用于RAM,保存用户程序和用户数据,其高端的一些单元作为监控程序的数据区,第二组ROM的地址范围可以由用户选择,主要用于完成扩展内存容量(存储器的字、位扩展)的教学实验。 在这里还要说明如下两个问题。 第一,要扩展8K字的存储空间,需要使用2片(每一片有8KB容量,即芯片内由8K个单元、每个单元由8个二进制位组成)存储器芯片实现。 第二,当存储器选用58C65ROM芯片时,它属于电可擦除的EPROM器件,可以通过专用的编程器软件和设备向芯片的写入相应的内容,这是正常的操作方式。也可以通过写内存的指令向芯片的指定单元写入16位的数据,只是每一次的这种写操作需要占用长得多写入时间,例如几百个微秒,可以通过运行完成等待功能的子程序来加以保证。本次试验采用的是通过写内存的指令将数据写入芯片

实验的基本程序

1、单组实验的基本程序 前测→实验处理→后测 比较方法:前测-后测 例:某新的记忆方法对于提高中学生英语单词记忆效果的影响 实验假设:某新的记忆方法对提高中学生英语单词记忆有好的效果。 实验处理:在英语课上,教师运用新的记忆方法教授单词。 样本:高一年级一个班学生。 因变量测定:高一英语学习成绩测验。 实验设计:单组前后测 前测:在传统教学法下,对学生进行测试。 后测:使用新的记忆方法教学后进行测试。 这种实验操作程序比较简单,不用考虑实验班和对比班的同质性。如果采用新方法前,实验班平均成绩是80分,采用新方法后,测试成绩为90分。这样,前后测比较,成绩提高了10分,说明实验假设成立,即新的记忆方法对提高中学生英语单词记忆有好的效果。

2、等组实验的基本程序 实验组:前测1→有实验处理→后测1 对照组:前测2→无实验处理→后测2 比较方法:(后测1-前测1)-(后测2-前测2) 例:语文教学中,阅读技巧训练对于提高学生学习的影响 实验假设:语文教学中,阅读技巧训练有助于提高学生学习成绩。 实验处理1:实验班的语文教学中,在学生阅读材料前,教师讲解阅读技巧。 实验处理2:对照班的语文教学中,学生阅读同样的材料,但阅读前教师不讲解阅读技巧。 样本:在高一学生中随机抽取100名学生,随机编为两个班,其中一个为实验班,另一个为对照班。 因变量测试:高一学生语文成绩测试。 实验设计:前后测对照组设计 前测:实验班和对照班在使用新方法前进行测试。 后测:实验班在采用阅读技巧训练一个月后进行测试,对照班在相应的时间进行测试。 条件控制:1.同一教师进行教学。2.教学内容、作业量相同。3.学生学习语文时间总量相同。

微机原理实验报告软件实验1-4

微机原理实验报告 学院:算机科学与软件教育学院 1. 掌握存储器读写方法 2. 了解存储器的块操作方法 二、实验原理 存储器读写和块操作 三、实验设备仪器及材料 计算机,WA VE 6000软件 四、实验过程 S1.asm 代码流程图 data segment Block db 256 dup(55h) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov bx, offset Block ; 起始地址 mov cx, 256 ; 清256 字节Again: mov [bx], byte ptr 0 inc bx ; 地址+1 Loop Again ; 记数减一jmp $ ;死循环code ends end start

五、实验步骤 (1) 进入Wave6000,输入程序并检查,保存程序。 (2) “编译”程序。 (3) “全速执行”程序。 (4) “暂停”程序运行,在“数据窗口(MEMOREY)”查看0400H起始的单元内容,并记录。 (5) 在指令“jmp $”处设断点。“全速执行”程序。 (6) 在“数据窗口(MEMOREY)”查看0400H起始的单元内容,记录并分析实验结果。 六、实验结果及总结 运行前:运行后: 2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH)? 总结:通过本实验,我了解到单片机读写存储器的读写方法,同时也了解到单片机编程,调试方法。学会内存的移动方法,也加深对存储器读写的认识。

微机原理实验报告 学院:算机科学与软件教育学院 实验 课程 名 微机原理实验成绩实验 项目名称实验二、二进制到BCD码转换 指导老 师 1. 了解BCD值和ASCII值的区别。 2. 了解如何将BCD值转换成ASCII值。 3. 了解如何查表进行数值转换及快速计算。 二、实验原理 ASCII码表 三、实验设备仪器及材料 计算机,WA VE 6000软件 data segment Result db 3 dup(?) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov ax, 123 mov cl, 100 div cl mov Result, al ; 除以 100, 得百位数 mov al, ah mov ah, 0 mov cl, 10 div cl mov Result+1, al ; 余数除以 10, 得十位数 mov Result+2, ah ; 余数为个位 数 jmp $ code ends end start 代码流程图

试验项目试验一最简单的C程序设计

试验项目试验一最简单的C程序设计

实验项目:实验一最简单的C程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 3.掌握顺序结构程序设计的基本思路。 二、实验条件 Pc和vc++编程环境 三、实验内容 1.熟悉编程环境。 2.输入并运行一个C程序 3.掌握各种格式转换符的正确使用方法。 4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar函数和printf函数输出这两个字符。 四、实验步骤 编写程序,输入数据,观察结果。

五、实验结果 观察结果和预期是否一致。 实验项目:实验二选择结构程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表示式。 3.熟练掌握if语句和switch语句 二、实验条件 Pc和vc++编程环境 三、实验内容

1.有一函数: ?????≥-<≤-<=)10x (113x ) 10x 1(12x )1x (x y 用scanf 函数输入x 的值,求y 值。 运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。 2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。 3.输入4个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

静态存储器实验报告

静态随机存储器实验 组员: 组号:21组 日期:周二5、6节

【实验目的】 掌握静态随机存储器RAM工作特性及数据的读/写方法。 【实验设备】 实验仪一台、PC机一台(观察波形) 【实验原理】 由一片6116(2K x 8)芯片、一片8位锁存器(74LS273)、一片8位三态门(74LS245)构成存储器原理图。 存储器实验原理图 由于存储器地址是由数据开关(input device)锁存在(273),存储器写数据也是由数据开关提供的,因此要分时给出地址和写数据。 因地址寄存器为8 位,所以接入6116 的地址为A7~A0,而高三位A8~A10 接地,所以其实际容量为256 字节。6116 有三个控制线:CE(片选线)、OE(读线)、WE(写线)。当片选有效(CE=0)时,OE=0 时进行读操作,WE=0 时进行写操作。本实验中将OE 常接地,在此情况下,当CE=0、WE=0 时进行读操作,CE=0、WE=1 时进行写操作,其写时间与T3 脉冲宽度一致。 实验时将T3 脉冲接至实验板上时序电路模块的TS3 相应插孔中,其脉冲宽度可调,其它电平控制信号由“SWITCH UNIT”单元的二进制开关模拟,其中SW-B 为低电平有效,LDAR 为高电平有效。 【实验步骤】 (1) 形成时钟脉冲信号T3。具体接线方法和操作步骤如下: ①接通电源,用示波器接入方波信号源的输出插孔H23,调节电位器W1 及W2 ,使H23 端输出 实验所期望的频率及占空比的方波。 ②将时序电路模块(STATE UNIT)单元中的ф和信号源单元(SIGNAL UNIT)中的H23 排针相连。 ③在时序电路模块中有两个二进制开关“STOP”和“STEP”。将“STOP”开关置为“RUN”状

南昌大学单片机实验指导书(2015简化版)

微机原理与接口技术实验指导书 机电工程学院 2010年3月

实验一拼字程序(基础实验) 一、实验目的 掌握汇编语言设计和调试方法。 二、实验容 把7000H的低四位BCD数和7001H的低四位BCD数,拼成压缩BCD码的形式存放在7002H。 三、实验说明 通过本实验,掌握拼字的编程方法,同时也可以了解单片机编程、调试方法。 四、主要仪器设备及耗材 PC机、WAVE软件 五、参考程序框图 六、参考程序(略)

实验二清零实验(基础实验) 一、实验目的 1. 掌握存储器读写方法。 2. 了解存储器的块操作方法。 二、实验容 1. 指定部RAM中某块的起始地址和长度,要求能将其容清零。 2. 指定外部RAM中某块的起始地址和长度,要求能将其容清零。 3. 指定外部RAM中某块的起始地址和长度,要求能将其容置为某固定值(如0FFH)。 三、实验说明 通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以 了解单片机编程、调试方法。 四、实验仪器和设备 PC机、WAVE软件。 五、参考程序框图 存储器块清零参考程序框图 六、参考程序(略) 实验三数据块传送程序(基础实验)

一、实验目的 1.了解存的移动方法。 2.加深对存储器读写的认识。 二、实验容 将指定源地址和长度的存储块移到指定目标位置。 三、实验说明 块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免? 四、实验仪器和设备 PC机、WAVE软件。 五、参考程序框图 存储块移动参考程序框图 六、参考程序(略)

实验3 子程序实验

实验三子程序实验 一.实验目的 1.掌握主程序与子程序之间的调用关系及调用方法; 2.掌握子程序调用过程中近程调用与远程调用的区别; 3.掌握通过堆栈转送参数的方法。 二.实验内容 1.将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。要求码型转换通过子程序HEXAC实现,在转换过程中,通过子程序DISP实现显示。 2.编写一个主程序,从键盘接收若干个字符,然后用远调用的方法,调用子程序统计字符串中字符’b’的个数.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”b”.子程序返回字符"b”的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”b”及其个数(设为一位十六进制数)。 三.实验要求 1.第一个实验程序用子程序的近程调用实现。由于在调用HEXASC子程序时,子程序又调用了DISP子程序,这叫子程序的嵌套调用。实验过程中可以从堆栈的内容看到两个子程序的返回地址值。由于是近调用,地址值只包括返回地址的段内偏移量。在每个子程序的执行中,检查CS值是不变的。 2.第二个程序是利用远调用的方法调用子程序的。在远调用情况下,主程序与子程序处在不同的逻辑代码段中,可在子程序执行中查看CS值,它与主程序中的CS值是不同的。子程序调用后,堆栈中保留了返回地址的段地址及段内偏移量。 3.第二个程序中,主程序与子程序之间参数的传送是由堆栈实现的。一段是将参数(此处是串首址TABLE,串的长度N及待统计的字符“b”)顺序压如堆栈,在子程序调用后,通过BP指针对堆栈中的参数访问,并将统计的结果通过堆栈返回。有关该方法的原理此处不再介绍。 4.预习子程序设计的基本方法,根据实验内容要求,画出子程序及主程序的流程图;熟悉键盘键入字符串及用堆栈传送参数的程序段编制方法。 四.实验环境 PC微机 DOS操作系统或Windows 操作系统 MASM.EXE,LINK.EXE,https://www.wendangku.net/doc/f010105873.html,或宏汇编集成环境 五.实验步骤 1.编辑、汇编两个源程序,生成相应的可执行文件(.EXE) 实验一 ;CONV.ASM DATA SEGMENT

实验一 存储器实验

实验一存储器实验 1.FPGA中LPM_ROM定制与读出实验 一.实验目的 1、掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性与配置方法。 2、用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于 lpm_ROM中; 3、在初始化存储器编辑窗口编辑mif文件配置ROM; 4、验证FPGA中mega_lpm_ROM的功能。 二.实验原理 ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modules)参数化的模块库,可构成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存储器结构。CPU 中的重要部件,如RAM、ROM可直接调用她们构成,因此在FPGA中利用嵌入式阵列块EAB 可以构成各种结构的存储器,lpm_ROM就是其中的一种。lpm_ROM有5组信号:地址信号address[ ]、数据信号q[ ]、时钟信号inclock、outclock、允许信号memenable,其参数都就是可以设定的。由于ROM就是只读存储器,所以它的数据口就是单向的输出端口,ROM中的数据就是在对FPGA现场配置时,通过配置文件一起写入存储单元的。图3-1-1中的lpm_ROM有3组信号:inclk——输入时钟脉冲;q[23、、0]——lpm_ROM的24位数据输出端;a[5、、0]——lpm_ROM的6位读出地址。 实验中主要应掌握以下三方面的内容: ⑴ lpm_ROM的参数设置; ⑵ lpm_ROM中数据的写入,即LPM_FILE初始化文件的编写; ⑶lpm_ROM的实际应用,在GW48_CP+实验台上的调试方法。 三.实验步骤 (1)用图形编辑,进入mega_lpm元件库,调用lpm_rom元件,设置地址总线宽度address[] 与数据总线宽度q[],分别为6位与24位,并添加输入输出引脚,如图3-1-1设置与连接。 (2)设置图3-1-1为工程。 (3)在设置lpm_rom数据参数选择项lpm_file的对应窗口中(图3-1-2),用键盘输入 lpm_ROM配置文件的路径(rom_a、mif),然后设置在系统ROM/RAM读写允许,以便能

实验1 存储器块清零程序

实验1 存储器块清零程序 一、实验要求 指定存储器中某块的起始地址和长度,将其内容清零。 二、实验目的 1、学习使用模拟软件,编辑简单程序; 2、掌握存储器的读写方法; 3、了解存储器块操作块操作方法 三、实验内容 1、实验步骤 启动PC机,打开uVision2软件。 创建工程Project文件,然后创建main.c源程序,。实现对数据块Da[10]的清零函数ClearDataZone: void ClearDataZone(unsigned char* Data,int n) {

} int main() { unsigned char Da[10]={0,1,2,3,4,5,6,7,8,9}; ClearDataZone(Da,10); while(1); } 2、对代码进行编译,编译无误后,进入Debug运行程序,打开数据窗口(DATA),点击暂停按钮,观察要清零的数据区是否被清零。同时打开反汇编代码窗口,找出这段C代码用到的汇编指令有哪些?并对反汇编代码截图。

指令: MOV SJMP LJMP ORL CLR JNZ JZ LCALL DEC

3、针对2中你看到的每一句汇编代码写出相应的含义,并标出。 C:0x011B 7808 MOV R0,#0x08 含义:将0x08这个数据传送到R0寄存器中 C:0x0138 12013D LCALL ClearDataZone(C:013D) 含义:长调用指令,调用ClearDataZone函数 C:0x013B 80FE SJMP C:013B 含义:短转移指令 C:0x0144 1D DEC R5 含义:减1指令。将R5寄存器中的数据减一 C:0x0145 7001 JNZ C:0148 含义:若不为0就跳转 C:0x014A 6010 JZ C:015C 含义:若为0就跳转 C:0x0149 4C ORL A,R4 含义:逻辑或指令。将A和R4寄存器中的数据做或运算,所得结果放在R4中。C:0x0156 E4 CLR A 含义:清0指令 四、实验总结 懂得了实验里边一些汇编代码所包含的意思。

面B实验程序完整版

第一次实验

四.实验源程序及实验结果 #include #include using namespace std; class CTeacher; class CStudent //学生类 { public: CStudent(int ,string ,double ); friend void Display(CStudent &); //定义友元函数 friend CTeacher; //定义友元类 private: int ID; //学号 string Name; //姓名 double Score; //成绩 }; CStudent::CStudent(int a1,string a2,double a3): ID(a1),Name(a2),Score(a3) {} //构造函数初始化数据成员 void Display(CStudent &a) //输出姓名、成绩、等级 { int d; d=a.Score/10; cout<

实验二:SRAM 静态随机存储器实验

《计算机组成原理》 实验报告 实验二:SRAM 静态随机存储器实验 学院: 专业: 班级学号: 学生姓名: 实验日期: 指导老师: 成绩评定: 计算机学院计算机组成原理实验室

实验二 一、实验名称:SRAM 静态随机存储器实验 二、实验目的: 掌握静态随机存储器RAM工作特性及数据的读写方法。 三、实验内容: 1、向存储器中指定的地址单元输入数据,地址先输入AR寄存器,在地址灯上显示;再将数据送入总线后,存到指定的存储单元,数据在数据显示灯显示。 2、从存储器中指定的地址单元读出数据, 地址先输入AR寄存器,在地址灯显示; 读出的数据送入总线, 通过数据显示灯显示。 四、实验设备: PC机一台,TD-CMA实验系统一套。 五、实验步骤: 1、关闭实验系统电源,按图2-4 连接实验电路,并检查无误,图中将用户需要连接的信号用圆圈标明。 2、将时序与操作台单元的开关KK1、KK3 置为运行档、开关KK2 置为…单步?档。 3、将CON 单元的IOR 开关置为1(使IN 单元无输出),打开电源开关,如果听到有…嘀?报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。

图2-4 4、给存储器的00H、01H、02H、03H、04H 地址单元中分别写入数据11H、12H、13H、14H、15H。 由前面的存储器实验原理图(图2-1-3)可以看出,由于数据和地址由同一个数据开关给出,因此数据和地址要分时写入,先写地址,具体操作步骤为:先关掉存储器的读写(WR=0,RD=0),数据开关输出地址(IOR=0),然后打开地址寄存器门控信号(LDAR=1),按动ST 产生T3 脉冲,即将地址打入到AR 中。再写数据,具体操作步骤为:先关掉存储器的读写(WR=0,RD=0)和地址寄存器门控信号(LDAR=0),数据开关输出要写入的数据,

第六章 单片机系统综合实验

第六章单片机系统综合实验 6.1 单片机基本实验 实验6-1.存储器块清零程序设计 (1)实验目的。1. 掌握存储器读写方法;2. 了解存储器的块操作方法。 (2)实验内容:1. 指定内部RAM中某块的起始地址和长度,要求能将其内容清零。2. 指定外部RAM 中某块的起始地址和长度,要求能将其内容清零。3. 指定外部RAM中某块的起始地址和长度,要求 能将其内容置为某固定值(如012H)。 (3)实验说明。通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以 了解单片机编程、调试方法。 (4)参考程序框图。1、程序参考流程如图6-1所示;2、参考程序如下: BLOCK EQU 0400H ORG 0000H LJMP START ORG 0030H START:MOV DPTR,#BLOCK ;DPTR←起始地址 MOV R0, #0FFH ;R0←块长度 MOV A,#0 ; A←0 LOOP: MOVX @DPTR,A ;当前地址内容清0 INC DPTR ;地址加1 DJNZ R0,LOOP ; 计数器减1,循环 SJMP $ ; 结束 图6-1 程序流程图 END 图6-2 程序窗口(存储器块赋值程序)图6-3 外部数据存储器XDATA空 间窗 例如若要将从0400H 开始的255个字节外部数据存储器块的内容置成12H 值,请修改以上程序完成 此操作,注意在程序调试过程中数据的变化情况。注意在程序调试过程中数据的变化情况。3、程序调试过 程。程序窗口如图6-2所示。可通过观察外部数据存储器窗口XDATA 了解程序运行结果,运行结果如图

6-3所示。 (5)思考题。如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请用户修改程序,完成此操作。 实验6-2 二进制到BCD转换程序设计 (1)实验目的。掌握简单的数值转换算法。基本了解数值的各种表达方法。 (2)实验内容。1、将给定的一个单字节二进制数,转换成非压缩的二—十进制(BCD)码;2、将给定的一个单字节二进制数,转换成压缩的二—十进制(BCD)码。 (3)实验说明。计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制之间的转换是一种基本功。有兴趣的同学可以试试将BCD转换成二进制码。 五、参考程序框图。(1)程序参考流程如图6-4所示;(2)参考程序 通过本实验学习简单的数值转换算法,了解数值的各种表达方法。同时进一步熟悉单片机实验集成开发软件环境的使用方法。学习“单步”、“跟踪”、“执行到光标处”等调试功能。启动程序运行到最后一条指令处,打开8051 内部数据存储器空间,观察程序执行结果。若A 中原来的内容“123”(7BH)转换为三个 BCD 码“01”、“02”和“03”,并分别存入了从 (30H)开始的三个单元中,如图6-5所示。 程序执行后的结果: 图6-5 内部数据存储器DATA空间窗口 实验6-3 十六进制到ASCII码转换程序设计 (1)实验目的。1.了解十六进制数和ASCII值的区别。2.了解如何将十六进制数转换成ASCII 值。 3.了解如何查表进行数值转换及快速计算。 (2)实验内容。给出一个十六进制数,分别用查表法和逻辑运算方法将其转换成ASCII值。 (3)实验说明。此实验主要让学生了解数值的十六进制数和ASCII码的区别,学会用查表法快速地进行数值转换并进一步了解数值的各种表达方式。 (4)参考程序框图(查表法) 方法一:(通过查表实现数制转换)。程序流程图如图6-6所示。入口条件:待转换的8位二进制数在

微机实验报告

成绩:实验报告 课程名称:微机原理及应用 实验项目:存储器块清零实验 姓名:李顺源 专业:机械电子工程 班级:机电09-3班 学号:0901040320 计算机科学与技术学院 实验教学中心 2011年11月12日

软件实验一存储器块清零实验 一、实验目的: 1、掌握存储器读写方法; 2、了解存储器的块操作方法。 二、实验内容: 指定存储器中某块的起始地址和长度,要求能将其内容清零。 具体要求:将数据段中以BLOCK地址(0400H)开始的256个内存单元清零。 三、实验用设备仪器及材料: 计算机,伟福Lab2000P仿真实验箱。 四、实验方法及步骤: 1.打开试验箱电源。 2.在windows桌面上双击WAVE图标。 3.建立与伟福实验箱的通信仿真器的选择:Lad2000P仿真实验系统 仿真头:8088/86实验 端口选择:COMI 4.编写实验程序。 5.编译:项目\编译,编译的过程同时也是将程序下传到实验台。 6.程序执行前:检查数据段中以BLOCK地址开始的256哥单元的内容。 7.运行(全速执行,单步,跟踪)。 8.程序执行后:检查数据段中以BLOCK地址开始的256个单元的内容。 9.关实验箱电源,关主机。

五、实验程序流程图: 设置块起始地址 设置块长度 当前地址内容清零地址加1 否 是否清除完 是 结束 六、发挥部分 编写程序 1.实现将存储器0400H—04FFH的4个单元改为0—FH。data segment Block db256 dup(55h) data ends Code segment Assume cs:code,ds:data Start proc near Mov ax , data Mov ds ,ax Mov bx ,off set Block Mov cx ,4 Mov dx,OH Again mov[bx],dx

实验一调试程序DEBUG的使用实验报告

南昌理工学院实验报告 二O一二年月日 课程名称:微机原理与接口技术实验名称:调试程序DEBUG的使用班级:姓名:同组人: 指导教师评定:签名: 【一、实验名称】 调试程序DEBUG的使用 【二、实验目的】 1.掌握汇编程序的编辑,编译,连接和执行的全过程; 2.学习和掌握用DEBUG 调试程序的方法。 【三、实验内容和原理】 1.用编辑软件,输入以下汇编语言源程序: DAT SEGMENT A D B 20 ;(自定) B DB 15 ;(自定) Y DB 3 DUP(0) Z DB 0,0 DAT ENDS STA SEGMENT STACK DW 50 DUP(?) STA ENDS COD SEGMENT ASSUME CS:COD,DS:DAT STAR PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DAT MOV DS,AX MOV AX,STA MOV SS,AX MOV AL,A MOV Z,AL MOV Z+1,AL CALL SUB1 MOV AL,B MOV Z,AL MOV Z+1,AL CALL SUB1 MOV AL,A MOV Z,AL MOV AL,B MOV Z+1,AL CALL SUB1 ADD WORD PTR Y,AX ADC BYTE PTR[Y+2],0 RET STAR ENDP SUB1 PROC MOV AL,Z MOV AH,Z+1 MUL AH ADD WORD PTR Y,AX ADC BYTE PTR[Y+2],0 RET SUB1 ENDP COD ENDS END STAR

实验一清零程序

实验一清零程序-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

实验一清零程序 一、实验目的: 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容:把2000H~20FFH 的内容清零。 三、实验程序框图 四、实验步骤: 用连续或单步方式运行程序,检查2000~20FF 中执行程序前后的内容变化。 五、思考:假使把1000H~10FFH 中的内容改成FF,如何修改程序,请分别用连续和单步方式运行程序来完成校验证 六、程序清单 (1)基本程序(文件名) ORG 0000H LJMP SE01 ORG 0640H SE01: MOV R0,#00H ;(00H)送R0,R0 为计数器 MOV DPTR,#2000H ;(2000H)送DPTR LOO1: CLR A ;累加器A 清零 MOVX @DPTR,A ;存储空间内容清零 INC DPTR ;DPTR 加1 INC R0 ;R0 加1 CJNE R0,#FFH,LOO1 ;若R0 不等于00,则跳转至LOO1 继续循环

LOOP: SJMP LOOP END 七、思考:假使把1000H~10FFH 中的内容改成FF程序如下: ORG 0000H LJMP SE01 ORG 0640H SE01: MOV R0,#00H ;(00H)送R0,R0 为计数器 MOV DPTR,#1000H ;(2000H)送DPTR LOO1: MOV A,#FF;累加器A 置FF MOVX @DPTR,A ;存储空间内容置FF INC DPTR ;DPTR 加1 INC R0 ;R0 加1 CJNE R0,#FFH,LOO1 ;若R0 不等于00,则跳转至LOO1 继续循环 LOOP: SJMP LOOP END 现象:运行第一条程序可以发现1000H~10FFH 中的内容变成FF,运行第二条程序1000H~10FFH 中的内容改成00.而其它单元的内容不变。 心得:该实验的内容比较简单。

存储器实验报告

计组实验三实验报告 实验日期:2015 年4 月14 日学号:201308010227 姓名:吴晗 实验名称:存储器实验总分: 一.实验内容 1.随机存储器RAM的工作特性及使用方法 2.RAM数据存储和读取的工作原理 3.LPM类存储元件的定制 二.实验原理 原理图:

三.实验电路图: RAM电路图: addr[7..0]:地址输入 clk:时钟信号 we,rd;mem:控制信号,高电平有效 Initial_file.mif文件: 存储器电路图: i[7..0]:数据输入l[7..0]:总线数据 sw_bus:pc_bus:三态门控制信号 ld161,clr161,pc161:74161控制信号,控制置数,读取,清零,计数 ldar:74273控制信号 w,r,m:RAM控制信号

仿真图: 仿真说明: 时间参数:End Time:2.0us Grid Size:100ns 端口说明: clk:时钟信号 i[7..0]:数据输入l[7..0]:总线数据 sw_bus:pc_bus:三态门控制信号,控制数据输出到总线 ld161,clr161,pc161:74161控制信号,控制置数,读取,清零,计数 ldar:74273控制数据从总线读入 w,r,m:RAM控制信号 仿真说明: 0-100ns:无操作 100-200ns:sw_bus为0有效,从i读入01,74161置数状态,RAM默认状态,总线

数据01 200-300ns:sw_bus为0有效,pc_bus无效,从i读入01,74161保持状态,RAM默认状态,总线数据01 300-400ns:pc_bus为0有效,sw_bus无效,74161保持状态,RAM默认状态,总线数据01,ldar为1,跳入下一个地址 400-500ns:sw,pc_bus无效,74161保持状态,RAM读取状态,读取E1,总线E1 500-600ns:sw,pc_bus无效,74161保持状态,RAM读取状态,读取D2,总线D2 600-700ns:sw,pc_bus无效,74161保持状态,RAM写入状态,总线输入EE,写入RAM 700-800ns:sw,pc_bus无效,74161保持状态,RAM读取状态,读取EE,总线EE 800-900ns:pc_bus为0有效,sw_bus无效,74161计数加1状态,RAM默认状态,总线数据01在上升沿时变为02 900-1000ns:pc_bus为0有效,sw_bus无效,74161计数加1状态,RAM默认状态,总线数据02在上升沿时变为03,ldar为1,跳入下一个地址1000-1100ns:sw,pc_bus无效,74161保持状态,RAM读取状态,读取F3,总线EE在上升沿变为F3 1100-1200ns:sw,pc_bus无效,74161保持状态,RAM读取状态,读取F3,总线F3 仿真结论:仿真结果与理论相符,仿真成功 五.硬件验证 管脚分配: 选择FLEX10K-EPF10K20TC144-4器件下载验证与仿真结果相符,实验成功。

相关文档