北京邮电大学微机原理硬件实验报告

合集下载

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告实验报告一:I/0地址译码和简单并行接口——实验一&实验二一、实验目的掌握I/O地址译码电路的工作原理;掌握简单并行接口的工作原理及使用方法。

二、实验原理及内容a) I/0地址译码1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔经过软件延时实现。

2、接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D触发器接 +5VQ/D触发器接L7(LED灯)或逻辑笔b) 简单并行接口1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码经过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

北邮微机原理硬件实验报告

北邮微机原理硬件实验报告

北邮微机原理硬件实验报告实验目的本次实验主要是通过对微机原理的学习,掌握多种硬件器件的基本使用,包括程序寄存器(PRG)、数据寄存器(DR)、累加器(AC)等,也希望能够初步了解微机系统的结构和工作原理。

实验内容1. 按以下程序编写汇编程序ORG 0HLOOP: MOV A,NUMADD BINC R5MOV MEM,R5SJMP LOOPENDNUM: DB 50HB: DB 35HR5: EQU 25HMEM: DS 1编写程序后,运行该程序,观察程序在8051微处理器上执行的情况。

2. 制作简易流水灯电路使用LED等元器件,制作一个简单的流水灯电路。

同时,编写相应的汇编程序,实现流水灯的基本效果。

3. 实现双向流水灯效果在完成流水灯电路的基础上,通过改变程序实现双向流水灯的效果。

在这个过程中,需要仔细分析程序的实现方式,并且结合8615芯片的具体情况,理解程序在底层机器中的工作方式。

4. 实现用数码管显示数字的功能使用7段数码管,将程序输出的结果显示在数码管上。

在这个过程中,我们需要灵活处理I/O端口和存储器的读写,以及处理各类中断信号。

实验过程1. 编写并调试汇编程序我们首先使用Keil软件编写了相应的汇编程序,并在8051单片机上运行。

在运行过程中发现,程序能够成功地对NUM与B进行加法运算,并将结果存储在MEM中。

2. 制作流水灯电路我们使用LED、电阻等元器件,制作了一个简单的流水灯电路,并测试了该电路的基本工作情况。

由于电路较为简单,因此没有出现特别明显的问题。

3. 实现双向流水灯效果为了实现双向流水灯效果,我们对程序进行了修改。

在这个过程中,初步出现了一些问题,包括倒计时初始值不正确、程序中断启动终止不及时等。

经过反复调试,我们成功地实现了这一功能。

4. 实现用数码管显示数字的功能最后,我们将流水灯程序变更为用数码管显示数字的程序。

在这个过程中,我们主要用到了表格查找和存储器读写等基本操作,成功将结果在数码管上显示。

北邮微机原理实验报告

北邮微机原理实验报告

北邮微机原理实验报告微原软件实验报告班级:序号:学号:姓名:实验⼆分⽀,循环程序设计⼀.实验⽬的:1.开始独⽴进⾏汇编语⾔程序设计;2.掌握基本分⽀,循环程序设计;3.掌握最简单的DOS 功能调⽤.⼆.实验内容:1.安排⼀个数据区(数据段),内存有若⼲个正数,负数和零.每类数的个数都不超过9.2.编写⼀个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显⽰.三.预习题:1.⼗进制数0 -- 9 所对应的ASCII 码是什么? 如何将⼗进制数0 -- 9 在屏幕上显⽰出来?答:0—9对应的ASCII码是30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,将⼗进制数转换成相应的ASCII码并调⽤字符显⽰功能即能实现⼗进制数在屏幕上的显⽰。

2.如何检验⼀个数为正,为负或为零? 你能举出多少种不同的⽅法?答:将该数与0字符(ASCII码为30H)⽐较,根据⽐较的结果转⼊不同的分⽀。

四.流程图:开始初始化CX,BX,AH,DH,DL[BX] 0?[BX]=0?DH++DH 记录等于零的个数BX++BX++CX--AH++AH 记录⼩于零的个数DL++DL 记录⼤于零的个数CX 0?将AH,DH,DL 中的数转成ASCII 码并存储显⽰结束YES YES NOYESNO NO CX 是待处理的数的个数,BX 是这串数的⾸地址五.代码:六.运⾏结果:七.总结:第⼀次在DOS窗⼝下⽤汇编编程,⼀些基本的操作和以前的⾼级语⾔迥然不同,如建⽴⽂件,编译,链接,调试,这些操作都是要在DOS窗⼝中键⼊语⾔指令来完成的,不像⾼级语⾔的编译器只要按下相关的键就好了,⽤语⾔指令能更加明⽩编译,调试这些操作真正的含义。

更重要的是调试指令,通过这些指令,可以直接看到寄存器,内存中真真切切的变化,对硬件的⼯作机制特别是cpu的指令运⾏,内存的数据存储与读取,整个程序运⾏的本质过程有了更加透彻的了解和认识。

