微机原理实验指导书(新版) - 图文
更新时间:2024-04-18 21:29:01 阅读量: 综合文库 文档下载
- 微机原理实验指导书新版推荐度:
- 相关推荐
微机原理与接口技术
实验指导书
主编:王青岳 陈超波 张晓倩 许韫韬
西安工业大学电信学院
软件实验部分 ................................................................. 1
1 汇编基本原理 ...................................................................................................................... 2
1.1 程序,可直接运行的程序,汇编源程序,汇编 .................................................... 2 1.2 CPU取指令、执行指令的过程 ................................................................................ 3 2汇编工具MASM5.0使用方法 ............................................................................................ 3
2.1汇编源程序文件的建立方法 ..................................................................................... 3 2.2编译阶段..................................................................................................................... 5 2.3链接阶段..................................................................................................................... 6 2.4 程序调试阶段 ............................................................................................................ 7 3软件实验项目 ....................................................................................................................... 9
软件实验一 清零实验 ..................................................................................................... 9 软件实验二 码制转换实验 ........................................................................................... 11 软件实验三 数据区移动实验 ....................................................................................... 13 软件实验四 冒泡法排序实验 ....................................................................................... 16 软件实验五 存储器校验实验 ....................................................................................... 18 软件实验六 实时时钟显示实验 ................................................................................... 19
硬件实验部分 ................................................................ 21
1 微机实验系统简介 ............................................................................................................ 22 2 实验系统上位机软件使用方法 ........................................................................................ 23
2.1 软件启动.................................................................................................................. 23 2.2 如何使用星研集成环境软件 .................................................................................. 23 3 硬件实验项目 .................................................................................................................... 32
硬件实验一 8255 PA口控制PB口实验 ..................................................................... 32 硬件实验二 8255控制交通灯实验 .............................................................................. 34 硬件实验三 74HC138译码器实验 .............................................................................. 37 硬件实验四 8253方波实验 .......................................................................................... 39 硬件实验五 8259A中断控制器实验 ........................................................................... 41 硬件实验六 8250可编程通信实验(与微机) ............................................................... 44 硬件实验七 简易电子琴实验 ....................................................................................... 49 硬件实验八 LED8 * 8点阵实验 .................................................................................. 58
软件实验部分
1
1 汇编基本原理
1.1 程序,可直接运行的程序,汇编源程序,汇编
程序
程序以文件的形式存在,它是由若干条“指令”顺序排列存储构成的。 指令是对符合CPU指令集的所有信息的统称,“指令”在程序中以两种形式存在,一种是以“指令代码”的形式(在可直接运行的程序文件中),另一种是以“助记符”的形式(在汇编源程序文件中)。
无论“可直接运行的程序”还是“汇编源程序”,其中的指令都是以顺序排列的方式存储的,只是指令存在的方式不同。
可直接运行的程序
当程序中的指令是以可执行的“指令代码”的形式存在时,该程序即为可直接运行的程序,该程序所在的文件即为“可执行程序文件”。“直接运行”是指该程序中的指令代码可以被CPU直接执行。
汇编源程序
当程序中的指令是以“助记符”的形式存在时,该程序即为汇编源程序。该程序所在的文件即为“汇编源程序文件”。 汇编
每一条指令助记符都一一对应着一条指令代码。将以助记符形式存储的汇编源程序文件翻译成以指令代码形式存储的可执行程序文件的过程叫汇编。其逆过程叫反汇编。
换言之,以图1所示为例,经过汇编过程后,汇编源程序文件(*.asm)中以顺序排列方式存储着的所有指令助记符1到指令助记符n,都一一对应的转换成了可执行程序文件(*.exe)中的指令代码1到指令代码n。
图1
2
1.2 CPU取指令、执行指令的过程
如图1所示,CPU取指、执行指令的的过程如下
1) CPU中程序计数器PC所指向的地址即为将要取出的指令代码所在的地址;
2) PC指向地址后,经读信号有效,该地址中存放的指令代码通过数据总线传送到CPU内
部指令寄存器IR中,此时CPU只是取出该指令的二进制代码,尚不知道该二进制代码的具体含义;
3) CPU内部的指令译码器ID对IR寄存器中的二进制代码进行译码,经比对其内部的指令
集后,CPU即可知道IR中二进制代码的具体指令代码含义; 4) 知道指令代码的具体含义后,IR中的指令将被执行。
2汇编工具MASM5.0使用方法
MASM5.0宏汇编程序用于DOS环境下。这里我们主要使用它的MASM.exe编译工具和LINK.exe链接工具。如前所述,汇编是将助记符书写的源程序文件翻译为二进制指令代码的可执行文件的过程。在MASM5.0工具,实际的汇编过程分为两个阶段,编译阶段和链接阶段。
图2
2.1汇编源程序文件的建立方法
可以使用任何一个文本编辑软件来建立汇编源程序文件。如在windows环境下可以使用其“记事本”工具,在DOS环境下可以使用edit.com工具等。需要注意的是,建立的汇编源程序文件必须以.asm为扩展名,由于DOS不支持中文和长文件名系统,因此*.asm的文件名部分不可以采用中文输入法输入文件名,常见的可以采用英文、数字或下划线等,并且字符的长度不可以超过8个(最多可以是8个)。例如“12345678.asm”和“abc_1.asm”都是合法的,而“123456789.asm”及“汇编.asm”都是非法文件名,不能被masm5.0的编译工具识别。此外,存盘路径也不可以出现中文或长字符。
实例:在windows操作系统点“开始”菜单——“运行”栏,在其中输入cmd,回车,进入模拟DOS环境。如图3所示。
MASM5.0工具通常安装在实验室电脑的D:\\或者E:\\根目录下。在模拟DOS环境中敲入
3
D:\\或者E:\\,进入相应盘的根目录。然后敲edit回车,进入文本编辑环境。如图4所示。
图3
4
图4
在edit编译器中,输入源程序,点击“file”菜单的“save as”“另存为”选项,选择存盘路径为D:\\或者E:\\(根据masm5.0所在的路径选择),在File Name栏中输入汇编源程序文件名abc.asm,点击“ok”即建立汇编源程序文件成功。如图5所示。
图5
2.2编译阶段
如图2所示,建立好汇编源程序后,需要使用masm.exe工具进行编译,编译的目的是为了得到*.obj的目标代码文件,该文件是纯二进制代码文件,不能直接显示在屏幕上。经链接后才能得到可执行文件*.exe。
在编译阶段中,masm.exe工具将对源程序的语法进行检验,如果发现错误将给予提示。错误提示分为严重错误和警告错误两种。严重错误指示某些指令存在语法错误,不能形成对应的二进制机器指令。而警告错误指示某些指令含义不够明确,需要提醒程序员注意。程序员可以根据提示对源程序进行修改,直到得到正确的结果为止。在汇编过程中还会产生列表文件和交叉引用文件。列表文件的后缀为.LST,主要用于给出源程序和机器代码程序的清单,其中包含了源程序中各语句及其对应的目标代码,各语句的偏移量等相关信息,对调试程序有帮助,以供检查程序使用。交叉索引文件的后缀为.CRF,它是一个为源程序所引用的各种符号进行前后对照的文件,主要用于给出不同程序段中互相引用的全部符号列表。初学者可以不用建立。举例:在以上步骤建立abc.asm源程序文件后,对源文件进行编译。键入 “masm abc.asm”回车,如没有语法错误,则生成目标文件,如图6所示。
5
图6
若有错误,则提示错误所在的行号及错误类型,回到源程序中重新改正相应错误处存盘,重复编译过程,直到没有错误才可以得到.obj的目标文件。如图7所示
图7
2.3链接阶段
在汇编过程中形成了目标文件(.OBJ),但是在该文件中,只是将源程序的操作码部分变成了机器码,而地址操作数还是可浮动的相对地址,不是实际地址,浮动地址需要再定位。只有经过链接过程才能形成最后的可执行文件。链接程序的功能就是把一个或多个目标文件合并成一个可执行文件,其后缀为.EXE。其实在链接过程中一共形成两个文件:第一个是可执行文件(.EXE)。默认的可执行文件名字与源程序文件相同,也可以根据用户要求修改可执行文件的名字;链接过程中形成的第二个文件是内存映像文件(.MAP),它给出了每个段的地址分配情况和长度。如果不需要该文件则可以在链接命令执行时直接输入Enter键。在链接过程中还与一个库文件(.LIB文件)相关。一般的汇编程序不需要库文件。但是当汇编语言与高级语言(如C语言)接口时需要用到库文件。此时输入相应的库文件名字即可。
如图8所示,输入link abc.obj,对目标文件进行链接,得到可执行文件abc.exe。
6
图8
2.4 程序调试阶段
只有得到*.exe可执行文件后才可以进行调试,调试使用windows自带的debug.exe调试工具。使用方法是,在图8所示状态下,输入“debug abc.exe ”回车。进入debug调试环境提示符“-”,用“-U”命令可以显示反汇编信息。如图9所示,在-u命令后的第一行处,显示的“0b5e:0000”即第一条指令代码存放的地址,其中0b5e是指令段段地址,0000是偏移地址。该地址存放的指令代码是b44c,占两个字节(0000和0001两个便宜地址),因此第二行指令偏移地址从0002开始存放。该行右边的“mov ah,4ch”即“b44c”这条指令代码对应的助记符。
回顾汇编过程,源程序*.asm中存放的即为图9右边所示的助记符;经过masm.exe工具编译后得到目标文件*.obj,即得到了图9中间部分的指令代码(该指令代码可以直接被CPU识别),但是此时并没有得到物理地址,只有相对的浮动地址;再经过link.exe工具链接后得到可执行文件*.exe,即得到了图9左边所示的指令代码所在的具体物理地址。所以只有可执行文件.exe才可以直接运行,因为其中既包含了指令代码,又包含了指令代码所在的具体物理地址。
图9
在debug调试环境中,“-q”命令是退出调试状态。“-d”,“-g”,“-t”也经常使用,如图10所示。
7
图10
单步执行-t后状态字信息的含义如表1所示 溢出标志OF OV(1) NV(0) 方向标志DF DN(1) UP(0) 中断标志IF EI(1) DI(0) 符号标志SF NG(1) PL(0) 零标志ZF ZR(1) NZ(0) 辅助标志AF AC(1) NA(0) 奇偶标志PF PE(1) PO(0) 进位标志CF CY(1) NC(0) 表1 debug中状态字信息的含义
8
3软件实验项目
软件实验一 清零实验
一、实验目的
熟悉MASM编译环境,了解程序的汇编方法,熟悉常用汇编指令。 二、实验内容
编写程序,将程序数据段内256个字节内容清零(或写为55h) 三、实验步骤
1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名) 2)用masm.exe工具队源程序进行编译,得到目标文件*.obj; 3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;
4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看清0(清55H)后的内容
图11 调试时先用-U命令查看数据段段地址
图12 运行程序前先用-d命令查看数据段,看到0000-00ffh地址中有256个AAH
9
图13 –g连续运行程序,提示程序正常执行
图14 再次用d命令看数据段,看到00-00ffH共256个单元清成了55h
五、参考程序
data segment
buf db 256 dup(0aah) data ends code segment
assume cs:code,ds:data start:mov ax,data mov ds,ax mov cx,256 lea si,buf mov al,55h L1: mov [si],al inc si loop L1 mov ah,4ch int 21h code ends end start
六、思考题
1)画出该程序流程图
2)start:标号处开始的两条指令起什么作用?能不能省略? 3)程序是如何返回dos的?不加返回DOS指令会有怎样的后果?
4)总结Loop指令的用法及功能?其最大循环次数是CX中写多少?循环多少次?
10
软件实验二 码制转换实验
一、实验目的
了解16进制码转ascii码的方法,学习汇编指令。 二、实验内容
编写程序,将程序数据段内0,1,2,??0Ah,0Bh,0Ch,0Dh,0Eh,0Fh 的16个16进制数转换为相应的ascii码,并存储在原码所在的相应地址中。 三、编程原理
取出一个数后,首先判断该数是否大于等于10(或小于10),如果大于10则加37H转换,小于10则加30H。 四、实验步骤
1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名) 2)用masm.exe工具队源程序进行编译,得到目标文件*.obj; 3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;
4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看转码后的内容
图15 –U命令查看数据段段地址
图16 程序运行前先用-d命令查看数据段内容
11
图17 程序运行后再用-d命令查看数据段内容
四、参考程序 data segment
buf db 0,1,2,3,4,5,6,7,8,9,0Ah,0bH,0CH,0Dh,0Eh,0Fh data ends code segment
assume cs:code,ds:data start: mov ax,data mov ds,ax mov cx,16 lea si,buf L2: mov al,[si] cmp al,10 jb L1
add al,7h L1: add al,30h mov [si],al inc si loop L2 mov ah,4ch int 21h code ends end start
五、思考题
1)画出程序流程图
2)总结无符号条件转移指令的功能,要求更改程序,用JA指令实现相同功能。 3)总结CMP指令和test指令的用法和区别
4)总结有符号数转移指令JG,JL功能,叙述该指令是如何使用标志位判断有符号数的大小的?
12
软件实验三 数据区移动实验
一、实验目的
了解交叉区域的数据移动方法,学习汇编指令。 二、实验内容
编写程序,将程序数据段内00-000fH 的16个数据传送到从0008偏移地址开始的16个字节的区域中。 三、编程原理
在没有数据区重叠的情况下,可以用递增或递减的方式随意传送。在有数据区重叠的情况只能使用其中一种。因此作为通用的情况,可以先将源区域的首地址和目的区域的首地址进行比较,如果源区域首地址比目的区域首地址小,无论有没有重叠区域,一律采用递减方式传送(即先传送末地址,然后地址指针递减);否则如果源区域首地址比目的区域首地址大,无论有没有数据区重叠,一律用递增方式传送。
图18 数据重叠情况数据传送原理示意图
四、实验步骤
1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名) 2)用masm.exe工具队源程序进行编译,得到目标文件*.obj; 3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;
4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看数据传送后的内容
13
图19 运行前后数据区的变化
五、参考程序 data segment
buf1 db 0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh;buf1为源区域首地址 org 08H
buf2 db 8 ;buf2为目的区域首地址
org 10H ;由于偏移地址10H-1Fh区域可能被使用,所以建立足够的数据段缓冲区 db ? ;当10H被db伪指令占用后,10h-1fH都会分配给数据段使用 data ends code segment
assume cs:code,ds:data start: mov ax,data mov ds,ax mov cx,16
lea si,buf1 ;如需改变源区域和目的区域位置关系,只要将这里的buf1 lea di,buf2 ;和这里的buf2倒一下次序即可 cmp si,di ja L1
add si,cx
dec si ;源区域首地址+16-1即为源区域末地址 add di,cx ;
dec di ;目的区域首地址+16-1即为目的区域末地址 std
L3: mov al,[si] L3:rep movsb mov [di],al ;递减方式 jmp L2 dec si dec di loop L3
jmp L2 ;初学者往往在这里容易遗漏
L1: mov al,[si] L1:cld
mov [di],al rep movsb inc si ;递增方式 L2:mov ah,4ch
14
inc di int 21h loop L1 L2: mov ah,4ch int 21h code ends end start 六、思考题
1)为什么要在数据段定义足够的缓冲深度? 2)用串传送指令实现该程序功能。
15
软件实验四 冒泡法排序实验
一、实验目的
了解冒泡法原理,学习多重循环的编程方法。 二、实验内容
编写程序,用冒泡法实现将数据段内5,3,3,2,1按照由小到大的顺序重新排列。 三、编程原理
冒泡即将数据两两比较,确保大的数放到右边。N个数经历N-1次冒泡后可以找到最大的气泡。其中“两两比较”可以用内循环的结构实现。经历第一次冒泡后剩下的N-1个数依然是无序的,可以重新重复冒泡过程,第二次只需经历n-2次两两比较即可以找到次大的气泡。依次类推,第N-1次冒泡后恰好可以排好所有的数。重复执行的N-1次的冒泡过程可以用外循环结构实现。由图21可知,内循环次数只要每次和外循环次数相等即可
图20 冒泡法原理示意图1
图21 冒泡法原理示意图2
四、实验步骤
1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名) 2)用masm.exe工具队源程序进行编译,得到目标文件*.obj; 3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;
4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看转码后的内容
5)可以用-T命令单步执行,观察每条指令运行后的寄存器及存储器变化情况,观察冒泡法的原理
16
图22 程序运行前后的冒泡法排序情况
五、参考程序 data segment
buf1 db 5,4,3,2,1 data ends code segment
assume cs:code,ds:data start: mov ax,data mov ds,ax
mov dx,4 ;dx中存放外循环次数
L3: mov cx,dx ;cx中存放内循环次数,内循环次数等于外循环次数 lea si,buf1
L2: mov al,[si] ;取出第一个数 cmp al,[si+1] ;两个数比较
jb L1 ;如果第一个数比第二个数大,则两两交换 xchg al,[si+1] mov [si],al L1: inc si loop L2
dec dx ;外循环次数减1,没减到0则跳转至L3处,重新置 jnz L3 ;入内循环的计数初值 mov ah,4ch int 21h code ends end start 六、思考题
1)n个数冒泡法排序共需要多少次循环?
2)循环嵌套时总循环次数和内外循环次数是哪种数学关系?编写内外循环嵌套的双重循环程序,实现100次内循环,300次外循环。
17
软件实验五 存储器校验实验
一、实验目的
了解存储器校验原理,学习汇编指令。 二、实验内容
编写程序,将数据段1000H开始的256个字节校验。 三、编程原理
为了测试存储器每个位是否正常,可以对存储单元的每一位分别写入0和1,再立刻读出来,如果读出依然是0和1,说明写0和写1都正常,否则,说明存储器相应单元已损坏。对每一位写入时,通常采用分别写入55H和0AAH的方式。 四、实验步骤
1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名) 2)用masm.exe工具队源程序进行编译,得到目标文件*.obj; 3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;
4)用debug调试环境的-U命令,查看数据段段地址,用-g运行程序后再用-d查看数据段的内容 五、思考题
若存储器段地址为1600H,首偏移地址为0000H,要求以8088为CPU,用全译码方式扩展一片6264存储器,画出扩展电路图
18
软件实验六 实时时钟显示实验
一、实验目的
了解显示相关的中断调用方式,了解软件延时原理。学习子程序的编程方法。 二、实验内容
编写程序,在显示器上显示00:00格式走动的电子时钟,其中冒号前为模拟分针位,冒号后为模拟秒针位(不严格要求每一秒秒针位走动一次) 三、编程原理
在显示器上显示可以采用21H中断的2号子功能或者9号子功能,以2号子功能为例,DL中必须先存放要显示字符的ascii码,AH中写入2,再执行int 21h即显示一位的信息。 注意秒针位和分针位的边界处理,秒针走到59后,秒针位需要清零,分针位加1,分针位走到59后分针位和秒针位都清0。
软件延时即循环执行N次构成循环体的若干指令,每次循环的时间为T,则延时NT。 四、实验步骤
1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名) 2)用masm.exe工具队源程序进行编译,得到目标文件*.obj; 3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;
4)直接运行*.exe文件,观察屏幕上显示的电子时钟的走动状态是否正常。 五、参考程序 stack segment db 128 dup(?) top dw ? stack ends code segment
assume cs:code,ss:stack start: mov ax,stack mov ss,ax lea sp,top
mov bh,0 ;BH中存放分针位 mov bl,0 ;BL中存放秒针位
L1: mov al,bh ;将分针位送入码制转换子程序
call xchg_code ;将分针位的高四位和低四位转换为ascii码 mov dl,al ;显示分针的高4位 mov ah,2 int 21h
mov dl,dh ;显示分针的低4位 mov ah,2 int 21h
mov dl,':' ;显示分号 mov ah,2 int 21h
mov al,bl ;将秒针位送入码制转换子程序
19
call xchg_code ;将秒针位的高四位和低四位转换为ascii mov dl,al ;显示秒针的高四位 mov ah,2 int 21h
mov dl,dh ;显示秒针的低四位 mov ah,2 int 21h
mov dl,0dh ;显示换行字符,(并未回车) mov ah,2 int 21h
call delay ;延时秒针跳动一步所需的时间 inc bl ;秒针位加一
cmp bl,60 ;比较是否秒针到60秒 jb L2 mov bl,0 inc bh
L2: cmp bh,60 ;比较是否分针到60分 jb L3 mov bl,0 mov bh,0 L3: jmp L1
xchg_code:mov ah,0 mov cl,10 div cl add al,30h add ah,30h mov dh,ah ret
delay: mov si,5000 L5: mov cx,0 loop $ dec si jnz L5 ret code ends end start
20
硬件实验部分
21
1 微机实验系统简介
图1 微机实验系统构成示意图
22
图2 微机实验箱各模块区域示意图
2 实验系统上位机软件使用方法 2.1 软件启动
方法一:启动Windows操作系统,单击操作系统“桌面”的“星研集成环境软件”快捷方式图标即可进入集成开发环境。
方法二:鼠标单击操作系统的“开始”菜单,在“程序”栏中打开“星研集成环境软件”菜单栏,选择“星研(SUPER、STAR系列仿真器)”,启动星研集成环境软件。
注意:当您使用低配置机器时,从星研集成环境软件退出后必须等待足够的时间,让系统完全退出(硬盘停止工作)后,方可再次启动星研集成环境软件。
2.2 如何使用星研集成环境软件
首先运行星研集成软件。启动画面如图:
1)选择仿真器或仿真模块
执行 [主菜单 ? 辅助 ? 仿真器],出现一个对话框:
23
请选择实验仪:STAR ES598PCIS;仿真器:EMU598+仿真模块;选择“确认”。 如果选择“模拟调试器”,实验仪电源不用开启,使用微机CPU模拟执行程序,可以调用附件中的软中断,但无法对I/O接口操作。
学生在做实验前,可以选择“模拟调试器”,在星研集成环境中编写程序,对它编译、连接,解决语法错误,使用模拟调试功能,初步调试;可以大幅度减少在实验室中做实验的时间。
2)设置缺省项目
执行 [主菜单 ? 辅助 ? 缺省项目],出现一个对话框:
(使用EMU598+仿真模块, 选择“8086(EMU598+)”)
点击进入下一步:“选择语言”
24
您可以根据自己的需要以及程序的类型作相应的选择,本实例选择Borland公司的Turbo C(3.0)、TASM(5.0) (请确定在选择语言之前已经安装好相应的编译软件)。然后再点击进入下一步:“编译、连接控制项”
实验仪提供64K memory空间,memory model请选择tiny,缩写为mt;如果需要源程序级别调试,必须使用-v –y控制项,为了支持多文件编译、连接,必须使用-c控制项。
一般不必改变Turbo C的编译控制项。
25
如果需要源程序级别调试,必须使用/zi /l控制项。
一般不必改变Tasm的编译控制项。
如果需要源程序级别调试,必须使用/m /l /v控制项。
一般不必改变TLINK的连接控制项。
然后再点击进入下一步:“存贮器出借方式”
仿真模块EMU598提供64K仿真RAM,作程序段(CS)、数据段(DS)、附加段(ES)、堆
26
栈段(SS)使用。 3)建立源文件
执行 [主菜单 ? 文件 ? 新建],(或者点击图标
)打开窗口如下:
首先选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:*.asm文件,使用TASM来对它编译。本实例文件名为8255test.asm。窗口如下:
按“确定”即可。然后出现文件编辑窗口:
27
输入源程序,如下图:
保存源程序文件,点
图标,这样一个源文件就建立好了。
4)编译、链接文件
首先选择一个源文件,然后可以编译、链接文件了。对文件编译,如果没有错误,再与库文件链接,生成代码文件(DOB、EXE文件)。编译、链接文件的方法有如下二种:(1)使
28
用[ 主菜单 ? 项目 ? 编译、连接 ]或[主菜单 ? 项目 ? 重新编译、链接 ]”。(2)点击图标或来“编译、链接”或“重新编译链接”。
“编译链接”与“重新编译、链接”区别:“重新编译、链接”不管源文件是否修改、编译软件是否变化、编译控制项有无修改,对源文件编译,如果没有错误,再与库文件链接,生成代码文件(DOB、EXE文件)。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下:
若有错误则出现如下信息框:
有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。
这时用户可以作相应的修改,直到编译、连接文件通过。
29
5)调试
在进入调试状态以前,请正确设置通信口:执行[ 主菜单 ? 辅助 ? 通信 ],对话框如下:
仿真器、实验仪配套的通信线可以与微机USB口相连,即为USB通信线,请选择USB。 对于最下面一行的校验,通常不必选中它,可以提高传送DOB、HEX、BIN文件时的速度。 在进入调试状态以前,还必须确定实验仪与微机的正确连接,电源接通,开关打开。
如果编译、连接正确后,可以开始调试程序。进入调试状态方法有: a) 执行[ 主菜单 ? 运行 ? 进入调试状态] b) 点击工具条的
c) 执行[ 主菜单 ? 运行 ? 装载DOB、HEX、BIN文件] 进入后的窗口如下:
在整个图片中我们可以看到相对应的窗口信息。在“工作区窗”的“CommonRegister”中我们可以了解通用寄存器的信息。中间的窗口为源程序窗口,用户可在此设置断点,设置光标的运行处,编辑程序等。寄存器窗我们可以看到一些常用的寄存器的数值。存贮窗1、存贮窗2显示相应的程序段(CS)、数据段(DS)、IO设备区的数据,还有变量窗,自动收集变量显示其中。反汇编窗显示对程序反汇编的信息代码、机器码、对应的源文件。在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边
30
上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。在调试过程中,可以根据您的需要,在[主菜单 ? 查看]中打开:寄存器窗、存贮器窗1、2、3、观察窗、变量窗、反汇编窗。您也可以通过[主菜单 ? 辅助 ? 设置 ? 格式],设置每一种窗口使用的字体、大小、颜色。移动窗口到您喜欢的位置、大小。
首先在“种类”中选择一个窗口,然后选择“字体”、“大小”,在“颜色”中选择某一类,在“前景”、“背景”中选择您喜欢的颜色。
对于高级语言,在您的程序前有一段库文件提供的初始化代码,(当前可执行标志)不会出现在您的文件行上,如果您使用C语言,可将光标移到main函数上,按F4功能键,让CPU全速运行到main行上后停下;如果您使用PL/M语言,按F7功能键,让CPU“单步进入”,运行到您的任何一个可执行行后停下。
您可以使用以下命令调试您的程序: 设置或清除断点(功能键为F2) 在当前光标行上设置或清除一个断点 单步进入(功能键F7)
单步执行当前行或当前指令,可进入函数或子程序。 连续单步进入(功能键Ctrl + F7) 连续执行“单步进入”,用鼠标点击或按任意键后,停止运行。 单步(功能键 F8)
单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。如果当前行中含有函数、子程序或发生中断,CPU将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一有代码的行上。
连续单步(功能键 Ctrl + F8) 连续执行“单步”,用鼠标点击或按任意键后,停止运行。 运行到光标行(功能键 F4)
从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击,停止运行。
全速断点(功能键 F9)
从当前地址开始全速运行用户程序,碰到断点或用鼠标点击,停止运行。 全速运行(功能键Ctrl + F10)
从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU从头开始执行用户程序,用鼠标点击,停止运行。全速运行时,屏蔽了所有断点,即不会响应任何断点。
停止运行 终止微机与仿真器之间通信(功能键 ESC)。
注意:欲终止微机与仿真器之间通信,功能键ESC是一个很方便的键,它的效果比点击
31
相应的图标的效果要好。建议用户多用ESC键。在系统运行“连续单步”或者“连续单步进入”时ESC键被禁止,这时用户可以按键盘的其他任意键停止其运行。
3 硬件实验项目
硬件实验一 8255 PA口控制PB口实验
一、实验目的与要求
了解8255的内部资源与结构;了解8255工作方式0的原理;熟悉8255的初始化以及各接口输入输出程序的编程方法。 二、实验设备
STAR系列实验仪一套、PC机一台 三、实验内容
编写程序:从8255的PA口将F5区的8位开关读入,读入到CPU的内部寄存器AL,再读出后,写入PB口,显示于F5区的LED指示灯上。(s21-s28开关拨动到上方为低电平) 四、实验原理图
32
五、实验步骤
1、关闭实验箱电源,按下表进行连线,检查无误后打开实验箱电源。
B4区:CS(8255),A0,A1 —— A3区:CS1,A0,A1 B4区:JP56(PA口) B4区:JP53(PB口)
—— F5区:JP83 —— F5区:JP65 2、打开上位机软件,建立*.asm文件,编写8255程序。 3、点击图标,编译链接源程序
4、点击图标,进入调试界面,在调试界面下点击|“全速运行”图标,运行源程序。 5、拨动F5区的开关,测试实验结果:F5区的开关状态反应在F5区的LED指示灯上。 (步骤2,3,4细节请参阅指导书“硬件实验部分”第二节——“实验系统上位机软件使用方法”)
六、注意事项:
1、连接线路时请关闭实验箱电源
2、运行程序后,如需更改源程序必须先将源程序停止,点击图标停止运行。
3、在调试界面下若需要更改源程序,必须先退出调试界面。再次点击图标即可退出调试界面。或者点击上位机软件的“运行”菜单栏,再点击“退出调试状态”选项退出。退出调试界面后更改源程序需要重新编译链接,然后再次进入调试界面进行调试。
4、实验箱A3区CS1的地址范围是f000h-ffffh。
5、使用该型实验箱时,要求程序必须按照以下参考程序方式定义堆栈段。 七、思考题:
1、若控制要求改为:PA0控制PB1,PA1控制PB2,??PA6控制PB7,PA7控制PB1,且要求当开关拨动到下方时(高电平)发光二极管点亮,程序该如何实现? 2、用PC口的按位输出功能,编写程序实现用PC3控制某一个发光二极管实现连续闪烁。 八、实验参考程序
stack1 segment stack 'stack'
33
db 128 dup(?) top dw ? stack1 ends code segment
assume cs:code,ss:stack1 start: lea sp,top
mov al,10010000b mov dx,0f003h out dx,al
L1: mov dx,0f000h in al,dx inc dx out dx,al jmp L1 code ends end start
硬件实验二 8255控制交通灯实验
一、实验目的与要求
1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
34
1、编写程序:使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。 2、连接线路验证8255的功能,熟悉它的使用方法。 四、实验原理图 VCC510U36D0D1D2D3D4D5D6D7RDWR343332313029282753698356D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7825543214039383718192021222324251415161713121110PC0PC1PC2PC3PC4PC5PC6PC7510R111R11212345678DS35DS36DS37DS38DS39DS40DS41DS42510R113510R114510R115510R116510R117510R118A0A0A1A1CS1(0F000H)CSRST 五、实验步骤 1、连线说明: B4区:CS(8255)、A0、A1 —— B4区:JP56(PA口) —— A3区:CS1、A0、A1 F5区:JP65 2、观察实验结果,是否能看到模拟的交通灯控制过程。 六、演示程序(该程序仅提供演示和参考,并非标准的*.asm汇编格式) .MODEL TINY COM_ADD EQU 0F003H PA_ADD EQU 0F000H PB_ADD EQU 0F001H PC_ADD EQU 0F002H .STACK 100 .DATA LED_Data DB 01111101B ;东西绿灯,南北红灯 DB 11111101B ;东西绿灯闪烁,南北红灯 DB 10111101B ;东西黄灯亮,南北红灯 DB 11010111B ;东西红灯,南北绿灯 DB 11011111B ;东西红灯,南北绿灯闪烁 DB 11011011B ;东西红灯,南北黄灯亮 .CODE START: MOV AX,@DATA MOV DS,AX 35
START1:
START2:
START3:
DL500ms
NOP MOV MOV OUT MOV MOV OUT LEA MOV XLAT OUT CALL MOV MOV AL,1 XLAT OUT CALL MOV XLAT OUT CALL LOOP MOV XLAT OUT CALL MOV XLAT OUT CALL MOV MOV XLAT OUT CALL MOV XLAT OUT
CALL LOOP MOV XLAT OUT CALL JMP
PROC
DX,COM_ADD AL,80H DX,AL DX,PA_ADD AL,0FFH DX,AL
BX,LED_Data AL,0
DX,AL DL5S CX,6
DX,AL DL500ms AL,0
DX,AL DL500ms START2 AL,2
DX,AL DL3S AL,3
DX,AL DL5S CX,6 AL,4
DX,AL DL500ms AL,3
DX,AL DL500ms START3 AL,5
DX,AL DL3S START1 NEAR
36
;PA、PB、PC为基本输出模式
;灯全熄灭
;东西绿灯,南北红灯
;东西绿灯闪烁,南北红灯
;东西黄灯亮,南北红灯
;东西红灯,南北绿灯
;东西红灯,南北绿灯闪烁
;东西红灯,南北黄灯亮
DL500ms1:
DL500ms DL3S
DL3S1: DL5S
DL5S1: PUSH MOV LOOP POP RET ENDP PROC PUSH MOV CALL LOOP POP RET ENDP PROC PUSH MOV CALL LOOP POP RET ENDP END
CX
CX,60000 DL500ms1 CX NEAR CX CX,6 DL500ms DL3S1 CX NEAR CX CX,10 DL500ms DL5S1 CX
START
硬件实验三 74HC138译码器实验
一、实验目的与要求
1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了解74HC138是如何译码的。
2、认真预习本节实验内容,尝试自行编写程序,填写实验报告
二、实验设备
STAR系列实验仪一套、PC机一台
37
三、实验内容
1、编写程序:使用82C55的PC0、PC1、PC2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。
2、运行程序,验证译码的正确性。
12四、实验原理图 DS20R68(8255)PC0A(8255)PC1BA(8255)PC2C(C1)VCCG1(C1)GNDG2A(C1)GNDG2B8GNDSN74LS138N123645U21ABCG1G2AG2BVCCY0Y1Y2Y3Y4Y5Y6Y71651015141312111097470VCCJP2812510R111R11212345678DS35DS36DS37DS38DS39DS40DS41DS42VCC510R113510R114510R115510R116510R117510R118 五、实验步骤 1、连线说明: C2区:A、B、C C2区:G1、G2A、G2B C2区:JP36 B4区:CS(8255)、A0、A1 B—— B4区:PC0、PC1、PC2 —— C1区:VCC、GND、GND —— F5区:JP65(LED指示灯) —— A3区:CS1、A0、A1 2、 调试程序,查看运行结果是否正确。 六、演示程序(该程序仅提供演示和参考,并非标准的*.asm汇编格式) .MODEL TINY Con_8255 EQU 0F003H ;8255控制口 PC_8255 EQU 0F002H ;8255 PC口 .STACK 100 .CODE START: MOV DX,Con_8255 MOV AL,80H OUT DX,AL ;8255初始化,PC口作输出用 MOV DX,PC_8255 MOV AL,0 START1: OUT DX,AL C CALL Delay INC AL JMP START1 Delay PROC NEAR ;延时 Delay1: XOR CX,CX LOOP $ RET Delay ENDP 38
END
START
七、实验扩展及思考
在应用系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理?
硬件实验四 8253方波实验
一、实验目的与要求
了解8253的内部结构、工作原理;了解8253与8088的接口逻辑;熟悉8253的控制寄存器和初始化编程方法,熟悉8253的6种工作模式。
二、实验设备
STAR系列实验仪一套、PC机一台
39
三、实验内容 1、编写程序:使用8253的计数器0和计数器1实现对输入时钟频率的两级分频,得到一个周期为1秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。 2、连接线路,验证8253的功能,熟悉它的使用方法。 四、实验原理图 U35D0D1D2D3D4D5D6D7CSCS5(0B000H)RDWRA0A0A1A1876543212122231920D0D1D2D3D4D5D6D7CSRDWRA0A18253OUT2GATE2CLK2OUT0GATE0CLK010119GATE0VCC2M(B2)CLK0131415OUT1Ctrl(D1)VCCGATE1OUT1GATE1CLK1171618OUT2GATE2CLK2 五、实验步骤 1、连线说明: D5区:CS、A0、A1 D5区:CLK0 D5区:OUT0 D5区:OUT1 —— A3区:CS5、A0、A1 —— B2区:2M —— D5区:CLK1 —— E3区:Ctrl(蜂鸣器) D5区:GATE0、GATE1 —— C1区的VCC 2、测试实验结果:蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口,红绿灯交替点亮。 六、演示程序(该程序仅提供演示和参考,并非标准的*.asm汇编格式) .MODEL TINY COM_ADDR EQU 0B003H T0_ADDR EQU 0B000H 56T1_ADDR EQU 0B001H .STACK 100 .CODE START: MOV DX,COM_ADDR MOV AL,35H OUT DX,AL ;计数器T0设置在模式2状态,BCD码计数 MOV DX,T0_ADDR MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL ;CLK0/1000 MOV DX,COM_ADDR MOV AL,77H OUT DX,AL ;计数器T1为模式3状态,输出方波,BCD码计数
40
MOV MOV OUT MOV OUT JMP END DX,T1_ADDR AL,00H DX,AL AL,10H DX,AL $
START
;CLK1/1000
;OUT1输出1S的方波
七、思考题
1、8253还有其它五种工作方式,其它工作模式下,硬件如何设计?程序如何编写? 2、用通道0的CLK0接A2区的125K信号,让OUT0输出周期为500ms的方波信号,并用该信号控制F5区的发光二极管LED1闪烁(低电平点亮)。再用通道2的out2控制F5区的另一个发光二极管LED2,要求设计电路并编程,实现LED1每闪烁10次时LED2闪烁1次。
硬件实验五 8259A中断控制器实验
一、实验目的与要求
了解8259A的内部结构、工作原理;了解8259A与8088的接口逻辑;掌握对8259A的初始化编程方法,了解8088是如何响应中断、退出中断的。
复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
41
二、实验设备
STAR系列实验仪一套、PC机一台 三、实验内容
1、编制程序:拨动单脉冲开关,“次数,显示于F4区的数码管上 4 四、实验原理图 U28(0F000H)CS1CSWRRDD7D6D5D4D3D2D1D01234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND8259”送给8259A的IR0,触发中断,8088计数中断
5VCCVCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS22827A02625242322212019181716SP/EN15INTAIR7INTAIR0INTIR2IR1(B2)INTR5678R961K4321 五、实验步骤 1、连线说明: B3区:CS、A0 B3区:INT、INTA B3区:IR0 D3区:CS、A0 D3区:CLK —— A3区:CS1、A0 —— EMU598+:INTR、INTA —— B2区:单脉冲—— A3区:CS5、A0 —— B2区:2M ”,观察结果,数码管上显示的次 2、运行程序 3、上下拨动单脉冲开关,拨动二次,产生一个“数与拨动开关次数是否对应。 六、演示程序 .MODEL TINY EXTRN Display8:NEAR IO8259_0 EQU 0F000H IO8259_1 EQU 0F001H .STACK 100 .DATA BUFFER DB 8 DUP(?) Counter DB ? ReDisplayFlag DB 0 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CALL Init8259 42
START1:
Init8259
Init8259 WriIntver
WriIntver LedDisplay
CALL
WriIntver MOV Counter,0
MOV ReDisplayFlag,1 STI ;开中断
CMP ReDisplayFlag,0 JZ START1 CALL LedDisplay
MOV ReDisplayFlag,0 JMP START1 PROC
NEAR
MOV DX,IO8259_0 MOV AL,13H OUT DX,AL
MOV DX,IO8259_1 MOV AL,08H OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0FEH OUT DX,AL RET ENDP PROC NEAR PUSH
ES MOV AX,0 MOV ES,AX MOV DI,20H LEA AX,INT_0 STOSW
MOV AX,CS STOSW POP ES RET ENDP PROC NEAR
MOV AL,Counter MOV AH,AL AND AL,0FH MOV Buffer,AL AND AH,0F0H ROR AH,4
MOV Buffer + 1,AH MOV Buffer + 2,10H MOV Buffer + 3,10H MOV Buffer + 4,10H MOV
Buffer + 5,10H
43
;中断次数 ;需要显示
;高六位不需要显示
LedDisplay INT_0: MOV MOV LEA CALL RET ENDP PUSH PUSH MOV ADD DAA MOV MOV MOV MOV OUT POP POP IRET END
Buffer + 6,10H Buffer + 7,10H SI,Buffer Display8 DX AX
AL,Counter AL,1
Counter,AL
ReDisplayFlag,1 DX,IO8259_0 AL,20H DX,AL AX DX
START
七、实验扩展及思考
1、 从8259A收到上升沿,到8088响应中断,试画这个过程的时序图。
硬件实验六 8250可编程通信实验(与微机)
一、实验目的与要求
了解8250的内部结构、工作原理;了解8250与8088的接口逻辑;掌握对8250的初始化编程方法,学会使用8250实现设备之间的串行通信。
认真预习,做好实验前的准备工作,填写实验报告
44
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、编写程序:通过初始化8250,设置波特率为4800bps(或其它,但与微机部分一致),数据格式为8数据位,1停止位,偶校验;然后打开PC机的串行通信测试软件,向8250发送一批数据,8250接收完数据之后,再将数据依次发送回去。
2、按图连线,运行程序,观察实验结果,掌握8250的各项功能及编程方法。
四、实验原理图
U43D0D1D2D3D4D5D6D7SIN1234567891011121314151617181920D0VDDD1RID2DCDD3DSRD4CTSD5MRD6OUT1D7DTRRCLKRTSSINOUT2SOUTINTRCS0NCCS1A0CS2A1BAUDOUTA2XINADSXOUTCSOUTWRDDISWRRDVSSRDPC16450ComputerTXD(E6)RXD(E6)SOUTVCCCS1(0F000H)CS21WR3.072MHZR12730PFC651M50PFC66VCC4039383736353433323130292827262524232221RDRIDCDDSRCTSRSTDTRRTSA0A0A1A1A2A2PC16450
五、实验步骤
1、连线说明:
D4区:CS、A0、A1、A2 D4区:SIN、SOUT —— A3区:CS1、A0、A1、A2 —— E6区:RxD、TxD 2、运行程序 3、运行“串口助手(ComPort.EXE)”,设置串口(波特率4800,8个数据位,一个停止位,偶校验),打开串口,选择“HEX发送”、“HEX显示”,向8250发送10个字节数据(输入数据之间用空格分隔),是否能接收到10个字节数据,接收到的数据是否与发送数据一致。
4、改变传输数据的数目,重复实验,观察结果。
六、演示程序 .MODEL TINY
;8250和PC机通信,需要在PC上运行一个串口软件,并设置与8250相同的波特率 NS8250_Base_Address EQU 0FF00H RHR EQU NS8250_Base_Address ;接收数据缓冲区 THR EQU NS8250_Base_Address ;发送数据缓冲区 IER EQU NS8250_Base_Address+1 ;中断控制寄存器 FCR EQU NS8250_Base_Address+2 ;FIFO控制寄存器 ISR EQU NS8250_Base_Address+2 ;中断状态寄存器 LCR EQU NS8250_Base_Address+3 ;串行口控制寄存器 MCR EQU NS8250_Base_Address+4 ;MODEM控制寄存器
45
LSR EQU NS8250_Base_Address+5 ;串行口状态寄存器 MSR EQU NS8250_Base_Address+6 ;MODEM状态寄存器 DLL EQU NS8250_Base_Address ;波特率除数锁存器低位 DLM EQU NS8250_Base_Address+1 ;波特率除数锁存器高位 .STACK 100 .DATA Receive_Buffer DB 10 DUP(0) ;接受缓冲器 Send_Buffer EQU Receive_Buffer ;发送缓冲器 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CALL INIT8250 START2: MOV CX,10 ;接收数据(接收完设定的数据个数) CALL RECEIVE_GROUP MOV CX,10 ;发送数据(发完设定的数据个数) CALL SEND_GROUP JNC START2 WARNING1: JMP $
;*************发送一组字符子程序,个数在CX中*********** Send_Group PROC NEAR LEA SI,Send_Buffer Send_Group1: LODSB CALL Send_Byte JC Send_Group2 LOOP Send_Group1 CLC Send_Group2: RET Send_Group ENDP
;*************接收一组字符子程序,存放首地址在DPTR中,个数在R6R7中*********** Receive_Group PROC NEAR LEA DI,Receive_Buffer Receive_Group1: CALL Receive_Byte STOSB LOOP Receive_Group1 CLC RET Receive_Group ENDP INIT8250 PROC NEAR MOV DX,ISR MOV AL,06H OUT DX,AL MOV DX,LCR MOV AL,83H ;允许访问波特率因子寄存器 OUT DX,AL
46
MOV DX,DLL MOV AL,40
;除数低位寄存器,波特率设为4800=(3.072*1000000/16)/DLMDLL OUT DX,AL MOV DX,DLM ;00H送高字节寄存器 MOV AL,00H OUT DX,AL MOV DX,LCR ;不允许访问波特率因子寄存器 MOV AL,1BH ;数据格式为8数据位,1停止位,偶校验 OUT DX,AL RET INIT8250 ENDP
;*********发送一个字节子程序,发送A中的数,失败置CY********* Send_Byte PROC NEAR PUSH CX PUSH AX MOV CX,1000 MOV DX,LSR REP11: IN AL,DX TEST AL,20H JNZ OUTPORT1 LOOP REP11 POP AX STC JMP EXIT8250 OUTPORT1: POP AX MOV DX,RHR OUT DX,AL CLC EXIT8250: POP CX RET Send_Byte ENDP
;*********接收一个字节子程序,接收字节在A中,接收失败置1CY********* Receive_Byte PROC NEAR MOV DX,LSR Receive1: IN AL,DX TEST AL,1 JZ Receive1 Receive2: MOV DX,RHR IN AL,DX Receive3: RET Receive_Byte ENDP END START
七、实验扩展及思考
47
1、思考8250与8251有何异同之处?
2、8250也可以做自发自收的实验,该如何连线及修改程序?
3、如何通过中断处理方式实现8250串行接收,需要更改哪些线路?
48
正在阅读:
微机原理实验指导书(新版) - 图文04-18
XX关于干部人事纪律问题专项整治工作方案05-20
最新幼师的读书计划5篇04-02
党支部综合考察意见及党支部对该同志确定为发展对象的意见04-05
北京新科技馆地址02-06
水电站运行管理支持系统的应用05-11
三年级作文生活中的发现02-06
影响煤层气钻井完井工艺技术的几个问题05-11
2017年6月大学英语四级真题试卷及答案(第1套)04-03
DHL快递的计费运费计算方法06-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 微机
- 新版
- 原理
- 实验
- 图文
- 应用四新技术管理办法(制度)
- 新闻写作讲稿
- 职业病危害防治责任制度
- 新材料与绿色制造体系
- 承台系梁首件工程施工方案
- 最新综合实践活动总结报告
- 2013年(上海)维修电工初级1+X职业技能鉴定考核指导手册试题答
- 奥鹏西工大16春《外国法制史》在线作业
- 中石化青年文明号
- 混凝土结构与金刚砂耐磨楼地面一次成型的工艺 - 图文
- 江苏省盐城市2018届高三历史上学期第一次学情调研试题2017103102
- 拱墅区康馨苑(康桥单元FG03-R21-27地块经济适用房项目) - 环境
- MySQL数据库考试试题及答案
- 《现代管理学》2018年10月自考复习资料和参考答案
- 河南安阳师范学院数字化校园信息化建设方案 - 图文
- 叉车安全管理制度及目录
- 代码优化流程图&DAG
- 刘一秒三弦智慧澳大利亚
- 板球培训
- 电大2016年法学概论网上作业最全答案