收藏 分享(赏)

北邮微原硬件实验报告.doc

上传人:HR专家 文档编号:4916108 上传时间:2019-01-22 格式:DOC 页数:31 大小:854.88KB
下载 相关 举报
北邮微原硬件实验报告.doc_第1页
第1页 / 共31页
北邮微原硬件实验报告.doc_第2页
第2页 / 共31页
北邮微原硬件实验报告.doc_第3页
第3页 / 共31页
北邮微原硬件实验报告.doc_第4页
第4页 / 共31页
北邮微原硬件实验报告.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、 信息与通信工程学院 微机原理硬件实验报告12013 年微机原理硬件实验报告学 院:信息与通信工程学院班 级:2011211104姓 名:信息与通信工程学院 微机原理硬件实验报告2实验一 I/O地址译码 一实验目的 掌握I/O地址译码电路的工作原理。 二实验原理和内容 1.实验电路如图 1-1 所示,其中 74LS74 为 D 触发器,可直接使用实验台上数字电路实验区的 D 触发器,74LS138 为地址译码器。译码输出端 Y0Y7 在实验台上“I/O 地址“输出端引出,每个输出端包含8 个地址,Y0:280H287H,Y1:288H28FH, 当 CPU 执行 I/O 指令且地址在 280H

2、2BFH 范围内,译码器选中,必有一根译码线输出负脉冲。 例如:执行下面两条指令 MOV DX,2A0H OUT DX,AL(或IN AL,DX) Y4输出一个负脉冲,执行下面两条指令 MOV DX,2A8H OUT DX,AL(或IN AL,DX) Y5 输出一个负脉冲。 原理:地址 2A0H 的 A5,A4,A5 为 100,在输入或输出时,IOW 或 IOR 为0,使得 74LS138 被选中,经过译码,在 Y4 口输出负脉冲。其他同理。图 1-1利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、) ,时间间隔通过软件延时实现。 2.接线: Y4/IO地址 接 CLK/D触发器 信息与通信

3、工程学院 微机原理硬件实验报告3Y5/IO地址 接 CD/D触发器 D/D触发器 接 SD/D角发器 接 +5V Q/D 触发器 接 L7(LED 灯)或 逻辑笔 3程序流程图4源程序DATA SEGMENTDATA ENDSSTACK SEGMENT STACK STACKDB 100H DUP(?)STACK ENDS开始设置循环次数输出负脉冲点亮 L7调用延时子程序延时输出另一个负脉冲,熄灭 L7调用延时子程序延时循环次数是否到零结束否是信息与通信工程学院 微机原理硬件实验报告4CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK;延时子程序DELAY

4、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 START5实验结果LED7 正常闪烁显示6.实验总结这是我们第一次做微原硬件实验,我开始一直觉得编程很重要,发现按照实验要求很快就编出了程序,完成了实验,但是

5、当给老师验收时,老师问我为什么向 2A0 口输出一下,就会在 Y4 产生一个负脉冲,我瞬间就僵住了,的确我没有考虑过这个问题。后来,经过我对电路图的分析思考,得出了正确的结论,我才明白,硬件才是这个实验的核心,最重要的是要理解硬件是如何工作的,而不是仅仅按照要求编个程序就可以了。同时,我也十分感谢老师对我们的严格要求!信息与通信工程学院 微机原理硬件实验报告5实验二 简单并行接口 一实验目的 掌握简单并行接口的工作原理及使用方法。 二实验原理和内容 1.按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8

6、个D输入端分别接数据总线D0D7,8个Q输出端接LED显示电路L0L7。 2.编程从键盘输入一个字符或数字,将其ASC码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。 3.按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0K7,8个数据输出端分别接数据总线D0D7。 4.用逻辑电平开关预置某个字母的 ASC码,编程输入这个 ASC码,并将其对应字母在屏幕上显示出来。 5.接线:1)输出 按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验台逻辑

7、或门)2)输入 按图 4-2-2 接线(图中虚线为实验所需接线,74LS32 为实验台逻辑或门) 由于,我的实验台上的芯片是 74LS273,因此本实验仅涉及 74LS273 输出。信息与通信工程学院 微机原理硬件实验报告63程序流程图四源程序DATA SEGMENTDATA ENDSSTACK SEGMENT STACK STACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AH,1 ;键盘输入INT 21HCMP AL,27 ;检测是否为ESC键JZ EXITMOV DX,2A8H

