微机原理实验7实验8清华大学微机原理
微机原理的实验报告

一、实验目的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. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
《微机原理与接口技术》实验指导书

《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求✧实验一实验系统及仪器仪表使用与汇编环境✧实验二简单程序设计实验✧实验三存储器读/写实验✧实验四简单I/0口扩展实验✧实验五8259A中断控制器实验✧实验六8253定时器/计数器实验✧实验七8255并行口实验✧实验八DMA实验✧实验九8250串口实验✧实验十A/D实验✧实验十一D/A实验✧实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了目前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。
可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。
为配合使用EL型微机教学实验系统而开发的8086调试软件,可以在WINDOWS 2000/XP等多种操作系统下运行。
在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。
该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。
经常使用的功能均备有热键,这样可以提高程序的调试效率。
一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。
旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。
系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。
微机原理上机实验(八+十二)实验报告 8086中断实验 步进电机实验

微机原理上机实验报告实验八:8086中断实验实验十二:步进电机实验微机原理上机实验(八)实验报告实验八:8086中断实验一、实验目的1、了解8086内部响应中断的机制;掌握中断向量的作用。
2、利用实验仪上单脉冲、74HC244电路,不使用8259,实现一个中断实例。
3、复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
二、实验内容1、编制程序:拨动单脉冲开关,“”送给8086的INTR,触发中断;8086通过INTA信号,读取中断向量;8086计数中断次数,显示于F5区的数码管上注意:给INTR高电平信号,8086就会相应中断,所以实验开始前,保证单脉冲开关给8086低电平;中断程序中,加一个较长的延时程序,在中断结束前,有时间拨动单脉冲开关,恢复给8086低电平。
三、实验原理图本实验,通过F4区的8个拨动开关,给74HC244设定中断向量;本实验的中断向量是08H,即IN7-IN0位数据是00001000。
同学可以自定义中断向量,实验程序中处理中断向量部分程序作相应调整四、实验步骤1、连线说明:B4区:CS244、BLE ——C1区:GNDB4区:RD(IO区)——A3区:INTAA3区:INTR ——B2区:单脉冲B4区:JP57(D0..D7) ——A3区:JP41B4区:JP52(IN0..7) ——F4区:JP27(1..8)D3区:CS、A0、A1 ——A3区:CS1、A0、A1D3区:PC0、PC1 ——F5区:KL1、KL2D3区:JP20、B、C ——F5区:A、B、C2、运行程序3、实验开始前,保证单脉冲开关给8086低电平;运行程序;向下拨动开关(触发中断),立即向上拨动开关,产生一个“”,观察结果,数码管上显示的次数与拨动开关次数是否对应。
五、实验代码EXTRN InitKeyDisplay:NEAR, Display8:NEAR_STACK SEGMENT STACKDW 100 DUP(?)_STACK ENDS_DATA SEGMENT WORD PUBLIC 'DATA'BUFFER DB 8 DUP(?)Counter DB ?ReDisplayFlag DB 0_DATA ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, DS:_DATA, SS:_STACKMOV AX,_DATAMOV DS,AXMOV ES,AXNOPCALL InitKeyDisplay ;对键盘、数码管控制器8255初始化CALL WriIntverMOV Counter,0 ;中断次数MOV ReDisplayFlag,1 ;需要显示STI ;开中断START1: LEA SI,BufferCALL Display8CMP ReDisplayFlag,0JZ START1CALL LedDisplayMOV ReDisplayFlag,0JMP START1WriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,INT_0STOSWMOV AX,CSSTOSWPOP ESRETWriIntver ENDPLedDisplay PROC NEARMOV AL,CounterMOV AH,ALAND AL,0FHMOV Buffer,ALAND AH,0F0HROR AH,4MOV Buffer + 1,AHMOV Buffer + 2,10H ;高六位不需要显示MOV Buffer + 3,10HMOV Buffer + 4,10HMOV Buffer + 5,10HMOV Buffer + 6,10HMOV Buffer + 7,10HRETLedDisplay ENDPINT_0: PUSH DXPUSH AXMOV AL,CounterADD AL,1DAAMOV Counter,ALMOV ReDisplayFlag,1CALL LedDisplayDELAY: PUSH BXPUSH CXPUSH DIPUSH SIMOV CX,20DELAY1: LEA SI,BufferCALL Display8loop DELAY1POP SIPOP DIPOP CXPOP BXPOP AX六、实验思考题1.绘制本实验的详细实验电路图?微机原理上机实验(十二)实验报告实验十二:步进电机实验一、实验目的1、了解步进电机的基本原理,掌握步进电机的转动编程方法2、了解影响电机转速的因素有那些二、实验内容编写程序:使用F5区的键盘控制步进电机的正反转、调节转速,连续转动或转动指定步数;将相应的数据显示在F5区的数码管上。
[分组安排]微机原理实验
![[分组安排]微机原理实验](https://img.taocdn.com/s3/m/e4d874681ed9ad51f01df2f8.png)
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 第一组微机原 Nhomakorabea实验安排
第二组 周三[5-6]节和周五[5-6]节 张文政 丁磊 杨博 孙强 达木林 王鹏 申子良 李晟章 王立皇 陈凯 巴曦 杨柏童 吴修栋 曹文涛 薛伟 邱田 刘上睿 赵亮 高鹏飞 李智军 张相水 王皓 阿斯哈 戴昕 龙云鹏 蔡婧娴 王雪 胡颖越 杨新宇 祁涵 杨亚楠 王斯南 杨阳
周二[1-2]节和周四[5-6]节 范田珍倪 李智慧 李云逍 安新宇 徐嘉蕾 赵锦瑞 徐睿昀 杨元 贾旺 部少华 王树成 李光武 刘志伟 刘乐 刘畅 林立伟 朱保国 李文韵 柴成越 宁可 靳文健 刘成才 范凌峰 李新琪 刘宇 薛琦 薄锐 高嘉远 张君慧 王云峰 孔维龙 贾鸿鹏 吴晨奇 王松浩 梁爽
注:1.微机原理实验每周两节,共分两组,从14周开始上,实验地点:理工508; 2.如有冲突,自行找人互换,不允许两组混上。
微机原理(单片机汇编)实验报告

软件实验报告软件实验一一、实验目的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个字节存储块各单元内数据对应相同。
清华大学 微机原理课件 CPU设计ALU

ALU电路设计
(2)移位器
采用2:1多路选择器构造的8位右移位器
A7 A6 A5 A4 A3 A2 A1 A0 S2 S1 S0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0 R7
1
0 R6
1 R5
0
1 R4
0
1 R3
0
1 R2
0
1 R1
0
1 R0
0
MSB的输入如何? 32位移位器需要多少级?
CPU逻辑设计
—— ALU电路设计
1
MIPS对ALU的需求
Add, AddU, Sub, SubU, AddI, AddIU =>带溢出检测和反向器的补码加法器 SltI, SltIU(Set Less than) =>带反向器的补码加法器,检测结果的符号 And, Or, AndI, OrI =>逻辑或、逻辑与
B12 B11 B10 B9
B11 B10 B9 B8
B6 B5 B4 B3
B5 B4 B3 B2
B4
B3 B2
B1
B3
B2 B1
B0 S1 S0
3
2
1 0
3
2
1 0
3
2
1 0
3
2
1 0
3
2
1 0
3
2
1 0
3
2
微机原理实验报告

微机原理实验报告实验⼀DEBUG 调试实验类型:实验课时:指导教师:时间:2013 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.练习使⽤DEBUG,调试简单汇编程序。
⼆、实验要求1.掌握DEBUG的使⽤,调试程序。
2.读懂程序中各条指令,说明程序功能。
三、实验内容1.启动DEBUG,⽤A命令输⼊并汇编下列程序段。
100 MOV SI,200103 MOV CX,10106 MOV AL,0108 MOV [SI ],AL10A INC SI10B INC AL10D DEC CX10E JNZ 108110 INT 3四、实验结果及分析实验⼆简单汇编语⾔设计实验类型:实验课时:指导教师:时间: 2012 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.巩固DEBUG及宏汇编的使⽤。
2.加深对指令的理解。
⼆、实验要求1.设堆栈指针SP=2000H,(AX)=3000H,(BX)=5000H。
请编⼀程序将AX的内容和BX的内容进⾏交换。
请⽤堆栈作为两寄存器交换内容的中间存储单元,⽤DEBUG调试程序进⾏汇编与调试。
2.设DS=当前段指地址,(BX)=0300H,(SI)=0002H,请⽤DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装⼊0AH、0BH、0CH、0DH、0EH。
在DEBUG状态下送⼊下⾯程序,并⽤单步执⾏的⽅法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3.设(AX)=0002H,编⼀个程序段将AX的内容乘10,要求⽤移位的⽅法完成。
三、思想描述实验内容1将两个寄存器的内容进⾏交换时,必须有⼀个中间寄存器才能进⾏内容的交换,如果⽤堆栈做为中间存储单元,必须遵循先进后出的原则。
微机原理综合实训报告

通过本次微机原理综合实训,使学生掌握微型计算机的基本组成、工作原理以及常用接口技术,培养学生动手实践能力、分析问题和解决问题的能力。
具体目标如下:1. 熟悉微型计算机的硬件组成,了解各部件的功能和相互关系。
2. 掌握微机原理与接口技术的基本知识,如总线、中断、DMA等。
3. 学会使用常用接口芯片,如8255、8259、8253等。
4. 能够进行简单的微机原理设计与实现。
二、实训内容1. 微型计算机硬件组成实验(1)了解微型计算机的基本组成,包括中央处理器(CPU)、存储器、输入输出设备、总线等。
(2)学习CPU的内部结构,了解指令系统、寻址方式等。
(3)了解存储器的分类、容量、速度等参数,学习存储器扩展技术。
(4)学习输入输出设备的工作原理,掌握常用接口芯片的使用方法。
2. 微机原理与接口技术实验(1)学习总线、中断、DMA等基本概念,了解其工作原理。
(2)学习8255并行接口芯片的应用,实现LED显示、按键输入等功能。
(3)学习8259中断控制器芯片的应用,实现中断处理。
(4)学习8253定时/计数器芯片的应用,实现定时功能。
3. 系统设计与实现(1)根据实训要求,设计一个简单的微机系统。
(2)确定系统硬件组成,选择合适的接口芯片。
(3)编写系统软件,实现系统功能。
(4)进行系统调试,确保系统稳定运行。
1. 实验准备(1)了解实验目的、内容和方法。
(2)查阅相关资料,掌握实验所需知识和技能。
(3)准备实验仪器和设备,如示波器、逻辑分析仪等。
2. 实验操作(1)按照实验步骤进行操作,观察实验现象。
(2)记录实验数据,分析实验结果。
(3)针对实验过程中遇到的问题,查阅资料、请教老师,解决问题。
3. 系统设计与实现(1)根据实训要求,确定系统设计方案。
(2)进行硬件选型,设计电路图。
(3)编写系统软件,实现系统功能。
(4)进行系统调试,确保系统稳定运行。
四、实训成果1. 完成微型计算机硬件组成实验,掌握微型计算机的基本组成和工作原理。
(8实验学时)微机原理及应用实验指导书

微机原理及应用<单片机)实验指导书熊光洁机电教研室北京工商大学机械自动化学院2008-3-28目录第一部分单片机原理及汇编程序设计概述......................................3~12实验一认识单片机开发系统,学习有关软件的使用 ............................3~7实验二 MCS-51汇编程序设计<分支、散转程序练习) (8)实验三查表程序设计 (9)实验四数据排序程序设计 (10)实验五位操作实验 (11)实验六定时/计数器实验....................... . (12)实验七中断系统实验 (13)实验八静态存储器扩展实验 (14)实验九综合实验——特种车优先通过的交通灯控制 (15)第二部分 TD-NMC+教案实验系统简介 .........................................18~30 2.1 TD-NMC+系统功能及特点.. (18)2.2 TD-NMC+系统构成 (19)2.3 SST89E554RC简介......................................................19~20 2.4Keil C51 的安装............................. ...........................21~23 2.4.1 系统要求......... . (21)2.4.2 软件安装.............................................................21~232.5 μVision2 集成开发环境.................................................24~262.6仿真调试与脱机运行间的切换方法.........................................26~292.6.1 脱机运行.................................................. ... .....26~272.6.2 与Keil C51 开发环境联机调试的方法 (27)2.6.3 从SoftICE返回IAP引导程序的方法 (29)第一部分单片机原理及汇编程序设计实验一认识单片机开发系统,学习有关软件的使用一、实验目的1.学习Keil C51 集成开发环境的操作;2.熟悉TD-NMC+教案实验系统板的结构及使用。
清华大学微机原理32位微处理器

