ImageVerifierCode 换一换
格式:DOCX , 页数:78 ,大小:208.45KB ,
资源ID:12095583      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12095583.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验一内部RAM数据传送程序设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验一内部RAM数据传送程序设计.docx

1、实验一内部RAM数据传送程序设计实验一 内部RAM数据传送程序设计一、实验目的 1学习MCS-51微控制器汇编语言的编写。 2了解51微控制器内部RAM的读写及调试方法。 二、实验设备用wave模拟软件进行实验.三、实验原理 51微控制器片内RAM低128字节(00H7FH)包含工作寄存器区(00H1FH)、位操作区(20H2FH)和数据区(307FH)。对该128字节的RAM区,均可采用直接寻址和间接寻址方式,若采用间接寻址用R0或R1作间址寄存器。特殊功能寄存器占用片内RAM地址空间 80HFFH,对它只能采用直接寻址方式。数据传送指令是汇编语言程序设计的基本要素,数据块传送也是程序设计的

2、基本技巧之四、实验内容及要求 试编写程序:先把内部RAM的(30H7FH)单元清零,然后将30H-7FH单元内55H的值.五、实验步骤 1打开计算机,打开wave软件,进入仿真环境,选择软件模拟器,选择仿真器,仿真头选择,选择CPU。2打开“实验程序/8051程序/RAM.asm”程序 3按照程序注释设置断点。4点击工具条的运行按钮,程序运行到第一个断点处,打开窗口-data数据观察窗口,进行观察30H-7FH单元的值。5然后再点击运行按钮,程序会运行到第二个断点处,此时,观察30H-7FH单元的值变化。六、实验报告要求 1整理实验程序程序,理解程序。 2如果把程序1中(30H7FH)单元的内

3、容改为66H,如何修改程序。 3理解数据指针:数据块传送若在内部RAM中进行,用什么作数据指针?若在外部RAM或ROM中进行,用什么作数据指针? 4存储器和数据存储器的地址空间可以重叠,对此如何解释? 七、实验参考程序 ORG 0000H CLEAR: MOV R0,#30H ;30H送R0寄存器 MOV R6,#50H ;4FH送R6寄存器(计数) CLR1: MOV A,#00H ;00送累加器A MOV R0,A ;00送到30H-7FH单元 INC R0 ;R0加1 DJNZ R6,CLR1 ;不到4F个字节再清 NOP ;此处设断点观察30H-7FH单元的值 MOV R0,#30H

4、MOV R6,#50HLOOP: MOV A,#55H MOV R0,A INC R0 DJNZ R6,LOOP AJMP $ ;此处设断点观察30H-7FH单元的值 END图1实验二 算术运算程序设计一、实验目的 1学习单片机算术运算、逻辑运算等指令。 2练习其指令的使用和编程方法。 二、实验设备 使用WAVE仿真器的软件模拟器进行实验。三、实验原理 微控制器具有较强的加、减、乘、除等数学运算功能,这些运算可直接对8位无符号二进制数进行运算。利用溢出标志,还可以把加、减法运算用于有符号数的运算;用十进制调整指令,又可使运算直接用十进制(BCD码)来进行。应用算术运算指令要注意使用条件,要靠灵

5、活运用指令,进行适当的编程才能得到正确结果。 四、实验内容及要求 1试编写多字节十进制加法程序:入口参数:R0加数首地址;R1被加数首地址;R2字节数;出口参数:R0和首地址。 2试编写双字节无符号整数相乘程序:入口参数:(R2R3)被乘数;(R6R7)乘数;出口参数:(R4R5R6R7)乘积。 五、实验步骤 1打开计算机,进入wave仿真软件环境,建立项目文件,建立汇编源文件;启动编译、连接;进入调试状态。 2 据实验内容要求,在寄存器窗口分别将R0、R1、R2置成20、30、02;在片内数据区(20H21H),(30H31H)单元分别置入加数和被加数,用连续或单步的方式运行程序ADD.AS

