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

合集下载

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

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

北京邮电大学微机原理硬件实验报告实验报告一: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. 实现用数码管显示数字的功能最后,我们将流水灯程序变更为用数码管显示数字的程序。

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

(完整版)北航微机原理实验报告

(完整版)北航微机原理实验报告

微计算机原理及运用实验报告目录实验一:I/O地址译码实验 (4)一、实验目的 (4)二、实验原理和内容 (4)三、实验程序 (4)四.实验总结 (5)实验二:8255并行接口实验 (6)一、实验目的 (6)二、实验原理和内容 (6)三、程序框图 (7)四.实验程序 (7)五.实验总结 (8)实验三:键盘显示控制实验 (9)一、实验目的 (9)二、实验内容及原理 (9)三、流程图 (10)四.程序 (10)五.实验总结 (13)实验四:8254定时器/计数器实验 (14)一、实验目的 (14)二、实验原理和内容 (14)三、实验程序 (14)四.实验总结 (15)实验五:继电器控制实验 (16)一、实验目的 (16)二、实验原理和内容 (16)三、实验中使用的程序 (16)四.实验总结 (18)实验六:DMA传送 (18)一、实验目的 (18)二、实验原理和内容 (18)三、程序 (19)四.实验总结 (20)实验七:8259 中断控制实验 (20)一、实验目的 (20)二、实验原理和内容 (21)三、流程图 (21)四.程序 (21)五.实验总结 (25)实验八:8255中断实验 (25)一、实验目的 (25)二、实验原理和内容 (25)三.实验程序 (26)四.实验总结 (27)实验一:I/O地址译码实验一、实验目的掌握I/O地址译码电路的工作原理。

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

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

附图1 I/O地址译码电路利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

北邮微机原理实验报告

北邮微机原理实验报告

北邮微机原理实验报告微原软件实验报告班级:序号:学号:姓名:实验⼆分⽀,循环程序设计⼀.实验⽬的: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的指令运⾏,内存的数据存储与读取,整个程序运⾏的本质过程有了更加透彻的了解和认识。

微机原理硬件实验报告

微机原理硬件实验报告

微机原理课程实验报告实验题目简易微型计算机控制系统的设计与接口芯片的使用,8259A、8254、8255A、8251A 的联合编程。

实验目的掌握简易微型计算机控制系统的设计和搭建的步骤和方法,理解并使用8259A、8254、8255A、8251A接口芯片进行联合编程,实现双机通讯、基本输入输出、计数\定时、中断响应的基本功能,在此基础上,达到实验设计构想。

设计思路1. 使用两台实验装置,一台为发送机,一台为接收机,进行两机间的串行通讯。

2. 运行各自对应程序后,发送机在DOS界面下显示开始信息“START”,接收机显示程序启动、等待接受的信息“BEGUN,RECEIVING INFO”。

3. 输入控制指令“TURN”(8路LED灯轮流闪动,每次灯闪0.5s),或“BLINK”(8路LED灯一同闪动,每次灯闪0.5s),或“FORWARD”(8路LED从两边向中间闪动,每次灯闪0.5s),回车后则接收机上8路LED灯出现各自对应效果,屏幕上显示“IT’S SHOW TIME”。

4. 显示15次(1min)后,演示结束,接收机LED灯出现OVER状态(每隔一灯亮),屏幕上显示“SHOW OVER”,并将结果传回发送机,发送机屏幕上显示同样内容。

5. 按ESC键退出程序。

程序思路分为发送机程序和接收机程序两大部分发送机程序思路(SENDER.ASM)1. 程序启动时显示提示信息。

指令字符串、提示信息的输入、显示、存储操作采用INT 21H的DOS中断功能调用。

2. 得到指令字符串后,判断其类型后,向发送机发送指令类型,功能实现通过8251A的双机通信,S/R(发送机、接收机,下同)设置相同的波特率、数据格式(1个停止位、偶检验、字符长度8位),均允许收发数据。

3. 发送完指令类型后,开始等待接收演示结束的指令。

4. 程序结束。