北邮微原硬件实验

北邮微原硬件实验

信息与通信工程学院微原硬件实验报告姓名:班级:20122111262014.12.21实验一熟悉实验环境及10的使用一,实验目的1.通过实验了解和熟悉实验台的结构,功能及使用方法。

2.通过实验掌握直接使用Debug的I、0命令来读写10端口。

3.学会Debug的使用及编写汇编程序二,实验内容1.学习使用Debug命令,并用I、0命令直接对端口进行读写操作,2•用汇编语言编写跑马灯程序。

(使用EDIT编辑工具)实现功能A.通过读入端口状态(0N为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)三,实验步骤1.实验板的10端口地址为EEE0H在Debug下,I是读命令。

(即读输入端口的状态---拨码开关的状态)0是写命令。

(即向端口输出数据---通过发光管来查看)进入Debug后,读端口拨动实验台上八位拨码开关输入I端口地址回车屏幕显示xx表示从端口读出的内容,即八位开关的状态0N是O,0FF是1写端口输入0端口地址xx (xx表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0是灯亮,1是灯灭。

2.在Debug环境下用a命令录入程序,用g命令运行C>Debug -amov dx,端口地址mov al,输出内容out dx, almov ah, Obhint 21hor al, aljzO1OOint 20h-g运行查看结果,修改输出内容再运行查看结果分析mov ah, Obhint 21hor al, aljzO1OOint 2Oh该段程序的作用:检测键盘有没有按键,有则返回DOS。

没有继续执行3.利用EDIT工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)B.通过输出端口控制灯的工作状态(低电平灯亮)C>EDIT文件名.asm录入程序按Alt键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm连接文件C>LINK 文件名.obj运行文件或用Debug进行调试。

北邮微原硬件实验报告

北邮微原硬件实验报告

2015-2016学年第一学期微机原理硬件实验报告学院:班级:学号:姓名:序号:目录实验一熟悉实验环境及IO的使用 (3)一实验目的 (3)二实验内容 (3)三实验过程 (3)1 实验原理 (3)2 流程图 (3)3 源代码 (4)4 子程序清单 (6)5 代码分析 (6)四实验总结 (6)实验二 8255A并行接口应用 (7)一实验目的 (7)二实验内容 (7)三实验过程 (7)1 八位数码管位选规律 (7)2 六位数码管静态显示 (8)3 六位数码管动态显示 (11)4 扩展:显示键盘输入学号 (15)四实验总结 (21)实验三 8253计数器/定时器的应用 (22)一实验目的 (22)二实验内容 (22)三实验过程 (22)1 蜂鸣器发音规律 (22)2 音乐发生器 (23)3 扩展:小键盘弹琴功能 (32)四实验总结 (38)实验一熟悉实验环境及IO的使用一实验目的1 通过实验了解和熟悉实验台的结构,功能及使用方法。

2 通过实验掌握直接使用Debug的I、O命令来读写I/O端口。

3 学会Debug的使用及编写汇编程序。

二实验内容1 学习使用Debug命令,并用I、O命令直接对端口进行读写操作。

2 用汇编语言编写跑马灯程序。

实现功能:1)通过读入端口状态,选择工作模式(灯闪烁方式、速度等);2)通过输出端口控制灯的工作状态(低电平灯亮)。

三实验过程1 实验原理1 在Debug下,用I是命令读输入端口的状态,即拨码开关的状态,用O命令向端口输出数据,通过LED发光管来查看。

测试结果:1)使用命令:I 0EEE0H读取开关状态,得出的结果为左低右高,即S0是低位,S7是高位。

2)实验命令:O 0EEE0H测试LED,改变输入的值可依次测试各个数码管是否正常。

LED左边为高位,右边为低位。

2 分析以下程序段的作用MOV AH, 0BHINT 21HOR AL,ALJZ 0100INT 20H该段程序实现了检测键盘状态,在键盘有任意键输入时退出程序返回DOS的功能。

微机原理硬件实验报告_实验一

微机原理硬件实验报告_实验一

微机原理硬件实验报告目录实验一 (2)一、实验目的 (2)二、实验内容及要求 (2)三、操作步骤 (2)四、实验流程图 (4)五、源代码 (5)六、思考题 (7)七、心得体会 (8)实验一一、实验目的1.通过实验了解和熟悉实验台的结构,功能及使用方法。

2.通过实验掌握直接使用Debug 的I、O命令来读写IO端口。

3.学会Debug的使用及编写汇编程序二、实验内容及要求1.学习使用Debug 命令,并用I、O命令直接对端口进行读写操作,2.用汇编语言编写跑马灯程序。

(使用EDIT 编辑工具)实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)。

