北邮-微原硬件实验报告

合集下载

北邮-通信工程-微机原理与接口技术-硬件实验-实验报告

北邮-通信工程-微机原理与接口技术-硬件实验-实验报告

微机原理硬件实验报告学院:信息与通信工程学院专业:通信工程班级:学号:班内序号:姓名:实验一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输出一个负脉冲。

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

2、接线:Y4/IO地址接CLK/D触发器Y5/IO地址接CD/D触发器D/D触发器接SD/D角发器接+5VQ/D触发器接L7(LED灯)或逻辑笔三、硬件接线图与软件程序流程图1、硬件接线图2、软件程序流程图四、源程序DATA SEGMENTDATA ENDSSTACK SEGMENT STACK 'STACK'DB 100H DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKDELAY1 PROC NEAR ;延时子程序MOV BX,500HPUSH CXLOOP2: MOV CX,0FFFHWAIT1: LOOP WAIT1DEC BXJNZ LOOP2POP CXRETDELAY1 ENDP;L7闪烁START: MOV CX,0FFFFH ;最大可循环次数LOOP1: MOV DX,2A0H ;灯亮OUT DX,ALCALL DELAY1MOV DX,2A8H ;灯灭OUT DX,ALCALL DELAY1LOOP LOOP1 ;循环闪烁CODE ENDSEND START五、实验结果灯L7闪烁,一段时间后停止。

北邮微原硬件实验报告

北邮微原硬件实验报告

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或I OR为0,使得74LS138被选中,经过译码,在Y4口输出负脉冲。

其他同理。

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

2.接线:Y4/IO地址接CLK/D触发器Y5/IO 地址 接 CD/D 触发器D/D触发器 接 SD/D 角发器 接 +5VQ /D 触发器 接 L7(L ED 灯)或 逻辑笔三.程序流程图四.源程序DA TA ﻩSE GMENTD ATA ﻩﻩENDSST ACK SE GME NT ST ACK 'STA CK'DB 100H DU P(?)STA CK ENDS否CODE SEGMENTﻩASSUME ﻩCS:CODE,DS:DATA,SS:STACK;延时子程序DELAYPROCﻩNEARﻩMOV BX,500ﻩPUSHﻩCXLOOP2: ﻩMOV CX,0FFFHWAIT: LOOPWAITﻩﻩDECBXﻩﻩJNZ LOOP2POPﻩCXﻩRETDELAYﻩENDPSTART:ﻩﻩMOV CX,0FFFFHﻩ;二极管闪烁部分LOOP1: MOV DX,2A0H ﻩ;灯亮ﻩOUT DX,ALﻩCALL ﻩDELAYﻩﻩMOVDX,2A8Hﻩ;灯灭ﻩOUT ﻩDX,ALﻩCALL DELAYﻩﻩLOOPLOOP1CODE ﻩﻩENDSEND START五.实验结果LED7正常闪烁显示六.实验总结这是我们第一次做微原硬件实验,我开始一直觉得编程很重要,发现按照实验要求很快就编出了程序,完成了实验,但是当给老师验收时,老师问我为什么向2A0口输出一下,就会在Y4产生一个负脉冲,我瞬间就僵住了,的确我没有考虑过这个问题。

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

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

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

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

北京邮电大学微机原理与接口技术硬件实验报告

北京邮电大学微机原理与接口技术硬件实验报告

信息与通信工程学院微机原理与接口技术硬件实验报告班级:姓名:学号:序号:日期: 2015-10-30——2015-12-26目录实验一I/O地址译码 (3)一、实验目的 (3)二、实验原理及内容 (3)三、硬件接线图与软件程序流程图 (3)四、源程序 (4)五、实验结果 (5)六、实验总结 (5)七、实验收获与心得体会 (5)实验二简单并行接口 (5)一、实验目的 (5)二、实验原理及内容 (5)三、硬件接线图与软件程序流程图 (6)四、源程序 (6)五、实验结果 (7)六、实验总结 (7)七、实验收获与心得体会 (7)实验四七段数码管 (7)一、实验目的 (7)二、实验原理及内容 (8)三、硬件接线图与软件程序流程图 (8)四、源程序 (9)五、实验结果 (11)六、实验总结 (11)七、实验收获与心得体会 (11)实验八可编程定时器/计数器(8253/8254) (11)一、实验目的 (11)二、实验原理及内容 (11)三、硬件接线图与软件程序流程图 (12)四、源程序 (13)五、实验结果 (17)六、实验总结与思考题 (17)七、实验收获与心得体会 (17)实验十六串行通讯8251 (18)一、实验目的 (18)二、实验原理及内容 (18)三、硬件接线图与软件程序流程图 (18)四、源程序 (19)五、实验结果 (22)六、实验总结与思考题 (22)七、实验收获与心得体会 (22)实验一 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范围内,译码器选中,必有一根译码线输出负脉冲。

