第一篇:北京邮电大学微机原理与接口技术硬件实验报告
信息与通信工程学院
微机原理与接口技术硬件实验报告
班
姓 学 序
级:
名:
号:
号:
日
期: 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范围内,译码器选中,必有一根译码线输出负脉冲。例如:执行下面两条指令 MOV DX,2A0H OUT DX,AL(或IN AL,DX)
Y4输出一个负脉冲,执行下面两条指令 MOV DX,2A8H OUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。
利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、„„),时间间隔通过软件延时实现。
2、接线: Y4/IO地址接 CLK/D触发器 Y5/IO地址接 CD/D触发器
D/D触发器接 SD/D角发器接 +5V Q/D触发器接 L7(LED灯)或逻辑笔
三、硬件接线图与软件程序流程图
硬件连接图如下: 程序流程图如下:
四、源程序
CODE SEGMENT
ASSUME CS:CODE ;定义代码段
START:
MOV DX,2A0H
;选通Y4
OUT DX,AL
CALL DELAY
;延时
MOV DX,2A8H
;选通Y5
OUT DX,AL
CALL DELAY ;延时
MOV AH,1H
INT 16H;01号功能调用,从键盘接收按键 JZ START
;无键按下,返回START MOV AH,4CH;有键按下,返回DOS系统 INT 21H
DELAY PROC NEAR
;延时子程序,循环系数为100
MOV BX,100 LOOP1: MOV CX,0
LOOP2: LOOP LOOP2
DEC BX
JNZ LOOP1
RET
DELAY ENDP
CODE
ENDS
END START
五、实验结果
按下键盘时L7闪烁发光,交替亮灭。
六、实验总结
实验一开始时不理解怎样选通Y4和Y5的地址,对整个接口电路分析后才明白了译码电路真正的原理。
七、实验收获与心得体会
本次实验主要了解了端口的输出,D触发器作为一个外部端口实现了向D触发器内写值并正确输出,控制灯泡亮灭,实现了译码功能。对I/O接口有了更深的理解,对以后的实验很有帮助。这次实验是第一次用汇编语言来让硬件实现功能,和之前学过的C++有很大的区别,也让我进一步看到了他们的不同之处。
实验二简单并行接口
一、实验目的
掌握简单并行接口的工作原理及使用方法。
二、实验原理及内容
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Ⅱ码,并将其对应字母在屏幕上显示出来。
5、接线:1)输出
按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)2)输入
按图4-2-2接线(图中虚线为实验所需接线,74LS32为实验台逻辑或门)
三、硬件接线图与软件程序流程图
硬件连接图如下:
图4-2-1
图4-2-2
程序流程图如下:
四、源程序 CODE SEGMENT;定义代码段 ASSUME CS:CODE START:MOV AH,1 INT 21H;从键盘检测输入 CMP AL,00011011B JZ EXIT MOV DX,2A8H;送出ASCII码 OUT DX,AL MOV DX,2A0H;读入ASCII码 IN AL,DX MOV DL,AL MOV AH,02H;屏幕显示ASCII码 INT 21H JMP START;循环检测
EXIT:MOV AX,4C00H;返回DOS INT 21H CODE ENDS END START
五、实验结果
从键盘输入字符或数字,若不是Esc键,则二极管显示其ASCII码情况,若按下ESC,则返回dos,且各LED灯灭。
六、实验总结
实验一开始不太明白如何把输入的字符通过二极管显示出来,后来参考了实验一的译码输出,理解了实验原理。
七、实验收获与心得体会
这次实验是对I/O接口译码电路的运用,进一步熟悉了译码电路、键盘输入检测等功能的运用,让我很好的明白了CPU的地址总线与外部接口是如何工作,也进一步了解了硬件实验,希望在以后的实验中有更多的收获。
实验四七段数码管
一、实验目的
掌握数码管显示数字的原理
二、实验原理及内容
1、静态显示:按4-4-1连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。(或编程在数码管上循环显示“00-99”,位码驱动输入端S0、S1 接PC0、PC1;S2、S3接地。)
2、接线: PA7~PA0/8255 接dp~a/LED数码管 PC3~PC0/8255 接 S3~S0/LED数码管 CS/8255 接 Y1/IO地址
三、硬件接线图与软件程序流程图
硬件连接图如下:
程序流程图如下:
四、源程序
DATA SEGMENT;定义代码段 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV DX,28BH;控制口地址
MOV AL,80H;控制字10000000设定工作方式0,所有口都置为输出
OUT DX,AL
LOP1: MOV DX,288H ;A口地址
MOV AL,3fH;段选写0 OUT DX,AL
MOV DX,28AH;位选第4个LED,C口地址
MOV AL,08H OUT DX,AL
MOV DX,28AH;熄灭数码管
MOV AL,0 OUT DX,AL
MOV DX,288H;段选写3 MOV AL,4fH OUT DX,AL
MOV DX,28AH ;位选第3个LED MOV AL,04H OUT DX,AL
MOV DX,28AH;熄灭数码管
MOV AL,0 OUT DX,AL
MOV DX,288H ;段选写0 MOV AL,3fH OUT DX,AL
MOV DX,28AH;位选第2个LED MOV AL,02H OUT DX,AL
MOV DX,28AH ;熄灭数码管
MOV AL,0 OUT DX,AL
MOV DX,288H ;段选写0 MOV AL,3fH OUT DX,AL
MOV DX,28AH ;位选第1个LED MOV AL,01H OUT DX,AL
MOV DX,28AH ;熄灭数码管 MOV AL,0 OUT DX,AL
MOV AH,01H INT 16H JNZ EXIT;有键输入则退出
JMP LOP1 EXIT: MOV AX,4C00H;返回DOS INT 21H CODE ENDS END START
五、实验结果
结果显示了学号的后四位0300,如下如所示:
当有键盘输入时,返回DOS系统。
六、实验总结
本次实验用了8255并行接口芯片,采用方式0,所有口都用输出模式,A口为段选,控制输出的数据,C口为位选,控制不同的位不断扫描、交替亮灭。
七、实验收获与心得体会
这次实验在前两次实验的基础上,用到了并行接口芯片和数码管,在数码管上显示数据,在8255工作在方式0时,用两个输出端口,控制数码管工作,数码管在之前数电实验的基础上比较好理解,这次实验较之前的实验更有难度,不过学到了很多知识,由于理论还没有讲到8255,实验有一定难度,不过对理论课也有一定的帮助。
实验八可编程定时器/计数器(8253/8254)
一、实验目的
学习掌握8253用作定时器的编程原理;
二、实验原理及内容
1.8253初始化
使用8253前,要进行初始化编程。初始化编程的步骤是: ①向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。②向使用的计数器端口写入计数初值。2.8253控制字
D7D6=00:使用0号计数器,D7D6=01:使用1号计数器 D7D6=10:使用2号计数器,D7D6=11:无效 D5D4=00:锁存当前计数值
D5D4=01:只写低8位(高8位为0),读出时只读低8位 D5D4=10:只写高8位(低8位为0),读出时只读高8位 D5D4=11:先读/写低8位,后读/写高8位计数值
D3D2D1=000:选择方式0,D3D2D1=001:选择方式1 D3D2D1=X10:选择方式2,D3D2D1=X11:选择方式3 D3D2D1=100:选择方式4,D3D2D1=101:选择方式5 D0=0:计数初值为二进制,D0=1:计数初值为BCD码数
3.实验内容
完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。利用小键盘实现弹琴功能,并显示弹奏的乐谱。
三、硬件接线图与软件程序流程图
接线图如下:
CS /8253 接 Y0 /IO 地址 GATE0 /8253 接 +5V CLK0 /8253 接 1M时钟
OUT0 /8253 接喇叭或蜂鸣器 程序流程图如下:
四、源程序
DATA SEGMENT FENPIN DW 0001H,3906,3472,3125,2932,2604,2344,2083,1953;分频比 DIGITAL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH;数码管 MUSIC DB 5,3,5,3,5,3,1,1,2,4,3,2,5,5,5,5,5,3,5,3,5,3,1,1,2,4,3,2,1,1,1,1,2,2,4,4,3,1,5,5;存放播放的乐曲音符
NUM DB 00H,070H,0B0H,0D0H,0E0H ;检测键盘输入 DATA ENDS
STACK SEGMENT STACK 'STACK' DB 100 DUP(?)STACK ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK
;延时子程序
DELAY PROC NEAR PUSH CX MOV CX,100H WAIT0: LOOP WAIT0 POP CX RET DELAY ENDP
;延时子程序2 DELAY1 PROC NEAR PUSH CX MOV CX,0FFFFH WAIT1: LOOP WAIT1 POP CX RET DELAY1 ENDP
;获取键盘输入值的子程序 KEY PROC NEAR PUSH AX ;保护现场 PUSH CX PUSH DX MOV CX,01H CHECK: MOV DX,28AH ;C口地址给DX MOV BX,OFFSET NUM ADD BX,CX MOV AL,[BX] OUT DX,AL ;防抖
IN AL,DX ;判断是否有键盘按下 MOV AH,AL CALL DELAY IN AL,DX CMP AL,AH JNZ CHECK ;不相等说明为抖动,重新检测 ;判断按下的列
AND AL,0FH CMP AL,0FH JZ NEXT CMP AL,0EH JZ NEXT1 CMP AL,0DH JZ NEXT2 CMP AL,0BH JZ NEXT3 MOV BX,01H JMP GOT NEXT: INC CX ;修改变量扫描下一行 CMP CX,05H JNZ JUMP1 MOV CX,01H JUMP1: JMP CHECK NEXT1: MOV BX,04H JMP GOT NEXT2: MOV BX,03H JMP GOT NEXT3: MOV BX,02H
;计算按下键盘的数值
GOT: SUB CX,01H MOV AL,CL MOV DL,04H MUL DL ADD BL,AL SUB BL,01H ;此时BX中所存即为对应的偏移量 POP DX ;恢复现场 POP CX POP AX RET KEY ENDP
;主程序
START: MOV AX,DATA MOV DS,AX ;8253初始化
MOV DX,283H MOV AL,36H控制字为00110110,选计数器0,先读低字节再读高字节,选用工作方式3 OUT DX,AL ;8255初始化
MOV DX,28BH MOV AL,81H ;C口输入(10000001)
OUT DX,AL MOV DX,289H ;B口位选数码管
MOV AL,01H OUT DX,AL ;扫描键盘
LOOP1: CALL KEY CMP BX,0 ;按0播放音乐 JZ PLAY0 CMP BX,9 ;按9退出 JZ EXIT ;按1~8发出对应音 MOV CX,BX MOV BX,OFFSET DIGITAL ;数码管显示音符 ADD BX,CX MOV AL,[BX] MOV DX,288H ;A口输出 OUT DX,AL ;播放该音符
MOV BX,OFFSET FENPIN MOV AX,CX ADD AX,AX ADD BX,AX ;计数,先低八位后高八位 MOV AX,[BX] MOV DX,280H OUT DX,AL MOV AL,AH OUT DX,AL CALL DELAY1 CALL DELAY1
MOV DX,28AH ;C口输入 IN AL,DX ;检测键盘是否弹起 MOV AH,AL LOOP2: CALL DELAY IN AL,DX CMP AL,AH JZ LOOP2 ;初始化8253,停止播放音乐 MOV AX,0H MOV DX,283H MOV AL,36H OUT DX,AL JMP LOOP1
;播放音乐
PLAY0: MOV CX,01H PLAY: PUSH CX
;读取音符,存于CX中
MOV BX,OFFSET MUSIC ADD BX,CX MOV AL,[BX] MOV CL,AL MOV CH,0H ;数码管显示
MOV BX,OFFSET DIGITAL ADD BX,CX MOV AL,[BX] MOV DX,288H OUT DX,AL
;播放该乐符
MOV BX,OFFSET FENPIN MOV AX,CX ADD AX,AX ADD BX,AX ;计数,先低八位后高八位 MOV AX,[BX] MOV DX,280H OUT DX,AL MOV AL,AH OUT DX,AL POP CX ;延时,持续播放
MOV AX,90H LOOP3: CALL DELAY1 DEC AX JNZ LOOP3 ;乐曲未结束时,CX加1 INC CX CMP CX,28H;共40个音符 JNZ JUM JMP LOOP1 JUM: JMP PLAY
EXIT: MOV AL,0 MOV DX,288H OUT DX,AL MOV AX,4C00H INT 21H
CODE ENDS END START
五、实验结果
按下键盘0,播放歌曲“粉刷匠”,数码管显示相应的音符;按下小键盘的1——8,喇叭播放所对应的音符,数码管显示按下的音符;按下键盘的9时,数码管熄灭,返回DOS系统。
六、实验总结与思考题
实验主要用了8253计数器,其工作在方式3下,作为方波发生器,产生不同音符的不同频率的方波。根据音符频率和1M的时钟确定输入频率,检测键盘的输入,判断输入的字符,8253产生相应的频率,喇叭播放音符,数码管输出按下的音符。实验的难点在于怎样判断键盘的输入。
思考题:写出8253计数初值,输入频率和输出频率的关系:
答:输出频率 = 输入频率/8253计数初值
七、实验收获与心得体会
这次实验较之前的实验难度较大,用到了8255、8253、数码管,是个相对来说系统点的实验,这也使得代码在实现起来比较多而复杂。一开始实验时不理解8255计数器的工作原理,对音符如何通过喇叭显示出来也不明白,在弄清楚了他们的原理和相互之间的联系之后,才慢慢理解。实验的内容要求编一小段音乐,虽然实验很难,但是也增加了我们对实验的兴趣。实验十六串行通讯8251
一、实验目的
1、了解串行通讯的基本原理。
2、掌握串行接口芯片8251的工作原理和编程方法。
二、实验原理及内容
1、按下图连接好电路,(8251插通用插座)其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。
2、编程: 从键盘输入一个字符,将其ASCII码加 1 后发送出去,再接收回来在屏幕上显示,(或将内存制定区域内存放的一批数据通过8251A的TXD发送出去,然后从RXD接收回来,并在屏幕上或数码管上显示出来。)实现自发自收。
3、接线: CLK0 /8254 接 1M时钟 GATE0 /8254 接 +5V 0UT0 /8254 接 TX/RXCLK /8251 CS /8254 接 Y0 /IO地址 CS /8251 接 Y7 /IO地址 RXD /8251 接 TXD /8251
三、硬件接线图与软件程序流程图
硬件接线图如下: 程序流程图如下:
四、源程序
DATA SEGMENT;定义数据段
STRING DB 'SEND ','$';定义字符串 STRING1 DB 'RECEIVE ','$' STRING2 DB 0DH,0AH,'$'
DATA ENDS
STACK SEGMENT STACK 'SATCK';定义堆栈段
DB 100 DUP(?)STACK ENDS
CODE SEGMENT;定义代码段
ASSUME CS:CODE,DS:DATA,SS:STACK
;延时子程序
DELAY PROC NEAR PUSH CX MOV CX,100H WAIT0: LOOP WAIT0 POP CX RET DELAY ENDP
START: MOV AX,DATA MOV DS,AX;8254初始化
MOV DX,283H MOV AL,16H;(00010110)计数器0,只读低字节,方式3,二进制 OUT DX,AL CALL DELAY MOV DX,280H;计数器0,初值为52 MOV AL,34H;初值52 OUT DX,AL CALL DELAY;8251初始化
MOV DX,2B9H;控制端口地址
MOV AL,40H;(01000000)内部复位命令 OUT DX,AL NOP CALL DELAY MOV AL,5E;(01011110)方式控制字:波特率因子为16,一位停止位,一位奇校
验的异步方式
OUT DX,AL MOV AL,37H;(00110111)命令控制字 OUT DX,AL CALL DELAY
;发送数据
GOON: MOV DX,2B9H;读状态字 IN AL,DX TEST AL,01H ;检测是否可以发送字符 JZ GOON
;显示提示语句 MOV AH,09H MOV DX,OFFSET STRING INT 21H
MOV AH,01H INT 21H;检测是否为ESC键 CMP AL,1BH JZ EXIT INC AL;加1
MOV DX,2B8H;访问数据寄存器 OUT DX,AL;接收数据
RECEIVE: MOV DX,2B9H ;读状态字 IN AL,DX TEST AL,02H ;检测是否收到新数据 JZ RECEIVE
;显示提示语句 MOV AH,09H MOV DX,OFFSET STRING2 INT 21H MOV AH,09H MOV DX,OFFSET STRING1 INT 21H
MOV DX,2B8H IN AL,DX MOV DL,AL MOV AH,02H;显示接收的数据 INT 21H MOV AH,09H MOV DX,OFFSET STRING2 INT 21H JMP GOON ;不断的发送读写
EXIT: MOV AX,4C00H;返回DOS INT 21H
CODE ENDS END START
五、实验结果
实验结果如上图所示,输出字符为输入字符的下一个,可以连续的发送接收,按下Esc健时,返回DOS。
六、实验总结与思考题
实验用到了串行通信接口芯片8251A,采用异步方式,确定了方式控制字。8254计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接 1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。
实验的难点在于发送和接收,当TxRDY为高电平时发送缓存区空,此时可以写入数据,8251A与01进行与运算,若结果为1表示可以发送数据;当RxRDY为高电平时接收缓存区满,此时可以读数据,8251A与10进行与运算,若结果为1表示可以接收数据。
思考题:在实验中,你如何确定RxC,TxC的值,写出计算公式 答:RxC=TxC=8253输出时钟频率=8251波特率*波特率因子
七、实验收获与心得体会
这次实验主要用了串行接口8251A,相比并行接口较为简单,还用到了计数器8253,又加强了对其的了解,这次实验课是在理论课刚上完之后,对8251A的理解也比较到位,所以整个实验都进行的比较顺利,对理论课不太懂得知识,经过实验后也都弄得比较清楚。这是硬件实验的最后一次,用到了两个芯片,还是比较系统的。这学期的硬件实验让我提高了自己的实际操作能力,帮助更好的理解了理论课所学的知识,也对汇编语言有了更直观的了解,收获了很多。
第二篇:微机原理与接口技术 实验报告一
评
阅
微机原理与接口技术
实验报告一
姓名
匡越
学号
1715211016
时间
地点
实验题目
一、实验目的1.熟悉Keil软件使用
2.熟悉MCS-51指令
3.学习简单程序的调试方法
二、实验说明
通过实验了解单片机内部存储器的结构和分配及读写存储器的方法,熟悉MCS-51指令同时,学习单片机程序编程、调试方法。
三、实验内容及步骤
1.启动PC机,打开Keil软件,软件设置为模拟调试状态。在所建的项目文件中输入源程序1,进行编译,如有错误按提示找到该行并纠错,重新编译直到通过。
2.编译无误后,打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化并将观察到的结果记录到预习报告。
3.新建另一个项目输入源文件2,打开CPU窗口,选择单步或跟踪执行方式运行程序,观察存储块数据变化情况记录到预习报告。点击复位按钮,改变存储块数据,点击全速执行快捷按钮,点击暂停按钮,观察存储块数据变化情况,记录到预习报告。点击复位按钮,改变存储块数据,分别LOOP、LOOP1设置断点,点击全速执行快捷按钮,在断点处观察寄存器及存储块数据变化情况。
WAVE软件使用方法参考其帮助文件。
四、实验程序流程框图、实验程序
1、源程序1
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H;
(R0)=
(00H)=
MOV
A,#40H;
(A)=
MOV
R6,A;
(A)=,(R6)=
MOV
A,@R0;
(R0)=
(A)=
MOV
40H,A;
(A)=
(40H)=
MOV
30H,40H;
(30H)=
(40H)=
MOV
R1,#40H;
(R1)=
MOV
@R1,#0AAH;(R1)=
(40H)=
MOV
SP,#60H;
(SP)=
PUSH
ACC;
(SP)=
(61H)=
PUSH
30H;
(SP)=
(62H)=
MOV
A,#0FFH;
(SP)=
(A)=
MOV
30H,#30H;
(SP)=
(30H)=
POP
ACC;
(SP)=
(A)=
POP
30H;
(SP)=
(30H)=
ADD
A,30H;
(30H)=
(A)=
Cy=
SUBB
A,#10;
(A)=
Cy=
MOV
R4,#00100100B;
(R4)=
H
MOV
A,#39H;
(A)
=
ADD
A,R4;
(A)
=
(R4=)
DA
A;
(A)
=
Cy=
MOV
28H,#55H;(28H)
=
Cy=
MOV
C,40H;
(PSW)
=
Cy=
MOV
26H,#00H;(26H)
=
Cy=
MOV
30H,C;
(30H)
=
(26H.1)
=
SJMP
$
j点击project,选择下拉式菜单中的New
project;
k选择所要的单片机,这里我们选择常用的Ateml
公司的AT89C51;
l新建一个File,输入源程序;
m将新建文件保存为text.asm的格式;
n鼠标在屏幕左边的Source
Group1
文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。选“Add
File
to
Group
‘Source
Group
1’”弹出文件窗口,选择刚刚保存的文件;
o对程序进行编译运行;
使程序一得:
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H
;
(R0)=
0x30
(00H)=
0x0000
MOV
A,#40H
;
(A)=
0x40
MOV
R6,A
;
(A)=
0x40,(R6)=
0x40
MOV
A,@R0
;
(R0)=
0x30
(A)=
0x16
MOV
40H,A
;
(A)=0x16
(40H)=
0x0040
MOV
30H,40H
;
(30H)=
0x0030
(40H)=
0x0040
MOV
R1,#40H
;
(R1)=
0x40
MOV
@R1,#0AAH;(R1)=
0x40
(40H)=
0x0040
MOV
SP,#60H;
(SP)=
0x60
PUSH
ACC;
(SP)=
0x61
(61H)=
0x0061
PUSH
30H;
(SP)=
0x62
(62H)=
0x0062
MOV
A,#0FFH;
(SP)=
0x62
(A)=
0xff
MOV
30H,#30H;
(SP)=
0x62
(30H)=
0x0030
POP
ACC;
(SP)=
0x61
(A)=
0x16
POP
30H;
(SP)=
0x60
(30H)=
0x0030
ADD
A,30H;
(30H)=
0x0030
(A)=
0x2a
Cy=
0
SUBB
A,#10;
(A)=
0x20
Cy=
0
MOV
R4,#00100100B;
(R4)=
0x24
H
MOV
A,#39H;
(A)
=
0x39
ADD
A,R4;
(A)
=
0x5d
(R4=)
0x24
DA
A;
(A)
=
0x63
Cy=
0
MOV
28H,#55H;(28H)
=
0x0028
Cy=
0
MOV
C,40H;
(PSW)
=
0x80
Cy=
MOV
26H,#00H;(26H)
=
0x0026
Cy=
MOV
30H,C;
(30H)
=
0x0030
(26H.1)
=
0
SJMP
$
2、源程序2
设(30H)=4,(31H)=1,(32H)=3,(33H)=5,(34H)=2,(35H)=6
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
R0,#30H;30H→R0
MOV
R2,#6;6→R2
SORT:
MOV
A,R0;30H→A
MOV
R1,A;30H→R1
MOV
A,R2;6→A
MOV
R5,A;6→R5
CLR
F0;
状态标志位清零
DEC
R5;寄存器R5减一
MOV
A,@R1;R1→A
LOOP:
MOV
R3,A;A→R3
INC
R1
;寄存器R1增1
CLR
C
;进位标志位清零
MOV
A,@R1;31H→A
SUBB
A,R3;累加器内容减去寄存器内容
JNC
LOOP1;仅为标志位为1,则进行LOOP1
;以下代码完成数据交换
SETB
F0;状态标志位置1
MOV
A,@R1;31H→A
XCH
A,R3;将A于与R3的数据交换
MOV
@R1,A;将4赋值给寄存器R1(31H)
DEC
R1;寄存器减一
MOV
A,R3;1→A
MOV
@R1,A;将1赋值给寄存器R1(30H)
INC
R1;寄存器R1增一
LOOP1:
MOV
A,@R1;4→A
DJNZ
R5,LOOP;寄存器R5减一,不为零则回到LOOP
JB
F0,SORT;状态标志位为零,则回到SORT
SJMP
$
第三篇:微机原理与接口技术试题答案
微机原理与接口技术试题答案
一、填空题(20*1)
1、微机系统由(硬件系统)和(软件系统)两部分组成。2、8086有(20)位地址线,存储器容量为(1M)B。3、8086CPU 内部组成结构从功能上讲,可分为(BIU)和(EU)两部分。4、8086/8088的四个段寄存器为(DS)、(ES)、(SS)、(CS)
5、用来存放CPU状态信息的寄存器是(FLAGS)。
6、用来存放指令地址的寄存器是(IP)。7、8086的16位标志寄存器FLAGS中OF=1表示运算结果(溢出),ZF=1表示运算结果为零。PF=0表示运算结果的低8位中1的个数为(奇数)。
8、8086的16位标志寄存器FLAGS中IF=1表示CPU(允许)中断,TF=1表示CPU进入(单步)工作方式。
9、地址4000H:0300H,其物理地址是(40300H),段地址是(4000H),偏移地址是(0300H)。
11、I/O端口的寻址方式有两种,分别是(直接寻址),(间接寻址)。
12、指令JO NEXT 表示OF=(1)时转移。
13、将I/O设备端口内容读入AL中的指令助记符是(IN)。14、8086CPU的 I/O指令采用间接寻址时,使用的间接寄存器是(DX)。
15、设置DF=1的指令为(STD)。
16、清除CF标志的指令为(CLC)。
17、一对操作堆栈的指令为(POP)和(PUSH)。
18、LOOPNZ的循环条件为(CX≠0且ZF=0)。
19、实现无符号数乘2的指令的助记符是(SHL),实现有符号数除2的指令的助记符是(SAR)。22、8086CPU引脚信号中中断请求两个信号名称为(INT)和(NMI)。
26、I/O端口的编址方式一般有(存储器统一编址)和(独立编址)两种
29.1片8259A中断控制器可管理(8)级中断,用9片8259A可构成(64)级主从式中断管理系统。
二: 填空题(每题2分, 共20分)1.8086CPU复位时, 寄存器 CS值为(FFFFH), 寄存器 IP的值为(0000H)2.8086CPU的8个8位通用寄存器名为(AL),(AH),(BL),(BH),(CL),(CH),(DL),(DH).3.若SS = 3240H, SP = 2000H, 栈顶的实际地址为(34400H).4.指令 MOV AX, [BX] 的机器码为 8BH, 07H , 指令 MOV [BX], AX的机器码为(89H),(07H).5.8255A的工作方式有方式0功能为(基本输入输出), 方式1功能为(选通输入输出), 方式2功能为(双向数据传送).6.执行指令 PUSH AX有 SP =(SPBUF DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA STAR PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX LEA BX, BUF1 MOV CX , COUNT-1 MOV AL, [BX] AG: INC BX CMP AL, [BX] JAE BIG MOV AL, [BX] BIG: DEC CX JNZ AG MOV BUF2, AL RET STAR ENDP CODE ENDS END STAR 问: 该程序执行后BUF2中的值为(9).四、程序设计题(2*10)
1、编写一个汇编语言程序,要求从键盘输入一个小写字母,将其转换成大写字母在屏幕上显示出来。
DATA SEGMENT BUF DB 0DH,0AH,“PLEASE INPUT A CHAR:$” DATAENDS
STACK SEGMENT
DB 20 DUP(?)STACKENDS
CODESEGMENT
ASSUME DS:DATA,CS:CODE ,SS:STACK BEGIN: MOV AX,DATA
MOV DS,AX
LEA DX,BUF;9号调用显示PLEASE INPUT A CHAR:
MOV AH,9
INT 21H
MOV AH,1;1号调用,从键盘接收1字符
INT 21H
CMP AL,61H /41H;若比“a”/A小转PEND
JB PEND
CMP AL,7AH /5BH;若比“z”/Z大转PEND
JA PEND;
ADD/SUB AL,20H;如在“a”与“z”之间则减去20变为大写字符
MOV DL,AL
MOV AH,2;2号功能调用显示一个字符
INT 21H
PEND: MOV AH,4CH;程序结束运行,返回DOS
INT 21H CODE ENDS
END BEGIN
2、已知芯片8253的端口地址为4F0H~4F3H,设计数器1工作在方式1,计数器初值为3060H,采用二进制计数,请设计实现上述功能的8253初始化程序。8253控制字格式如下:
因为计数器初值为3060H,即为16位的,所以读/写格式为11 因此控制字为:01110010 =72 控制字:MOV AL, 72H OUT 4F3H, AL
低8位:MOV AL, 60H OUT 4F1H, AL
高8位:MOV AL, 30H
OUT 4F1H, AL
六: 编程题(7分)编一个完整的程序, 数据段有10个符号的ASCII码值数据块 BUF , 若数据为0到 9的ASCII码值, 在屏上显示 Y , 否则显示 N 解: DATA SEGMENT BUF DB 10 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA NAIN PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX MOV CX, 10 LEA BX, BUF AG: MOV AL, [BX] CMP AL, 30H JL DISNO CMP AL, 39H JG DISNO MOV AH, 02H MOV DL, ‘Y’ INT 21H JMP NEXT DISNO: MOV AH, 02H MOV DL, ‘N’ INT 21H NEXT: INC CX DEC CX JNZ AG RET MAIN ENDP CODE ENDS END MAIN 七: 接口编程(7分, 仅编程序段)8255A的A口,B口均工作于方式0, 从A口输出数据30H, 将B口输入的数据放入寄存器BL中.(注:8255A口地址为60H到63H)解: 1 0 0 0 X 0 1 X 方式控制字= 82H MOV AL, 82H OUT 63H, AL MOV AL, 30H OUT 60H, AL IN AL, 61H MOV BL, AL
第四篇:微机原理与接口技术小结
微机原理与接口技术基础
1.为什么在流水CPU中,将一条指令从取指到执行结束的任务分割为一系列子任务,并使各子任务在流水线的各个过程段并发地执行,从而使流水CPU具有更强大的数据吞吐能力?
这里可以使用时空图法证明结论的正确性。
假设指令周期包含四个子过程:取指令(IF)、指令译码(ID)、取操作数(EX)、进行运算(WB),每个子过程称为过程段(Si),这样,一个流水线由一系列串连的过程段组成。在统一时钟信号控制下,数据从一个过程段流向相邻的过程段。
2.译码器是如何译码的?寻址空间是如何确定的?译码器与寻址空间是怎么联系的?
译码器实际上是由许多与门、或门、非门和它们的组合构成的。它有若干个输入端和若干个输出端(也可能只有一个输出端)。对某一个输出端来说,它的电平高低必然与输入的某一种状态相对应。
例如,具有4个输入端的与非门就是一个简单的译码器,只有四个输入端为1111时,它的输出端才为0。如果将地址总线的A9、A8、A7、A6与它的四个输入连接起来,并把它的输出连到存储器芯片或某个需要寻址的外设接口的片选端(假定低电平有效),那么,只有当A9、A8、A7、A6为1111时,存储器芯片或外设才会被选中。
译码器的寻址空间取决于地址总线的哪几根线接到译码器的输入端,例如上例,地址总线的A9、A8、A7、A6与译码器的输入连接,那么其寻址空间应该是11 1100 0000~11 1111 1111,即3C0H~3F0H。
注意,没有参与译码的低位地址线必然要参与存储器芯片或外设接口的内部译码。也就是说,内部译码地址范围是0--2n11 0000。
可以说,译码器的译码输出决定了寻址空间的起始地址,内部译码决定了寻址空间的大小。由于上一条指令的四个子过程全部执行完毕后才能开始下一条指令,因此每隔4个单位时间才有一个输出结果,即一条指令执行结束。表示非流水CPU的时空图。由于上一条指令与下一条指令的四个过程在时间上可以重叠执行,因此,当流水线满载时,每一个单位时间就可以输出一个结果,即执行一条指令。
比较后发现:流水CPU在八个单位时间中执行了5条指令,而非流水CPU仅执行了2条指令,因此流水CPU具有更强大的数据吞吐能力。
3.书本上讲的是若是计算结果中1的个数为偶数时,则PF=1;但我又在另外的辅导书上看到的说如果计算结果的低8位中1的个数为偶数,PF=1.请问老师是否是低八位?
答:对,PF只与结果的低8位有关。
4.80386 CPU包含哪些寄存器?各有什么主要用途?
80386共有7类34个寄存器。它们分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试和测试寄存器。
(1)通用寄存器(8个)
EAX,EBX,ECX,EDX,ESI,EDI,EBP和ESP。每个32位寄存器的低16位可单独使用,同时AX、BX、CX、DX寄存器的高、低8位也可分别当作8位寄存器使用。它们与8088/8086中相应的16位通用寄存器作用相同。
(2)指令指针和标志寄存器。
指令指针EIP是一个32位寄存器,存放下一条要执行的指令的偏移地址。
标志寄存器EFLAGS也是一个32位寄存器,存放指令的执行状态和一些控制位。
(3)段寄存器(6个)
CS,DS,SS,ES,FS和GS。在实方式下,它们存放内存段的段地址。在保护方式下,它们被称为段选择符。其中存放的是某一个段的选择符。当选择符装入段寄存器时,80386中的硬件章自动用段寄存器中的值作为索引从段描述符表中取出一个8个字节的描述符,装入到与该段寄存器相应的64位描述符寄存器中。
(4)控制寄存器(4个)
CR0、CRl、CR2和CR3。它们的作用是保存全局性的机器状态。
(5)系统地址寄存器(4个)
GDTR、IDTR、LDTR和TR。它们用来存储操作系统需要的保护信息和地址转换表信息、定义目前正在执行任务的环境、地址空间和中断向量空间。
(6)调试寄存器(8个)
DR0~DR7。它们为调试提供硬件支持。
(7)测试寄存器(8个)
TR0~TR7,其中TR0~TR5由Intel公司保留,用户只能访问TR6、TR7。它们用于控制对TLB中的RAM和CAM相连存储器的测试。TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态
5.什么是外部中断源?什么是中断向量码?什么是读选通信号?
答:外部中断源就是在CPU外部能够产生中断请求的设备/器件;通俗地说,中断向量码就是中断的编号,其值为0-FFH;选通信号就是打开逻辑门的控制信号,或用来锁存信息(类似D触发器的CP或CLK)的控制信号。读选通信号就是用来打开总线缓冲器,以便把的数据送到总线上的控制信号。
6.CPU处于单步执行指令的工作方式(课本49页),请问什么是单步执行指令工作方式? 答:在这种方式下,CPU每执行一条指令,就产生一次特殊的中断,以便可以停下来检查执行的结果。主要用于各类程序的调试。
7.片选信号(CS)到底是起使数据有效或无效的作用还是起选择芯片的作用啊?若是前者,干吗叫片选?
片选信号就是选择芯片的信号。前者不叫片选信号,应该叫允许信号。
8.书本上讲的是若是计算结果中1的个数为偶数时,则PF=1;但我又在另外的辅导书上看到的说如果计算结果的低8位中1的个数为偶数,PF=1.请问老师是否是低八位?
微型计算机基础
1.为什么在流水CPU中,将一条指令从取指到执行结束的任务分割为一系列子任务,并使各子任务在流水线的各个过程段并发地执行,从而使流水CPU具有更强大的数据吞吐能力?
这里可以使用时空图法证明结论的正确性。
假设指令周期包含四个子过程:取指令(IF)、指令译码(ID)、取操作数(EX)、进行运算(WB),每个子过程称为过程段(Si),这样,一个流水线由一系列串连的过程段组成。在统一时钟信号控制下,数据从一个过程段流向相邻的过程段。
2.译码器是如何译码的?寻址空间是如何确定的?译码器与寻址空间是怎么联系的?
译码器实际上是由许多与门、或门、非门和它们的组合构成的。它有若干个输入端和若干个输出端(也可能只有一个输出端)。对某一个输出端来说,它的电平高低必然与输入的某一种状态相对应。
例如,具有4个输入端的与非门就是一个简单的译码器,只有四个输入端为1111时,它的输出端才为0。如果将地址总线的A9、A8、A7、A6与它的四个输入连接起来,并把它的输出连到存储器芯片或某个需要寻址的外设接口的片选端(假定低电平有效),那么,只有当A9、A8、A7、A6为1111时,存储器芯片或外设才会被选中。
译码器的寻址空间取决于地址总线的哪几根线接到译码器的输入端,例如上例,地址总线的A9、A8、A7、A6与译码器的输入连接,那么其寻址空间应该是11 1100 0000~11 1111 1111,即3C0H~3F0H。
注意,没有参与译码的低位地址线必然要参与存储器芯片或外设接口的内部译码。也就是说,内部译码地址范围是0--2n11 0000。
可以说,译码器的译码输出决定了寻址空间的起始地址,内部译码决定了寻址空间的大小。由于上一条指令的四个子过程全部执行完毕后才能开始下一条指令,因此每隔4个单位时间才有一个输出结果,即一条指令执行结束。表示非流水CPU的时空图。由于上一条指令与下一条指令的四个过程在时间上可以重叠执行,因此,当流水线满载时,每一个单位时间就可以输出一个结果,即执行一条指令。
比较后发现:流水CPU在八个单位时间中执行了5条指令,而非流水CPU仅执行了2条指令,因此流水CPU具有更强大的数据吞吐能力。
3.书本上讲的是若是计算结果中1的个数为偶数时,则PF=1;但我又在另外的辅导书上看到的说如果计算结果的低8位中1的个数为偶数,PF=1.请问老师是否是低八位?
答:对,PF只与结果的低8位有关。
4.80386 CPU包含哪些寄存器?各有什么主要用途?
80386共有7类34个寄存器。它们分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试和测试寄存器。
(1)通用寄存器(8个)
EAX,EBX,ECX,EDX,ESI,EDI,EBP和ESP。每个32位寄存器的低16位可单独使用,同时AX、BX、CX、DX寄存器的高、低8位也可分别当作8位寄存器使用。它们与8088/8086中相应的16位通用寄存器作用相同。
(2)指令指针和标志寄存器。
指令指针EIP是一个32位寄存器,存放下一条要执行的指令的偏移地址。
标志寄存器EFLAGS也是一个32位寄存器,存放指令的执行状态和一些控制位。
(3)段寄存器(6个)
CS,DS,SS,ES,FS和GS。在实方式下,它们存放内存段的段地址。在保护方式下,它们被称为段选择符。其中存放的是某一个段的选择符。当选择符装入段寄存器时,80386中的硬件章自动用段寄存器中的值作为索引从段描述符表中取出一个8个字节的描述符,装入到与该段寄存器相应的64位描述符寄存器中。
(4)控制寄存器(4个)
CR0、CRl、CR2和CR3。它们的作用是保存全局性的机器状态。
(5)系统地址寄存器(4个)
GDTR、IDTR、LDTR和TR。它们用来存储操作系统需要的保护信息和地址转换表信息、定义目前正在执行任务的环境、地址空间和中断向量空间。
(6)调试寄存器(8个)
DR0~DR7。它们为调试提供硬件支持。
(7)测试寄存器(8个)
TR0~TR7,其中TR0~TR5由Intel公司保留,用户只能访问TR6、TR7。它们用于控制对TLB中的RAM和CAM相连存储器的测试。TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态
5.什么是外部中断源?什么是中断向量码?什么是读选通信号?
答:外部中断源就是在CPU外部能够产生中断请求的设备/器件;通俗地说,中断向量码就是中断的编号,其值为0-FFH;选通信号就是打开逻辑门的控制信号,或用来锁存信息(类似D触发器的CP或CLK)的控制信号。读选通信号就是用来打开总线缓冲器,以便把的数据送到总线上的控制信号。
6.CPU处于单步执行指令的工作方式(课本49页),请问什么是单步执行指令工作方式? 答:在这种方式下,CPU每执行一条指令,就产生一次特殊的中断,以便可以停下来检查执行的结果。主要用于各类程序的调试。
7.片选信号(CS)到底是起使数据有效或无效的作用还是起选择芯片的作用啊?若是前者,干吗叫片选?
片选信号就是选择芯片的信号。前者不叫片选信号,应该叫允许信号。
8.书本上讲的是若是计算结果中1的个数为偶数时,则PF=1;但我又在另外的辅导书上看到的说如果计算结果的低8位中1的个数为偶数,PF=1.请问老师是否是低八位?对,PF只与结果的低8位有关
第五篇:微机原理与接口技术试题及答案
一、填空题(每空 1 分,共 15 分)得分 评阅人
1.RESET信号到来后8088/86的CS和IP 分别为 _FFFF_H 和_0000_H。2.在特殊全嵌套方式下,8259可响应 同级或高级 中断请求。3.CPU与外设接口通过¬ 数据 总线传送状态信号与命令信号。4.8255有3种工作方式, 其中 方式2 只允许A口使用。5.有地址重迭现象的译码方式为 部分译码 和 线选法。
6.外设端口的编址方式有 I/O端口独.立编址 和 I/O端口与存储器统一编址。7.INT8253采用BCD码计数时,其最大计数值为__10000__,此时的计数初值为__0000__。
8.8088/8086的AD7-AD0是地址数据复用引脚,在T1时传送__地址信号__。9.8259A作为主片时其引脚CAS0-CAS2的信息传送方向是_向外_。
10.RS-232C是适用于__数据终端设备DTE__和__数据通信设备DCE__间的接口。
二、单项选择题(每小题1分,共20分)得分 评阅人
1.8086CPU寻址I/O端口最多使用(4)条地址线。(1)8(2)10(3)12(4)16 2.CPU执行IN指令时有效的信号组合是(1)。(1)=0, =1(2)=0, =0(3)=0, =1(4)=0, =0
3.某计算机的字长是16位,它的存储器容量是64KB,若按字编址那么它的最大寻址范围是(2)。
(1)64K字(2)32K字(3)64KB(4)32KB 4.某一SRAM芯片的容量是512×8位,除电源和接地线外,该芯片的其他引脚最少应为(4)根。
(1)25(2)23(3)21(4)19 5.8088/8086的基本总线周期由(2)个时钟周期组成。(1)2(2)4(3)5(4)6 6.在8086系统中中断号为0AH,则存放中断向量的内存起始地址为(2)。(1)0AH(2)28H(3)4AH(4)2AH 7.采用两片8259A可编程中断控制器级联使用,可以使CPU的可屏蔽中断扩大到(1)。
(1)15级(2)16级(3)32级(4)64级
8.当IF=0,8088/8086CPU不响应(2)中断请求。(1)INT N(2)INTR(3)NMI(4)INTO 9.8253可编程定时器/计数器中,其二进制的最大计数初值为(3)。(1)65536(2)7FFFH(3)0000H(4)FFFFH 10.8086/88CPU在响应中断时要执行(2)个中断响应周期。(1)1个(2)2个(3)3个(4)4个
11.中断向量表是存放(2)的存储区域.(1)中断类型号(2)中断服务程序入口处地址(3)中断断点地址(4)程序状态字
12.INT8255中可用置位/复位控制字对(3)的各位进行按位操作以实现某些控制功能。
(1)A口(2)B口(3)C口(4)数据总线缓冲器
11.RS-232C标准规定信号“0”和“1”的电平是(3)。(1)0V和+3V~+15V(2)-3V~-15V和0V(3)+3V至+15V和-3V~-15V(4)+3V~+15V和-0V 12.对于开关型设备的控制,适合采用的I/O传送方式是(1)。(1)无条件(2)查询(3)中断(4)DMA 13.传送数据时,占用CPU时间最长的传送方式是(1)。(1)查询(2)中断(3)DMA(4)IOP 14.既然是在数据传输率相同的情况下,那么,又说同步字符传输速度要高于 异步字符传输其原因是(2)。
(1)发生错误的概率少(2)附加位信息总量少(3)双方通信同步(4)字符之间无间隔
15.巳知DRAM2118芯片容量为16K×1位, 若组成64KB的系统存储器,则组成的芯片组数和每个芯片组的芯片数为(4).(1)2和8(2)1和16(3)4和16(4)4和8 16.INT 8259中断屏蔽寄存储器的作用是(2).(1)禁止CPU响应外设的中断请求(2)禁止外设向CPU发中断请求(3)禁止软中断请求(4)禁止NMI中断请求
17.在正常EOI方式下, 中断结束命令是清除(2)中的某一位.(1)IRR(2)ISR(3)IMR(4)程序状态字
18.软中断INT N的优先级排列原则是(3).(1)N值愈小级别愈高(2)N值愈大级别愈高(3)无优先级别(4)随应用而定
19.串行异步通信传输的主要特点是(2).(1)通信双方不必同步(2)每个字符的发送是独立的
(3)字符之间的传送时间长度应相同(4)字符发送速率由波特率决定 20.8位D/A转换器的分辨率能给出满量程电压的(4).(1)1/8(2)1/16(3)1/32(4)1/256
三、判断说明题(正者在括号内打“√”,误者在括号内打“×”,均需说明理由。每小题2分,共10分)得分 评阅人
1.8086CPU在读/写总线周期的T3状态结束对READY线采样,如果READY为低电平,则在T3与T4状态之间插入等待状态TW。(×)应改为:8086CPU在读/写总线周期的T3状态开始对READY线采样,如果READY为低电平,则在T3与T4状态之间插入等待状态TW。
2.在8253的方式控制字中,有一项计数锁存操作,其作用是暂停计数器的计数。(×)
应改为:锁存计数器的当前值到锁存器,但不影响对计数器的计数工作。
3.8250的溢出错误指示CPU还未取走前一个数据,接收移位寄存器又将接收到的一个新数据送至输入缓冲器。(√)
4.在8088系统(最小组态)中,执行指令”MOV [2000H],AX”需1个总线周期。(×)
应改为:需2个总线周期
5.DMA控制器8237A现行字节数寄存器的值减到0时,终止计数。(×)应改为:DMA控制器8237A现行字节数寄存器的值减到0,再由0减到0FFFFH时,终止计数。
四、简答题(每小题5分,共20分)得分 评阅人
1.试述8250的数据接收时钟RCLK使用16倍比特率的时钟信号接收异步通信信号的原因以及接收过程。
答:主要是为了确定起始位避免传输线上的干扰。
其接收过程为:接收器检测到串行数据输入引脚SIN由高电平变低后,连续测试8个RCLK时钟周期,若采样到的都是低电平,则确认为起始位;若低电平的保持时间不足8个RCLK时钟周期,则认为是传输线上的干扰。
2.8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断? 答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态字,判断~OBFA(PC7)和IBFA(PC5)位的状态来区分是输入中断还是输出中断,并据此转向相应的输入或输出操作。
3.用2K×4位RAM构成64KB的存储系统,需要多少RAM芯片?需要多少位地址作为片外地址译码?设系统为20位地址线,采用全译码方式。答:64片。
9位。其中A16~A19固定,A10~A15译码形成组选信号。
4.请说明Intel8253各个计数通道中三个引脚信号CLK,OUT和GATE的功能。答:CLK为计数时钟输入引脚,为计数器提供计数脉冲。
GATE为门控信号输入引脚,用于启动或禁止计数器操作,如允许/禁止计数、启
动/停止计数等。
OUT为输出信号引脚以相应的电平或脉冲波形来指示计数的完成、定时时间到。
五、简单应用题(每小题5分,共15分)得分 评阅人
1.Intel8253的通道0按方式3工作,时钟CLK0的频率为1兆,要求输出方波的频率为40KHz,采用BCD码计数,设通道0的地址为PORT0,请对它写入计数值。解:n(计数初值)=1MHz/40KHz=25 写入计数值的程序段: MOV AL,25H OUT PORT0,AL
2.若8086系统采用单片8259A,其中断类型码为46H,则其中断矢量表的地址指针是多少?这个中断源应连向8259A的哪一个IR输入端? 解:中断矢量表的地址指针是46H×4=118H 应连向8259A的IR6