三、操作步骤1.实验板的IO端口地址为EEE0H在Debug 下,I是读命令。

(即读输入端口的状态---拨码开关的状态)O是写命令。

(即向端口输出数据---通过发光管来查看)进入Debug后,读端口拨动实验台上八位拨码开关输入I 端口地址回车屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON是0,OFF 是1写端口输入O 端口地址xx (xx 表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0是灯亮,1 是灯灭。

运行查看结果修改输出内容再运行查看结果该段程序的作用3.利用EDIT工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)C>EDIT 文件名.asm录入程序按Alt 键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm四、实验流程图五、源代码以上就是个拨码开关对应的功能跳数可以实现一次一跳,一次两跳河一次三跳,还有一种特殊的跳数一次零跳,就是暂停状态方向有左移和右移两种 速度有快慢两种码型是一种对跑马灯的初始化,在跑动后有些码型的效果是一样的。

2021年北邮微机原理实验报告

2021年北邮微机原理实验报告

微机原理软件试验汇报学院: 信息与通信工程学院班级: 211123班内序号:学生姓名:学号:试验二分支,循环程序设计一、试验目1.开始独立进行汇编语言程序设计;2.掌握基础分支,循环程序设计;3.掌握最简单DOS 功效调用.二、试验任务及内容1.安排一个数据区, 内存有若干个正数, 负数和零。

每类数个数都不超出9。

2.编写一个程序统计数据区中正数, 负数和零个数。

3.将统计结果在屏幕上显示。

4.(扩展题)统计出正奇数、正偶数, 负奇数、负偶数以及零个数。

三、画出程序步骤图Y四、给出源程序(要求加注释)data segmentbuff dw 1, 2, 0, 0 ,-1 ; 数据段, 初始化数据count equ $-buffplus db ? ; 定义三种数存放位置zero db ?minus db ?string1 db 'plus number:','$'string2 db 'zero number:','$'string3 db 'minus number:','$'data endsstack segment stack 'stack'db 100 dup(? )stack endscode segmentassume cs:code,ds:data,es:data,ss:stackbegin:mov ax,datamov ds,axmov cx,countshr cx,1mov dx,0mov ah,0lea bx,buffagain: cmp word ptr[bx],0 ; 首先和0比较jge pluinc ah ; 小于零MINUS+1jmp nextplu: jz zer ; 判定是否等于零, 等于零ZERO+1 inc dl ; 不等于零PLUS+1jmp nextzer: inc dhnext:inc bx ; 下一个数inc bxloop againadd dl,48mov plus,dladd dh,48mov zero,dhadd ah,48mov minus,ahshow:sub dx,dx ; 显示模块mov dx,offset string1mov ax,0900h ; 送显示指令int 21hmov dl,[plus]mov ax,0200hint 21hmov dl,0dhint 21hmov dl,0ahint 21hmov dx,offset string2mov ax,0900hint 21hmov dl,[zero]mov ax,0200hint 21hmov dl,0dhint 21hmov dl,0ahint 21hmov dx,offset string3mov ax,0900hint 21hmov ax,0200hmov dl,[minus]int 21hmov ax,4c00h ; 结束程序int 21hcode endsend begin五、给出程序运行结果(运行结果抓屏保留)data segment 中存入1, 2, 0, 0, -1显示有2个0、2个大于0数、1个小于0数, 结果正确六、预习题1.十进制数0 -- 9 所对应ASCII 码是什么? 怎样将十进制数0 -9 在屏幕上显示出来? 答: 对应ASCII码是30H~39H, 把0-9加上30H即可得到对应ASCII, 送给DL, 再实施INT 21H即可显示。

北京邮电大学实验报告实验三微机

北京邮电大学实验报告实验三微机

北京邮电大学实验报告题目:微机原理软件实验三班级: 2010211127专业:信息工程姓名:付莹学号:10210759实验五:中断实验1. 实验类设计型实验:编程实现时钟的显示。

2. 实验目的掌握计数器/定时器8253的工作原理和编程方法;掌握中断控制器8259的工作原理;掌握中断处理程序的编写。

3. 实验条件硬件条件:PC机一台。

软件条件:DOS操作系统;任意一种编辑程序,如EDIT;宏汇编程序MASM;连接程序LINK;调试程序DEBUG。

可借用该程序中的中断服务程序以及8253的初始化程序段(口地址为40H、41H、42H、43H,控制字为36H=00110110B,时间常数TC=11932:1.1932MHz/11932=100Hz,输出方波频率为100Hz,其周期为1000/100=10ms)。

4. 实验内容及步骤编一程序,在显示器上显示时、分、秒。

借用计数器8253的Timer0作为中断源,通过8259A向CPU发中断,每10ms产生一次中断。

在中断服务程序中管理刷新时、分、秒Current time is: xx:xx:xx (时分秒键盘输入)回车后时、分、秒开始计时,时钟不停的刷新。