综上,发送机端主要用到8255的基本输入输出、8251A的双机串行异步通信、DOS功能调用等主要功能。

北邮微机原理实验报告

北邮微机原理实验报告

微原软件实验报告班级:序号:学号:姓名:实验二分支,循环程序设计一.实验目的: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的指令运行,内存的数据存储与读取,整个程序运行的本质过程有了更加透彻的了解和认识。

在本次实验中,主要对顺序结构,分支结构以及循环结构有了初步的运用,程序编写的关键是流程图,当对题目有了分析并且设计出了条理清晰,步骤较为详细的流程图之后,只要对照图写就很快:顺序执行下来的地方用顺序结构,有判断的地方用分支结构,有循环执行的地方用循环结构,整个程序的框架就构建完成,剩下的就是变量、寄存器以及内存空间的读写了。

微原硬件北邮

微原硬件北邮

微原硬件实验报告班级:2010211101 班学号:102100班内序号:姓名:实验一I/O地址译码一.实验目的掌握I/O地址译码电路的工作原理二.实验内容当cpu执行I/O指令且地址哎280H~2BFH范围内,译码器选中,必有一根译码器输出负脉冲,利用这个负脉冲控制L7闪烁发光,时间间隔通过软件实现。

三.源程序代码i oport equ 00houtport1 equ ioport+2a0houtport2 equ ioport+2a8hcode segmentassume cs:codestart:mov dx,outport1out dx,al ;将al中的数值输出到地址为dx的端口call delaymov dx,outport2out dx,alcall delaymov ah,1int 16h ;16h为中断向量标号je start ;mov ah,4chint 21hdelay proc nearmov bx,200lll: mov cx,0ll: loop lldec bxjne lllretdelay endpcode endsend start四.实验收获和体会通过这次实验,我对I/O地址译码器的工作原理有了了解,对软件和硬件的配合操作有了初步认识。

实验二简单并行接口一.实验目的掌握简单并行接口的工作原理及使用方法二.实验原理及内容编程从键盘输入一个符号或者数字,将其ASCII码通过这个输出接口输出,根据八个发光二极管发光情况验证正确性。

三.程序流程图四.源程序代码ls273 equ 2a8hcode segment assume cs:code start: mov ah,2mov dl,0dhint 21hmov ah,1int 21hcmp al,27je exitmov dx,ls273out dx,aljmp start exit: mov ah,4chint 21hcode ends五.实验心得与体会该实验是第一次实验课和实验一一起做的,也比较简单,只是熟悉了一下并行接口的工作原理,用的的芯片业非常简单。

微机硬件实验报告

微机硬件实验报告

微机硬件实验报告
《微机硬件实验报告》
实验目的:通过对微机硬件的实验,掌握微机硬件的基本原理和操作方法,提高对计算机硬件的理解和实际操作能力。

实验内容:本次实验主要涉及微机硬件的组装与拆卸、硬盘安装与分区、内存条的安装与更换、CPU的安装与更换等内容。

实验过程:首先,我们对微机硬件进行了组装与拆卸实验,通过拆卸和重新组装计算机主机的过程,了解了各个硬件组件的位置和连接方式。

接着,我们进行了硬盘的安装与分区实验,掌握了硬盘的安装方法和分区操作。

然后,我们进行了内存条的安装与更换实验,学会了如何正确安装和更换内存条。

最后,我们进行了CPU的安装与更换实验,了解了CPU的安装步骤和注意事项。

实验结果:通过本次实验,我们对微机硬件有了更深入的了解,掌握了微机硬件的基本原理和操作方法。

我们能够熟练地进行微机硬件的组装与拆卸、硬盘的安装与分区、内存条的安装与更换、CPU的安装与更换等操作。

实验结论:微机硬件实验是非常重要的,通过实际操作,我们能够更好地理解和掌握微机硬件的知识,提高我们对计算机硬件的理解和实际操作能力。

希望通过这次实验,我们能够更加熟练地掌握微机硬件的操作方法,为今后的学习和工作打下坚实的基础。

微机硬件实验报告

微机硬件实验报告