8、 ;输出OUT DX,ALJMP START;返回DOSEXIT: MOV AX,4C00HINT 21H信息与通信工程学院 微机原理硬件实验报告7CODE ENDSEND START五实验结果键盘输入字符,然后二极管显示键盘输入字符的ASC码六实验总结本次实验相较上一次实验,顺利很多,因为有了第一次实验的基础,我在编代码之前,先仔细研究课硬件电路图,分析了整个过程中硬件是如何工作的,都会有怎样的反应,而后才编写了程序,并验收通过。实验三 可编程并行接口8255 一实验目的 通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。 二实验原理和内容 18255的工作方式 一

9、片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 位(如图) ,存放在 8255 控制寄存器中。最高位 D7为标志位,D7=1 表示控制寄存器中存放的是工作方式选

10、择字,D7=0 表示控制寄存器中存放的是 C 口置位/复位控制字。 信息与通信工程学院 微机原理硬件实验报告83C口置/ 复位控制字8255 的 C 口可进行位操作,即:可对 8255C 口的每一位进行置位或清零操作,该操作是通过设置 C 口置/复位字实现的。C 口置/复位字共 8 位,各位含义如下: 48255A 的控制信号与传输动作的对应关系 :5命令字与初始化编程 8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是: 向8255控制寄存器写入“方式选择控制字” ,从而预置端口的工作方式。 当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字

11、” 。这一操作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。 注意:“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,信息与通信工程学院 微机原理硬件实验报告9所以要写入控制寄存器,而不是写入C口控制寄存器。 向 8255 数据寄存器写入“数据”或从 8255 数据寄存器读出“数据” 6.实验内容(1)实验电路如图 4-3-1,8255C 口接逻辑电平开关 K0K7,A 口接 LED 显示电路 L0L7。 (2)编程从 8255C 口输入数据,再从 A 口输出。 (3)接线:PC7PC0/8255 接

12、K7K0/逻辑电平开关 PA7PA0/8255 接 L7L0/LED显示 CS/8255 接 Y1/IO 地址 8255控制寄存器端口地址-28BH, A口的地址-288H, B口的地址-289H,C口的地址-28AH。 三程序流程图信息与通信工程学院 微机原理硬件实验报告10四源程序DATA SEGMENTDATA ENDSSTACK SEGMENTDB100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART PROC FARPUSH DSXOR AX,AXPUSH AX ;准备返回 DOSMOV AL,1000

13、1001B;8255 初始化,设置 A 口为输出,C 口输入MOV DX,28BHOUT DX,AL LOOP1: MOV DX,28AH ;从 C 口读入开关状态IN AL,DXMOV DX,288H ;向 A 口输出,点亮对应二极管OUT DX,AL JMP LOOP1信息与通信工程学院 微机原理硬件实验报告11RETSTART ENDPCODE ENDSEND START 五实验结果打开开关,对应的 LED 灯被点亮六实验总结本次实验是关于并行接口 8255,由于在实验前我们还没有讲 8255,使得我在做实验过程中发生了很多困难,主要是在对硬件连接的分析上一直没有搞懂,后来我和周围同学看

14、着课本一点点的讨论,最终弄懂了硬件连接和响应的过程,也使得我们对 8255 有了深刻的理解,画出硬件连接图后,很快编写了程序,完成了实验内容。在此,还要感谢老师对我们严格要求,使得我们能真正搞懂硬件,再去完成软件编程。实验四 七段数码管 一实验目的 掌握数码管显示数字的原理 2实验原理和内容 1.数码管原理实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。七段数码管的字型代码表如下表: 信息与通信工程学院 微机原理硬件实验报告122.实验内容静态显示:按4-4-1连接好电路,将8255的A口PA0PA7分别与七段数码管的段码