7
1.2 80386的寄存器
80386微处理器中有通用寄存器、段寄存器、指令指针和标 志寄存器、系统地址寄存器、控制寄存器、调试寄存器以及测试 寄存器等,如下图所示。
8
ቤተ መጻሕፍቲ ባይዱ
1.2 80386的寄存器
1. 通用寄存器 80386中设置8个32位通用寄存器,如下图所示。它们的用法
与8086相同,也可当作8位、16位寄存器用。若作32位寄存器使 用,前面必须加字符E。
9
1.2 80386的寄存器
2. 段寄存器 80386中设置6个16位段寄存器和6个64位描述符寄存器。其
17
2.3 总线传送机制
32位微处理器的所有数据传送都是由一个或多个总线周期来 完成。1字节、2字节或4字节的逻辑数据操作数可以在物理地址不 对界的情况下传送。在对界时的操作数只需要1个总线周期,而对 于不对界时的操作数就需要2个或3个总线周期。
80X86地址信号的设计可以简化外部系统的硬件。高位地址 由A2~A31提供。低位地址则以BE0~BE3形式提供了32位数据总 线4个字节的选择信号。
12
1.2 80386的寄存器
CR1保留给将来开发的Intel微处理器使用;CR2包含一个32 位的线性地址,指向发生最后一次页故障的地址;CR3包含页目 录表的物理基地址,因为80386中的页目录表总是在页的整数边 界上,每4KB为一页,所以CR3的低端12位保持为“0”。 5. 系统地址寄存器
80386中设置4个专用的系统地址寄存器,它们是GDTR、 IDTR、LDTR和TR。GDTR和IDTR长48位,LDTR和TR长16位。 GDTR用来存放全局描述符表的基地址(32位)和限值(16位); IDTR用来存放中断描述符表的基地址(32位)和限值(16位);LDTR 用来存放局部描述符表的段选择字;TR用来存放任务状态段表的 段选择字。
微机原理实验

