计算机硬件技术基础软件实验讲义
- 格式:doc
- 大小:476.16 KB
- 文档页数:20
实验十一P1口及外部中断一、实验目的1.掌握利用MCS-51单片机P1口实现I/O的三种传送方式。
2.掌握MCS-51单片机外部中断源的原理和编程方法。
3.了解MCS-51单片机处理外部中断的全过程。
4.弄懂外部中断触发方式的选择。
二、实验要求熟练掌握结合DP-51PROC单片机综合仿真实验仪和Kiel C51 集成开发环境进行仿真调试。
三、实验内容及实验电路1、P1口无条件输出实验,电路图图4-1所示。
图4-1 P1口无条件输出实验参考程序1:8个LED 灯同时闪亮。
ORG 8000HLJMP MainORG 80F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND2、P1口条件输出实验,电路如图4-2所示。
图4-2 P1口条件输出实验参考程序2:ORG 8000HLJMP MainORG 8100HMain:JB P1.7,SETLEDCLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP MainSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6SJMP MainEND3、P1口中断输入/输出实验,电路如图4-3所示。
图4-2 P1口中断输入/输出实验参考程序3:ORG 8000HLJMP MainORG 8003HLJMP INT0SVMain:MOV SP, #5FHSETB EASETB IT0SETB EX0SJMP $INT0SV:MOV P1,#0FFHMOV A,P1SW AP AMOV P1,ARETIEND四、实验步骤实验内容1:P1口无条件输出实验1.断开DP-51PROC实验仪的电源,按图3-1接线,使用排线将A2区的J61接口与D1区的J52接口相连。
计算机硬件基础实验指导书合肥工业大学目录第一章实验系统概述 (1)1.1系统特点 (1)1.2软件环境 (2)1.3系统构成 (2)第二章手动“搭接”实验 (5)2.1 手动实验环境的建立 (5)2.2手控实验提示 (6)2.3手动“搭接”实验示例 (7)2.3.1十六位机运算器实验 (7)2.3.2通用寄存器实验 (37)2.3.3准双向I/O口实验 (41)2.3.4 存储器读写实验 (45)第三章手动“在线”实验 (52)3.1地址总线组成实验 (52)3.2十六位数据总线实验 (57)3.3 指令总线运用实验 (64)3.4微控制器实验 (71)第四章典型模型机实验 (82)4.1基本模型机的设计与实现 (82)4.2分段模型机的设计与实现 (87)第五章按键操作指南 (91)5.1键盘概述 (91)5.1.1键盘功能简介 (91)5.1.2键盘监控工作状态 (92)5.1.3初始待命状态 (92)5.2工作模式设置 (92)5.2.1设置为手动模式 (92)5.2.2设置为微程序模式 (93)5.2.3设置为组合逻辑模式 (94)5.3寄存器读写操作 (95)5.4存储器读写操作 (95)5.4.1程序与微程序读写选择操作 (95)5.4.2程序存储器ROM读写操作 (96)5.4.3微程序存储器uM读写操作 (96)5.4.4数据存储器RAM读写操作 (96)5.4.5内部存储器IM读写操作 (97)第六章集成开发环境的使用 (98)6.1集成开发环境主界面 (98)6.1.1菜单栏 (99)6.1.2工具栏 (100)6.1.3代码区 (100)6.1.4结构区 (100)6.1.5信息区 (101)6.1.6状态栏 (101)6.2设置环境参数 (101)6.2.1设置工作方式 (101)6.2.2设置通信端口 (101)6.3程序的建立 (102)6.3.1源程序文件操作 (102)6.3.2指令系统/微程序文件操作 (102)6.4程序的汇编与装载 (103)6.4.1源程序中的预调入命令 (103)6.4.2源程序中的伪指令 (103)6.4.3源程序的汇编与装载 (104)6.5调试实例 (104)6.5.1机器级调试 (104)6.5.2应用级调试 (104)6.5.3全速运行 (104)6.5.4暂停与复位 (104)6.5.5即时观察 (105)第一章实验系统概述1.1系统特点Dais-CMX16+是十六位体系结构的面向教学实践领域的原理计算机运用类实验装置。
清华大学计算机基础教育课程系列教材计算机硬件技术基础实验指导李芙英 朱小梅 编著清华大学出版社(京)新登字158号内 容 简 介本书是“清华大学计算机基础教育课程系列教材”中的《计算机硬件技术基础(第2版)》一书的配套教材。
全书安排了21个实验,分三个部分:软件实验、硬件基础实验、硬件提高实验。
软件实验包括DE BUG程序使用、汇编语言程序结构和设计、中断功能调用和中断程序设计;硬件基础实验包括硬中断程序设计,定时/计数器8253、并行接口8255A、串行接口8251A、A/D、D/A等芯片的使用;硬件提高实验包括小键盘、鼠标、打印机接口,数码管和液晶显示,语音录入与回放,温度和红外检测等。
其中硬件实验以清华大学T PC-1型16位微机实验系统为实验环境。
三部分实验分三个层次,具有基础性、实用性和提高性。
本书既可作为高等院校“计算机硬件技术基础”等课程的实验教材,又可供工程技术人员参考。
版权所有,翻印必究。
本书封面贴有清华大学出版社激光防伪标签,无标签者不得销售。
图书在版编目(CIP)数据计算机硬件技术基础实验指导/李芙英,朱小梅编著.—北京:清华大学出版社,2000清华大学计算机基础教育课程系列教材ISBN7-302-04019-2Ⅰ.计…Ⅱ.①李…②朱…Ⅲ.硬件-实验-高等学校-教材Ⅳ.TP303中国版本图书馆CIP数据核字(2000)第46376号出版者:清华大学出版社(北京清华大学学研大厦,邮编100084)ht tp://w 印刷者: 印刷厂发行者:新华书店总店北京发行所开 本:787×10921/16 印张:10.75 字数:245千字版 次:2000年9月第1版 2000年9月第1次印刷书 号:ISBN7-302-04019-2/T P・2363印 数:0001~0000定 价: 元清华大学计算机基础教育课程系列教材计算机科学技术的发展不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。
第3章指令系统和汇编语言程序设计实验本章实验主要包括指令系统和汇编语言程序设计两部分。
采用软件模拟调试的方法,目的在于通过这些实验可以使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。
3.0 实验操作说明Keil 软件调试方式分为:软件仿真方式和硬件调试两种。
实验一到实验十为软件仿真实验;实验十一到实验十四为硬件仿真实验。
3.0.1 软件仿真实验上机操作步骤1、进入Keil,点击桌面上“Keil μVersion 3”图标,进入Keil系统窗口;2、新建工程:1)打开“工程”菜单中的新建,在弹出的对话框中,键入自己定义的工程名;2)在进一步打开的对话框中,选择CPU的类型,为Intel公司的8032AH,确定。
3、打开“视图”菜单中的“工程窗口”;4、在“工程窗口”中,右击“目标1”,为工程设置参数;1)在弹出的快捷菜单中选择“为目标“目标1”设置选项”;2)在弹出的对话框中选择“项目”选项卡,设置时钟为“12Mhz”;3)选择“调试”选项卡,在单选框选择“软件仿真方式”;4)确定,即完成了“软件仿真方式”的设置。
5、新建文件1)打开“文件”菜单,选择“新建”;2)系统打开一个文本窗口,你可在窗口的编辑区输入要调试的汇编语言源程序;3)存盘,命名文件名和扩展名,文件名任起,扩展名必须是.asm,存盘;例如:a.asm。
6、将刚建的新文件添入当前的工程中1)在“工程窗口”中,“目标1”的+号处打开,显示“源代码组1”;2)右击“源代码组1”,在快捷菜单中选择“为“源代码组1”添加文件”,弹出一个对话框; 3)在对话框中选择“文件类型”为*.*;4) 选择文件所在路径,同时找到刚键入的a.asm文件,点击“add”按钮,然后点击“close”按钮;5) 在“工程窗口”点击“源代码组1”左侧的+号,显示添加的a.asm文件,添加成功。
7、汇编1)在“工程窗口”点击“源代码组1”的a.asm文件;2)打开“a.asm”文件编辑窗口;3)点击工具按钮中的“重建所有的目标文件”,进行汇编;4)在“输出窗口”显示汇编是否有错,无措,进入调试;有错,在编辑窗口修改程序,改后,再次汇编,直至无措后进入调试;8、调试程序1)点击“开始/停止调试”按钮,进入调试界面;2)在程序窗口中有一个黄箭头指向程序的第一条可执行指令的开头;3)选择调试方式进行调试;①在“调试”菜单中选择:跟踪、单步、运行、断点等方式;②或按单步或跟踪命令按钮,按一次单步,执行一条指令,pc指针指向下一条要被执行的指令;③检查运行结果Ⅰ打开“视图”菜单,选择“存储器窗口”,弹出存储器对话框;Ⅱ在存储器对话框的下方选择memory1在地址栏中键入“C:0X0000”回车,建立程序存储器的观察窗口;Ⅲ选择memory2在地址栏中键入“D:0X00”回车,建立内部数据存储器的观察窗口;Ⅳ选择memory3在地址栏中键入“X:0X0000”回车,建立外部数据存储器的观察窗口;Ⅴ在“project workspace”窗口中观察r0-r7,a,pc,dptr,psw,要观察各个标志位,打开psw左侧的+号;9、设置PC指针当程序的首地址不是0000H时,汇编结束后,PC指针仍然指向0000H的地方,在调试程序前,一定要将PC设置到你的程序首地址处,方法为:1)将光标移到程序的第一条指令处,击鼠标右键;2)在快捷菜单中选择“Set Program Counter”命令,PC指针即可指向程序的第一条指令。
《计算机硬件技术基础实验》教学大纲一、教学任务和目标“计算机硬件技术基础实习”是“计算机硬件技术基础”的实践课,授课对象为计算机科学与技术专业本科生。
本课程的目的是使学生能自己动手拆装主机,直观的了解硬件,并利用测试工具来了解和掌握硬件的工作原理及主要参数,在计算机硬件技术和各种部件性能飞速发展的今天,能为今后的学习和工作打下较扎实的计算机硬件基础知识并掌握一定的测试技能。
二、教学内容及安排1•课堂讲授内容:介绍计算机硬件技术基础实习课程特点,了解本课程学习任务、学习方法和基本教学内容;并让学生使用搜索功能自行上网下载测试软件。
以能够测试出结果为准。
2.实验内容:实验1:计算机运行过程演示在已基本了解了计算机的硬件组成和工作原理的基础上,通过本实验可进一步加深理解有关计算机的基本概念和计算机的工作过程。
实验2: CPU性能测试实验通过使用测试软件检测CPU的信息,包括有处理器的名称、厂商、时钟频率、核心电压、超频检测、CPU所支持的多媒体指令集,CPU的LI、L2的信息等。
通过本实验主要了解以下内容: CPU 工作频率对性能的影响、缓存对性能的影响以及不同品牌和同品牌不同核心的性能差异等。
实验3:内存性能测试实验通过本实验主要了解以下内容:内存性能测试和温带性测试以及不同类型的内存的性能差异等。
实验4:总线与芯片组实验通过本实验主要掌握主板性能和参数的测试,主要了解以下内容:芯片组北桥(或MCH)和南桥(或ICH)型号、主机板型号、主机板制造商、BIOS厂商和版本、PCI总线位宽和插槽数目和主机板提供的接口。
实验5:外存储器实验通过本实验主要了解外存储器的各种参数和性能,主要了解一台计算机的硬盘的配置情况(硬盘型号、光盘驱动器型号;硬盘的分区情况、接口类型、柱面数、磁头数、每磁道扇区数;各个分区的总容量和剩余容量、文件系统、总簇数、簇容量、每个簇扇区数、扇区容量)、测试光盘和移动盘的参数(文件系统、总容量和剩余容量;光盘的传输速度;硬盘和移动盘的寻到时间、缓存读/写速度、媒体读/写速度)。
《计算机硬件基础》实训指导书实验教学指导书前言《计算机硬件基础》是一门实践性很强的课程,只有让学生自己多动手进行实验,才能熟练把握计算机组装方法与维护技术,才能培养学生良好的用机习惯和维修习惯,才能把握pc系统故障的排解原则、维修流程及维修中的常用方法,逐步培养学生理论联络实际,认真观察思索,综合分析判断的力量及实际动手力量,才能真正学好本课程。
因此,实验是巩固和发展课堂知识的一个重要环节。
但因为《计算机硬件基础》这门课没有现成的实验指导书,为了高效地利用有限的上机时间,提高上机效率,保证实验效果,根据以往教学经验和学生的现状,特自己编写这门课程的实验指导书。
本实验手册是我系计算机硬件基础课程上机实验指导的主要依据。
根据实验大纲要求,共包含11个实训。
1.了解微型机系统的硬件组成与配置2.培养对微型机硬件各组成部件的识别力量开机观察机箱内的计算机硬件配置,到网上查询最新硬件情况,初步把握配机方案。
1.留意开机后系统自检的荧幕提示和系统配置表(可按pause键暂停),将该微型机的硬件配置如:显示卡的型号和显示快取的容量、存储器容量、cpu型别、硬盘容量、软盘机型别和界面情况等记录下来。
假如不能正确启动系统,记下故障现象。
2.开启太平洋计算机网:和中关村**:(1)了解机箱重点认识机箱的作用、分类;机箱的内部、外部结构和机箱前、后面板的结构等。
(2)了解电源重点认识电源的作用、分类、结构、型号、电源输出/输入电压和电源联结器等。
(3)了解cpu主要包括cpu的型号、型别、主频、电压、厂商标志、封装形式,以及cpu效能等。
(4)了解存储器认识了解微型机系统中常用的ram,rom,cache等不同的功能特点和容量的大小,并进一步加深对存储器在微型机系统中的重要性的认识。
(5)了解认识主机板了解并认识微型机主机板的生产厂商、型号、结构、功能组成、采用的芯片组、界面标准、跳线设定、在机箱中的固定方法,及其与其他部件连线情况等。
计算机硬件技术基础实验指导书东北大学计算中心二零一零年四月目录第1章汇编语言程序设计基础 (1)1.1汇编语言程序的语句 (1)1.1.1 语句格式 (1)1.1.2 数据定义 (1)1.2 汇编语言程序的结构 (2)1.3 汇编语言常用伪指令 (3)第2章汇编语言程序调试过程 (6)2.1 汇编语言程序的命令行开发调试过程 (6)2.1.1 编辑源程序 (6)2.1.2 汇编程序 (8)2.1.3 连接程序 (10)2.1.4 调试程序 (11)2.2 汇编语言编程集成开发环境PWB (18)2.2.1 编辑源文件 (19)2.2.2 运行程序 (20)第3章汇编语言程序设计实验 (31)3.1 顺序程序设计 (31)3.2 分支程序设计 (33)3.3 循环程序设计 (36)3.4 综合程序设计 (38)第4章实验报告撰写规范 (52)附录 (55)I ASCII码表 (55)II 指令速查表 (56)III 伪指令表 (60)IV DOS功能调用 (61)V 常用BIOS功能调用 (66)VI 错误码表 (68)第1章汇编语言程序设计基础1.1汇编语言程序的语句1.1.1 语句格式汇编与言语句一般是由分隔符分成的四个部分组成,格式如下:[名字] 助记符[操作数] [;注释]其中带方括号的项可以省略。
名字项是合法的标识符,包括标号、变量名、过程名、段名或符号名等。
其中,标号后要跟冒号(:),用于指令之前,表示指令的起始地址。
标识符由字母、数字以及_、$、?和@组成,并满足如下要求:(1)不能以数字开头;(2)不能单独使用或,它们有专门用途;(3)不能是系统的保留字,如指令名、寄存器名和伪指令名等。
(4)一个名字的最大有效长度为31,超过31的部分计算机不再识别。
为了便于记忆,名字的定义最好能够见名知义,如用BUFFER表示缓冲区,SUB表示累加和等。
助记符项可以是指令或伪指令。
操作数项包含0个、一个或多个操作数,依赖于具体的指令或伪指令。
实验三 逻辑运算及位操作指令编程设计一、 实验目的(1) 熟悉字节逻辑运算指令功能。
(2) 熟悉位操作指令运算功能。
(3)从而更深入的掌握汇编语言程序设计。
(4)学会观察CPU 窗口中BIT 区的变化。
二、 实验内容1. 字节逻辑运算程序在片内RAM 的FIRST 和SECOND 单元中各有一符号数X 和Y,要求按下列条件算出Z ,存入RESULT 单元中(设运算结果仍为8位数)。
FIRST EQU 30HSECOND EQU 31HRESULT EQU 32HORG 0000HSTART :MOV R0,FIRSTMOV A , R0JB ACC.7, NEGMOV B, #2DIV ABMOV A, BJZ TEMP1MOV A,R0ADD A, SECONDSJMP RESTEMP1: MOV A, R0ANL A, SECONDSJMP RESZ=NEG: CPL ACC.7MOV B, #2DIV ABMOV A, BJZ TEMP2MOV A, R0ORL A, SECONDSJMP RESTEMP2: MOV A, R0XRL A, SECONDRES: MOV RESULT, ASJMP $END2.位操作程序布尔电路图如下:X BIT 00HY BIT 01HZ BIT 02HF BIT 03HORG 0000HSTART: MOV C, ZANL C, /YMOV F, CMOV C, YANL C, /ZORL C, FMOV F, CMOV C, XANL C, YORL C, /FMOV F, CSJMP $END3.拆字程序把外部数据存储器2000H单元的内容拆开,其高四位送2001H低四位,低四位送2002H 低四位,2001H、2002H高四位清零。
需要检查2000H、2001H和2002H单元的内容。
程序清单ORG 0000HMOV DPTR,#2000HMOVX A,@DPTRMOV B,ASWAP AANL A,#0FHINC DPTRMOVX @DPTR,AINC DPTRMOV A,BANL A,#0FHMOVX @DPTR,ASJMP $END程序框图4.拼字程序把外部数据存储器2000H、2001H单元的低四位分别送2002H高低四位。
需要察看2000H、2001H和2002H程序清单ORG 0000HMOV DPTR,#2000HMOVX A,@DPTRANL A,#0FHSWAP AMOV B,AINC DPTRMOVX A,@DPTRANL A,#0FHORL A,BINC DPTRMOVX @DPTR,ASJMP $END5.自选程序设计三、思考题1.字节与位逻辑运算指令在编程上什么区别?应注意什么?2.若把两位十六进制数转换成对应的ASCII码,应如何编写程序?3.采用其它方法设计第一个程序。
4.如何用断点方式调试本程序?实验四代码转换一、实验目的1.掌握各种代码转换的算法,加深对各种数据编码的理解。
2.学会软件模拟调试和察看修改观察项的方法来观察转换结果。
一、实验内容1.分析清楚个程序的功能。
2.调试各种代码转换的程序。
三、实验步骤1.进入调试软件环境,输入源程序;2.汇编源程序;3.用单步或全速方式运行程序;4.查看最终结果。
四、程序清单1码将十六进制数据08H,0CH转换成ASCII码,转换结果存入30H,31H两个单元中,再将30H,31H两个单元中的数据分别增1,然后转换成十六进制数存入40H,41H两个单元中。
ORG 0000HMOV SP,#2FHMOV A,#08HADD A,#30HPUSH ACCMOV A,#0CHADD A,#37HPUSH ACCMOV A,30HINC ACLR CSUBB A,#30HMOV 40H,APOP ACCINC ASUBB A,#37HMOV 41H,APOP ACCSJMP $END2码将二进制数10011011B转换成BCD码数,存入30H和31H单元中;再将30H单元中的数据加16H后,转换成二进制数据,存入40H单元中。
ORG 0000HMOV A,#10011011BMOV B,#100DIV ABMOV 30H,AMOV A,BMOV B,#10DIV ABSWAP AORL A,BMOV 31H,AMOV A,30HADD A,#16HDA APUSH ACCANL A,#00001111BMOV 40H,APOP ACCANL A,#11110000BSWAP AMOV B,#10MUL ABADD A,40HMOV 40H,ASJMP $END3.BCD码码将20H单元中压缩的BCD码数78H转换成ASCII码,转换结果存入30H,31H两个单元中,再将30H,31H两个单元中的数据分别增1,然后转换成压缩BCD码数存入21H单元中。
ORG 0000HMOV A,20HANL A,#00001111BADD A,#30HMOV 30H,APUSH ACCMOV A,20HANL A,#11110000BSWAP AADD A,#30HMOV 31H,AINC ACLR CSUBB A,#30HMOV R2,APOP ACCINC ACLR CSUBB A,#30HSWAP AORL A,R2MOV 21H,ASJMP $END5.自选程序设计五、思考题1.如何查看上面三个程序的结果。
2.在程序1中,如果十六进制数未指定是否包含A~F数码,程序应如何修改?3.在程序2中,如果要转换的二进制数是十六位的,程序应如何编写?4.十六进制数转换成ASCII码与BCD码数转换成ASCII码有何区别?实验五移位操作一、实验目的:掌握移位操作的方法,并理解左移或右移与乘除法运算的关系。
二、实验内容:1.双字节二进制数左移一位将两个内部RAM 31H和30H单元中的内容组成的双字节数通过C y左移一位。
功能示意图31H 30H程序清单ORG 0000HCLR CMOV A ,30HRLC AMOV 30H, AMOV A,31HRLC AMOV 31H, ASJMP $END2.多字节二进制数右移一位将三个内部RAM 32H、31H和30H单元中的内容组成的三字节数通过C y右移一位。
功能示意图32H 31H 30H程序清单ORG 0000HCLR CMOV A,32HRRC AMOV 32H,AMOV A,31HRRC AMOV 31H,AMOV A,30HRRC AMOV 30H,ASJMP $END三、 思考题1. 多于三个字节的移位操作如何进行?2. 如果不通过C y 如何移位?实现的功能有何不同?第二节 汇编语言程序设计实验实验六 分支程序设计一、 实验目的1. 进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
2. 掌握分支结构程序设计的方法。
3. 学会用条件转移指令、CJNE 、JMP 及其配合使用来编写二分支、三分支和多分支程序。
二、 实验内容1. 二分支的条件转移程序设变量X 存放于R0,函数值Y 存放在R1,其中X 、Y 均为二进制数。
试按照下式的要求给Y 赋值:程序框图2-1如下:Y= 1 X>0 0 X=0 -1 X<0图2-1 二、三分支结构程序流程图2. 自选题目设计三、实验步骤1.根据实验内容和参考程序流程图,编出相应的分支结构程序。
2.输入程序,汇编成功;3.用F4(执行到光标处)、F7(跟踪执行)、F8(单步执行)或断点运行等方式调试程序;4.观察程序的流程,记录运行结果。
四、思考题1.CJNE指令对CY 有影响吗?用CJNE 和JC/JNC指令配合应注意什么?在用JMP 指令前,若变址 255怎么办?2.用什么指令可以实现多分支之间的隔离?五、实验报告要求写出题目运行结果。
六、参考程序清单1、二分支的条件转移程序1)用二分支结构程序实现:ORG 0000HMOV A, R0JZ LOAD ;等于零转LOADJNB ACC.7,GO ;大于零转GOMOV A, #0FFHSJMP LOADGO: MOV A, #01HLOAD: MOV R1, ASJMP $END2)用三分支结构程序实现:ORG 0000HMOV A, R0JNZ COMP ;不等于零转COMPMOV R1,#00H ;等于零,则0 →(R1)SJMP MP3COMP: CJNE R0,#80H,MP1 ;(R0)中数与80H比较,不相等则转移到MP1MOV R1,#0FFH ;若比较相等,则-1 →(R1)LJMP MP3MP1: JC MP2 ;两数不相等,(R0)> 0转MP2MOV R1,#0FFH ;(R0) < 0,-1 →(R1)LJMP MP3MP2: MOV R1,#01H ;(R0)>0,1 →(R1)MP3: SJMP $END实验七循环程序设计一、实验目的1.进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
2.掌握循环结构程序设计的方法,弄清单重及多重循环控制过程。
3.通过设计软件延时程序,学会计算内外循环次数以及循环体的循环时间。
二、实验内容1.设计一个循环程序具体要求:将内部RAM中30H至32H的内容右移四位,程序流程图如图2-3所示。
2.设计循环程序:冒泡法排序。
具体要求:设单片机8031外部RAM从3600H单元开始存放10个无符号数,试编写程序能使它们按从大到小的顺序排列(最大数存放在3600H单元)。
程序流程图如图2-4所示。
3.自选题目设计。
三、实验步骤1.输入预先编好的程序,汇编成功;2.用自动单步方式执行程序,观察循环计数器的变化情况。
3.用断点运行方式调试排序程序,记录排序过程。
四、实验报告要求1.编出相应的循环结构程序,列出程序清单,并且会计算循环体的循环时间。
2.写出自选题目的设计内容、程序清单及运行结果。
五、思考题1.程序中循环时间由什么来控制?2.若用DJNZ或CJNE指令来控制循环,编写程序有什么不同?六、参考流程图图2-3 循环结构程序流程图七、循环结构程序参考清单:1.三个字节右移四位:ORG 0000HMOV R7,#4RR30: MOV R6,#3CLR CMOV R0,#30HRR31: MOV A,@R0RRC AMOV @R0,AINC R0DJNZ R6,RR31DJNZ R7,RR30SJMP $END2. 冒泡法排序:ORG 0000HMOV PSW,#00HMOV P2,#36HMOV R2,#10-1LOOP0: MOV R0,#00HMOV R1,#01HMOV 03H,R2CLR 7FHLOOP1: MOVX A,@R0MOV 30H,AMOVX A,@R1CJNE A,30H,LOOP2 SJMP L1LOOP2: JC L1MOVX @R0,AXCH A,30HMOVX @R1,ASETB 7FHL1: INC R0INC R1DJNZ R3,LOOP1JNB 7FH,LOOP3DJNZ R2,LOOP0LOOP3: SJMP $END图2-4 循环结构程序流程图实验八查表程序设计一、实验目的1.进一步熟悉MCS-51指令系统和汇编语言程序设计。