北邮微机原理实验报告

北邮微机原理实验报告

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

推荐-北邮—微原软件实验报告 精品

推荐-北邮—微原软件实验报告 精品

微机原理软件实验报告学院:信息与通信工程学院班级:班内序号:姓名:学号:实验二分支,循环程序设计一.实验目的:1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS 功能调用.二.实验内容:1.安排一个数据区(数据段),内存有若干个正数,负数和零.每类数的个数都不超过9.2.编写一个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显示.三.预习题:1.十进制数0 -- 9 所对应的ASCII 码是什么? 如何将十进制数0 -- 9 在屏幕上显示出来?答:0—9对应的ASCII 码是30H—39H;在屏幕上显示0—9,需要将对应字符的ASCII 码赋给DL,并进行DOS的2号功能调用,0—9的ASCII 码正是其本身的数值加上30H。

2.如何检验一个数为正,为负或为零? 你能举出多少种不同的方法?答:①用CMP命令和0比较,如果ZF为1,则该数为零;再用该数和8000H相与,取出符号位判断,可区分正负;②用CMP命令和0比较,结果不小于0时用JGE命令进行跳转,否则为负数;用JGE 命令跳转后,如果为0再用JZ命令跳转,否则为正数。

四.选作题:统计出正奇数,正偶数,负奇数,负偶数以及零的个数.五.实验过程1.流程图2.源代码DATA SEGMENTNUM DW 0,0,1,2,3,4,5,101,-6,-7,-8,-8,-9 ;有2个0,6 个正数,5 个负数N DW ($-NUM)/2 ;该组数据的个数Z DB 0 ;0 的个数P DB 0 ;正数的个数PO DB 0 ;正奇数的个数PE DB 0;正偶数的个数M DB 0 ;负数的个数MO DB 0;负奇数的个数ME DB 0 ;负偶数的个数STR0 DB 'number of zeros : $' ;STR0-4为用于显示的字符串STR1 DB 0DH, 0AH, 'number of positive numbers : $'STR2 DB 0DH, 0AH, 'number of negative numbers : $'STR3 DB 0DH, 0AH, ' odd : $'STR4 DB ' even : $'DATA ENDSSTACK SEGMENT STACKDW 100 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DATA, SS:STACK, CS:CODESTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AX ;初始化DS、SSLEA BX, NUM ;将NUM 中第一个数字的地址送入BXMOV CX, N ;将数据个数送入CXAGAIN: MOV AX, [BX] ;取出NUM 中的第一个数字CMP AX, 0 ;和0比较JGE PLU ;大于等于0时转PLUINC M ;负数的个数加1TEST AX, 1 ;检测该数据最低位是否为1,即是否为负奇数JNZ MINODD ;ZF为0时转MINODD,该数为负奇数INC ME ;负偶数个数加1JMP NEXTMINODD: INC MO ;负奇数个数加1JMP NEXTPLU: JZ ZER ;等于0时转ZERINC P ;正数个数加1TEST AX, 1 ;检测该数据最低位是否为1,即是否为正奇数JNZ PLUODD ;ZF为0时转PLUODD,该数为正奇数INC PE ;正偶数个数加1JMP NEXTPLUODD: INC PO ;正奇数个数加1JMP NEXTZER: INC Z ;零的个数加1NEXT: ADD BX,2 ;偏移地址加2,指向下一数字LOOP AGAIN ;CX自减,CX≠0时继续循环DISPLAY: ;在屏幕上显示统计结果MOV AH, 09H ;9号功能调用,显示字符串MOV DX, OFFSET STR0 ;将字符串的首地址的偏移地址送到DX,DS已;是其段基址INT 21HMOV AH, 02H ;2号功能调用,显示单个字符MOV DL, Z ;将零的个数送到DLADD DL, 30H ;0—9数字本身加上30H即为其ASCII 码INT 21HMOV AH, 09H ;正数部分统计结果显示,原理同上MOV DX, OFFSET STR1INT 21HMOV AH, 02HMOV DL, PADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR3INT 21HMOV AH, 02HMOV DL, POADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR4INT 21HMOV AH, 02HMOV DL, PEADD DL, 30HINT 21HMOV AH, 09H ;负数部分统计结果显示,原理同上MOV DX, OFFSET STR2INT 21HMOV AH, 02HMOV DL, MADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR3INT 21HMOV AH, 02HMOV DL, MOADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR4INT 21HMOV AH, 02HMOV DL, MEADD DL, 30HINT 21HMOV AX, 4C00H ;返回DOSINT 21HCODE ENDSEND START3.运行结果数据为:0,0,1,2,3,4,5,101,-6,-7,-8,-8,-9运行结果:zero表示零的个数,为2;positive number表示正数的个数,为6,其中奇数odd为4个,偶数even为2个;negative number表示负数的个数,为5,其中奇数odd为2个,偶数even 为3个。

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

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