6、M,检查程序及结果是否正确。 3实验内容要求,在寄存器窗口分别给R2R3和R6R7设置数据,运行程序“实验程序/8051程序/RAM MUL.ASM”,检查程序及结果是否正确。六、实验报告要求 1画出程序框图,整理实验程序。 2若进行多字节二进制加法,程序1应如何修改?编写程序,并运行验证。 3每一实验程序做出3到5组实验数据,验证实验程序及结果是否正确,并记录。 七、实验参考程序 ADD.ASM:多字节十进制加法程序 ORG 0000H CLR C LOOP: MOV A,R0 ;取低位加数 ADDC A,R1 ;低位相加 DA A ;调整 MOV R0,A ;低位和送R0地址 NC R0

7、INC R1 DJNZ R2,LOOP NOP END MUL.ASM:双字节无符号整数相乘程序 ORG 0000H QKUL: MOV A,R3 MOV B,R7 MUL AB ;R3*R7 XCH A,R7 ;R7=(R3*R7)的低字节 MOV R5,B ;R5=(R3*R7)的高字节 MOV B,R2 MUL AB ;R2*R7 ADD A,R5 MOV R4,A CLR A ADDC A,B MOV R5,A ;R5=(R2*R7)的高字节 MOV A,R6 MOV B,R3 MUL AB ;R3*R6 ADD A,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV

8、R5,A MOV PSW.5,C ;存CY MOV A,R2 MUL AB ;R2*R6 ADD A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,PSW.5 ;加上一次加法的进位. ADDC A,B MOV R4,A SJMP $ END 实验三 数据处理程序设计一、实验目的 1学习数据检索的方法和程序设计技巧。 2学习数据交换及逻辑运算指令的使用。 3学习数据比较指令的使用,熟悉冒泡法排序编程。 二、实验设备 使用wave软件模拟仿真器三、实验原理 实际应用当中,多数情况下在进行核心算法之前,要进行数据准备,比如数据检索;按某种规律将一组数据排序;有时还要将一个字

9、节的8位数据打乱,按某种规律重新排序。当然数据传送也是一种准备,诸多方式的数据准备统称为数据处理。 数据检索:指在数据区查找关键字的操作。 数据排序:数据排序的方法很多,本实验以冒泡法为例。所谓冒泡法是一种相邻数据互换的排序方法,其过程类似水中汽泡上浮。此方法排序效率较高。 四、实验内容 1试编写程序:关键字检索,将实验数据存入50H单元开始的内存区,数据长度存入60H单元,关键字存入61H单元,检索到关键字后,62H单元存入关键字所在的地址;若未检索到,则62H单元内容置0。 2试编写程序:拼字程序。把30H,31H单元的低位内容合并成一个字节,送70H单元。本程序一般用在读显示缓冲区。 3

10、试编写程序:将R5中的单字节8位数据反序排列,原顺序为D7D0,排序后顺序为D0D7;结果存入寄存器R6中。 五、实验步骤 1打开WAVE仿真软件,选择模拟仿真,根据实验内容要求,在窗口/数据窗口/DATA的50H-5EH设置00 01 02 03 04 05 06 07 08 09 0a 0b 0e 的数据,60H单元置08h,61H单元置05,运行实验程序/8051程序/jiansuo.asm源程序,停止后查看62H单元的值是否为55H,结果是否正确。 2打开WAVE仿真软件,选择模拟仿真,点击文件/新建文件/在编辑窗口输入程序2的程序,保存为后缀为.asm的文件,然后编译,在窗口/数据窗

11、口/DATA的30h单元置28H,31H单元置置49H值,运行程序后暂停,查看窗口/数据窗口/XDATA的8000H单元的值是否为89H。3根据实验内容要求,在窗口/CPU窗口/REG/R5中,将R5赋值,运行程序3,观察窗口/CPU窗口/REG/R6的值是否正确。 六、实验报告要求 1画出程序框图,整理实验程序。 2每一实验程序做出3到5组实验数据,验证实验程序及结果是否正确,并记录。 七、实验参考程序 程序1:关键字检索程序: ORG 0000H MOV R0,#50H MOV R1,60H LOOP: MOV A,R0 CJNE A,61H,LOOP1 MOV 62H,R0 SJMP H

