




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录第一章 汇编语言程序的基本结构1第二章 汇编语言程序的建立和执行6第三章 汇编语言程序上机实验10实验一 两个多位十进制相加的实验10实验二 两个数相乘的实验11实验三 统计男女生人数实验13实验四 统计学生成绩实验14实验五 数据块移动与字符串搜索程序实验17实验六 将ASCII码转换为二进制数17实验七 将二进制数转换为ASCII码19实验八 字符和数据的显示程序20实验九 将键盘输入的大小写字母相互进行转换22实验十 求的实验24实验十一 实现分段函数的运算25实验十二 排序实验25实验十三 读文件的实验26实验十四 写文件的实验29实验十五 显示目录的实验30第四章 微机原理硬件部分32实验一 8255A并行口实验(一)LED显示32实验二 8255A并行口实验(二)PA输入,PB输出33实验三 8255A并行口实验(三)控制交通灯34实验四 A/D转换实验35实验五 D/A转换实验(一)方波36实验六 D/A转换实验(二)锯齿波37实验七 8259单级中断控制器实验38实验八 定时/计数器8253方波39实验九 8251串口实验(一)自发自收41实验十8251串口实验(二)8251发送26个字母43实验十一 继电器控制44实验十二 步进电机控制44实验十三 小直流电机调速实验45第一章 汇编语言程序的基本结构汇编语言程序设计是学习微机原理课程的一个重要内容,只有通过设计一定的实验程序,并在一定的工具下完成程序的调试,才能充分理解计算机的指令系统和其工作原理。一个完整的汇编语言源程序至少由指令语句部分和伪指令语句部分两部分语句组成。每一条指令语句在汇编时产生一个目标代码,对应着一条机器指令;而伪指令则是为汇编程序提供编译信息及为连接程序提供链接信息。一、伪指令1段定义伪指令SEGMENT/ENDS在实模式下,处理器为了保持向上兼容,所以段的最大长度仍然为64K,这样的段称为16位段。完整的段定义格式如下:段名 SEGMENT 定位类型组合类型类别属性类型 ;段内容 段名 ENDS2数据定义伪指令格式:变量 助记符 操作数功能是为操作数分配内存单元,并用变量与存储单元相联系。助记符可以是:DB、DW、DD、DF、DQ、DT3.段说明伪指令 ASSUME格式:ASSUME 段寄存器名:段名,段寄存器名:段名, ASSUME 段寄存器名:NOTHING可以用来取消段性质的定义。4程序开始和结束伪指令开始格式(可省略):NAME模块名 TITLE 标题文字结束格式:END 标号表明源程序的结束,标号指明程序的起始地址。5符号定义伪指令(1)等值伪指令 EQU格式:符号名EQU表达式(2)等号伪指令“=”“=”伪指令的格式与功能和EQU类似。不同的是,在同一个程序中,“=”可以对一个符号量重复定义,EQU却不能对一个符号量重复定义。(3)解除定义伪指令 PURGE格式为:PURGE 符号1,符号2,符号n其功能是解除指定符号的定义,解除符号的定义后,可以用EQU重新定义。6过程定义伪指令 PROC/ENDP格式:过程名 PROC ;程序RET过程名 ENDP过程名也是一种标号,其属性由属性字段表明。过程属性可以是NEAR或FAR,调用过程指令和被调用过程在同一逻辑段,过程则可定义为NEAR,否则定义为FAR。根据过程的属性,RET指令自动汇编成近过程返回指令或远过程返回指令。另外,若调用过程指令和被调用过程不在同一程序模块中,则在调用程序中用EXTRN伪指令将被调用过程说明为外部的,而在过程程序中用PUBLIC伪指令说明成公用的。7标号定义伪指令LABEL格式:标号 LABEL 属性功能:是定义标号为指定的属性。二、语句格式1标号格式:“标号:指令语句”标号用来代表一条指令,代表一条指令所在单元的地址,在代码段中使用。标号与其所代表的指令之间用冒号分开。如果一条指令作为转移的目标或作为程序中的第一条指令语句,前面应该加标号,否则没有必要加标号。2变量变量用来代表数据所在单元的地址,在数据段、附加段、堆栈段中使用。变量与其所代表的数据之间用空格分开。3操作码操作码用来指明操作的性质或功能。指令中的助记符都是操作码。操作码与操作数之间用空格分开。4操作数指令中的操作数用来指定参与操作的数据。对于一般指令,可以有一或两个操作数,也可以没有操作数;对于伪指令或宏指令,可以有多个操作数。操作数多于一个时,操作数之间用逗号隔开。操作数可以是常数或表达式。5.注释项注释是语句的说明部分,用来说明一条指令或一段程序的功能,由分号“;”开始。汇编源程序时,注释部分不产生机器代码。6.续行符一条语句可以写在多行上,续行符“&”。7.重复操作符重复定义多个相同单元的数据时采用。8.保留符号?根据数据定义伪指令的类型,保留相应单位的内存空间,不符初值。9.当前地址指针$在汇编程序对汇编语言源程序进行汇编过程中,当前正在汇编的指令的地址用当前地址指针“$”指示。对分配内存空间的数据定义伪指令,当前数据分配的位置用指针“$”指示。即当前地址指针总是指向待分配的内存单元的地址。用户可以直接引用当前地址指针的值。三、程序模块每一个汇编语言源程序多是由如下结构组成,有了下面的模板,我们要做的全部事情是适合你具体数据的程序和指令。1.主程序的模型STACK SEGMENT STACKDB 64DUP(?)TOP LABEL WORDSTACK ENDSDSEG SEGMENT PARA PUBLIC DATA ;插入我们的数据DSEG ENDSCSEG SEGMENT PARA PUBLICCODE ASSUME CS:CSEG,DS:DSEG,SS:STACKSTART: MOV AX,DSEG MOV DS,AXMOV AX, STACK MOV SS,AXMOV SP, OFFSET TOP ;插入我们的程序CSEG ENDS END START2.子程序的模型DSEG SEGMENT PARA PUBLIC DATA ;插入我们的数据DSEG ENDS CSEG SEGMENT PARA PUBLIC CODEASSUMECS:CSEG,DS:DSEGPNAME PROC NEAR :插入我们的程序 RET PNAME ENDP CSEG ENDS END 说明:这个模块的代码段和主模块中的具有同样的名字(CSEG),我们已说明了PNAME过程为NEAR。为了从具有不同名字的代码段调用PNAME,把它变换为FAR。这个模块的数据段和主模块中的具有同样的名字(DSEG),所以我们没有必要初始化DS,因为主模块的指令已初始化它。但是,如果你在你的主模块使用了不同的数据段名字,那末,副模块要插入装载DS的指令。第二章 汇编语言程序的建立和执行要建立和运行汇编语言程序,磁盘中应准备如下文件:EDIT.COM 编辑程序MASM.EXE 宏汇编程序LINK.EXE 链接程序DEBUG.COM 调试程序下面以建立和执行用户程序ABCEXE为例来说明上机实验过程。一、用EDIT.COM程序建立汇编语言源程序文件(ASM文件) 源程序就是用汇编语言的语句编写的程序,它不能被计算机识别。源程序必须以ASM为扩展文件名。例如键入命令C:EDIT ABC.ASM (下面带横线的部分为键盘输入) 此时我们可以编辑程序输入和编辑我们的源程序ABC.ASM。至于EDIT.COM的使用方法可以查阅手册。二、MASM命令产生目标文件OBJ文件源程序建立以后,就可以用MASM.COM汇编程序进行汇编。所谓汇编,实际上就是把以ASM为扩展名的源文件转换成用二进制代码表示的目标文件。目标文件以OBJ为扩展名。汇编过程中,汇编程序对源程序进行二次扫描,如果源程序中有语法错误,则汇编过程结束后,汇编程序会指出源程序中的错误,这时我们需要再用编辑程序来修改源程序中的错误,最后得到没有语法错误的OBJ文件。例如,对ABC.ASMC:MASM ABC.ASMMicrosoftMacroAssemblerVersion 5.00CopyrightMicrosoftCorp 1981-1985,1987All rights reservedObjectfilenametABC.OBJSource listingNUL.LSTCross referenceNUL.CRF如果被汇编的程序没有语法错误,则给出如下信息:Warning ServersErrers Errors0 0从上面的操作过程可以看到,汇编语言的输入文件就是我们编写的汇编语言源程序,它必须以ASM为文件扩展名。汇编程序的输出文件有三个,第一个是目标文件,它以OBJ为扩展名,产生OBJ文件是我们进行汇编操作的主要目的,所以这个文件是一定要产生的,也一定会产生的。操作时这一步只要敲入回车就行了;第二个是列表文件,它以LST为扩展名,列表文件同时给出源程序和机器语言程序,从而可以使调试变得方便,列表文件是可有可无的,如不需要,则在屏幕上出现提示信息INUL.LST时,敲入回车既可,如果需要,则输入文件名和回车;第三个是交叉符号表,此表给出了用户定义的所有符号,对每个符号都列出了将其定义的所在行号和引用行号,并在定义行号上加上“#”号,同列表文件一样交叉符号表也是为便于调试而设置的,对于一些规模较大的程序,交叉符号表为调试工作带来很大方便。交叉符号表也是可有可无的,如不需要,在屏幕上出现提示信息NUL.CRF时,敲入回车即可。 汇编过程结束时,会给出源程序中的警告性错误和严重错误,前者指一般性错误,后者指语法性错误,当存在这两类错误时,屏幕上除指出错误个数外,还给出错误信息代码,程序员可以通过查找手册来弄清错误性质。 如果汇编过程中,发现有错误,则程序员应该重新用编辑命令修改错误,再进行汇编,最终直到汇编正确通过。要特别指出的是汇编过程只能指出源程序中的语法错误,并不能指算法错误和其他错误。三、LINK命令产生执行文件(EXE文件) 汇编过程根据源程序产生出二进制的目标文件(OBJ文件),但OBJ文件用的是浮动地址,它不能直接在机器上执行,所以还必须使用链接程序(LINK)将OBJ文件转换成可执行的EXE文件,LINK命令还可以将某一个目标文件和其他多个模块(这些模块可以是由自己编写的, 具体操作如下(以对ABC.OBJ进行链接为例):C:link ABC.OBJ此时,在屏幕上见到如下回答信息:Microsoft Macro Assembler Version5.00Copyright Microsoft Corpl981-1985,1987a11 rights reservedRun FileABC.EXE:List FileNUL.MAP:Libraries.LIB:Warning:NO STACK SegmentLINK命令有一个输入文件,即OBJ文件,有时用户程序用到库函数,此时对于提示信息 Libraries.LIB:要输入库名。LINK过程产生两个输出文件,一个是扩展名为EXE的执行文件,产生此文件当然是LINK过程的主要目的,另一个是扩展名为MAP的列表分配文件,也称为映象文件,它给出每个段在内存中的分配情况。比如某一个列表分配文件为如下内容:Warning NO STACK SegmentStart Stop Length Name Class0000H 0015H 0016H CODE0020H 0045H 0026H DATA0050H 0061H 0012H EXTRAorigin GroupProgram entry Point at 0000:0000 MAP文件也是可有可无的。 从LINK过程的提示信息中可看到最后给出了一个“无堆栈段”的警告性错误,这并不影响程序的执行,当然如果源程序中设置了堆栈段,则无此提示信息。四、程序的执行 有了.EXE文件后,就可以执行程序了,此时只要输入文件名即可。仍以ABC为例:C:abc实际上,大部分程序必须经过调试阶段才能纠正程序设计中的错误,从而得到正确的结果。所谓调试阶段,就是用调试程序(DEBUG.COM程序)发现错误,再经过编辑、汇编、链接纠正错误。下面简要介绍DEBUG程序的用法。进入DEBUG程序并装入要调试的程序ABC.EXE,操作命令如下:C:DEBUG ABC.EXE ;进入DEBUG,并载入ABC.EXE 此时,屏幕上出现一个短划线。为了察看程序运行情况,常要分段运行程序。为此,要设立“断点”,即让程序运行到某处自动停下,并把所有寄存器的内容显示出来。为了确定我们所要设定的断点地址,常用到反汇编命令,反汇编命令格式如下:U:从当前地址开始反汇编也可以从某个地址开始反汇编,如下所示:U200:从CS:200处开始反汇编程序员确定了断点地址后,就可以用G命令来设置断点,比如,想把断点设置在0120H处,则打入命令G0120此时程序在0120H处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言。程序员可以从显示的寄存器的内容来了解程序运行是否正确。对于某些程序段,单从寄存器的内容看不到程序运行的结果,而需要观察数据段的内容,此时可用D命令,使用格式如下:DDS:0000 ;从数据段的0单元开始显示128个字节 在有些情况下,为了确定错误到底由哪条指令的执行所引起,要用到跟踪命令。跟踪命令也叫单步执行命令,使用格式如下:T3 :从当前地址往下执行三条指令此命令使得从当前地址往下执行三条指令,每执行一条,便给出各寄存器的内容,最后,给出下一条要执行的指令的地址、机器语言和汇编语言。要退出DEBUG时,使用如下命令:QDEBUG程度中的各种命令,我们将在附录中给出。必须说明的是每一个有经验的程序员都必定熟练掌握调试程序的各主要命令。为此我们需要花费一定功夫熟练掌握DEBUG程序中的主要命令。第三章 汇编语言程序上机实验实验一 两个多位十进制数相加的实验一、实验目的1、熟悉DOS系统命令;学习数据传送和算术运算指令的用法。2、熟悉在PC机上建立、汇编、链接、调试和执行汇编语言程序的过程。3、初步练习用DEBUG调试程序运行8086汇编语言程序的过程。二、实验内容将两个多位十进制数相加,要求加数和被加数均以BCD码形式各自顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送回DATAl处。三、对照程序框图完成下列程序data segmentdata1 db 03h,09h,01h,07h,04hdata2 db 06h,05h,00h,08h,02hdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov si,offset data1mov di,offset data2mov cx,05 ad: mov al,simov bl,di loop ad hltcode endsend start实验二 两个数相乘的实验一、实验目的1、掌握乘法指令和循环指令的用法。2、掌握汇编链接及DEBUG调试程序的方法。二、实验内容1、实现十进制数的乘法。被乘数(5位)和乘数(1位)均以BCD码形式存放在内存中,乘积存放在相应存储单元。2、参考持续框完成下列程序。data segment(1) (2) (3) data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,ax mov cx,05am:mov al,si inc di inc siloop am hltcode endsend start实验三 统计男女生人数实验一 、实验目的 1、掌握循环程序的基本设计方法。 2、熟练掌握汇编链接及DEBUG调试程序方法。二、实验内容统计一个由30人的班中,男、女生的人数各为多少。将统计结果的男生人数存入变量MAN中,女生人数存入变量WOMAN中。三 、参考程序框图完成程序Data segment(1) (2) (3) data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov si,offset data1 beg: jz manc jmp extmanc: ext: inc siloop beghltcode endsend start实验四 统计学生成绩实验一、实验目的通过对学生成绩统计程序的编写,掌握多重分支程序的基本设计方法。二、实验内容将十个学生的成绩按不同分数档进行统计,并将结果存入相应单元中。三、参考程序框图完成下列程序Data segmentGrade db 56,69,84,83,75,87,98,64,100,71S5 db 0S6 db 0S7 db 0S8 db 0S9 db 0S10 db 0data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,ax comp: cmp al,60jl five j1 six j1 seven j1 eight inc s10jmp addrnine: eight:1 2 even:3 4 six:5 6 five: inc s5addr: inc siloop comphltcode endsend start实验五 数据块移动与字符串搜索程序实验一、实验目的掌握串操作程序设计的基本方法并学习查找算法。二、实验内容将首地址为DATA1的按字节存储的数据块,通过使用字符串操作将其移动到首地址为DATA2的数据块中。然后找出其中一个特定的值及位置,如果没有,也作出相应标识。实验六 将ASC码转换为二进制数一、实验目的掌握码制转换的基本原理及相应的转换程序的编写方法。二、实验内容将ASC数据转换为二进制数据;要求将内存中以ASC码表示的十进制整数(范围0-32767)转换成二进制格式存储。三、参考框图完成下列程序Data segment(1) (2) (3) data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax(1) (2) (3) asc:(4) (5) (6) (7) (8) (9) (10) (11) jnz ascmov result,axhltcode endsend start实验七 将二进制数转换为ASC码一、实验目的进一步掌握码制转换的基本原理及相应的转换程序的编写方法。二、实验内容将内存变量中的16位二进制数,转换成相应的ASCII码,存入相应的串变量中。三、参考框图完成程序。data segment(1) (2) data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax(1) (2) (3) ddd:(4) (5) (6) (7) (8) cmp ax,0jnz dddhltcode endsend start实验八 字符和数据的显示程序一、实验目的1、掌握字符和数据的显示方法,了解将数据显示时须转换为ASC码的原理。2、熟悉DOS功能调用的方法二、实验内容先显示信息“INPUT STRING ,THE END FLAG IS $”,再接收字符,如为非数字,则计数器加1。如为数字(0-9),则直接显示,但不计数。最后显示计数值。三、参考框图完成程序data segment mess db Input string ,The end flag is $, $ascii db 5 dup(0)data endscode segmentassume cs:code,ds:datastart proc nearmov ax,datamov ds,ax(1) (2) (2) (3) inpt:(5) (6) cmp al,$jz disp(7) (8) (9) (10) (11) (12) (13) jmp inptaaaa: inc bxjmp inptdisp: mov ax,bxcall binascmov cx,5mov si,offset asciidis:(14) (15) (16) inc si loop dismov ah,4chint 21hstart endp;binasc proc near(17) ;二进制数转ASC码程序 ret binasc endpcode ends end start实验九 将键盘输入的大小写字母相互进行转换一、实验目的1、了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。2、掌握DOS功能调用的方法。二、实验内容接收键盘字符,并将其中的大小写字母相互转换,然后将转换结果显示在屏幕上。三、参考程序框图完成程序。crlf macro mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21hendmdata segmentdatabuf db 30 dup(0)data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax(1) (2) chr:(3) (4) cmp al,0dhjz dispcmp al,Zjg sml(5) (6) (7) sml:(8) (9) (10) jmp chrdisp: crlfmov cx,sidisp1:(11) (12) (13) (14) loop disp1 mov ah,4ch int 21hcode endsend start实验十 求X的实验一、实验目的1、掌握表处理程序设计的基本方法。2、掌握XLAT语句的用法。3、掌握DOS功能调用的方法。二、实验内容编写程序,用查表法求一给定值X的平方,X的取值范围为0-9;要求X从键盘输入,当输入值不为0-9时给出提示信息,并重新输入,按“*”键退出。实验十一 实现分段函数的运算一、实验目的1、能够运用汇编语言处理一些实际问题;2、掌握各种程序设计方法的综合运用;3、熟练应用码制转换程序;4、熟练应用DOS功能调用;5、掌握子程序的编写和调用方法。二、实验内容 1、任务:设计一程序使其实现下面的功能: Y= 2、要求:(1)A由键盘输入;(2)结果在屏幕上显示;(3)码制转换部分用子程序编写;(4)当输入不为数字则给出提示信息,重新输入,按“ENTER”键退出。实验十二 排序实验一、实验目的1、掌握用汇编语言编写排序程序的思路和方法;2、熟练应用码制转换程序;3、熟练掌握用DOS功能调用显示字符的方法;4、熟练掌握子程序的编写和调用方法。二、实验内容1、任务:接受从键盘输入的一些数并放入内存,设计程序将这些数由小到大排序,并将结果显示在屏幕上。2、要求:(1)输入,输出数据分行显示且在屏幕上显示时数据之间以空格隔开;(2)码制转换部分用子程序编写;(3)当输入不为数字则给出提示信息,重新输入。 实验十三 读文件的实验一、实验目的1、掌握读文件DOS功能调用方法。2、初步了解用DOS功能调用对文件进行操作的方法。二、实验内容编写程序,使它相当于TYPE命令的功能。先由屏幕显示提示信息,再读取文件名(含路径)。然后在屏幕上显示文件内容。三、参考框图完成程序编程提示:1、对于文件的读写操作,DOS提供了两种手段。第一种手段是使用FCB进行存取,第二种手段是文件代号法进行存取。文件代号法支持目录路径,并且对错误采用了更统一的办法处理,是DOS推荐的存取方法。2、使用文件代号法,要求文件名(含路径)用ASCZ串表示。所谓ASCZ串,就是以空字符00H结尾的一串ASC字符。3、文件代号法存取时出现错误,则功能调用返回时,要将CY标志置1,同时在AX寄存器中返回统一的出错代码。程序中要用JC指令进行错误判定,确认出错后再将错误代码显示出来,以便分析出错原因。 crlf macro endmdata segmenthandle dw?namebuf db 20 db ?namef db 20 dup (?)datbuf db 200 dup (?)intro db 0dh,0ah,Enter pathname:$emess db error!$data endsstack segment para stackstacksta dw 32 dup (?)top dw ?stack endscode segment para publiccodeassume cs:code,ds:data,es:data,ss:stackstart: mov ax,datamov ds,axmov es,ax mov sp,topmov ah,09h lea dx,intro int 21h mov ah,0ah lea dx,namebuf int 21h crlf lea si,namebuf mov bl,si+1mov bh,0mov byte ptr namebuf+bx+2,0(1)_ ;以读方式打开指定文件(2)_(3)_ (4)_ mov bx,ax jc error mov handle,axttt:(5)_;读200字节到缓冲区(6)_(7)_(8)_(9)_mov bx,axjc error(10)_;判断文件是否结束,即AX=0?(11)_mov cx,axlea bx,datbufjjj:(12) _ ;显示缓冲区中的内容(13)_(14)_(15)_loop jjjjmp tttexit:(16)_;关闭文件(17)_ (18)_mov bx,axjc errormov ax,4c00h ;return MS-DOSint 21h;error: mov ah,09hlea dx,emessint 21h code ends end start实验十四 写文件的实验一、实验目的掌握写文件的DOS功能调用方法。二、实验内容编写程序,将从键盘接收的一连串数据(以CTRLZ为结束符)作为一个文件存入磁盘,文件名从键盘输入。三、编程提示1、对于文件的读写操作,DOS提供了两种手段。第一种手段是使用FCB进行存取,第二种手段是文件代号法进行存取。文件代号法支持目录路径,并且对错误采用了更统一的办法处理,是DOS推荐的存取方法。2、使用文件代号法,要求文件名(含路径)用ASCZ串表示。所谓ASCZ串,就是以空字符00H结尾的一串ASC字符。3、文件代号法存取时出现错误,则功能调用返回时,要将CY标志置1,同时在AX寄存器中返回统一的出错代码。程序中要用JC指令进行错误判定,确认出错后再将错误代码显示出来,以便分析出错原因。 实验十五 显示目录的实验一、实验目的1、掌握目录操作的DOS功能调用。2、掌握用DOS功能调用对文件及目录的操作方法。二、实验内容编写程序。使其相当于DIR命令的功能,即在屏幕上显示目录。三、完成下列程序编程提示:检索目录项首先应使用INT 21H的4EH号子功能,它将搜索第1个匹配文件。然后不断使用INT 21H的4FH子功能,搜索下1个匹配文件。这样就能实现DIR的功能。这两个子功能调用均能识别文件名中的?和*这两个字符。 crlf macro endmdata segment dtabuf db 128 dup(?)fname db *.*,0data endsstack_ segment para stackstacksta dw 32 dup(?)top dw?Stack_ endscode segment para publiccodeassume cs:code,ds:data,es:data,ss:stack_start: mov ax,datamov ds,axmov es,axmov sp,top(1)_;设置DTA磁盘传送缓冲区(2)_(3)_(4)_;用4EH功能检索第一个匹配文件(5)_(6)_(7)_jc exit xxx:crlf mov cx,0 lea si,dtabuf+1ehuuu:lodsb or a1,a1 jz vvv inc cxjmp uuuvvv:lea dx,datbuf+1ehmov bx,1mov ah,40hint 21hzzz:mov ah,4fh int 21h jnc xxxexit:mov ah,4ch int 21hstart endpcode endsend start第四章 微机原理硬件实验实验一 8255A并行口实验(一)LED显示一、实验目的1、掌握8255A的工作原理及使用方法。2、通过8255A实验,掌握I/O设备于CPU接口的基本原理和编程方法。二、实验内容用8255A并行口控制LED发光二极管的亮灭,使12个LED循环依次点亮。三、实验电路四、编程提示8255A可编程接口芯片具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0:基本输入/输出方式方式1:选通输入/输出方式方式2:双向选通工作方式设置8255A端口A、B工作在方式0并处于输出方式,由于LED二极管共阳极连接,故8255端口输出为低电平既0时,LED发光二极管点亮。五、实验步骤按实验电路图连接线路:8255A芯片A口的PA0PA7依次接L1L8。8255A芯片B口的PB0PB3依次接L9L12。实验二 8255A并行口实验(二)PA输入、PB输出一、实验目的1、掌握8255A和微机接口方法。2、掌握8255A的工作方式和编程原理。二、实验内容用8255 PA作开关量输入口,PB作输出口。三、程序框图四、实验电路五、编程提示8255A芯片简介8255A可编程外围接口芯片是Intel公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0:基本输入/输出方式方式1:选通输入/输出方式方式2:双向选通工作方式使8255A端口A工作在方式0并作为输出口,读取K1-K8八个开关量,送PB口显示。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络金融安全与监管-洞察及研究
- 氢能储运技术研究-洞察及研究
- 紧急疏散演练与反恐演习-洞察及研究
- 数字货币对宏观经济增长影响-洞察及研究
- 手势触摸在医疗设备中的应用-洞察及研究
- 服务外包合同规范体系
- 2025年儿童玩具产品风险分析与预防可行性研究报告
- 2025年旅游目的地旅游智慧旅游评价研究报告
- 贵州省兴义市鲁屯镇中学2026届七年级数学第一学期期末考试模拟试题含解析
- 江西省鄱阳县第二中学2026届数学七年级第一学期期末经典模拟试题含解析
- 公司与劳务派遣公司合同范本
- 糖尿病患者的个性化诊治策略
- 经络腧穴学-课件
- 智能垃圾分类回收箱
- 中州国信特殊资产管理断供保房服务相关问题解答
- 烟草评级员业务报告范文
- 2025年三基三严考试题题库(含答案)
- 湖北省重点高中智学联盟2024-2025学年高三上学期10月联考物理试题(解析版)
- 《智慧运输运营》全套教学课件
- 2024新教材高中历史 第八单元 中华民族的抗日战争和人民解放战争 第25课 人民解放战争教学设计 部编版必修中外历史纲要上
- 《统计分析与SPSS的应用(第7版)》课件全套 第1-12章 SPSS统计分析软件概述
评论
0/150
提交评论