微机原理与接口技术硬件实验报告姓名:曹爽学号:2013210640班级:20132111242016年1月10日目录实验一:熟悉实验环境及IO的使用 (3)一、实验目的 (3)二、实验内容及要求 (3)三、实验步骤 (3)四、程序流程图 (4)五、源代码 (4)六、思考题 (5)七、实验结果和心得体会 (6)实验二:8255A并行接口应用 (7)一、实验目的 (7)二、实验内容及要求 (7)三、实验步骤 (8)四、程序流程图 (9)五、源代码 (10)六、实验结果和心得体会 (14)实验三:8253计数器/定时器的应用 (15)一、实验目的 (15)二、实验内容及要求 (15)三、8253定时器 (15)四、电路的调试与连接 (16)五、实验连接图 (16)六、程序流程图 (18)七、源代码 (19)八、思考题 (21)九、实验结果和心得体会 (21)实验一:熟悉实验环境及IO的使用一、实验目的1.通过实验了解和熟悉实验台的结构、功能及使用方法。

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

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

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

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

(使用EDIT编辑工具)实现功能。

A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。

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

注意:电源打开时不得插拔电缆及各种器件。

连接电路时一定要在断电的情况下连接,否则可能会烧坏整个实验系统。

三、实验步骤这里仅简要叙述利用EDIT工具编写汇编写跑马灯程序的步骤。

编写:C>EDIT 文件名.asm编译:C>MASM 文件名.asm连接:C>LINK 文件名.obj运行:C>文件名.exe或用Debug进行调试。

四、程序流程图图1.4.1 程序流程图五、源代码CODE SEGMENTASSUME CS:CODESTART: MOV AH,0FEH ;将初始灯设为右起第1灯亮LOOP0: MOV DX,0EEE0H ;将I/O端口地址设为EEE0IN AL,DX ;从端口读入数据,提取拨码开关右起第3位状态AND AL,20HCMP AL,20HJNZ STOP ;若状态为‘0’,则保持位置不变,暂停IN AL,DX ;提取拨码开关右起第2位状态AND AL,40HCMP AL,40HJNZ FAN ;若状态为‘0’,则右移亮灯位置ROL AH,1 ;左移亮灯位置STOP: JMP DISPFAN: ROR AH,1DISP: MOV AL,AHOUT DX,AL ;输出到端口,亮灯MOV CX,8000H ;外循环次数MOV BX,8000H ;内循环次数LOOP1: DEC BXJNZ LOOP1 ;内循环,BX减少到0MOV BH,80H ;重设内循环次数80H次IN AL,DXAND AL,10HCMP AL,10H ;提取拨码开关右起第4位状态JNZ S ;若为‘1’,则设置内循环次数为10H次MOV BH,10HS:LOOP LOOP1 ;外循环,CX减少到0IN AL,DXAND AL,80HCMP AL,80H ;提取拨码开关右起第1位状态JNZ LOOP0 ;若为‘0’,则继续显示,否则结束程序MOV AH,4CHINT 21HCODE ENDSEND START六、思考题通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。

北邮微原硬件实验报告