12、ERE LOOP1: INC R0 DJNZ R1,LOOP NEXT: MOV 62H,#00H HERE: SJMP HERE END 程序2:拼字程序 ORG 0000H AJMP MAIN ORG 0030HMAIN: NOP PZCX: MOV A,30H ;读30H单元内容到A ANL A,#0FH ;屏蔽了A的高位 SWAP A ;高低位交换 MOV B,A ;暂时存放在B中 MOV A,31H ;读31H的内容到A ANL A,#0FH ;屏蔽了A的高位 ORL A,B ;A和B进行或操作 MOV DPTR,#8000H MOVX DPTR,A ;结果送入8000H WAIT:

13、 SJMP WAIT END 程序3:单字节8位数据反序排列 ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV R2,#08H MOV A,R5 MOV R7,ALOOP: MOV A,R7 RLC A MOV R7,A MOV A,R6 RRC A MOV R6,A DJNZ R2,LOOP AJMP $ END实验四 数制转换程序设计一、实验目的 1学习ASCII码与十六进制互换算法及程序设计方法。 2学习十六进制与BCD码互换算法及程序设计方法。 二、实验设备 Wave软件模拟仿真器。 三、实验原理 人们在日常生活中习惯使用十进制,而计算机键盘和显示常采用二进

14、制编码的十进制数(即BCD码)或ASCII码。因此各种代码之间的转换是回避不了的。学习程序设计就应该掌握数字之间的转换。 1十六进制数与ASCII码的转换依据下面对应关系进行: 十六进制数 0 1 2 9 A B F ASCII码 30 31 32 39 41 42 46 2单字节16进制数转换成10进制数,依据的算法是:将16进制数除以100,商作百位数,将余数除以10,商作十位数,余数即个位数。 四、实验内容 1多位十六进制数转换成ASCII码:入口参数:R0十六进制数地址指针;R2字节数;出口参数:(R1)转换后ASCII码的地址指针。 2八位二进制数转换成压缩BCD码:入口参数: R2

15、存放八位二进制数;出口参数:寄存器R3R4中存放压缩BCD码。 五、实验步骤 1根据实验内容,分别在片内数据区和寄存器区赋值,运行程序1,查看程序及结果是否正确。 2根据实验内容,分别在片内数据区和寄存器区赋值,运行程序2,查看程序及结果是否正确。 六、实验报告要求 1画出程序框图,编写程序。 2将程序1中 A+PC变址寻址方式改为 A+DPTR变址方式,修改程序并运行验证。 3每一实验程序做出3到5组实验数据,验证实验程序及结果是否正确,并记录。 4比较两种变址寻址方式的编程方法有何差别? 七、实验参考程序 程序1:多位十六进制数转换成ASCII码 ORG 0000H AJMP START

16、ORG 0030H START: MOV A,R0 ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR ;查表得低四位ASCII码 MOV R1,A INC R1 MOV A,R0 SWAP A ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR ;查表得高四位ASCII码 MOV R1,A INC R0 INC R1 DJNZ R2,START ;没转换完继续 AJMP $ NOP TAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H END程序

17、2:八位二进制数转换成BCD码的程序: ORG 0000H AJMP START ORG 0100H START: MOV A,R2 MOV B,#100 DIV AB ANL A,#0FH MOV R3,A MOV A,B MOV B,#10 DIV AB ANL A,#0FH SWAP A MOV R4,A MOV A,B ANL A,#0FH ORL A,R4 MOV R4,A AJMP $ END实验五 P1口控制实验一、实验目的 1学习51微控制器P1口的使用方法。 2学习软件延时程序的设计方法。 二、实验设备 1用到的模块有“PMC-201 8051模块”、“503 LED显示模块

18、”。 28P的数据线一根。 三、实验原理 51微控制器的P1口是一个准双向口,作通用的I/O口使用,本实验就是将P1口分别作为输出进行练习。 实验原理参看附图。 四、实验内容 试编写程序:设P1口做输出,接8个发光二极管,使其从左到右循环点亮,显示出流水灯效果。 五、实验步骤 1把实验用到的模块:“PMC-201 8051模块”、“503 LED显示模块”安装到对应的位置上。2.把实验模块插放到相应的实验挂箱上,确保无误后,用1根8P排线,将“PMC-201 8051模块”的JP1插座和“503 LED显示模块”J1上。3将WAVE仿真器头插在8051模块的紧锁插座内,通讯线接在计算机上。4检