15、驱动输入端adp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。 (或编程在数码管上循环显示“00-99” , 位码驱动输入端S0、S1 接PC0、PC1;S2、S3接地。 ) 3.接线: PA7PA0/8255 接 dpa/LED数码管 PC3PC0/8255 接 S3S0/LED数码管 CS/8255 接 Y1/IO 地址 信息与通信工程学院 微机原理硬件实验报告13三程序流程图信息与通信工程学院 微机原理硬件实验报告14四源程序DATA SEGMENTDATA ENDSSTACK SEGMENT STACK STACKDB

16、 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV DX,28BH ;写控制口,设置 A,C 口为输出MOV AL,80HOUT DX,ALMOV CX,100AGAIN: MOV DX,28AH ;第一个数码管显示MOV AL,00HOUT DX,ALMOV DX,288HMOV AL,3FHOUT DX,ALMOV DX,28AHMOV AL,01HOUT DX,ALMOV DX,28AH ;第二个数码管显示MOV AL,00HOUT DX,ALMOV

17、DX,288HMOV AL,5BHOUT DX,ALMOV DX,28AHMOV AL,02HOUT DX,ALMOV DX,28AH ;第三个数码管显示MOV AL,00HOUT DX,ALMOV DX,288HMOV AL,06H信息与通信工程学院 微机原理硬件实验报告15OUT DX,ALMOV DX,28AHMOV AL,04HOUT DX,ALMOV DX,28AH ;第四个数码管显示MOV AL,00HOUT DX,ALMOV DX,288HMOV AL,3FHOUT DX,ALMOV DX,28AHMOV AL,08HOUT DX,ALLOOP AGAINMOV AH,4CHIN

18、T 21HCODE ENDSEND START五实验结果数码管显示我的学号后四位 0120六实验总结实验中遇到的问题:由于有上一个实验的基础,我在做这个实验时对 8255 的工作方式和硬件连接已经十分熟悉了,因此开始很快就分析了硬件,画出流程图,编写了代码,原本以为可以很快做完这个实验,后来发现数码管显示有问题,显示有重影,还有些闪烁,后来,经过分析,我觉得是因为点亮每个数码管之前没有复位导致的,所以我在每次显示数码管之前对数码管的位码复位:MOV DX,28AH MOV AL,00HOUT DX,AL经过修改显示了稳定、清晰的数字。这次实验再一次巩固了我对 8255 并行接口的理解和使用,同

19、时,学会了数码管的使用。收获颇丰,也对我的理论课学习有十分大的帮助!信息与通信工程学院 微机原理硬件实验报告16实验八 可编程定时器计数器(8253/8254) 一实验目的: 学习掌握 8253 用作定时器的编程原理; 二实验原理和内容 1.8253/8254 的使用8253 和 8254 都是可编程计数器,它们的引脚兼容,功能与使用方法相同。8254 是 8253 的改进型。 (1)8253 初始化 使用 8253 前,要进行初始化编程。初始化编程的步骤是: 向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。 向使用的计数器端口写入计数初值。 (2)8253 控制字 D7D600:使

20、用0号计数器,D7D601:使用1号计数器 D7D610:使用2号计数器,D7D611:无效 D5D400:锁存当前计数值 D5D401:只写低8位(高8位为0) ,读出时只读低8位 D5D410:只写高8位(低8位为0) ,读出时只读高8位 D5D411:先读/写低8位,后读/写高8位计数值 D3D2D1000:选择方式0,D3D2D1001:选择方式1 D3D2D1X10:选择方式2,D3D2D1X11:选择方式3 D3D2D1100:选择方式4,D3D2D1101:选择方式5 D00:计数初值为二进制,D01:计数初值为 BCD 码数 2.实验电路信息与通信工程学院 微机原理硬件实验报告

21、173.接线: CS /8253 接 Y0 /IO 地址 GATE0 /8253 接 +5V CLK0 /8253 接 1M时钟 OUT0 /8253 接 喇叭或蜂鸣器 8253控制寄存器地址 283H ,计数器0地址 280H ,计数器1地址 281H ,计数器2地址 282H ,CLK0连接时钟 1MHZ 4.实验内容:完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。 扩展部分:利用小键盘实现弹琴功能,并显示弹奏的乐谱。 三程序流程图信息与通信工程学院 微机原理硬件实验报告18四源程序1.基础实验:(自动播放预存乐曲)DATA SEGMENTNOTE DW 0,3906