北邮微原硬件实验报告

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的功能。

微原硬件北邮

微原硬件北邮

微原硬件实验报告班级: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五.实验心得与体会该实验是第一次实验课和实验一一起做的,也比较简单,只是熟悉了一下并行接口的工作原理,用的的芯片业非常简单。

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即可显示。

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

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

北京邮电大学微机原理硬件实验报告实验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种速度、暂停、退出等功能。

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

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

北京邮电大学实验报告题目:微机原理软件实验三班级: 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. 实验五:串行通信操作•编写程序,实现串行通信的发送和接收操作。

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

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

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

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

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

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

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

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

北邮微原硬件实验

北邮微原硬件实验

信息与通信工程学院微原硬件实验报告姓名:班级:学号:班内序号:【一.基本的I/O实验】实验一 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输出一个负脉冲。

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

2、接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D角发器接 +5VQ/D触发器接 L7(LED灯)或逻辑笔三、硬件接线图及软件程序流程图1.硬件接线图2.软件程序流程图四、源程序DATA SEGMENTDATA ENDSSTACK SEGMENT STACK 'STACK'DB 100H DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK ;基本框架;延时子程序DELAY1 PROC NEARMOV BX,500HPUSH CXLOOP2: MOV CX,0FFFHWAIT1: LOOP WAIT1DEC BXJNZ LOOP2POP CXRETDELAY1 ENDPSTART: MOV CX,0FFFFH ;L7闪烁控制LOOP1: MOV DX,2A0H ;灯亮OUT DX,ALCALL DELAY1MOV DX,2A8H ;灯灭OUT DX,ALCALL DELAY1LOOP LOOP1 ;循环闪烁CODE ENDSEND START五、实验结果灯L7闪烁实验二简单并行接口一、实验目的掌握简单并行接口的工作原理及使用方法。

北邮 微机原理实验报告

北邮 微机原理实验报告

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

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

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

具体包括以下几个方面: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)。

微机原理硬件实验报告学院:信息与通信工程学院班级:2010xxxxxx班内序号:xx学生姓名:xxx学号:1021xxxx目录实验一熟悉实验环境及IO 的使用 (3)一、实验目的 (3)二、实验内容及要求 (3)三、操作步骤 (3)四、程序流程图 (5)五、源程序代码 (5)六、思考题 (7)七、心得体会与收获 (7)实验二8255A并行接口应用 (7)一、实验目的 (7)二、实验内容 (8)三、程序流程图 (11)四、源程序代码 (11)五、实验结果 (15)六、心得体会与收获 (15)实验三8253计数器/定时器的应用 (15)一、实验目的: (15)二、8253应用小结 (15)三、实验电路 (17)四、实验内容 (18)五、电路测试与连接 (18)六、程序流程图 (19)七、源程序代码 (20)八、实验心得与体会 (23)九、实验思考题 (24)实验四串行口8251A实验 (24)一、实验目的 (24)二、实验内容 (24)三、程序流程图 (26)四、源程序代码 (26)五、思考题 (28)六、实验总结 (28)实验一熟悉实验环境及IO 的使用一、实验目的1. 通过实验了解和熟悉实验台的结构,功能及使用方法。

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

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

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

B.通过输出端口控制灯的工作状态(低电平灯亮)注意:电源打开时不得插拔电缆及各种器件连接电路时一定要在断电的情况下连接,否则可能会烧坏整个实验系统三、操作步骤1.实验板的IO端口地址为E8E0H在Debug 下,I 是读命令。

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

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

相应位的对应关系以及对应状态都可以在DEBUG状态下进行调试得出结论2.在Debug环境下,用a命令录入程序,用g 命令运行C>Debug-amovdx,端口地址mov al,输出内容outdx, almovah,0bhint 21hor al, aljz0100int20h-g运行查看结果修改输出内容再运行查看结果分析movah, 0bhint 21horal,aljz 0100int20h该段程序的作用在该段程序中,ah=0b,所以此时执行int 21h的作用及时判断键盘是否有输入,al中存有判断结果,若无输入,则跳转至0100处继续执行,否则跳出程序,程序执行结束。

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

B.通过输出端口控制灯的工作状态(低电平灯亮)C>EDIT 文件名.asm录入程序按Alt 键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm连接文件C>LINK 文件名.obj运行文件或用Debug 进行调试。