当键入CTRL+C时,停止计时,返回系统,且系统正常运行不死机。

5. 实验报告(1)画出程序流程图。

开始等待回车键按下(08H 中断调用)取原8H 中断的中断矢量并压栈保护建立数据段的可寻址性 装载现在的中断服务程序8253初始化产生10ms 方波,10ms 中断一次重写IMR ,只开放时钟和键盘中断开中断监测键盘(06H 中断调用)是Ctrl+C ? 关中断 恢复IMR重置8253,,55ms 中断一次恢复原中断开中断返回DOS ,结束Yes有键按下?显示时间值(09H 中断调用)取消秒Yes 计数达到100次(1秒)?NoYesNoNo实现等待计时功能实现循环,秒值变化则返回继续执行程序显示“Current time is :” 读入键盘输入(2)提交调试好的汇编语言源程序(.asm)。

北邮微机原理硬件实验报告及代码

北邮微机原理硬件实验报告及代码

北京邮电大学微机原理硬件实验报告实验1:熟悉实验环境及IO的使用实验2:8255A并行接口应用实验3:8253计数器/定时器的应用目录实验一熟悉实验环境及IO的使用 (2)一、实验目的 (2)二、实验内容及要求 (2)三、实验结果 (2)1、程序说明 (2)2、流程图 (4)3、源代码 (6)四、实验总结 (9)实验二8255A并行接口应用 (9)一、实验目的 (9)二、实验任务及内容 (9)1、6 位数码管静态显示 (10)2、6 位数码管动态显示 (10)3、扩展部分 (10)三、实验结果1(6位数码管静态显示) (10)1、程序说明 (10)2、流程图 (11)3、源代码 (11)四、实验结果2(6位数码管动态显示) (13)1、程序说明 (13)2、流程图 (14)3、源代码 (15)五、实验结果(扩展部分) (17)1、程序说明 (17)2、流程图 (18)3、源代码 (18)六、实验总结 (22)实验三8253计数器/定时器的应用 (22)一、实验目的 (22)二、实验任务及内容 (22)1.音乐发生器 (22)2.扩展部分 (23)三、实验结果1(音乐发生器) (23)1、程序说明 (23)2、流程图 (23)3、源代码 (24)四、实验结果2(扩展部分) (29)1、程序说明 (29)2、流程图 (29)3、源代码 (30)五、实验总结 (34)实验一熟悉实验环境及IO的使用一、实验目的1 .通过实验了解和熟悉实验台的结构,功能及使用方法。

2 .通过实验掌握直接使用Debug 的I、O 命令来读写IO端口。

3 .学会Debug 的使用及编写汇编程序二、实验内容及要求1 .学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,2 .用汇编语言编写跑马灯程序。

(使用EDIT编辑工具)实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮三、实验结果1、程序说明跑马灯程序共实现:16种灯型、4种速度、暂停、退出等功能。

北邮 微机原理实验报告

北邮 微机原理实验报告

北邮微机原理实验报告一、实验目的本实验旨在通过对微机原理的实际操作,加深对计算机内部结构和工作原理的理解,并通过实验验证理论知识的正确性。

二、实验设备和材料•计算机硬件设备:PC机一台、示波器一台、数字信号发生器一台。

•软件工具:TASM、MASM汇编语言编译器。

三、实验内容本实验分为以下几个步骤:1. 准备工作•将PC机与示波器、数字信号发生器连接。

•打开PC机,进入实验环境。

2. 实验一:简单指令的执行•编写一个简单的汇编程序,实现两个数相加并将结果存储到指定寄存器中。

•使用TASM或MASM编译器对汇编程序进行编译,生成可执行文件。

•运行可执行文件,在示波器上观察到相加过程的波形。

3. 实验二:数据传输操作•编写一个汇编程序,实现数据在不同寄存器和内存之间的传输。

•编译并运行程序,通过观察PC机上的输出结果,验证数据传输的正确性。

4. 实验三:逻辑运算和移位操作•编写程序,实现逻辑运算和移位操作,并观察运算结果。

•通过数字信号发生器产生相应的输入信号,验证程序的正确性。

5. 实验四:中断处理•编写一个汇编程序,实现对中断请求的响应和处理。

•通过示波器观察中断请求和处理的波形,验证程序的正确性。

6. 实验五:串行通信操作•编写程序,实现串行通信的发送和接收操作。

•通过示波器观察串行通信的波形,验证程序的正确性。

四、实验结果和分析•对每个实验步骤进行记录,并详细分析实验结果。

•比较实验结果与理论预期是否一致,并给出原因分析。

五、实验心得通过本次实验,我深刻理解了微机原理的实际应用和操作过程。