19、查模块及接线无误后,打开屏上电源,控制器单元的开关,打开仿真器电源。 5打开计算机上的wave软件,运行“实验程序/8051程序/p1test2.asm”源程序。6观察上的发光二极管的亮灭变化情况。六、实验报告要求 1画出程序框图,编写程序。 2试回答:延时时间怎么计算。 七、实验参考程序ORG 0000HAJMP MAINORG 0100HMAIN: MOV A,#01hLOOP: MOV P1,AACALL DELAYRL ACJNE A,#00H,LOOP AJMP MAINDELAY: MOV R3,#5A4: MOV R4,#200A3: MOV R5,#250DJNZ R5,$DJ

20、NZ R4,A3DJNZ R3,A4 RET END实验六 P1口输入输出实验一、实验目的 1学习51微控制器P1口的使用方法。 2学习软件延时程序的设计方法。 二、实验设备 1用到的模块有“PMC-201 8051模块”、“PMC-2 主控制单元”的“开关量输出模块”、“开关量输入模块”。 2一号导线8根。 三、实验原理 51微控制器的P1口是一个准双向口,作通用的I/O口使用,本实验就是将P1口分别作为输入和输出进行练习。 作输入时,把开关作为输入装置,由P1口读取开关状态。作输出时,控制LED发光二极管。 四、实验内容试编写程序:P1.0P1.3作输入,读取开关S1S4状态;P1.4P1

21、.7作输出,连接LED1LED4,根据开关S1S4的状态,分别控制LED1LED4的亮灭。 五、实验步骤 1实验用到的模块:“PMC-2 控制器单元”,“PMC-201 8051模块”。2把实验模块插放到相应的实验挂箱上,确保无误后,用四根一号导线,将8051模块的P1.0、P1.1、P1.2、P1.3分别接在接在开关量输出模块的(在控制器单元上)S1、S2、S3、S4;再用四根1号导线将8051模块的P1.4、P1.5、P1.6、P1.7分别接在开关量输入模块(在控制器单元上)的L1、L2、L3、L4。3将WAVE仿真器头插在8051模块的紧锁插座内,通讯线接在计算机上。4检查模块及接线无误

22、后,打开屏上电源,控制器单元的开关,打开仿真器电源。 5打开计算机上的wave软件,运行“实验程序/8051 程序/p1test1.asm文件。6拨动S1、S2、S3、S4观察L1、L2、L3、L4上的发光二极管的亮灭是否随之变化。六、实验报告要求 1画出程序框图,编写程序。 2试回答:51微控制器的P1P3口的位结构有什么不同? 七、实验参考程序ORG 0000HAJMP MAINORG 0100HMAIN: MOV P1,#0FFHMOV A,P1SWAP AANL A,#0F0HMOV P1,AACALL DELAY AJMP MAINDELAY: MOV R3,#10A4: MOV R

23、4,#200A3: MOV R5,#250DJNZ R5,$DJNZ R4,A3DJNZ R3,A4RETEND实验七 8255的输出实验一、实验目的 1学习可编程I/O接口芯片8255的性能及硬件设计方法。 2掌握可编程I/O接口芯片8255的程序设计方法。 3了解8255扩展接口的三种工作方式。二、实验说明 1实验中用到的模块有“PMC -201 8051模块”、“204译码模块”“PMC-2 主控制器单元”的“8255A模块”和“开关量的输入模块”。 2一号导线四根。 三、实验原理 8255是一个通用的可编程并行I/O接口芯片,它具有3个8位的并行I/O口,分别称为PA口、PB口和PC口

24、,其中PC口又分为高4位和低4位。由于8255与微控制器系统总线直接相连,又可以通过编程方便地将各个口设置成输入或输出,所以在微控制器的I/O扩展中,8255通常被人们首选。对8255的编程也是通过对一些命令字的设定来实现。在做实验前,应详细阅读8255器件手册,才能有较大收获。 实验原理及接线图见图7-1: 8255的端口地址: 8255控制字地址为8403H 8255 A口地址 为 8400H 8255 B口地址 为 8401H 8255 C口地址 为 8402H四、实验内容及要求 编写程序:设定用8255的方式0,PA口输出方式,接4个指示灯,让四个灯循环点亮。五、实验步骤1实验中用到的