需注意,与软件实验不同的是,在硬件实验中是直接使用了DOS操作系统,所以,不需再向对应文件夹中专门拷贝MASM和KINK程序,直接输入命令执行即可,否则程序报错。

另外,在实验中需要注意各位的对应关系,否则容易出现错误。

附录部分DOS 命令1.查看文件C>dir/pDir命令的帮助C>dir/?2.建立子目录C>md子目录名3. 进入子目录C>cd 子目录名4.退到上一级子目录C>cd..5. 退到根目录C>cd\6.复制文件C>co py 源文件盘符:源文件名 目标文件盘符:7. DOS 命令帮助C>h el p换盘命令(例:转换到E 盘):c d /d E:\编辑命令:edit 文件名四、程序流程图五、源程序代码DA T S EGM ENTNUM DB 0E FHﻩ ;LED 灯控制字 开始左移 右移D7=0D6=0CX 赋值亮LED调用延时结束N YNYDATENDSSTA SEGMENT 'STACK' STACKDB 100 DUP(?)STAENDSCOD SEGMENTASSUMECS:COD,DS:DAT,SS:STASTART PROC FARPUSH DS;初始化MOVAX,0PUSH AXMOVAX,DATMOV DS,AXMOVDX,0E8E0HﻩﻩLOOP0:IN AL,DX;读入拨码状态MOV AH,AL;保存拨码状态TEST AL,01Hﻩ;左一拨码控制继续/结束JZ GGﻩﻩ;检测AL=01H,若末位为0则跳转GG,结束TEST AL,02H;左二拨码控制继续/暂停JZ LOOP0ﻩﻩ;检测AL=02H,若对应位为0跳转LOOP0,暂停TEST AL,04H;左三拨码控制移动方向JZ RR ﻩ;检测AL=04H,若对应为为0跳转RR,右移ROL NUM,1ﻩ;否则,左移NUMJMP LOOP2RR:RORNUM,1LOOP2: AND AH,1FHﻩMOV CL,AHﻩ;将拨码状态作为延时计数,即可实现对速度的控制MOV CH,0MOVAL,NUMOUTDX,ALﻩ;输出INC CXﻩ;计数加一LOOP1:CALL DELAYﻩ;延时LOOP LOOP1JMP LOOP0ﻩ;循环GG: RETFﻩ;返回,程序结束STARTENDPDELAY PROC;DELAY子程序PUSH CX ;保留现场MOVCX,008FFHD1:PUSHCXMOV CX,004FFHD2:LOOP D2;经过实验,这样嵌套两次之后的循环产生的延时是符合要求的POP CXLOOP D1POP CXRETDELAY ENDPCOD ENDSENDSTART六、思考题通过实验说明用debug 中的a命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。

答:通过观察可以发现,编码时,凡是十六进制数据都是要加H的,而地址则不用。

这是因为编译时所能识别的数据有多种,为了保证编译正常进行,必须要告诉编译器数据的类型。

而地址只有默认的16进制形式,所以不需指定类型就能完成正确的编译,所以无须加H。

而在DEBUG环境下,它的默认数据格式就是十六进制的,所以就不需要写出“H”字符;否则通不过编译。

七、心得体会与收获在此次实验中,我实现了以下功能:跑马灯基本功能、点亮方向控制、速度控制、暂停并继续、检测电脑键盘输入控制是否结束程序。

在这次实验中,我们初步熟悉了在Debug环境下使用I/O命令,实现了在同一地址下对拨码开关状态的读取以及对发光二极管亮灭的控制,即初步尝试了对于微机接口的控制。

在开始编程之前,我在DEBUG功能下对拨码开关以及LED的功能进行了测试,以熟悉其特性并确保了可以正常使用。

通过控制发光二极管的亮与灭,结合相关程序的设计,我实现了一个简单的跑马灯程序。

结合查询拨码开关的状态,能够实现点亮发光二极管的方向、模式和速度的调整。

这个跑马灯实验的程序使用的是简单的分支结构。

这次实验的要点是对I/O接口译码电路的理解以及使用,通过在Debug环境下的I/O 命令,我们测试了外设功能,这使我们了解了地址与端口的对应情况,从而明确了跑马灯程序编写的流程和注意事项。