通过实际操作,我对计算机内部结构和工作原理有了更深入的了解,并通过实验验证了理论知识的正确性。

同时,我也意识到在实际操作中的一些细节和注意事项,这对我今后的学习和工作都有很大的帮助。

六、实验总结通过本次实验,我不仅掌握了微机原理的实际应用技能,还深化了对计算机内部结构和工作原理的理解。

实验过程中,我遇到了一些问题,但通过思考和实践,逐步解决了这些问题,并取得了满意的实验结果。

北邮微机原理实验报告

北邮微机原理实验报告

微机原理软件实验报告学院:信息与通信工程学院班级:2012211123班内序号:学生姓名:学号:实验二分支,循环程序设计一、实验目的1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS 功能调用.二、实验任务及内容1.安排一个数据区,内存有若干个正数,负数和零。

每类数的个数都不超过9。

2.编写一个程序统计数据区中正数,负数和零的个数。

3.将统计结果在屏幕上显示。

4.(扩展题)统计出正奇数、正偶数,负奇数、负偶数以及零的个数。

三、画出程序流程图Y四、给出源程序(要求加注释)data segmentbuff dw 1, 2, 0, 0 ,-1 ;数据段,初始化数据count equ $-buffplus db ? ;定义三种数的存储位置zero db ?minus db ?string1 db 'plus number:','$'string2 db 'zero number:','$'string3 db 'minus number:','$'data endsstack segment stack 'stack'db 100 dup(?)stack endscode segmentassume cs:code,ds:data,es:data,ss:stackbegin:mov ax,datamov ds,axmov cx,countshr cx,1mov dx,0mov ah,0lea bx,buffagain: cmp word ptr[bx],0 ;首先和0比较jge pluinc ah ;小于零MINUS+1jmp nextplu: jz zer ;判断是否等于零,等于零ZERO+1 inc dl ;不等于零PLUS+1jmp nextzer: inc dhnext: inc bx ;下一个数inc bxloop againadd dl,48mov plus,dladd dh,48mov zero,dhadd ah,48mov minus,ahshow:sub dx,dx ;显示模块mov dx,offset string1mov ax,0900h ;送显示指令int 21hmov dl,[plus]mov ax,0200hint 21hmov dl,0dhint 21hmov dl,0ahint 21hmov dx,offset string2mov ax,0900hint 21hmov dl,[zero]mov ax,0200hint 21hmov dl,0dhint 21hmov dl,0ahint 21hmov dx,offset string3mov ax,0900hint 21hmov ax,0200hmov dl,[minus]int 21hmov ax,4c00h ;结束程序int 21hcode endsend begin五、给出程序运行结果(运行结果抓屏保存)data segment 中存入1,2, 0, 0,-1显示有2个0、2个大于0的数、1个小于0的数,结果正确六、预习题1.十进制数0 -- 9 所对应的ASCII 码是什么? 如何将十进制数0 -9 在屏幕上显示出来? 答:对应的ASCII码是30H~39H,把0-9加上30H即可得到对应的ASCII,送给DL,再执行INT 21H即可显示。

北邮微原硬件实验报告

北邮微原硬件实验报告

微机原理硬件实验报告2015-2016学年第一学期微机原理硬件实验报告学院:班级:学号:姓名:序号:目录实验一熟悉实验环境及IO的使用 (2)一实验目的 (2)二实验内容 (2)三实验过程 (2)1 实验原理 (2)2 流程图 (3)3 源代码 (3)4 子程序清单 (5)5 代码分析 (5)四实验总结 (5)实验二 8255A并行接口应用 (6)一实验目的 (6)二实验内容 (6)三实验过程 (6)1 八位数码管位选规律 (6)2 六位数码管静态显示 (6)3 六位数码管动态显示 (9)4 扩展:显示键盘输入学号 (13)四实验总结 (19)实验三 8253计数器/定时器的应用 (19)一实验目的 (19)二实验内容 (19)微机原理硬件实验报告三实验过程 (19)1 蜂鸣器发音规律 (19)2 音乐发生器 (20)3 扩展:小键盘弹琴功能 (29)四实验总结 (34)实验一熟悉实验环境及IO的使用一实验目的1 通过实验了解和熟悉实验台的结构,功能及使用方法。

2 通过实验掌握直接使用Debug的I、O命令来读写I/O端口。

3 学会Debug的使用及编写汇编程序。

二实验内容1 学习使用Debug命令,并用I、O命令直接对端口进行读写操作。

2 用汇编语言编写跑马灯程序。

实现功能:1)通过读入端口状态,选择工作模式(灯闪烁方式、速度等);2)通过输出端口控制灯的工作状态(低电平灯亮)。

三实验过程1 实验原理1 在Debug下,用I是命令读输入端口的状态,即拨码开关的状态,用O命令向端口输出数据,通过LED发光管来查看。