22、,3472,3125,2932,2604,2344,2083,1953;频率开始初始化 8254初始化 8255设置循环次数为歌曲长度取一个音符数码管显示音符按照音符频率,输出给 8254 计数初值将分频后的时钟,输出给喇叭发声循环次数减一循环次数是否到 0结束是否信息与通信工程学院 微机原理硬件实验报告19TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码管MUSIC DB 1,1,5,5,6,6,5,4,4,3,3,2,2,1,5,5,4,4,3,3,2,5,5,4,4,3,3,2,1,1,5,5,6,6,5,4,4,3,3,2,2,1

23、;存放的乐符DATA ENDSSTACK SEGMENT STACK STACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK;延时子程序DELAY PROC NEARPUSH CXMOV CX,0FFFFH WAIT1: LOOP WAIT1POP CXRETDELAY ENDPSTART: MOV AX,DATAMOV DS,AX;8254 初始化MOV DX,283H MOV AL,36H ;零号计数器,工作在方式 3OUT DX,AL;8255 初始化MOV DX,28BH MOV AL,80H OU

24、T DX,AL MOV DX,28AH MOVAL,01HOUT DX,ALAGAIN: MOV SI,0MOV CX,42PLAY: MOV BL,MUSICSIMOV BH,0MOV AL,TABLEBXMOV DX,288H ; 显示音符OUT DX,ALADD BX,BXMOV AX,NOTEBX信息与通信工程学院 微机原理硬件实验报告20MOV DX,280HOUT DX,ALMOV AL,AHOUT DX,ALMOV AX,120HLOOP1: CALL DELAYDEC AXJNZ LOOP1MOV AX,0 MOV DX,280HOUT DX,ALMOV AL,AHOUT DX

25、,ALCALL DELAYINC SILOOP PLAYJMP AGAINCODE ENDSEND START2.拓展实验:(DOS 调用键盘输入弹奏乐曲)DATA SEGMENTNOTE DW 0,3906,3472,3125,2932,2604,2344,2083,1953;频率TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码管DATA ENDSSTACK SEGMENT STACK STACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK;延时子程

26、序DELAY PROC NEARPUSH CXMOV CX,0FFFFH WAIT1: LOOP WAIT1POP CXRETDELAY ENDP信息与通信工程学院 微机原理硬件实验报告21START: MOV AX,DATAMOV DS,AX;8254 初始化MOV DX,283H MOV AL,36H ;零号计数器,工作在方式 3OUT DX,AL;8255 初始化MOV DX,28BH MOV AL,80H OUT DX,AL MOV DX,28AH MOVAL,01HOUT DX,ALPLAY: MOV AH,01HINT 21HSUB AL,30HMOV AH,0MOV BX,AXM

27、OV AL,TABLEBXMOV DX,288H ; 显示音符OUT DX,ALADD BX,BXMOV AX,NOTEBXMOV DX,280HOUT DX,ALMOV AL,AHOUT DX,ALMOV AX,90HLOOP1: CALL DELAYDEC AXJNZ LOOP1MOV AX,0 MOV DX,280HOUT DX,ALMOV AL,AHOUT DX,ALCALL DELAYJMP PLAYCODE ENDSEND START信息与通信工程学院 微机原理硬件实验报告22五实验结果基础实验:正常播放出预存的小星星歌曲拓展实验:由键盘输入,可以弹奏乐曲六实验总结实验中遇到的问题

28、:1.播放音乐声音刺耳,发现是因为用了蜂鸣器,改用喇叭后声音不再刺耳。2.播放音乐音调有问题,发现是分频比计算错误导致这次实验是我第一次接触 8254,为了能顺利完成实验,我按照老师的要求在课前做好了预习工作,提前编写了代码,并画了硬件连接图和对应的程序流程图。于是在课上节省了很多时间,很快便调试成功。而后,我有对实验进行了拓展,将自动播放音乐,改为由键盘输入弹奏音乐,并实现成功。通过这次实验,我基本学会了 8254 计数器的使用,对我理论课的学习有很大帮助!七思考题写出 8253 计数初值、输入频率和输出频率的关系。输出频率 = 输入频率 / 8253 计数初值实验十六 串行通讯 8251