微机硬件实验报告篇一:计算机硬件实验报告 (6000字)计算机硬件技术实验报告第四次和第五次实验姓名:李新基学号:XX010630实验班号:23 机器号:39目录实验四. 中断技术 ................................................ ............................. (3)一.实验目的 ................................................ ............................. (3)二.实验基本任务 ................................................ ................................................... ............ 3 1. 中断响应过程的理解 ............................................................................. (3)2. 中断程序编程练习 ................................................ ............................. (6)三、已完成的选作任务。

.............................................. ............................. (8)1. 6)(选做)去掉l4_int.c程序最后的那条无限循环语句,看看有什么现象?可以去掉吗? .............................................. ............................. (8)3. (选做) 采用事件标志处理中断 ................................................ ............................. (8)4.(选做) 按键抖动处理 ................................................ ............................. (10)实验五. 基本时钟和定时功能 ................................................ ............................. (11)一.实验目的 ................................................ ............................. (11)二.实验基础任务。

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

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

北京邮电大学实验报告题目:微机原理软件实验三班级: 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的功能。

北邮微原硬件实验报告

北邮微原硬件实验报告

2013年微机原理硬件实验报告学院:信息与通信工程学院班级:2011211104姓名:实验一 I/O地址译码一.实验目的掌握I/O地址译码电路的工作原理。

二.实验原理和内容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输出一个负脉冲。

原理:地址2A0H的A5,A4,A5为100,在输入或输出时,IOW或IOR为0,使得74LS138被选中,经过译码,在Y4口输出负脉冲。

其他同理。

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

2.接线: Y4/IO地址接 CLK/D触发器Y5/IO 地址 接 CD/D 触发器D/D 触发器 接 SD/D 角发器 接 +5VQ/D 触发器 接 L7(LED 灯)或 逻辑笔三.程序流程图四.源程序DATASEGMENT DATAENDSSTACKSEGMENT STACK 'STACK'DB 100H DUP(?) STACKENDS否CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK;延时子程序DELAY PROC NEARMOV BX,500PUSH CXLOOP2: MOV CX,0FFFHWAIT: LOOP WAITDEC BXJNZ LOOP2POP CXRETDELAY ENDPSTART: MOV CX,0FFFFH;二极管闪烁部分LOOP1: MOV DX,2A0H ;灯亮OUT DX,ALCALL DELAYMOV DX,2A8H ;灯灭OUT DX,ALCALL DELAYLOOP LOOP1CODE ENDSEND START五.实验结果LED7正常闪烁显示六.实验总结这是我们第一次做微原硬件实验,我开始一直觉得编程很重要,发现按照实验要求很快就编出了程序,完成了实验,但是当给老师验收时,老师问我为什么向2A0口输出一下,就会在Y4产生一个负脉冲,我瞬间就僵住了,的确我没有考虑过这个问题。

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

微机原理硬件实验报告专业通信工程班级姓名学号班内序号报告日期 2013年10月~12月目录实验一、实验二 (2)实验三、实验四 (7)实验八 (14)实验十六 (24)实验一、实验二一、实验目的1.掌握I/O地址译码电路的工作原理。

2.掌握简单并行接口的工作原理及使用方法。

二、实验原理及内容实验一:I/O地址译码1.编程控制LED灯闪烁2.译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,…… 当CPU执行I/O指令且地址在280H~2BFH范围内,译码器被选中,必有一根译码线输出负脉冲。

要使译码电路正常工作,必须使使能端处于低电平。

即A6=A8=0,A7=A9=1,AEN=0,IOW与IOR不可同时为1(即不能同时读写)。

当要从Y4输出低脉冲时,A5A4A3=100;从Y5输出时,A5A4A3=101。

因此,当Y4输出时,应设置值A9~A0=1010100000B=2A0H;Y5输出时,应设置值A9~A0=1010101000B=2A8H。

执行下面两条指令:MOV DX,2A0HOUT DX,AL延时一段时间(delay);执行下面两条指令;MOV DX,2A8HOUT DX,AL再延时一段时间,然后循环上述步骤。