测试结果:1)使用命令:I 0EEE0H读取开关状态,得出的结果为左低右高,即是低位,是高位。

2)实验命令:O 0EEE0H测试LED,改变输入的值可依次测试各个数码管是否正常。

LED左边为高位,右边为低位。

2 分析以下程序段的作用MOV AH,0BH微机原理硬件实验报告INT21HOR AL,ALJZ0100INT20H该段程序实现了检测键盘状态,在键盘有任意键输入时退出程序返回DOS的功能。

北邮 微机原理实验报告

北邮 微机原理实验报告

北邮微机原理实验报告北邮微机原理实验报告引言:微机原理是计算机科学与技术专业的一门重要课程,通过学习和实践,我们可以深入了解计算机的组成结构和工作原理。

本次实验旨在通过对北邮微机原理实验的探索,加深对计算机硬件和软件的理解,并提升我们的实践能力。

一、实验目的本次实验的目的是熟悉计算机的硬件组成和工作原理,并通过实践操作加深对微机原理的理解。

具体包括以下几个方面:1. 熟悉计算机的硬件组成,包括中央处理器(CPU)、内存、硬盘等;2. 掌握计算机的启动过程和操作系统的加载;3. 理解计算机的指令集和指令执行过程;4. 学习计算机的输入输出设备和外部接口。

二、实验过程1. 实验一:计算机硬件的组装与连接在本实验中,我们需要将计算机的各个硬件组件进行正确的连接和组装。

首先,我们需要将主板与CPU、内存、显卡等硬件设备进行连接。

其次,我们需要将硬盘、光驱等存储设备与主板进行连接。

最后,我们需要将键盘、鼠标、显示器等外部设备与计算机进行连接。

通过这一步骤,我们可以了解计算机硬件的组成结构,并掌握正确的连接方式。

2. 实验二:计算机的启动过程和操作系统的加载在本实验中,我们需要了解计算机的启动过程和操作系统的加载过程。

首先,我们需要按下电源按钮,启动计算机。

然后,计算机会进行自检和硬件初始化,并加载操作系统。

在这个过程中,我们可以观察到计算机的启动画面和加载过程。

通过这一步骤,我们可以深入了解计算机的启动过程和操作系统的加载机制。

3. 实验三:计算机的指令集和指令执行过程在本实验中,我们需要学习计算机的指令集和指令执行过程。

首先,我们需要了解不同类型的指令,包括算术指令、逻辑指令、数据传输指令等。

然后,我们需要通过编写简单的汇编语言程序,来实现对数据的处理和操作。

在这个过程中,我们可以观察到指令的执行过程和结果。

通过这一步骤,我们可以深入理解计算机的指令集和指令执行过程。

4. 实验四:计算机的输入输出设备和外部接口在本实验中,我们需要学习计算机的输入输出设备和外部接口。

北邮-微原硬件实验报告

北邮-微原硬件实验报告

北邮-微原硬件实验报告实验简介本次实验是北邮电子工程学院微型原子核物理实验课程的一部分。

本次实验主要分为两个部分:微原硬件实验和样品制备。

微原硬件实验主要是为了让学生了解硬件实验的基本原理,掌握硬件实验的基本方法。

硬件实验实验目的通过控制硬件实验,观察不同磁场下的原子核的运动状态,进而了解原子核的物理性质。

实验器材•微原硬件实验仪•托盘•荧光屏•操作盘实验步骤1.将托盘放置在荧光屏上,打开微原硬件实验仪的电源2.打开荧光屏开关,将光电倍增管插在荧光屏上的孔中3.打开操作盘,选择相应的磁场模式,如顶置模式,圆柱模式或平面模式4.将操作盘连接到电磁铁上,并按照实验要求进行调节5.打开微原硬件实验仪的数据采集系统,并进行数据采集6.根据数据采集结果进行数据处理和分析实验结果通过微原硬件实验,我们得到了不同磁场下原子核的运动状态。

我们可以通过观察数据采集结果和数据处理结果来了解原子核的物理性质。

例如,我们可以通过分析数据来计算原子核大小、电荷等参数。

样品制备实验目的通过样品制备,让学生了解样品制备过程中的化学和物理原理,掌握样品制备的基本方法。

实验器材•称量器•毛细管•乙酸钠•氯化钠•离心机•离心管实验步骤1.称取适量的乙酸钠和氯化钠2.将乙酸钠和氯化钠加入样品瓶中3.加入适量的水,使溶液中的浓度达到一定的比例4.将样品瓶放入离心机中进行离心分离5.取出离心管中的上层溶液,放入样品瓶中实验结果通过样品制备,我们制备出了一种可以用于微原硬件实验的样品。