25、模块有“PMC -201 8051模块”“204译码模块”,将其插到相应的位置上。2将切换模块的SW1拨到ON一端,SW2的7、8接ON,1-6接OFF端 、WS3全ON、SW4全OFF,将“PMC-2控制器单元”上的“8255A模块”的PA0、PA1、PA2、PA3用一号导线分别接在“开关量的输入模块”的L1、L2、L3、L4上,将“204译码模块”的J1、J2短接2、3,J3短接1、2。3将WAVE仿真器头插在8051模块的紧锁插座内,通讯线接在计算机上。4检查模块及接线无误后,打开屏上电源,控制器单元的开关,打开仿真器电源。 5打开计算机上的wave软件,运行“实验程序/8051程序/8

26、255.asm文件”。6观察L1、L2、L3、L4上的发光二极管的亮灭是否轮流循环点亮。 六、实验报告要求 1画出程序框图,整理实验程序。 2编写程序,设定从PC0PC3口读入4个开关通断状态,然后由PC4PC7口输出,发光管指出4个开关的状态。 七、实验参考程序;*8255 PA口输出测试程序* COM8255 EQU 8403H PA8255 EQU 8400H PB8255 EQU 8401H PC8255 EQU 8402H ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV DPTR,#COM8255 MOV A,#80H MOVX DPTR,A ;送控制

27、字,设置PA口为工作模式00,输出方式 MOV A,#01H AA: MOV DPTR,#PA8255 MOVX DPTR,A ;送01到A口,点亮PA.1一个灯 ACALL DELAY RL A CJNE A,#00H,AA ;依次点亮PA.1、PA.2、 PA.3、 PA.4上的灯 MOV A,#01H AJMP AA ;*延时0.5秒子程序* DELAY: MOV R3,#5 A4: MOV R4,#200 A3: MOV R5,#250 DJNZ R5,$ DJNZ R4,A3 DJNZ R3,A4 RET 流程图: END 实验八 8255的输入输出实验一、实验目的 1学习可编程I/

28、O接口芯片8255的性能及硬件设计方法。 2掌握可编程I/O接口芯片8255的程序设计方法。 3了解8255扩展接口的三种工作方式。二、实验说明 1实验中用到的模块有“PMC -201 8051模块”、“204译码模块”、“503 LED显示模块”、“504开关量模块”。 2两根8p的数据线。 三、实验原理 8255是一个通用的可编程并行I/O接口芯片,它具有3个8位的并行I/O口,分别称为PA口、PB口和PC口,其中PC口又分为高4位和低4位。由于8255与微控制器系统总线直接相连,又可以通过编程方便地将各个口设置成输入或输出,所以在微控制器的I/O扩展中,8255通常被人们首选。对8255

29、的编程也是通过对一些命令字的设定来实现。在做本实验前,应详细阅读8255器件手册,才能有较大收获。 实验原理图可参看附图。在实验系统中8255的端口地址: 8255控制字地址为 8403H 8255 PA口地址 为 8400H 8255 PB口地址 为 8401H 8255 PC口地址 为 8402H四、实验内容及要求 编写程序:设定用8255的方式0,PB口输入方式接8个开关量,PC口输出方式接8个指示灯,让开关控制灯的亮灭。五、实验步骤1实验中用到的模块有“PMC -201 8051模块”、“204译码模块”、“503 LED显示模块”、“504开关量模块”将其找出并插到相应的位置上。2将切换模块的SW1全拨到ON一端,SW2的7、8接ON,1-6接OFF端 、SW3全ON、SW4全OFF,用8P的数据线将“PMC-2控制器单元”上的“8255A模块”的J1插座连在“504 开关量模块”的J1上,“8255A模块”的J2插座连在“503 LED显示模块”的J1上,将“204译码模块”的J1、J2短接2、3,J3短接1、2。3将WAVE仿真器头插在8051模块的紧锁插座内,通讯线接在计算机上。4检查模块及接线无误后,打开屏上电源,控制器单元的开关,打开仿真器电源。 5打开计算机上的wave软件,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1