利用这两个负脉冲及延迟来控制L7闪烁发光,时间间隔通过软件延时实现。

实验二:简单并行接口1、74LS273插通用插座,74LS32用实验台上的“或门”。

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

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

三、硬件连接图和软件流程图实验一:I/O地址译码图1-1 硬件连接图其中,Y4/IO地址接CLK/D触发器Y5/IO地址接CD/D触发器D/D触发器接SD/D角发器接+5VQ/D触发器接L7(LED灯)或逻辑笔图1-2 软件流程图实验二:简单并行接口图1-3 硬件连接图图1-4 软件流程图四、源程序及注释实验一:I/O地址译码CODE SEGMENTASSUME CS:CODESTART:MOV DX,X ;设定A9~A0的值OUT DX,AL ;Y4端口输出一个负脉冲CALL DELAY ;调用延时子程序MOV DX,Y ;设定A9~A0的值OUT DX,AL ;Y5端口输出一个负脉冲CALL DELAY ;调用延时子程序MOV AH,1 ;调用1号DOS功能,等待键盘输入INT 16HJE START ;若有键盘输入则退出程序,否则继续循环MOV AH,4CHINT 21HDELAY PROC NEAR ;延时子程序MOV BX,200A: MOV CX,0B: LOOP BDEC BX ;BX自减1JNE ARETDELAY ENDPCODE ENDSEND START实验二:简单并行接口code segmentassume cs:codestart: mov ah,01h ;输入一个字符int 21hcmp al,1bhjz exit ;判断是否是ESC,是则退出mov dx,2a8hout dx,aljmp startexit: mov ax,4c00hint 21hcode endsend start五、实验结果实验一:I/O地址译码发光二极管以一定的频率闪灭交替(频率可以通过修改延时子程序的参数来改变),按‘ESC’退出。

实验二:简单并行接口在键盘上键入字符后,8个LED灯成功显示对应的ASCII(‘1’亮,‘0’灭),键入“ESC”后程序成功退出。

六、实验收获及心得体会这门实验弱化了对代码的要求,侧重硬件的接线,以及对译码原理的理解等。

实验三、实验四一、实验目的1、通过实验,掌握8255工作方式0以及设置A口为输出口,C口为输入口的方法。

2、掌握数码管显示数字的原理二、实验内容及原理1、8255芯片工作原理:1)8255的工作方式:一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。

方式0是基本型输入/输出。

这种方式和外设交换数据时,8255端口与外设之间不使用联络线。

方式1为选通型输入/输出。

用这种方式和外界交换数据时,端口和外设之间要有联络信号。

方式2是双向数据传送,仅A口有这项功能。

当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。

2 )工作方式选择字8255工作方式选择字共8位(如图3-1),存放在8255控制寄存器中。

最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。

根据上图,方式控制字应为:10000000B,即80H。

8255控制寄存器端口地址--28BH, A口的地址--288H, B口的地址--289H,C口的地址--28AH。

2、七段数码管及接线图:1)静态显示:将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。

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

)2)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