通过该译码电路实验,我掌握了地址译码电路的设计方法和实现原理,对硬件的I/O接口技术有了进一步的认识。

这次实验也为以后的实验打下了基础,特别是,应先理解了译码电路的工作原理,然后才能进行编程。

实验二8255A并行接口应用一、实验目的1.掌握8255A的功能及方式0、1的实现2.熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。

3.了解七段数码管显示数字的原理。

4.掌握同时显示多位数字的技术。

二、实验内容在实验一的基础上学习PIO芯片(8255)编程应用,熟悉平台的主要内容。

CS 用Y0 (EE00H)(一)简要说明:在方式0(输入/输出)下,以A口为输出口,B 口为输出口,A口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段, B 口接数码管的位选(即要使哪个数码管亮),高电平选中某一位数码管点亮。

8255A 中A端口地址E800HB端口地址E801HC 端口地址E802H控制地址E803H八段数码管的显示规律及数码管的位选规律自己查找,可用实验一中,学过的I、O令来做。

在测试之后要及时地进行记录,在使用时直接查表找出对应的数值即可。

硬件接线图与软件流程图:(二)6位数码管静态显示在数码管电路上静态地显示6位学号,当主机键盘按下任意键时,停止显示,返回提示:该电路6个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字型之后,6个数码管都有可能显示出相同的数字。

如果要使 6 个数码管“同时”显示不同字,必须采用扫描显示的方法,通过选位寄存器选择某一位数码管,显示其数字(对应为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在一秒钟内,每一位管都能显示30次以上,则人眼看到的是几位数码管同时在显示。

实验证明,在扫描显示过程中,每一位显示延迟1ms是最佳选择。

(三)6位数码管动态显示要求在数码管电路1-6位数码管上按图3.2 所示的规律,动态显示字符串HELLO,当主机键盘按下任意键时结束。

图3.2字符串动态显示示意图提示:①本实验应在上面实验的基础上完成②在数据段,按下列规律设置12个字型码:MESGDB0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0POINT DW MESG… …POINT单元存放MESG单元的有效地址,程序取出POINT单元的内容→BX,然后用BX地址取数送数码管电路,扫描显示6个字符。

每过0.5s将POINT单元的内容加1,再将POINT单元的内容→BX,……。

POINT单元内容加1,使字符串显示的首地址向高地址移动一个单元,从而使6位字符串向“左”移动一位,实现动态显示。

③动态显示的速度可控制(快或慢),利用实验一读入端口的功能三、程序流程图(静态显示学号)N四、源程序代码静态显示学号:DATASEGMENTNUM DB0F4B,21H,0EDH,0F1H,0FDH,61H;Charcodeof my ID 10210481DATA ENDS;-------------------------------------------------------------STACK SEGMENTSTACK'STACK'DB100 DUP(0)STACK ENDS;-------------------------------------------------------------CODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTAT:MOV AL,10000000BMOV DX,0E803Hﻩ;送8255A芯片的控制字OUT DX,ALMOV AX,DATAMOV DS,AXﻩ;设置数据段MOV ES,AXLOP1:XOR SI,SI ﻩﻩﻩ;当前送显哪一位MOV CX,06Hﻩﻩ;每次扫描6个MOV DX,0E800HMOV BL,00000001Bﻩ;每次送显一位LOP2:MOVAL,NUM[SI]ﻩ;改变当前送显的位OUTDX,ALﻩﻩ;输出MOV AL,BL ﻩ;对应字符INC DXOUTDX,ALDECDXROLBL,1ﻩ;改变位INCSICALLDELAYﻩ;调用延时子程序CALL KEYﻩ;调用键盘检测子程序LOOP LOP2ﻩﻩ;循环次数为6JMP LOP1;-------------------------------------------------------------DELAYPROC NEAR;DELAY共两层循环PUSHBXPUSH CXMOV BX,000FHLOP3:MOV CX,00HLOOP$DECBXJNZ LOP3POP CXPOPBXRETDELAY ENDP;-------------------------------------------------------------KEY PROCNEAR ﻩ;检测键盘输入子程序PUSH AXMOV AH,0BHﻩﻩINT21HORAL,ALJZ GOONﻩ;若无键盘按下,继续执行程序MOV AH,4CHﻩ;否则,程序停止,跳出。

相关文档
最新文档