试验一存储器读写实验一、存储器读写实验目的1、熟悉静态RAM的使用方法,掌握8088微机系统扩展RAM的方法。
2、掌握静态RAM读写数据编程方法。
二、实验内容对指定地址区间的RAM(2000H~27FDH)先进行写数据55AAH,然后将其内容读出再写到3000H~33FEH中。
三、实验步骤(运行实验程序)1、运行实验程序;2、稍后按RESET键退出,用存贮器读方法检查2000H~27FDH中的内容和3000~33FF中的内容应都是55AA。
四、实验程序CODE SEGMENTASSUME CS:CODESTART: MOV AX,0HMOV DS,AXMOV BX,2000HMOV AX,55AAHMOV CX,03FFHRAMW1: MOV DS:[BX],AXADD BX,0002HLOOP RAMW1MOV AX,2000HMOV SI,AXMOV AX,3000HMOV DI,AXMOV CX,03FFHCLDREP MOVSBRAMW2: JMP RAMW2CODE ENDSEND START实验二继电器控制实验一、实验目的:掌握用继电器控制的基本方法和编程。
二、实验内容1、利用8255A PB0输出高低电平,控制继电器的开合,以实现对外部装置的控制。
2、硬件线路原理如图5-23所示3、实验预备知识:现代自动化控制设备中都存在一个电子与电气电路的互相联结问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等);一方面又要为电子电路的电气提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便能完成这一桥梁作用。
三、连线方法1、8255A的PB0连JIN插孔。
2、将CS-8255连到Y6。
四、实验步骤1、按图连好实验线路图。
2、运行实验程序,继电器应循环吸合,L-13和L-14交替亮灭。
五、硬件线路接线图六、试验程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0063HIOCPT EQU 0061HSTART: MOV AL,80HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1: MOV DX,IOCPTIODE2: MOV AL,01HOUT DX,ALCALL DELAYMOV AL,00HOUT DX,ALCALL DELAYJMP IODE2DELAY: MOV CX,0FFFFHDELY: LOOP DELYRETCODE ENDSEND START实验三小直流电机调速实验一、实验目的1、掌握直流电机的驱动原理。
微机原理_中断实验报告(3篇)