29、一实验目的 1.了解串行通讯的基本原理。 2.掌握串行接口芯片8251的工作原理和编程方法。 二实验原理和内容 1.按图4-16-1连接好电路,(8251插通用插座)其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。 2.编程: 从键盘输入一个字符,将其 ASCII 码加 1 后发送出去,再接收回来在屏幕上显示, (或将内存制定区域内存放的一批数据通过 8251A 的 TXD 发送出去,然后从 RXD 接收回来,并在屏幕上或数码管上显示出来。 )实现自发自收。 信息与通信工程学院 微机原理硬件实验报告233.接线: CLK0 /8254 接 1M时钟 GATE0 /8

30、254 接 +5V 0UT0 /8254 接 TX/RXCLK /8251 CS /8254 接 Y0 /IO地址 CS /8251 接 Y7 /IO地址 RXD /8251 接 TXD /8251 (1)图示电路 8251 的控制口地址为 2B9H,数据口地址为 2B8H。 (2)8254 计数器的计数初值=时钟频率/(波特率波特率因子),这里的时钟频率接 1MHz,波特率若选 1200,波特率因子若选 16,则计数器初值为52。 14 (3)收发采用查询方式。 扩展:双机通信,将发送端用小键盘发送数据,接收端用数码管显示接收的数据。 连线:将发送端的 TXD 与接收端的 RXD,将发送端的

31、 RXD 与接收端的 TXD, (即交叉连接) ,并将两台接口板的地连在一起。其余与上面连线相同。 三程序流程图信息与通信工程学院 微机原理硬件实验报告24四源程序1.基础部分:(自发自收)DATA SEGMENTERRMSG DB 0DH,0AH,error,0DH,0AH,$STRING DB 0DH,0AH,Please input a word.,0DH,0AH,$,0DH,0AHDATA ENDSSTACK SEGMENT STACK STACKDB 100 DUP(?)STACK ENDSCODE SEGMENT信息与通信工程学院 微机原理硬件实验报告25ASSUME CS:COD

32、E,DS:DATA,SS:STACKSTART: ;8253 初始化MOV DX,283HMOV AL,00010110BOUT DX,ALMOV DX,280HMOV AL,52OUT DX,ALMOV AH,09HMOV DX,SEG STRINGMOV DS,DX MOV DX,OFFSET STRINGINT 21H ;初始化 8251AGOON: MOV DX,2B9HMOV AL,40HOUT DX,AL NOPMOV AL,5EH ;设置异步方式,1 位停止位,字符长度为 8 位,奇校验,波特率因子为 16OUT DX,ALMOV AL,37H ;命令控制字对应位置一OUT DX

33、,AL;查询工作AGAIN: MOV DX,2B9HIN AL,DXTEST AL,38H;检查是否出错JNZ ERRTEST AL,01H;检查是否可以发送数据JZ AGAIN MOV AH,01H;从键盘输入一个字符,ACSII 码加一后在输出INT 21HCMP AL,1BHJZ EXITINC ALMOV DX,2B8HOUT DX,ALMOV CX,100HLOOP1: LOOP LOOP1信息与通信工程学院 微机原理硬件实验报告26RECEIVE: MOV DX,2B9HIN AL,DXTEST AL,02H;检查是否收到新数据 JZ RECEIVE MOV DX,2B8HIN A

34、L,DXMOV DL,ALMOV AH,02HINT 21HJMP GOONERR: MOV AH,09HMOV DX,SEG ERRMSGMOV DS,DXMOV DX,OFFSET ERRMSGINT 21HEXIT: MOV AX,4C00HINT 21HCODE ENDSEND START2.拓展双机通信:(1)单工:发送方:DATA SEGMENTERRMSG DB 0DH,0AH,error,0DH,0AH,$STRING DB 0DH,0AH,Please input a word.,0DH,0AH,$,0DH,0AHDATA ENDSSTACK SEGMENT STACK ST

35、ACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: ;8253 初始化MOV DX,283HMOV AL,00010110BOUT DX,ALMOV DX,280HMOV AL,52信息与通信工程学院 微机原理硬件实验报告27OUT DX,ALMOV AH,09HMOV DX,SEG STRINGMOV DS,DX MOV DX,OFFSET STRINGINT 21H ;初始化 8251AGOON: MOV DX,2B9HMOV AL,40HOUT DX,AL NOPMOV AL,5EH ;设