我们可以对样品进行计算、分析和测试,以便我们更好地了解原子核的物理性质,并探索原子核在各种磁场下的运动状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告一:I/0地址译码和简单并行接口——实验一&实验二一、实验目的掌握I/O地址译码电路的工作原理;掌握简单并行接口的工作原理及使用方法。

二、实验原理及内容a)I/0地址译码1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

2、接线:Y4/IO地址接 CLK/D触发器Y5/IO地址接CD/D触发器D/D触发器接 SD/D触发器接+5VQ/D触发器接L7(LED灯)或逻辑笔b) 简单并行接口1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

5、接线:1)输出按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)2)输入按图4-2-2接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)三、硬件连线图1、I/O地址译码2.简单并行接口四、软件程序流程图1、I\O地址译码2、简单并行接口五、源程序1、I\O地址译码STACK SEGMENT STACK 'STACK'DB 100 DUP(?)STACK ENDSDATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK,DS:DATA START:MOV AX,DATAMOV DS,AXLOP: MOVDX,2A0HOUTDX,AL;点亮灯ﻩ CALLDELAY;延时MOV DX,2A8Hﻩ OUT DX,AL ;熄灭灯CALL DELAYﻩ JMP LOPCODE ENDSEND STARTDELAY PROC NEAR ;延时子程序PUSH CXPUSHBXMOV BX,250;250×65535LP2:MOVCX,0FFFFHLP1:LOOP LP1DEC BXJNZLP2POP BXPOP CXRETDELAYENDP2、简单并行接口电路STACK SEGMENTSTACK 'STACK'DB 100DUP(?)STACKENDSDATA SEGMENTDATA ENDSCODE SEGMENTASSUMECS:CODE,SS:STACK,DS:DATASTART:MOV AX,DATAMOVDS,AXﻩLOP: MOV AH,01Hﻩ INT21Hﻩ CMP AL,1BH;检查是否按下退出esc键ﻩ JZ ENDINGﻩ MOV DX,2A8H;将ascii码输出OUT DX,ALJMP LOPENDING:MOV AL,0OUT DX,ALMOV AX,4C00HINT 21HﻩCODE ENDSENDSTART六、实验总结在这三次实验中出现的问题以及相应的解决方法如下:实验一:因为对D触发器的特性有些遗忘,在编写程序时犯了不少错误,最终通过请教助教解决了一些疑问,从而顺利写出了代码。

实验二:实验二的程序逻辑比较简单,但连线比较多,在实验过程中,也多次连错了线,通过检查纠正了连线错误,也很快完成了实验。

七、实验收获与心得体会这次实验是第一次用汇编语言控制接口,因为理论课尚未讲到相关内容,做实验时,上手地比较慢。

通过实验一实验二,熟练了对IN、OUT指令的使用,对接口有了初步认识。

同时通过研究译码电路,对“地址”也有了进一步的认识。

实验报告二:可编程并行接口8255的应用——实验三&实验四&实验五一、实验目的1、通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。

、2、掌握数码管显示数字的原理。

3、掌握8255控制键盘及显示电路的基本功能及编程方法;掌握一般键盘和显示电路的工作原理。

二、实验原理及内容a)实验三1、实验电路如图4-3-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

2、编程从8255C口输入数据,再从A口输出。

3、接线:PC7~PC0/8255接K7~K0/逻辑电平开关PA7~PA0/8255接L7~L0/LED显示CS/8255接Y1/IO地址b)实验四1、静态显示:按4-4-1连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1、S2、S3接P C0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。