第1篇一、实验目的1. 理解中断系统的基本概念和工作原理。
2. 掌握中断源、中断向量、中断服务程序等基本概念。
3. 学习使用Keil软件进行中断程序的编写和调试。
4. 熟悉中断在微机系统中的应用。
二、实验原理中断系统是微机系统中重要的组成部分,它允许CPU在执行程序的过程中,响应外部事件或内部事件,从而实现多任务处理。
中断系统主要包括以下几个部分:1. 中断源:产生中断请求的设备或事件,如外部设备、定时器、软件中断等。
2. 中断向量:中断服务程序的入口地址,用于CPU在响应中断时找到相应的服务程序。
3. 中断服务程序:处理中断请求的程序,完成中断处理任务。
4. 中断优先级:不同中断源的优先级不同,用于确定中断响应的顺序。
三、实验设备与软件1. 实验设备:单片机实验板、计算机、Keil软件、Proteus仿真软件。
2. 实验软件:Keil uVision4、Proteus 8.0。
四、实验内容1. 外部中断实验(1)使用外部中断0(INT0)实现按键控制LED灯的亮灭。
(2)使用外部中断1(INT1)实现按键控制LED灯的闪烁。
2. 定时器中断实验(1)使用定时器0产生1秒的定时中断,实现LED灯的闪烁。
(2)使用定时器1产生1秒的定时中断,实现按键输入的计数。
3. 软件中断实验(1)使用软件中断实现按键输入的字符显示。
(2)使用软件中断实现按键输入的字符加密显示。
五、实验步骤1. 在Keil软件中创建一个新项目,选择合适的单片机型号。
2. 根据实验要求,编写中断服务程序,设置中断向量。
3. 在Proteus软件中搭建实验电路,包括单片机、按键、LED灯等。
4. 将Keil软件编译后的程序下载到单片机中。
5. 在Proteus软件中运行仿真,观察实验结果。
六、实验结果与分析1. 外部中断实验(1)按键按下时,LED灯亮;按键松开时,LED灯灭。
(2)按键按下时,LED灯闪烁;按键松开时,LED灯停止闪烁。
微机原理实验指导书

