微机原理与单片机实验报告
微机原理实验报告册(3篇)
第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。
二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。
2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。
3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。
4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。
5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。
6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。
关于单片机实训报告万能【六篇】
关于单片机实训报告万能【六篇】【篇1】单片机实训报告万能通过今次单片机实训,使我对单片机的认识有了更深刻的理解。
系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。
例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。
踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。
当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。
我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
但在这次实训中同时使我对汇编语言有了更深的认识。
当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。
这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。
希望这次的经历能让我在以后学习中激励我继续进步。
【篇2】单片机实训报告万能通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。
了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。
LED显示器:LED显示器是由发光二管组成显示字段的器件。
通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。
有段选码和和位选码。
当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA 电流;位线的电流应选择40-80MA。
LED显示器的显示方式有动态和静态两种。
7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。
微机原理和单片机实验报告
实验一 8051单片机仿真系统的配置及使用一、实验目的与要求1.了解80c51单片机仿真开发系统的组成原理。
2.掌握仿真系统的连接与配置。
3.掌握仿真系统的MedWin集成开发环境的使用。
4.掌握程序的调试方法。
二、实验设备1. PC机一台2. Insight SE-52 Plus 8XC51 单片机仿真器主机一台3. TB-40DP1 80C51 仿真头一个4. CAB-40FT 仿真电缆一条5. CAB-25DB 通讯电缆一条6. MS-100电源一台7. 数字万用表一台三、实验内容1. Insight SE52 Plus单片机仿真开发系统的组成及性能2. Insight SE52 Plus单片机仿真开发系统的硬件连接及配置3.学习MedWin集成开发环境的使用四、思考题1 MedWin集成开发环境的使用中,不使用项目管理方式开发应用程序和使用项目管理方式开发应用程序的操作方法和区别?答:区别是:使用项目管理方式开发应用程序,更加方便,效率更高。
2 MedWin集成开发环境的使用中,CODE,DATA,IDATA,XDATA,PDATA各存储空间的意义?答:CODE是片内程序存储器。
DATA为片内数据存储区,地址低128 字节与IData 的数据相同,高128 字节为特殊功能寄存器SFR 空间。
IDATA为片内数据存储区,低地址128字节。
XDATA为片外出具存储区。
PDATA为片外页面方式访问的数据区PData 窗口,使用MOVX @ri 指令访问。
3 MedWin模拟仿真调试巡回彩灯程序,观察实验结果。
改变程序,观察实验结果。
参考程序如下:运行程序2,P1.2和P1.3所接的LED会一直亮。
实验二心电图机液晶显示系统实验(图形部分)一、实验目的了解液晶显示的原理掌握液晶面板上进行波形显示的原理和方法掌握单片机编程技巧二、实验要求了解80C51单片机及OCMJ4X8C液晶模组的硬件配置及连接方法掌握80C51单片机的编程语言掌握波形输出程序的算法和结构编写程序并调试程序三、实验设备单片机仿真器金鹏OCMJ4X8C液晶模组稳压电源四、实验内容液晶显示在心电图机中的应用是将数字技术、计算机技术结合起来,利用单片机和液晶显示模块进行波形显示。
微机原理的实验报告
一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。
二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。
(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。
(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。
2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。
(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。
(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。
3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。
(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。
(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。
4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。
(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。
(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。
三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。
2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。
3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。
4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
微机原理及应用中南大学实验报告
微机原理及应用实验报告实验一单片机仿真开发机操作和MCS-51指令系统应用一、实验目的1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整;2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编;3、掌握程序的调试和运行的各种方法。
二、实验说明1.输入给定程序,配置选项,调试并运行程序,观察程序控制下寄存器的变化。
2.选中此项keil为纯软件仿真。
3.编写程序上机调试通过,实验报告要求提交程序流程图及源程序。
三、实验内容及步骤(完成分值:60分)本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真(不需要连接仿真器就可以仿真)。
1.新建工程项目2.设置工程文件参数3.编写新程序事例4.调试程序直至能够运行出结果。
四、参考实验程序AJMP MAINORG 0030HMAIN: MOV R0,#20HMOV R2,#0FHMOV A,#00HA1: MOV @R0,AINC R0INC ADJNZ R2,A1MOV R0,#20H ;暂停,观察并记录!MOV DPTR,#7000HMOV R2,#0FHA2: MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R2,A2MOV R0,#030H ;断点,观察并记录!MOV DPTR,#7000HMOV R2,#0FHA3: MOVX A,@DPTRMOVX @R0,AINC R0INC DPTRDJNZ R2,A3DO: LJMP DOEND ;内部存储器数据块赋值,搬运数据块到外部存储器,再搬运回内部数据存储器。
五、附加题(完成分值:10分/单个附加题,附加题要求当场给指导老师检查结果,否则无效。
其中1、2、3附加题要求写在实验报告上)1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光标处”功能,程序快速执行到光标所在行。
观察运行情况,并记录下表。
R0 R2 A 20H 21H 22H 23H 24H 25H2FH 00H 0FH 00H 01H 02H 03H 04H 05H26H 27H 28H 29H 2AH 2BH 2CH 2DH 2EH06H 07H 08H 09H0AH 0BH 0CH 0DH 0EH2.在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元内容R0 DPL 7000H 7001H 7002H 7003H 7004H 7005H 7006H2FH 01H 0FH 01H 02H 03H 04H 05H 06H7007H 7008H 7009H 700AH 700BH 700CH 700DH 700EH07H 08H 09H 0AH 0BH 0CH 0DH 0EH3.画出程序流程图4.修改程序,实现新功能(例如搬运数据时实现倒序,变成对应的BCD码,请自行考虑与别人不同的功能,同组同学已经实现过的功能不算新功能)答:由程序可知,子程序Al产生数据,子程序A2将产生的数据搬运至7000H开头的地址,子程序A3将7000H开头的地址搬运至30H开头的地址。
微机原理闹钟实验报告
微机原理闹钟实验报告实验名称:微机原理闹钟实验报告实验目的:1. 了解单片机的基本工作原理和编程方法;2. 学习如何使用单片机设计并实现闹钟功能;3. 掌握数字时钟显示技术。
实验器材:1. 单片机实验箱;2. AT89C52单片机;3. LED数码管;4. 4位开关;5. 电源线;6. 连线线缆。
实验原理:本次实验使用单片机AT89C52来设计和实现闹钟功能。
单片机是一种微型电子计算机系统,具有高度集成、功能强大等特点。
数码管是一种常见的数字显示装置,适用于时钟、计时器等场合。
实验步骤:1. 将AT89C52单片机与LED数码管通过连接线连接起来,保证电源线的正负极连接正常。
2. 编写C程序,实现显示当前时间的功能。
通过编程可以将当前时间在数码管上显示出来。
3. 设定闹钟时间和闹铃的功能,通过编程实现。
当闹钟时间到达时,数码管上会显示闹钟时间,并通过蜂鸣器发出声音。
4. 调试程序,确保闹钟功能正常运行。
5. 完成闹钟的相关操作,包括设置闹钟时间、启动闹钟、关闭闹钟等功能。
实验结果:经过编程和调试,我们成功实现了微机原理闹钟的功能。
我们能够通过设置闹钟时间并启动闹钟来实现报时的功能。
当闹钟时间到达时,数码管上会显示相应的时间,并通过蜂鸣器发出声音,起到提醒作用。
实验总结:通过这次实验,我深入了解了单片机的基本工作原理和编程方法。
同时,我学会了使用单片机设计和实现闹钟功能,并掌握了数字时钟显示技术。
这次实验让我对单片机的应用有了更深刻的认识,并提高了我对数字电路设计和编程的能力。
同时,我还发现了实验过程中可能存在的问题和改进的空间。
例如,我可以进一步完善闹钟功能,加入更多的定时和报时功能,提高闹钟的多样化和实用性。
此外,我还可以优化程序的运行效率,提高系统的稳定性和响应速度。
总之,本次实验对我的学习和提高具有重要意义。
通过实践操作,我深入理解了微机原理闹钟的设计与实现,拓宽了我的知识面和实践能力。
我将继续深入学习和掌握微机原理和相关技术,为以后的学习和研究打下坚实的基础。
自动化专业-微机原理与单片机接口技术实验报告册 - Copy分解
微机原理与单片机接口技术实验报告册河南理工大学电气学院专业班级学号姓名目录实验一系统认识实验实验二P3.0口输入、P1口输出实验实验三流水灯实验实验四定时器或实时时钟实验实验五双机通信实验实验六交通灯实验3实验一系统认识实验一、实验目的1.掌握SICElab-G2200实验/仿真系统的结构与使用方法;2.熟悉单片机系统开发软件WAVE6000。
二、实验设备1.G2200/2100 实验平台 1 台 2.仿真器/ 仿真板 1 台3.连线若干根 4.计算机 1 台三、实验内容P1端口接发光二极管,加1点亮。
四、连线方案:五、实验步骤1.连接Lab51CPU板。
(已由实验师连好)2.仿真器与实验平台的连接将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。
(已由实验师连好)3.仿真器与计算机的连接用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。
特别注意:在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。
4.实验连线按连线方案,用随机配带的实验连线插入孔后,轻轻转动一下锁紧插头,保证良好接触。
拆线时,应先回转一下,不要硬拨,以免损坏线路板。
不管是拆线还是插线,1都应在断电的情况下进行。
实验中“连线方案”的粗线即为需用户动手接连的线。
5.检查接线是否有误,确信没有接错后,接上电源,打开电源开关。
6.在计算机上打开“WAVE6000集成调试环境”,界面如下图所示:7.建立新程序(如果程序已编好,直接跳到第9步)选择菜单[文件 | 新建文件]功能。
出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序ORG 0MOV P1,#0 ;熄灭发光二极管LOOP: INC P1CALL DelaySJMP LOOPDelay: MOV R2,#3 ;延时程序MOV R1,#0MOV R0,#0DLP: DJNZ R0,DLPDJNZ R1,DLPDJNZ R2,DLPRETEND8.保存程序选择菜单[文件 | 保存文件]或[文件 | 另存为 ]功能。
微机原理(单片机汇编)实验报告
软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。
二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。
三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开CPU窗口,观察CPU窗口各寄存器的变化。
打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。
在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。
2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。
3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。
4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。
5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。
四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。
(完整word版)微机原理完整实验报告+程序
实验题目8253定时/计数器实验一、实验目的与要求:1。
学会8253芯片和微机接口原理和方法。
2. 掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容:1、实验原理本实验原理图如图1所示,8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,如端口地址表1所示.8253A的片选地址为48H~ 4FH。
因此,本实验仪中的8253A四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字.采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ, 输出OUTO 要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地(”0"电平)或甩空(”1"电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。
2、实验线路连接(1) 8253A芯片的CLK0引出插孔连分频输出插孔1MHZ。
(2) 8253A的GATE0接+5V.3、实验步骤(1) 按图1连好实验线路(2)运行实验程序1.按“调试”按钮2。
选“窗口”“进入示波器窗口",然后最小化3。
按“运行按钮”4.将模拟示波器窗口打开,选择“串行口2",再按ctrl+F2 按钮即可看到波形图1显示“8253-1”用示波器测量8253A的OUT2输出插孔,应有频率为1KHZ的方波输出,幅值0~4V三、实验代码:CODE SEGMENTASSUME CS:CODETCONTRO EQU 004BHTCON2 EQU 004AHCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA1 EQU 0500HSTART: JMP TCONTTCONT:CALL FORMATCALL LEDDISPMOV DX,TCONTROMOV AL,0B6H ;要使用方式2,0B6H要改为0B4HOUT DX,ALMOV DX,TCON2MOV AL,00 ;输入频率(即时间常数)OUT DX,AL ;要修改频率,只需更改送给AL的值(注意先送低8位,MOV AL,10H ;后送高8位)OUT DX,ALHLTLEDDISP:MOV AL,90H ;显示数据方式命令字送8279控制字MOV DX,CONTPORT ;8279命令状态口OUT DX,ALMOV BYTE PTR DS:[0600H],00 ;置显示位数初值为0 LED1: CMP BYTE PTR DS:[0600H],07H ;判断显示位数满8为否?JA LED2 ;满8位转子程序返回MOV BL,DS:[0600H] ;未满8位从数据区取数MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORT ;8279数据口OUT DX,ALADD BYTE PTR DS:[0600H],01H ;显示位数加1JNZ LED1LED2: RET ;子程序返回FORMAT: MOV BX,0 ;显示8253———1 MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D4FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START四、思考题若改用方式2,并改变时间常数,如何编写程序。
微机原理与单片机实验报告
微机原理与单片机实验报告Prepared on 22 November 2020北京联合大学信息学院实验报告课程名称:微型计算机原理学号:姓名:2012 年 6 月 9 日目录实验1 EMU8086模拟器的使用一实验要求利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的:熟悉EMU8086实验环境三 EMU8086环境:1 模拟器编辑窗口2 模拟器调试窗口四实验内容实验内容1:新建文件。
运行 emu80861. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码:MOV AX, 1020HMOV BX, 2030HMOV AX, BXADD AX, BXMOV [BX], AXMOV [2032H], AXHLT2. 编译:单击“编译”按钮,对程序段进行编译;3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。
4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。
5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。
6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。
7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为 400毫秒,单击“全速”按钮,运行程序,8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序的关联。
10.将“存储器”中地址改为1000:0100,并将从其开始的连续10个单元的内容改为55H。
实验内容2:运行范例在模拟器编辑窗口中1.点击典型范例2.选择:hellow,word程序,编译,运行,观察结果。
微机原理与单片机接口技术实验报告册(3个)
微机原理与单片机接口技术实验报告册河南理工大学电气学院专业班级学号姓名目录实验一系统认识实验 (1)实验二中断特性及8259应用编程实验 (5)实验三8255并行接口应用实验 (10)实验四8253定时/计数器应用实验 (12)附录 (16)实验环境 (16)实验一系统认识实验一、实验目的掌握TDN86/88实验装置的基本操作。
二、实验设备TDN86/88实验装置。
三、实验内容及步骤实验内容:从3500H内存单元开始建立0~15共16个数据。
实验源程序如下:CODE SEGMENT ;定义代码段ASSUME CS:CODE ;说明CODE段为代码段START: MOV DI,3500H ;程序开始,设数据首址MOV CX,0010H ;字节数送入CX中MOV AL,00HSAHFL1: MOV [DI],AL ;写入一个字节数据INC DI ;修改地址指针INC AL ;修改数据DAA ;十进制调整LOOP L1;未填完转移L2: JMP L2CODE ENDS ;代码段结束END START ;程序结束实验步骤:1、使用串行通信电缆将实验系统装置与计算机(PC)相连。
2、打开WMD86进入系统环境如图1-1所示。
图1-13、点击‘选择串口’如图1-2所示。
可选串行口l或串行口2(计算机后面与电源相邻的为串行口1)。
图1-24、点击文件,打开新建源程序,如图1-3所示。
图1-35、输入源程序并保存为DQ.asm.如图1-4所示。
图1-46、点击‘编译’,对源程序进行汇编、连接,生成可执行文件DQ.EXE如图1-5所示。
图1-57、汇编、连接无误后点击‘窗口’,如图1-6所示。
图1-68、点击‘调试窗口’如图1-7所示,进入调试窗口。
图1-79、按实验装置中的RESET键,显示器上将出现‘WELCOME TO YOU !’,如图1-8所示,说明实验装置和计算机通信成功。
图1-810、装入DQ.EXE程序,确认程序段地址CS:0000及偏移量地址IP:2000。
微机原理和单片机实验报告
实验一汇编语言程序设计 1 分支程序设计实验1.1.1 实验目的1. 掌握分支程序的结构。
2. 掌握分支程序的设计、调试方法。
1.1.2 实验设备PC 机一台,TD-PITE 实验装置一套。
1.1.3 实验内容设计一数据块间的搬移程序。
设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。
源数据块和目的数据块在存储中可能有三种情况,如图1.14所示。
源数据块目的数据块0HFFFFFH 源数据块目的数据块0HFFFFFH 源数据块目的数据块0HFFFFFH(a )(b )(c )图1.1 源数据块与目的数据块在存储中的位置情况对于两个数据块分离的情况,如图1.1(a ),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。
但是对于有重叠的情况,则要加以分析,否则重叠部分会因‚搬移‛而遭到破坏,可有如下结论:当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图1.14(b )所示。
当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图1.14(c )所示。
实验程序流程图如图1.5所示。
图1.5 程序流程图1.1.4 实验程序如下(自己填写)SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV CX, 0010HMOV SI, 3100HMOV DI, 3200HCMP SI, DIJA A2ADD SI, CXADD DI, CXDEC SIDEC DIA1: MOV AL, [SI]MOV [DI], ALDEC SIDEC DIDEC CXJNE A1JMP A3A2: MOV AL, [SI]MOV [DI], ALINC SIINC DIDEC CXJNE A2A3: JMP A3CODE ENDSEND START1.1.5 实验步骤1. 按流程图编写实验程序,经编译、链接无误后装入系统。
微机原理实验总结(共5篇)
微机原理实验总结(共5篇)第一篇:微机原理实验总结微机原理实验总结不知不觉,微机原理与接口技术实验课程已经结束了。
回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写汇编语言,对于学习机电工程的自动控制和计算机都是很重要的,因为它是和机器语言最接近的了,如果用它来编程序的话,会比用其它高级语言要快得多。
本学期我们在老师的带领下,进行了微机原理实验六到十这五组实验。
它们分别是:实验六8255 PA口控制PB口实验目的掌握单片机系统中扩展外围芯片的方法,了解8255 芯片的结构及编程方法。
实验内容用 8255 PA 口作开关量输入口,PB 口作输出口。
实验步骤1、用8 芯线将8 255 PA口接至开关Kl~K8,PB口接至发光二极管L1~L8;2、运行程序 HW06.ASM,拨动开关K1~K8,观察L1~L8发光二极管是否对应点亮。
实验七8255控制交通灯实验目的进一步了解8 255 芯片的结构及编程方法,学习模拟交通控制的实现方法。
实验内容用8255 做输出口,控制六个发光二极管燃灭,模拟交通灯管理。
实验步骤1、用双头线将8 255 PA0~PA2 口接至发光二极管L3~L1,PA3~PA5口接至发光二极管L7~L5;2、执行程序HW07.ASM,初始态为四个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
实验八简单I /O口扩展实验目的学习单片机系统中扩展简单I/O 口的方法;学习数据输入输出程序的编制方法。
实验内容利用74LS244 作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。
微机原理及应用实验报告材料(中南大学2014年)
微机原理及应用实验报告班级:姓名:学号:中南大学机电工程学院精密测控实验室实验二软件程序设计1.实验目的:1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。
2.实验内容:1、编写排序程序并上机调试通过。
已知8031内部RAM60H~69H单元中,依次存放了FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。
2.、编写多字节加法程序并上机调试通过。
8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。
3.实验设备名称、型号:4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单:程序1、编写排序程序并上机调试通过。
已知8031内部RAM60H~69H单元中,依次存放了FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。
解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。
如果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列了。
则可以退出循环,结束程序。
程序结构框图和程序代码如下:ORG 1000HTEM DATA 50HMOV R7 , #9MOV 60H , #0FFHMOV 61H , #99HMOV 62H , #77HMOV 63H , #0CCHMOV 64H , #33HMOV 65H , #0DDHMOV 66H , #88HMOV 67H , #0BBHMOV 68H , #44HMOV 69H , #0EEHLOOP0: CLR F0MOV A , R7MOV R6, AMOV R0 , #60HMOV R1, #60HINC R1LOOP1: MOV A , @R0MOV TEM , AMOV A , @R1CJNE A ,TEM , NEXTSJMP NOCHANEXT: JC NOCHASETB F0MOV @R0 , AXCH A , TEMMOV @R1 , ANOCHA:INC R0INC R1DJNZ R6, LOOP1JNB F0, HALDJNZ R7, LOOP0HAL: SJMP $END程序2:编写多字节加法程序并上机调试通过。
微机原理与单片机接口技术实验报告
}}
Led1=0x00;
Led2=0x00;
delay(65530);
delay(65530);
Led1=0xff;
//闪
Led2=0xff;
delay(65530);
delay(65530);
} } */
//定时器初始化子程序
void Init_Timer0(void)
四、系统软件设计 #include<reg51.h> #define L1 P2 #define L2 P3 bit UpdateTimeFlag; //定义读时间标志 void Init_Timer0(void);//定时器初始化
sbit h1=P3^6; sbit key=P0^5; unsigned char code Led_1[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x 7f,0xff} ; void delay(unsigned int t); void Key(); void shun(); void ni(); void delay_shun(); void delay_ni(); void delay(unsigned int t) { while(t--); } void delay_shun(unsigned int t) { while(t--);{ h1=0; key=1; if(key==0)
delay(65530);
}L2=0xff; }
if(UpdateTimeFlag==1) {UpdateTimeFlag=0;}
}
//定时器初始化子程序 void Init_Timer0(void)
微机原理实验报告
微机原理实验报告1. 感性认识.如果提问者能够找到单片机开发板的话, 先别管那么多, 直接拿开发板的例程来改. 比如原来开发板闪灯频率1Hz, 你就改成5Hz, 或者变着花样地闪, 总之就是在历程的基础上改. 诸如此类. 不要满足于改几个参数以显得你改过的代码的效果与原来有多么不同, 用仿真器链接开发板, 从头开始, 以单步运行的方式, 逐条语句地跟踪, 这相当于读一遍代码. 从简单的程序开始, 力争每个语句要能弄懂意思(不懂就翻书), 对于印象深刻的或者易发生歧义的语句, 自己添加上注释. 慢慢地从简单程序进阶到复杂的程序.2. 从需求入手.当你觉得你在改例程的过程中体会到了单片机编程的一些点滴之后, 你可以想想你在这些改过的地方, 如何能够在这基础上去实现一些跟开发板例程不一样的功能, 所谓不一样的功能, 比如原来是闪灯, 表示开关类的事物在两个状态(开与关)之间的切换, 具有此类抽象特征的事物又比如高压断路器以及二次侧控制继电器的闭与合, IGBT 触发脉冲的开与关. 学会将你的应用需求(客观事物的运动状态和控制状态)抽象地描述成单片机GPIO引脚的电平高低. 这样, 你就不会迷茫于应该从单片机的什么方面开始学.3. 系统学习.前面已经让你知道单片机这行当到底是干嘛的了, 这时候需要把基础打牢. 单片机的内部硬件体系结构, 单片机内各功能模块的工作逻辑和寄存器资源, 可能的话(很有可能噢)还有这种单片机的专用汇编语言(汇编语言不是通用的, 每种单片机的汇编语言都不同.) 基本上这类知识都分别可以从该单片机的数据手册和汇编指令手册中得到(厂家提供了这两类文档下载). 那么, 什么是"系统学习"中的"系统"一词的意义呢? 这个意义就是数据手册的目录和汇编指令手册的目录. 如果你是一个好的阅读者, 那么你首先应该阅读目录, 而不是直接去读第一章.4. 理性认识.这个时候, 假设你对基础知识已经进行了学习, 你需要回到实验中去实践, 通过实践去熟练. 不要指望你那点儿装墨水的脑袋能记住多少东西.回到你做过的实验和写过的注释, 对于原来模糊的地方要分析清楚, 将做过实验的例程抽象为你所理解的流程图, 分析其中每个流程的前因后果.5. 实战.基本上, 想学单片机的人估计都不是计算机系或者软件工程专业的, 我相信. 你的专业是什么, 决定了你怎么用单片机. 自动化? 好吧, 你的控制目标是交流电机或者直流电机的转速和转矩. 电气工程? 好吧, 你的控制目标是输电线主回路断路器的开关动作. 机电一体化? 好吧, 你的控制目标是数控机床上一系列气阀或者液压装置的动作组合. 找一个与你自己专业相关的控制对象, 这个对象最好是你能搞到手的, 控制需求相对简单的. 自己搭建外围电路(这是与单片机有关但是不属于单片机范畴的交叉领域, 不在此讨论, 需另开话题)与单片机系统进行连接, 将你的控制需求由抽象目标一步步具体到程序的模块/流程/代码. 测试你的系统, 开动它, 蹂躏它, 各种极限动作, 要够High!!!6. 跑市场, 拉项目.如果你不能成为一个老板, 那么起码你得知道你未来的老板为什么要让你如此这般做牛做马. 所以, 去了解市场的需求, 看看有什么可以用单片机做产品能够挣钱的事情. 当你合同在手的时候, 你的社会责任感和家庭责任感就来了.。
微机原理与单片机实验报告、课程设计_双机通信
实验三双机通信实验一、实验目的UART 串行通信接口技术应用二、实验实现的功能用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。
三、系统硬件设计四、系统软件设计#include<stc.h>void send(void) ;unsigned char a[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd};sbit L0=P0^0; //按位定义sbit L1=P0^1;sbit L2=P0^2;sbit L3=P0^3;sbit L5=P0^5;sbit L6=P0^6;sbit L7=P0^7;void Delay300ms() //300ms延时{unsigned char i, j, k;i = 13;j = 156;k = 83;do{do{while (--k);} while (--j);} while (--i);}Scan_Key() //按键扫描,返回按键值{unsigned char FLAG=0;while(1){P3=0xbf;Delay300ms();if(L5==0){FLAG=1;}if(L6==0){FLAG=2;}if(L7==0){FLAG=3;}if(FLAG!=0)break;P3=0x7f;Delay300ms();if(L5==0){FLAG=4;}if(L6==0){FLAG=5;}if(L7==0){FLAG=6;}break;}return FLAG;}main(){P1M0=0xff; //推挽式输出P1M1=0x00;TMOD=0x20;TH1=0xf4;TL1=0xf4;SCON=0xd0;PCON=0x00;TR1=1;send();}void send() //发送、接收程序{unsigned char i;while(RI==0) //等待接收同时发送{i=Scan_Key();L0=1;L1=1;L2=1;L3=0;P1=0x00;Delay300ms();P1=a[i];Delay300ms();Delay300ms();SBUF=a[i];TI=0;}while(TI==0) //等待发送同时接收{L0=1;L1=1;L2=0;L3=1;P1=SBUF;Delay300ms();Delay300ms();RI=0; }}五、实验过程中遇到的问题及解决方法1、怎样才能使数码管既显示输入的数字又显示输出的数字?解决:用其中一个数码管显示输入数据,另一个显示输出数据。
51单片机走马灯实验报告
微机原理及单片机应用实验实验报告实验跑马灯一、实验内容开关控制输出方式,共四种,开关拨到k1时奇数灯亮,开关拨到k2时偶数灯亮,开关k3时奇数偶数灯轮流亮,开关拨到k4时从左到右依次亮,开关拨到k5时从右到左依次亮。
二、实验步骤①依次L1-L8接入P1.0-P1,7,将P3接入高低电平开关②编程③实现三、实验原理图四.实验程序清单ORG 0000HPX00: MOV P1,#0FFH KEY : MOV A,#0FEHPO00: JB P3.0,PO01JNB P3.0,PO02PO01: MOV A,#055HMOV P1,ALJMP PO00PO02: JB P3.1,PO03JNB P3.1,PO04PO03: MOV A,#0AAHMOV P1,ALJMP PO00PO04: JB P3.2,PO05JNB P3.2,PO06PO05:MOV A,#0FEHK1:MOV P1,AJNB P3.2,LASTAJMP W1W1:RL ASJMP K1C1:MOV R6,#0A0HMOV R7,#0FFHK2:MOV R7,#0FFHK3:DJNZ R7,K3DJNZ R6,K2LJMP W1PO06:JB P3.3,PO07JNB P3.3,PO08PO07:MOV A,#7FHK4:MOV P1,AJNB P3.3, LASTAJMP W2W2: RR ASJMP K4C2: MOV R6,#0A0HMOV R7,#0FFHK5:MOV R7,#0FFHK6:DJNZ R7,K6DJNZ R6,K5LJMP W2PO08:JB P3.4,PO09JNB P3.4,LASTPO09:MOV A,#55HMOV P1,AMOV R6,#0A0HMOV R7,#0FFHK7:MOV R7,#0FFHK8:DJNZ R7,K8DJNZ R6,K7MOV A,#0AAHMOV P1,AMOV R6,#0A0HMOV R7 ,#0FFHK9:MOV R7,#0FFHK10:DJNZ R7,K10DJNZ R6,K9LJMP PO08LAST:MOV P1,#0FFHLJMP PO00END五、实验总结参考8255交通灯实验,加上延时程序以及查询式的跳转方法实现跑马灯。
微机原理与应用-实验报告
《微机原理与应用》实验报告姓名:***学号:**********年级:2014专业:电子2016年春季学期实验一.熟悉单片机开发环境1.功能要求在 P1 端口接8 个LED,并编程依次循环点亮。
要求用软件延时程序控制LED 的亮灭时间,并能精确地计算和用软件测量延时时间。
2.硬件原理3.程序清单ORG 0000HLJMP STARTORG 0030HSTART: MOV R2,#8MOV A,#01H LOOP1: MOV P1,ALCALL DELAY RL ADJNZ R2,LOOP1 MOV R2,#8RR ALOOP2: MOV P1,ALCALL DELAY RR ADJNZ R2,LOOP2 LJMP STARTDELAY: MOV R5,#20 D1: MOV R6,#80 D2: MOV R7,#248 DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND4.实验心得首次接触开发板,通过实验1加强了对单片机的了解,学会使用仿真软件,学会搭线的各种技巧,并且掌握了LED亮灭的原理。
实验二.并行口输入输出实验——循环彩灯控制1.功能要求P1 口接8 个开关,P0 口接8 个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。
开关断开时,灯灭。
用5 个开关K0~K4,控制P0 口所接8 个灯的循环,各开关的功能要求如下:(1)K1~K2 分别选择灯的四种闪动方式;(2)K3 用于控制灯的循环方向(顺时针或逆时针);(3)K4 用于选择灯的两种循环速度;(4)K0 用于引发外部中断,在外部中断子程序中,读取通过K1-K4 所设定 的循环彩灯的工作方式,并按所设定的工作方式控制彩灯运行。
当K0 没有引发 中断时,保持上一次的循环方式。
2.硬件原理3.程序清单ORG 0000HLJMP MAINDELAY2: MOV R0,#200 D4: MOV R1,#200ORG 0003HLJMP INTERRUPTORG 0030HMAIN: SETB EX0SETB IT0SETB EAMOV A,#01HA1: MOV P0,AJB 20H.2,B1JNB 20H.2,B2A2: JB 20H.3,LOOP11 JNB 20H.3,LOOP22 B1: LCALL DELAY1LJMP A2B2: LCALL DELAY2LJMP A2LOOP11: RL ALJMP A1LOOP22: RR ALJMP A1ORG 0600HDELAY1: MOV R0,#100D1: MOV R1,#100D2: MOV R2,#10D3: DJNZ R2,D3DJNZ R1,D2DJNZ R0 ,D1RET4.实验心得开始熟悉开发板,通过实验2加强了对单片机的了解,学会中断程序的书写方法,学会搭线的各种技巧,并且掌握了跑马灯工作的原理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京联合大学信息学院实验报告课程名称:微型计算机原理学号:姓名:2012 年 6 月 9 日目录实验1 EMU8086模拟器的使用 (3)实验2 数据传送指令的使用 (5)实验3 多位十六进制加法运算实验 (8)实验5 循环程序实验 (10)实验6 由1 到100 求和实验 (12)实验7 求表中正数_负数_0 的个数实验 (13)实验8 数据排列实验(冒泡排序) (15)实验9 系统功能调用(大小写转换) (17)实验10 阶乘(递归运算) (19)实验11 ProteusIO工程文件的建立 (20)实验12 IO口读写实验 (245、373) (21)实验13 8255 接口实验 (23)实验14 声光报警 (24)实验总结 (27)实验1 EMU8086模拟器的使用一实验要求利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的:熟悉EMU8086实验环境三 EMU8086环境:1 模拟器编辑窗口2 模拟器调试窗口四实验内容实验内容1:新建文件。
运行 emu80861. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码:MOV AX, 1020HMOV BX, 2030HMOV AX, BXADD AX, BXMOV [BX], AXMOV [2032H], AXHLT2. 编译:单击“编译”按钮,对程序段进行编译;3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。
4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。
5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。
6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。
7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为 400毫秒,单击“全速”按钮,运行程序,8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序的关联。
10.将“存储器”中地址改为1000:0100,并将从其开始的连续10个单元的内容改为55H。
实验内容2:运行范例在模拟器编辑窗口中1.点击典型范例2.选择:hellow,word程序,编译,运行,观察结果。
修改程序(不要改原有DEMO程序),输出学号,姓名(汉语拼音或英文名)pare numbers程序,编译,运行,观察结果。
修改程序(不要改原有DEMO程序),将比较对象改为7,编译,运行,观察结果。
4.欣赏其它DEMO范例实验2 数据传送指令的使用一、实验要求编写程序代码指令,注释二、实验目的熟练掌握数据传送类指令的格式、功能和应用。
三、实验说明emu8086环境下自建工程文件。
五、参考程序1 运行以下3段程序,记录用到的4个通用寄存器的内容1.mov ax, 0abchdec axand ax, 00ffhmov cl, 4sal al, 1mov cl, aladd cl, 78hpush axpop bxhlt2.mov sp, 2000h mov ax, 3000h mov bx, 5000h push axpush bxpop axhlt3.mov ax, 1234hmov bx, 5678hmov cx, 9abchpush axpush bxpush cxpop dipop sipop dxhlt2 运行以下程序,记录AX寄存器的内容,逐条注释指令Mov [1000h], 5566hmov ax, [1000h]lea ax, [1000h]hlt六、编程,测试,记录程序运行结果。
实验3 多位十六进制加法运算实验一、实验要求编程实现多位十六进制数的加法运算。
二、实验目的1、熟悉实验系统的编程和使用。
2、掌握使用加法类运算指令编程及调试方法。
3、掌握加法类指令对状态标志位的影响。
三、实验说明由于本实验是三个十六位二制数相加运算,N4 为存放结果,其中N1 为1111H、N2 为2222H、N3 为3333H 所以结果应该为6666H四、实验程序流程图五、参考程序DATA SEGMENTNUM1 DW 1111H ;N1NUM2 DW 2222H ;N2NUM3 DW 3333H ;N3NUM4 DW 0000H ;N4 DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA BEG: MOV AX, DATAMOV DS, AXMOV SI, OFFSET NUM1MOV AX, 0ADD AX, [SI+0]ADD AX, [SI+2]ADD AX, [SI+4]MOV [SI+6], AXJMP $CODE ENDSEND BEG六、编程,测试,记录程序运行结果。
实验5 循环程序实验一、实验要求练习编程建立8086 的循环程序。
二、实验目的1、熟悉实验系统的编程和使用。
2、掌握使用LOOP 判断转移指令实验循环的方法。
3、掌握使用LOOP 与CX 的组合。
三、实验说明由于本实验是通过给CX 一个数值,再通过LOOP 作一个判断CX-1 是否为0 的转移,实现程序的循环,循环的内容是执行AX+1,所以结果应该为AX 最后大小为开始时给定CX 的大小。
四、实验程序流程图五、参考程序CODE SEGMENTASSUME CS:CODECON_A EQU 25CON_B EQU 12 START: MOV AX,0MOV CX,5INC_AX: NOPINC AXLOOP INC_AXJMP $CODE ENDSEND START六、编程,测试,记录程序运行结果。
实验6 由1 到100 求和实验一、实验要求编程实现1 到100 求和运算。
二、实验目的1、熟悉实验系统的编程和使用。
2、掌握使用加法类运算指令编程及调试方法。
3、掌握使用循环类指令编程及调试方法。
三、实验说明由于本实验是1 到100 的100 个数想加,1+2+3+4+……+97+98+99+100=? 求和四、实验程序流程图五、参考程序DATA SEGMENTtotal DW 0000H ;DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABEG: MOV AX, DATAMOV DS, AXMOV SI, OFFSET totalMOV CX, 100MOV AX, 0MOV BX, 1add_100: ADD AX, BXINC BXLOOP add_100MOV [SI], AXJMP $CODE ENDSEND BEG六、编程,测试,记录程序运行结果。
total=1+2+3+4........+99+100 = 5050 =13BA H(16 进制) 验证结果是否正确实验7 求表中正数_负数_0 的个数实验一、实验要求程序中定义数组,编程实现统计数组中正数、负数与0 的个数。
二、实验目的1、熟悉实验系统的编程和使用。
2、掌握查表方法。
三、实验说明由于本实验是先在表中存放数据,其它有正数、负数和0,通过程序对表的查询,统计表中包含正数、负数和0 的个数。
四、实验程序流程图五、参考程序DATA SEGMENTDBUF DB 1,2,-3,-4,-5,1,2,3,4,5,'#' ;7正3负,#为结束标志PLUS DB 1 ;正数个数MINS DB 1 ;负数个数DATA ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME DS: DATA,SS: STACK,CS: CODESTART: MOV AX, DATAMOV DS, AXMOV PLUS, 0 ;初始化MOV MINS, 0MOV DI, 0BG: CMP DBUF[DI], '#'JE EN ;遇到#结束INC DICMP DBUF[DI], 0 ;和0比较JG L1 ;大于JL L2 ;小于L1: INC PLUS ;正数个数加1JMP BG ;继续循环L2: INC MINS ;负数个数加1JMP BGEN: MOV AH, 4CHINT 21H六、编程,测试,记录程序运行结果。
实验8 数据排列实验(冒泡排序)一、实验要求1 利用PROTEUS 平台,编程实现8086 的由小到大的数据排列。
2 利用系统功能调用实现需要排序数据的输入和排序结果显示。
二、实验目的1、熟悉实验系统的编程和使用。
2、了解排列的简单算法。
3、了解“冒泡排序”法。
三、实验说明有序的数列更有利于查找。
本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有数比较一遍后,最大的数就会在数列的最后面。
再进行下一轮比较,找出第二大数据,如此下去,直到全部数据由小到大排列完成。
四、实验程序流程图五、参考程序DATA SEGMENTARRAY DB 25,46,3,75,5,30COUNT EQU $-ARRAYDATA ENDSSTACK SEGMENT PARA STACK 'STACK' DB 60 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX, DATAMOV DS, AXMOV DX, COUNT-1MOV BL, 0FFHAGAINO: CMP BL, 0JE DONEXOR BL, BLMOV CX, DXMOV SI, COUNT-1 AGAIN1: MOV AL, ARRAY[SI]CMP AL, ARRAY[SI-1]JAE UNCHEXCH: XCHG ARRAY[SI-1],ALMOV ARRAY[SI],ALMOV BL, 0FFHUNCH: DEC SILOOP AGAIN1DEC DXJNZ AGAINODONE: JMP $CODE ENDSEND START六、编程,测试,记录程序运行结果。
由于在0040H 单元开始的6 个字节25,46,3,75,5,30 = 19H,2EH,03H,4BH,05H,1EH所以由小到大排列后为:03H,05H,19H,1EH,2EH,4BH实验9 系统功能调用(大小写转换)实验目的:1、掌握DOS调用的输入输出功能2、掌握分支程序设计的方法实验内容:1、每次从屏幕输入一个大写字母,并将其转换为相应的小写字母输出显示到屏幕上,然后继续输入下一个字母;2、此转换一直进行到输入“#”号为止;3、若输入过程中输入了除大写字母和“#”以外的其他字符,则在屏幕上给出错误提示信息:“ERROR!”,并继续进行下一个大写字母的输入。