七段数码管的字型代码表如下表:图2-1 8255方式控制字(向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。

)图2-2 数码管字型代码三、硬件接线图及软件流程图实验三:可编程并行接口8255图2-3 硬件连接图接线:PC7~PC0/8255 接K7~K0/逻辑电平开关PA7~PA0/8255 接L7~L0/LED显示CS/8255 接Y1/IO地图2-4软件流程图实验四:七段数码管图2-5硬件连接图接线:PA7~PA0/8255 接dp~a/LED数码管PC3~PC0/8255 接S3~S0/LED数码管CS/8255 接Y1/IO地址图2-6软件流程图四、源程序及注释实验三:可编程并行接口8255code segmentassume cs:codestart: mov dx,28BH ;设8255为C口输入,A口输出mov al,89hout dx,alinout: mov dx,28AH ;从C口输入一数据in al,dxmov dx,288H ;从A口输出刚才自C口输入的数据out dx,almov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自C口输入,A口输出mov ah,4ch ;否则返回DOSint 21hcode endsend start实验四:七段数码管DATA SEGMENT ;数据段SHOW DB 06H,66H,6FH,06H ;1491COUNT EQU $-SHOWCAT DB 01h;选通信号,可以不赋初值DATA ENDSSTACK SEGMENT STACK'STACK'DB 100H DUP(?)STACK ENDS ;代码段CODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXNEXT: MOV CX,COUNTLEA BX,SHOWMOV CAT,01H ;选通信号,最先点亮第1个数字AGAIN: MOV AL,80H ;写控制器,方式选择;A、B口方式0输出MOV DX,28BHOUT DX,ALMOV AL,CATMOV DX,28AH ;C口为数码管选通端口OUT DX,ALMOV AL,[BX]MOV DX,288H ;A口为8段数码管OUT DX,AL ;依次显示学号后四位数字INC BXSHL CAT ,1LOOP AGAINMOV AH,0BH ;检测键盘缓冲区INT 21HOR AL,ALJZ NEXTRETSTART ENDPCODE ENDSEND START五、实验结果实验三:可编程并行接口8255拨码开关控制灯的亮灭。

实验四:七段数码管在数码管上显示0195。

六、实验总结及心得体会刚开始调试时,数码管上四个数字无法静态显示,一开始以为是分频系数的问题,于是调整了分频系数。

但是把分频系数改小了之后,就出现了4个9,也就是出现了残影。

经过分析和讨论之后,找出了问题所在:没有对数码管进行清零。

改正之后显示正常。

实验八可编程定时器/计数器一、实验目的学习掌握8253用作定时器的编程原理。

二、实验内容及原理1、8253芯片1)8253初始化使用8253前,要进行初始化编程。

初始化编程的步骤是:A、向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。

B、向使用的计数器端口写入计数初值。

2)8253控制字:图3-1 8253控制字附:8253控制寄存器地址283H 计数器0地址280H计数器1地址281H 计数器2地址282H定时器可工作在方式3下。

综上所述,设置控制字为:00111110B,即选择零号计数器,先读/先写低8位、再读/写高8位,选择方式3,计数初值为二进制。

2、音乐产生原理由参考资料中的音符与频率对应表,根据计数器的性质,利用公式,使用MATLAB矩阵运算可以快速计算出七种音符在高中低音时计数器应该对应的初始计数值,如下表所示。