实验一数据传送实验目的:1.熟悉8086指令系统的数据传送指令及8086的寻址方式。
2.利用TurboDebugger调试工具来调试汇编语言程序。
实验任务:1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。
练习程序段如下:MOVBL,08HMOVCL,BLMOVAX,03FFHMOVBX,AXMOVDS:[0020H],BX2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。
压栈程序段如下:MOVAX,0102HMOVBX,0304HMOVCX,0506HMOVDX,0708HPUSHAXPUSHBXPUSHCXPUSHDX出栈程序段请自行编写(用不同的出栈顺序)。
3.指出下列指令的错误并加以改正,上机验证之。
(1)MOV[BX],[SI](2)MOVAH,BX(3)MOVAX,[SI][DI](4)MOVBYTEPTR[BX],2000H(5)MOVCS,AX(6)MOVDS,2000H4.设置各寄存器及存储单元的内容如下:(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH说明下列各条指令执行完后AX寄存器中的内容,并上机验证。
(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[0120H](4)MOVAX,[BX](5)MOVAX,0110H[BX](6)MOVAX,[BX][SI](7)MOVAX,0110H[BX][SI]5.将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。
试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。
微机原理实验

实验一、DEBUG 调试软件的使用一、实验目的1.熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
2.了解数据在存储器中的存取方法以及堆栈中数据的压入与弹出。
3.掌握各种寻址方式以及简单指令的执行过程。
4.掌握变量和标号的处理,数值的默认进位制。
二、实验内容1.设堆栈指针SP=2000H,AX=3000H,BX=5000H;利用堆栈实现将AX,BX的内容交换。
用DEBUG 进行汇编和调试。
1.1 DEBUG的主要命令DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
一.进入DEBUG状态二.DEBUG的命令1.汇编命令A该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。
注意:汇编程序默认的数据是十进制,而DEBUG默认的数据是16进制,即DEBUG中没有二进制、八进制及十进制,只有16进制。
汇编命令格式为:-A? [段地址]:[偏移地址] 说明:[ ]表示可选项,若未指定地址,则默认地址为CS:0100H。
例:用汇编语言编写一个简单的加法程序。
输入的汇编指令有语法错误的,将提示“error”,再重新输入正确指令即可。
若程序输入完毕,发现某条指令输入错误,比如第三条语句输入有误,就从该指令的偏移地址开始汇编(即-A 106)。
如果新输入的指令所占用的内存空间跟旧指令一样,修改完回车退出汇编即可;如果新输入的指令所占用的内存空间比旧指令少,可在多余的内存空间输入“NOP(空操作,占一字节)”指令;如果新输入的指令所占用的内存空间比旧指令多,就必须将后面的所有指令重新输入。
思考:汇编程序时,偏移地址为何不是连续的,它是如何变化的?(参考第6小点)2.命名命令N读(L)/写(W)程序前,必须先命名,即该命令结合读(L)/写(W)命令使用。
(参阅4、5)例:-N EX1;给程序文件命名为EX1。
3.检查和修改寄存器命令R4.写盘命令WW命令没有任何参数时,与命令N配合使用进行写操作,使用W命令前在BX:CX中应写入文件的字节数。
微机原理实验报告

微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。
实验一,微机系统组成及工作原理。
1.1 微机系统的组成。
微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。
其中,CPU是微机系统的核心部件,负责控制整个系统的运行。
1.2 微机系统的工作原理。
微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。
CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。
实验二,微机系统的组装和调试。
2.1 微机系统的组装。
在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。
组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。
2.2 微机系统的调试。
组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。
通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。
实验三,微机系统的应用。
3.1 微机系统的应用领域。
微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。
在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。
3.2 微机系统的发展趋势。
随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。
未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。
结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。
这对我今后的学习和工作将有很大的帮助。
实验大纲-微机原理与接口技术(第3版)-牟琦-清华大学出版社

《微机原理与接口技术》实验大纲一、实验课程简介以8086CPU为核心的16位微机系统为载体,设计了汇编程序设计、RAM扩展、可编程中断控制器8259A、定时器/计数器8253、并行接口8255、串行接口8251、D/A变换等验证型实验和2个综合实验,使学生通过实践环节,对微机系统工作原理、汇编语言程序设计、接口电路芯片及应用等知有更深入的理解,掌握各种接口电路芯片的工作原理和应用方法,并能够熟练使用汇编语言进行硬件编程。
二、实验对实现人才培养目标的贡献通过实践教学环节,使学生接受初步的工程实践训练,增强综合运用所学知识分析处理工程实际问题的能力,培养学生实践能力、设计能力和创新能力。
三、实验内容及要求理解:16位微机的硬件系统的组成;DOS的基本命令;INT I0H各功能块的用法;了解总线的工作时序;掌握:DOS系统功能调用的常用功能;6264静态RAM使用方法,以及PC机扩充外存的手段;中断控制接口芯片8259的工作原理及应用;并行接口8255A的传输数据的方法及应用;定时/计数器8253的工作原理及应用编程;串行接口电路8251的工作方式、硬件接口电路设计及应用。
表1 实验项目设置与内容注:实验7、8、9、10 选做1 项四、实验课程基本要求1.实验教学的手段和方式实验教学采用课堂讲授和学生动手相结合方式,指导教师先简要讲解实验原理和重要注意事项,然后由学生按实验指导书中的内容和方法步骤进行。
实验过程中学生遇到难题,教师即时启发帮助学生解决。
2.实验教学的要求在实验前,要求学生必须熟练掌握所使用的知识点,做好接口电路设计和源程序准备工作,认真完成实验,完成程序调试工作,遵守实验室各项制度,实验结束后,独立完成实验报告。
五、考核方式1.实验基本要求实验准备充分,实验过程积极认真,能遵守课堂纪律,认真开展独立开展实验工作,勇于探索,实验效果良好;实验报告清楚明白,实验数据真实可信。
2.考试方式由指导教师根据学生课堂纪律、实验预习准备情况、操作技能、实验观察和分析能力、实验结果和实验报告质量等几方面酌情评定。
清华电机系取消微机原理

清华电机系取消微机原理最近,清华大学电机系决定取消微机原理课程,这一决定引起了广泛关注和热议。
微机原理作为电子信息类专业的核心课程之一,其取消引起了学生和教师们的不少疑问和争议。
我们来探讨一下为何会有这样的决定。
据了解,清华电机系取消微机原理是基于对课程的全面评估和调研的结果。
经过多年的教学实践和学生反馈,电机系认为微机原理课程内容过于繁杂,难度较大,与学生的实际需求和专业方向不完全契合。
此外,微机原理课程的教学资源相对有限,师资队伍的配备也存在一定问题。
鉴于这些因素,电机系决定取消该课程,并在未来的教学计划中进行调整和优化。
对于学生来说,微机原理课程的取消无疑是一种利好消息。
许多学生反映,微机原理课程的学习难度较大,需要较高的数学基础和编程能力。
尤其对于一些非计算机专业的学生来说,这门课程对他们来说更是一道难题。
取消微机原理课程后,学生可以有更多的时间和精力去学习其他更为实用和有针对性的课程,提升自己的专业技能和竞争力。
然而,也有一部分学生对这一决定表示不满。
他们认为微机原理是一门重要的基础课程,对于电子信息类专业的学生来说具有重要的意义。
微机原理课程的取消可能会导致学生在后续的学习和科研中存在一定的缺失。
此外,一些学生担心取消微机原理课程后,将来就业时可能会面临竞争压力的增加。
对于教师而言,微机原理课程的取消也带来了一定的困扰。
一方面,教师需要重新调整教学计划和课程设置,确保学生的学习效果和教学质量不受影响。
另一方面,教师也需要进一步提升自身的教学水平和专业素养,以适应新的教学需求和目标。
清华电机系取消微机原理课程是一项经过深思熟虑的决策。
尽管这一决定引起了一些争议和不满,但我们也应该理解电机系的出发点和考虑。
学校和教师们一直致力于提供更好的教学资源和环境,以培养优秀的电子信息类人才。
取消微机原理课程只是调整和改进的一部分,我们有理由相信,未来的教学会更加适应学生的需求,提升教学质量和学生的综合素质。
微机原理存储器实验报告

微机原理存储器实验报告一、实验目的微机原理这门课呀,那可老重要了。
存储器这块呢,就像人的大脑一样,在计算机里起着超级关键的作用。
做这个实验,就是想让咱更透彻地了解存储器到底是咋工作的,它的读写规则啦,存储单元的地址分配啥的。
二、实验设备咱用的那些设备可都不简单呢。
有微机实验箱,这就像一个大宝藏盒,里面各种线路和接口。
还有示波器,它就像一个超级侦探,能帮咱探测信号的波形。
再加上一些连接线,就把这些设备都串起来啦。
三、实验原理存储器嘛,它是用来存储数据和程序的地方。
就像咱们的小仓库,不过这个仓库可高级了。
它是按照地址来存放东西的,就好比每个东西都有自己的小房间号。
咱们通过地址线来选择要访问的存储单元,然后通过数据线来传输数据。
读写控制信号呢,就像小门卫,决定是把数据放进去(写操作)还是把数据拿出来(读操作)。
1. 首先把实验箱电源打开,那一瞬间感觉就像唤醒了一个沉睡的小怪兽。
2. 然后按照电路图连接好线路,这时候可得小心点,要是接错了,就像搭错了积木,整个实验就可能会出问题。
3. 接着编写一些简单的程序,用来测试存储器的读写功能。
这个编写程序的过程就像在创造一个小魔法,让计算机按照我们的想法去做事。
4. 把程序下载到实验箱里,就像把魔法咒语放进了魔法盒里。
5. 最后用示波器观察信号的波形,看看是不是和我们预期的一样。
如果不一样,那就得像个小侦探一样,一点点排查问题出在哪。
五、实验结果实验结果还不错呢。
我们看到了正确的波形,这就说明我们的存储器读写操作基本是成功的。
数据能够准确地被写入存储单元,然后又能准确地被读出来。
不过也有一些小瑕疵,波形有时候会有点小波动,但经过调整后就好多了。
通过这个实验,我对微机原理中的存储器有了更深的理解。
感觉自己就像走进了计算机的小世界里,看到了数据是如何在存储器里进进出出的。
不过也发现自己还有很多不足的地方,比如说编写程序的时候有时候会犯一些小错误,还有在分析波形的时候不是特别熟练。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验7实验8合辑洪玉希2011012706前言:本报告记录了实验7实验8的任务实现和知识理解,详细介绍了如何实现任务7任务8的各项任务。
实验原理图在本实验报告最后附上,本文档跟源程序一起打包上传,请过目。
实验7.中断技术一、实验目的1.了解中断原理,包括对中断源,中断向量,中断类型号,中断程序,以及中断过程的理解。
2.掌握汇编语言中断程序设计方法。
3.掌握C语言项目上机过程和了解C语言程序结构。
4.(选作)掌握C语言中断程序设计方法。
二、实验任务1.中断过程的理解阅读下面汇编语言中断程序L7_P1_int.s43,说明程序执行的流程和实现功能。
上机实践,回答下面问题。
了解汇编语言编写中断程序的方法。
1)阅读程序L7_P1_int.s43,从程序中判断用的是哪个中断源?其中断类型号是多少?答:程序中有如下句子从以上两个图可以知道,此程序打开了p1.0~p1.7的中断源,中断类型号是4。
在此基础上打开了p1.1的中断使能所以系统接受p1.1的中断请求。
2)在L7_P1_int.s43,无call调用语句,中断程序如何能被执行?何时会被执行?答:因为系统打开了p1.1的中断使能,中断总控位,所以当CPU接收到有效的中断请求后,将暂停正在运行的程序,并自动转去执行相应实现中断源(p1.1)请求功能的程序即,中断子程。
当CPU执行完中断子程中的返回指令后,CPU又返回到被中断的程序继续运行。
3)在L7_P1_int.s43,如果中断子程中不清分中断标志P1IFG的后果会是什么?答:如果中断子程不清分中断标志P1IFG系统将一直接受到中断请求,总控位是开的,所以CPU将一直执行中断子程。
4)如果L7_P1_int.s43中的port1_vector改为port2_vector,其他不变,程序执行的后果是什么?为什么?答:按下key1无反应。
因为程序只打开了port2的中断源,按下key1当然没有反应。
并且即使此时port2上有高电平也不能发生中断,因为程序中port2的中断使能没有打开。
5)如果去掉L7_P1_int.s43程序最后的那条无限循环语句,程序执行的流程是怎样的?为什么?程序执行完所有语句后会从0x0000开始执行,俗称“跑飞”。
如下因为执行完所有语句后程序没有指定PC去哪儿执行指令,所以自动选择了0x0执行。
6)如果中断源采用的是p2.2按键用key7,请设计连线,修改L7_P1_int.s43程序完成以中断方式响应key7的操作。
答:将key7与p2.2的端口相连。
由于p2端口本来是用于输出led灯的,所以为了避免混淆,如果条件允许可以将LED端口全部连接到PORT1端口。
这时在程序上做如下修改注意:1)查看msp430x14x.h文件末尾处有关中断向量偏址的符号定义。
2)为了便于了解程序执行流程,可以在中断子程入口处(即标号intP1处)设置一个断电,然后运行程序F5,观察按下键和不按下键时程序执行的流程。
答:不按下键时,程序不经过断点,一直在跑,按下键后程序停在断点处,表示程序进入中断程序。
3)观察是否有按键抖动现象,思考有的话,如何消除?答:有按键抖动现象。
可以采用软件防抖来消除。
具体做法是当p2.22.用汇编语言编写中断程序在实验板上用跳线将按键key5,key6分别与单片机的p1.4,p1.5相连,编程以中断方式处理按键key5和key6的请求,当key5上有一个下降沿信号时,实验板上的蜂鸣器发出一警报声;当key6上有一个上升沿信号时,实验板上的发光二极管L1闪3次。
任务实现:本题在L7_P1_int.s43上稍加修改即可。
对主程序修改如下。
程序名:asm.s43将p2,p6的16个端口均设为输出,同时打开p1.4,p1.5的中断功能。
上两张截图为中断子程。
可以看到,当程序进入中断子程先判断是哪一个键按下,利用P1IFG来判断,如果是key5进入key5,如果是key6进入key6。
Key5的功能是LED灯L1闪三次,key6的功能是蜂鸣器发出一声警报。
在程序执行的最后要清零相对应的IFG 标志信号,然后返回主程序。
思考:如果用长导线将按键key5,key6分别连接在p2.2和p2.3上,如何修改程序以实现上述中断响应?可否将按键key5,key6分别连接在p5.1和p5.2上,用中断方式来完成任务2?为什么?答:可以将按键key5,key6分别连接在p2.2和p2.3上。
用跳线将key5,key6分别连接在p2.2和p2.3。
并修改程序如下:程序:asmxiugai.s43至此就是可完成任务目标。
不能将按键key5,key6分别连接在p5.1和p5.2上。
因为在中断向量表里没有安排p5.1和p5.2的中断向量,系统不支持,所以不能。
3.C语言项目上机过程和C语言程序的结构学习1)建立C语言程序项目的方法:2)读懂LC_testc.c,掌握C语言下对I/O口的寄存器进行操作。
如上图。
对端口的赋值用“=”,for(;;)表示无限循环。
3)在debug状态下,用view/disassembly查看程序LC_TEST_C的反汇编代码,了解MCU的C程序语句与汇编语句的对应关系。
这是截图。
可以看到C语言和汇编语言的对应关系。
C语言中的赋值就是寄存器操作mov 指令等。
4)打开io430.h文件和io430x14x.h文件该文件由#include语句包含在LC_test_c.c 文件中,了解io430xlxx.h文件中与MCU有关的IO寄存器以及这些IO寄存器中各有效位的位域符号定义,以编程使用。
Io430.h文件通常在EW430安装目录的子目录下。
如图。
此为LC_test_c.c的io430xlxx.h文件。
由于关于IO口的定义的篇幅非常大。
在此只截取一个完整的片段进行解读。
__no_init volatile union{unsigned char P1OUT; /* Port 1 Output */struct{unsigned char P0 : 1; /* */unsigned char P1 : 1; /* */unsigned char P2 : 1; /* */unsigned char P3 : 1; /* */unsigned char P4 : 1; /* */unsigned char P5 : 1; /* */unsigned char P6 : 1; /* */unsigned char P7 : 1; /* */}P1OUT_bit;C char),整int为方便操作MCU io430x14x.h等头文件中采用共同体,struct可以按字节操作:P1SEL=0;P1OUT=0;P1IFG=0;2.也可以按位域操作:P1SEL_BIT.P1=0;P1OUT_BIT.P1=0;P1IFG_BIT.P1=0;(5) C语言中程序中断程序设计参看“补充讲义C语言的中断程序设计”,阅读下面C语言中断程序L8_P1_int。
1)如果程序中没有#pragma vector=port1_vector的后果?这就相当于汇编语言中没有ORG 0FFE0h+PORT1_VECTOR 显然,没有给出中断向量,系统是不会执行中断程序的。
2)在C语言中操作符“==”和“=”有什么不同?“==”是判断符号,如if (P1IFG_bit.P4==1){key5();P1IFG_bit.P4=0;}If语句后面的括号内,就是一个判断语句,P1IFG_bit.P4是否等于1。
如果是,执行接下来的语句。
而“=”是赋值的意思,如for(;;) //无限循环{ P2OUT=~P2OUT; //将端口2的值取反后输出for (i=0;i<0xffff;i++); //延时};中,P2OUT=~P2OUT指将P2OUT取反赋值给P2OUT。
(6)完成本次实验任务2的同样功能。
对实验任务2 的汇编语言进行修改即可。
下面给出程序和注释。
这里着重注意几点1.所有子程序要在开头声明。
2.书写要按照C语言的方式书写。
#include "io430.h"#include "intrinsics.h"void key5();void key6();void delay();int main( void ){// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;__disable_interrupt(); //_DINT();P2SEL=0; //置P2为基本I/O功能P2OUT=0xFF; //置P2输出初值P2DIR=0xFF; //置P2为输出P6SEL=0; //置P2为基本I/O功能P6OUT=0xFF; //置P2输出初值P6DIR=0xFF; //置P2为输出P1SEL_bit.P4=0; //设置p1.4为基本I/O功能P1DIR_bit.P4=0; //设置P1.4为输入P1IES_bit.P4=1; //设置p1.4为上升沿输入 P1IFG_bit.P4=0; //清零标志位P1IE_bit.P4=1; //打开p1.4中断使能P1SEL_bit.P5=0; //设置p1.5为基本I/O功能P1DIR_bit.P5=0; //设置P1.5为输入P1IES_bit.P5=1; //设置p1.5为下升沿输入 P1IFG_bit.P5=0; //清零标志位P1IE_bit.P5=1; //打开p1.5中断使能__enable_interrupt(); //_EINT();while(1){ };}//#pragma vector=4*2#pragma vector=PORT1_VECTOR__interrupt void port_int(void){if (P1IFG_bit.P4==1){key5();P1IFG_bit.P4=0;}if (P1IFG_bit.P5==1){key6();P1IFG_bit.P5=0;}}void key5(){P2OUT=0XF8;delay();P2OUT=0XFF;delay();P2OUT=0XF8;delay();P2OUT=0XFF;delay();P2OUT=0XF8;delay();P2OUT=0XFF;delay();}void key6(){P6OUT=0x10;delay();P6OUT=0XFF;}void delay(){unsigned int i;for (i=0;i<0xffff;i++);}实验8.基本时钟和定时器一、实验目的1.掌握数字示波器的使用方法2.了解MSP430基本时钟模块的工作原理,掌握其控制方法。