(或编程在数码管上循环显示“00-99”,位码驱动输入端S0、S1 接PC0、PC1;S2、S3接地。

)2、接线:PA7~PA0/8255 接dp~a/LED数码管PC3~PC0/8255 接S3~S0/LED数码管CS/8255接 Y1/IO地址C)实验五1、编程:使得在小键盘上每按一个健,4位数码管上显示出相应字符,它们的对应关系如下:2、接线:PC7~PC0/8255 接行3~列0 /4X4键盘PA7~PA0 /8255 接dp~a /LED数码管CS/8255 接Y1 /IO地址PB3~PCB/8255 接 S3~S0/LED数码管(或哪位数码管要显示则位选 S 接 +5V 即高电平,不想显示的数码管 S 接GND即低电平)三、硬件连线图a)实验三b)实验四c)实验五四、软件流程图a)实验三b)实验四c)实验五五、源程序a)实验三STACK SEGMENTSTACK'STACK'DB100 DUP(?)STACKENDSDATA SEGMENTDATAENDSCODE SEGMENTASSUME CS:CODE,SS:STACK,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,10001001B ;A口输出C口输入,工作方式为00MOV DX,28BH ;控制端口地址OUT DX,AL;8255初始化,写入工作方式控制字ﻩLOP:MOV DX,28AH ;将开关状态读入INAL,DXMOVDX,288H;讲状态输出到A口OUT DX,ALﻩMOVAH,0BH ;检测键盘状态ﻩINT 21HCMP AL,0FFH ;如果键盘上有输入则停止程序JZ ENDINGﻩJMP LOPENDING:MOVAL,0MOV DX,288HOUT DX,ALMOV AX,4C00HINT21HCODE ENDSEND STARTb)实验四STACK SEGMENT STACK'STACK'DB 100 DUP(?)STACK ENDSDATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK,DS:DATASTART:MOVAX,DATAMOV DS,AXﻩ MOV AL,10000000BﻩMOVDX,28BHOUT DX,AL;8255初始化LOP: MOVAL,3FH;将0的段码输出给A口ﻩ MOV DX,288Hﻩ OUT DX,ALﻩ MOV AL,08H;输出位码给C口ﻩ MOV DX,28AHﻩ OUT DX,ALﻩﻩCALL DELAY;延时程序ﻩMOV AL,06H ;将1的段码输出的A口ﻩ MOVDX,288Hﻩ OUTDX,ALﻩMOVAL,04H;输出选通位码ﻩ MOV DX,28AHOUT DX,ALﻩ CALL DELAYﻩ MOV AL,7FH ;将8的段码输出的A口ﻩ MOVDX,288HOUTDX,ALﻩMOV AL,02H;输出选通位码MOV DX,28AHOUT DX,ALCALL DELAYMOV AL,06H;将8的段码输出的A口MOVDX,288Hﻩ OUT DX,ALﻩﻩ MOVAL,01H ;输出选通位码MOVDX,28AHOUT DX,ALcall DELAYﻩ MOV AH,0BH;检查键盘是否有输入ﻩ INT21HCMP AL,0ffhJZ ENDING ;有则退出ﻩ JMPLOPENDING:MOVAL,00HMOV DX,28AHOUT DX,ALMOV AX,4C00HINT21HDELAYPROC NEARPUSH CXPUSHBXMOV BX,005H ;250×65535LP2: MOV CX,0fFFFHLP1:LOOP LP1DEC BXJNZ LP2POP BXPOP CXRETDELAY ENDPﻩCODE ENDSENDSTARTﻩﻩc)实验五STACK SEGMENTSTACK 'STACK'DB 100DUP(?)STACK ENDSDATA SEGMENTKEYVALUE DB71H,7CH,07H,4FH;键盘值对应的段码表,LINE0DB 79H,77H,7DH,5BH ;LINE1DB5EH,6FH,6DH,06H ;LINE2DB 39H,7FH,66H,3FH;LINE3ROWDB0EFH,0DFH,0BFH,7FHDATA ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK,DS:DATASTART:MOV AX,DATAMOVDS,AXﻩMOV AL,10000001B;C口高4位接键盘行输出,低4位列输入,A口输出MOV DX,28BHOUT DX,ALLEA BX,KEYVALUEMOV SI,0ﻩSCANROW:MOVAL,ROW[SI] ;扫描行MOV DX,28AHOUT DX,AL ;输出行CALL DELAY ;延迟消抖IN AL,DX;读取列ﻩﻩ AND AL,0FHCMP AL,0FHJZ NEXT ;此行无键按下CMP AL,0EHJZLINE0 ;按下第0列的键ﻩCMP AL,0DHJZLINE1;按下第1列的键CMP AL,0BHJZ LINE2;按下第2列的键JMP LINE3NEXT: INC SICMP SI,4ﻩJBNEXT1MOV SI,0NEXT1:JMP SCANROWLINE0:MOV CL,[BX+SI+0];查表或许按下的键相应的输出段码JMP OUTPUTLINE1:MOV CL,[BX+SI+4]JMP OUTPUTLINE2:MOV CL,[BX+SI+8]JMPOUTPUTLINE3:MOV CL,[BX+SI+12]OUTPUT:CMP CL,3FH ;检查是否是0,是0就退出JZENDINGMOV AL,CLMOVDX,288H;传送段码给A口OUT DX,ALﻩ MOVAL,01H ;传送位码给B口MOV DX,289HOUTDX,ALﻩ MOV SI,0JMP SCANROW;继续扫描ﻩENDING:MOVAL,00MOV DX,289HOUT DX,ALMOV AX,4C00HINT21HﻩDELAY PROC NEARPUSH CXPUSHBXﻩ MOV BX,1;250×65535LP2: MOVCX,0FFFHLP1: LOOP LP1DEC BXJNZ LP2POPBXPOPCXRETDELAYENDPﻩCODEENDSENDSTARTﻩ六、实验总结在这三次实验中出现的问题以及相应的解决方法如下:实验三:一开始没法用开关控制LED的亮灭,程序一运行就直接退出了,检查代码发现自己的退出条件写错了,修改后就能正常工作了。

相关文档
最新文档