图3-2 音符频率图三、硬件连接图及软件流程图如下图所示(虚线为实际要接的线路):图3-3 硬件接线图接线:CS /8253 接Y0 /IO 地址GATE0 /8253 接+5VCLK0 /8253 接1M时钟OUT0 /8253 接喇叭或蜂鸣器图3-4 软件流程图四、源代码及注释DATA SEGMENTBUF DB '115566544332215544332554433211556654433221';小星星乐谱LTH EQU $-BUF ;乐谱长度DATA ENDSSTACK SEGMENTDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKDELAY PROC NEAR ;延时子程序PUSH CX ;避免改变原始CX值,将其压入堆栈MOV CX,0FFFFH ;光靠设置CX的值延时还不够长LENGTH: MOV AX,50 ;嵌套循环,总循环长度为AX*CX WAIPRO: DEC AXJNZ WAIPROLOOP LENGTHPOP CX ;提取原CX值RETDELAY ENDPSTART: ;主程序MOV AX,DATAMOV DS,AXMOV AL,80H ;控制字写入MOV DX,28BHOUT DX,AL ;初始化8255MOV DX,283HMOV AL,00111110BOUT DX,AL ;初始化8253;8253工作于计数器0,先读低8再读高8,方式3,二进制;8255工作于工作方式0BEGIN:MOV BX,OFFSET BUF ;载入音谱MOV CX,LTH ;根据音谱长度设定循环变量PRO:MOV AL,[BX] ;载入音符ADD BX,1 ;准备载入下一个音符CMP AL,31H ;通过比较ASCII码,读取单个音符JZ N1 ;跳往DOCMP AL,32HJZ N2CMP AL,33HJZ N3CMP AL,34HJZ N4CMP AL,35HJZ N5CMP AL,36HJZ N6CMP AL,37HJZ N7CMP AL,38HJZ N8PRO2:LOOP PROJMP FIN ;音乐播完N1: JMP DO ;由于程序过长,此处设置跳转中转处N2: JMP REN3: JMP MIN4: JMP FAN5: JMP SON6: JMP LAN7: JMP SIIN8: JMP DOIDO: MOV DX,280H ; 设置零号计数器的初始值MOV AL,42H ; 42H是通过公式算得的初始值低8位OUT DX,ALMOV AL,0FH ;高8位OUT DX,ALMOV DX,28AH ;数码管清零MOV AL,00HOUT DX,ALMOV DX,288H ;给数码管送出1的段码MOV AL,06HOUT DX,ALMOV DX,28AH ;给数码管送出位码(最高位显示)MOV AL,08HOUT DX,ALCALL DELAY ;调用延时子程序,以免乐谱播放过快JMP PRO2 ;准备接收下一个音符;以下代码解释雷同RE: MOV DX,280HMOV AL,90HOUT DX,ALMOV AL,0DHOUT DX,ALMOV DX,28AHMOV AL,00HOUT DX,ALMOV DX,288HMOV AL,5BHOUT DX,ALMOV DX,28AHMOV AL,08HOUT DX,ALCALL DELAYJMP PRO2MI: MOV DX,280HMOV AL,34HOUT DX,ALMOV AL,0CHOUT DX,ALMOV DX,28AHMOV AL,00HOUT DX,ALMOV DX,288HMOV AL,4FHOUT DX,ALMOV DX,28AHMOV AL,08HOUT DX,ALCALL DELAYJMP PRO2FA: MOV DX,280HMOV AL,74HOUT DX,ALMOV AL,0BHOUT DX,ALMOV DX,28AHMOV AL,00HOUT DX,ALMOV DX,288HMOV AL,66HOUT DX,ALMOV DX,28AHMOV AL,08HOUT DX,ALCALL DELAYJMP PRO2 SO: MOV DX,280HMOV AL,2CHOUT DX,ALMOV AL,0AHOUT DX,ALMOV DX,28AHMOV AL,00HOUT DX,ALMOV DX,288HMOV AL,6DHOUT DX,ALMOV DX,28AHMOV AL,08HOUT DX,ALCALL DELAYJMP PRO2N9: JMP BEGIN ;代码跳转中转处LA: MOV DX,280HMOV AL,28HOUT DX,ALMOV AL,09HOUT DX,ALMOV DX,28AHMOV AL,00HOUT DX,ALMOV DX,288HMOV AL,7DHOUT DX,ALMOV DX,28AHMOV AL,08HOUT DX,ALCALL DELAYJMP PRO2 SII: MOV DX,280HMOV AL,24HOUT DX,ALMOV AL,08HOUT DX,ALMOV DX,28AHMOV AL,00HOUT DX,ALMOV DX,288HMOV AL,07HOUT DX,ALMOV DX,28AHMOV AL,08HOUT DX,ALCALL DELAYJMP PRO2 DOI: MOV DX,280HMOV AL,0A2HOUT DX,ALMOV AL,07HOUT DX,ALMOV DX,28AHMOV AL,00HOUT DX,ALMOV DX,288HMOV AL,75HOUT DX,ALMOV DX,28AHMOV AL,08HOUT DX,ALCALL DELAYJMP PRO2FIN: MOV DX,280H ;乐谱播完,进入静音状态,设置初值MOV AL,0AH ;发出超声波(人耳听不到),低8位OUT DX,ALMOV AL,00H ;高8位OUT DX,ALMOV AH,01H ;调用1号DOS功能,等待键盘输入INT 21HCMP AL,1BH ;是否输入“ESC”JNZ N9 ;是则退出,否则进行下一次播放MOV AH,4CH ;程序结束,返回DOS界面INT 21HCODE ENDSEND START五、实验结果喇叭播放音乐,数码管上显示乐谱,按ESC退出播放。

相关文档
最新文档