36、置异步方式,1 位停止位,字符长度为 8 位,奇校验,波特率因子为 16OUT DX,ALMOV AL,37H ;命令控制字对应位置一OUT DX,AL;查询工作AGAIN: MOV DX,2B9HIN AL,DXTEST AL,38H;检查是否出错JNZ ERRTEST AL,01H;检查是否可以发送数据JZ AGAIN MOV AH,01H;从键盘输入一个字符,ACSII 码加一后在输出INT 21HCMP AL,1BHJZ EXITINC ALMOV DX,2B8HOUT DX,ALMOV CX,100HLOOP1: LOOP LOOP1JMP AGAINERR: MOV AH,09HM

37、OV DX,SEG ERRMSGMOV DS,DXMOV DX,OFFSET ERRMSGINT 21HEXIT: MOV AX,4C00HINT 21H信息与通信工程学院 微机原理硬件实验报告28CODE ENDSEND START接收方:DATA SEGMENTERRMSG DB 0DH,0AH,error,0DH,0AH,$STRING DB 0DH,0AH,Please input a word.,0DH,0AH,$,0DH,0AHDATA ENDSSTACK SEGMENT STACK STACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS

38、:CODE,DS:DATA,SS:STACKSTART: ;8253 初始化MOV DX,283HMOV AL,00010110BOUT DX,ALMOV DX,280HMOV AL,52OUT DX,ALMOV AH,09HMOV DX,SEG STRINGMOV DS,DX MOV DX,OFFSET STRINGINT 21H ;初始化 8251AGOON: MOV DX,2B9HMOV AL,40HOUT DX,AL NOPMOV AL,5EH ;设置异步方式,1 位停止位,字符长度为 8 位,奇校验,波特率因子为 16OUT DX,ALMOV AL,37H ;命令控制字对应位置一OU

39、T DX,AL;查询工作AGAIN: MOV DX,2B9H信息与通信工程学院 微机原理硬件实验报告29IN AL,DXTEST AL,38H;检查是否出错JNZ ERRTEST AL,02H;检查是否收到新数据 JZ AGAIN MOV DX,2B8HIN AL,DXMOV DL,ALMOV AH,02HINT 21HJMP AGAINERR: MOV AH,09HMOV DX,SEG ERRMSGMOV DS,DXMOV DX,OFFSET ERRMSGINT 21HEXIT: MOV AX,4C00HINT 21HCODE ENDSEND START(2)双工:DATA SEGMENTE

40、RRMSG DB 0DH,0AH,error,0DH,0AH,$STRING DB 0DH,0AH,Please input a word.,0DH,0AH,$,0DH,0AHDATA ENDSSTACK SEGMENT STACK STACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: ;8253 初始化MOV DX,283HMOV AL,00010110BOUT DX,ALMOV DX,280HMOV AL,52OUT DX,AL信息与通信工程学院 微机原理硬件实验报告30MOV AH,09

41、HMOV DX,SEG STRINGMOV DS,DX MOV DX,OFFSET STRINGINT 21H ;初始化 8251AGOON: MOV DX,2B9HMOV AL,40HOUT DX,AL NOPMOV AL,5EH ;设置异步方式,1 位停止位,字符长度为 8 位,奇校验,波特率因子为 16OUT DX,ALMOV AL,37H ;命令控制字对应位置一OUT DX,AL;查询工作AGAIN: MOV DX,2B9HIN AL,DXTEST AL,38H;检查是否出错JNZ ERRTEST AL,02H;检查是否收到新数据 JNZ RECEIVE TEST AL,01H;检查是否可以发送数据JZ AGAIN MOV AH,1INT 16HJZ AGAINMOV DX,2B8HOUT DX,ALMOV CX,100HLOOP1: LOOP LOOP1 JMP AGAIN RECEIVE: MOV DX,2B8HIN AL,DXMOV DL,ALMOV AH,02HINT 21HJMP AGAINERR: MOV AH,09HMOV DX,SEG ERRMSGMOV DS,DXMOV DX,OFFSET ERRMSG

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报