1、1计算机组成原理与接口技术课程设计实验报告学院: 专业: 班级: 学号: 姓名: 评分:2016 年 1 月 6 日2实验一 验证 74LS181 运算和逻辑功能1、实验目的(1)掌握算术逻辑单元(ALU)的工作原理;(2)熟悉简单运算器的数据传送通路;(3)画出逻辑电路图及布出美观整齐的接线图;(4)验证 4 位运算功能发生器(74LS181)组合功能。2、实验原理ALU 能进行多种算术运算和逻辑运算。4 位 ALU-74LS181 能进行 16 种算术运算和逻辑运算。功能表如下:方式 M = 1 逻辑运算 M = 0 算术运算S3 S2 S1 S0 逻辑运算 CN=1 (无进位 ) CN
2、=0 (有进位)0 0 0 0 F=/A F=A F=A 加 10 0 0 1 F=/(A + B) F=A + B F=(A + B) 加 10 0 1 0 F=(/A ) B F=A + /B F=( A + /B )加 10 0 1 1 F=0 F=负 1(补码形式) F=00 1 0 0 F=/(A B) F=A 加 A ( / B) F=A 加 A / B 加 10 1 0 1 F=/B F=(A + B) 加 A / B F=(A + B)加 A / B 加 10 1 1 0 F=A B F=A 减 B 减 1 F=A 减 B0 1 1 1 F=A/B F=A (/ B)减 1 F
3、=A (/ B) 1 0 0 0 F=/A +B F=A 加 A B F=A 加 A B 加 11 0 0 1 F=/( A B) F=A 加 B F=A 加 B 加 11 0 1 0 F=B F=( A + /B )加 A B F=( A + /B )加 A B 加 11 0 1 1 F=AB F=AB 减 1 F=AB1 1 0 0 F=1 F=A 加 A F=A 加 A 加 11 1 0 1 F=A + /B F=(A + B) 加 A F=(A + B) 加 A 加 11 1 1 0 F=A + B F=(A + / B) 加 A F=(A + / B) 加 A 加 11 1 1 1
4、F=A F=A 减 1 F=A (上表中的“/”表示求反)ALU-74LS181 引脚说明:M=1 逻辑运算,M=0 算术运算。引 脚 说 明M 状态控制端 M=1 逻辑运算;M=0 算术运算。S3 S3 S1 S1 运算选择控制 S3 S3 S1 S1 决定电路执行哪一种算术A3 A2 A1 A1 运算数 1,引脚 3 为最高位B3 B2 B1 B0 运算数 2,引脚 3 为最高位Cn 最低位进位输入 Cn =0 有进位;Cn =1 无进位;Cn+4 本片产生的进位信号 Cn+4=0 有进位;Cn+4=1 无进位;F3 F2 F1 F0 F3 F2 F1 F0 运算结果,F3 为最高位3、实
5、验内容3电路如图 2-1 所示。图 2-1 4 位 ALU 验证电路示意图验证 74LS181 型 4 位 ALU 的逻辑算术功能,填写下表:算术运算(M=0)S3 S2 S1 S0 数据 1 数据 2 CN=1 (无进位) CN =0 (有进位) 逻辑运算(M=1)0 0 0 0 AH 5H F=AH F=BH F=5H0 0 0 1 AH 5H F=FH F=0H F=0H0 0 1 0 AH 5H F=AH F=BH F=5H0 0 1 1 AH 5H F=FH F=0H F=0H0 1 0 0 FH 1H F=DH F=EH F=EH0 1 0 1 FH 1H F=DH F=EH F=
6、EH0 1 1 0 FH 1H F=DH F=EH F=EH0 1 1 1 FH 1H F=EH F=FH F=EH1 0 0 0 FH FH F=EH F=FH F=FH1 0 0 1 FH FH F=EH F=FH F=FH1 0 1 0 FH FH F=EH F=FH F=FH1 0 1 1 FH FH F=EH F=FH F=FH1 1 0 0 5H 5H F=AH F=BH F=FH1 1 0 1 5H 5H F=AH F=BH F=FH1 1 1 0 5H 5H F=4H F=5H F=5H1 1 1 1 5H 5H F=4H F=5H F=5H44.实验总结和心得:实验二 运算器
7、(2)1. 实验目的(1) 熟练掌握算术逻辑单元(ALU)的应用方法;(2) 进一步熟悉简单运算器的数据传送原理;(3) 画出逻辑电路图及布出美观整齐的接线图;(4) 熟练掌握有关数字元件的功能和使用方法。(5) 熟练掌握子电路的创建及使用。2. 实验原理本实验仿真单总线结构的运算器,原理如图 2-2 所示。相应的电路如图 2-3 所示。电路图中,上右下三方的 8 条线模拟 8 位数据总线;K8 产生所需数据;74244 层次块为三态门电路,将部件与总线连接或断开,切记总线上只能有一个输入;两个 74273层次块作为暂存工作寄存器 DR1 和 DR2;两个 74374 层次块作为通用寄存器组(
8、鉴于电路排列情况,只画出两个通用寄存器 GR1 和 GR2,如果可能的话可设计 4 个或 8 个通用寄存器) ;众多的开关作为控制电平或打入脉冲;众多的 8 段代码管显示相应位置的数据信息;核心为 8 位 ALU 层次块。图 2-2 单总线结构的运算器示意图3. 实验内容在 Multisim 画出电路图并仿真,完成如下操作。(1) 说明整个电路工作原理。(2) 说明 74LS244N 的功能及其在电路中 作用,及输入信号 G 有何作用;5(3) 说明 74LS273N 的功能及其在电路中作用,及输入信号 CLK 有何作用;(4) 说明 74LS374N 的功能及其在电路中作用,及输入信号 CL
9、K 和 OC 有何作用;(5) K8 产生任意数据存入通用寄存器 GR1。(6) K8 产生任意数据存入通用寄存器 GR2。(7) 完成 GR1+GR2GR1。(8) 完成 GR1-GR2GR2。(9) 完成 GR1GR2GR1。(10)完成 GR1GR2GR2。(11)完成 GR1GR2GR1。(12)GR1GR2。 (“”表示逻辑非运算)(13)GR2GR1。图 2-3 运算器示意图4.实验总结和心得:6实验三 乘法实现1. 实验目的:开放性实验,根据原理图实现乘法的电路设计并运行。2. 实验原理如图 2-4 是实现原码一位乘运算的基本硬件配置框图,根据该图用移位相加方法实现乘法,自行选择
10、器件设计电路并运行。图 2-4 原码一位乘运算的基本硬件配置提示:用 74LS181 作为加法器,用 74LS194 作为移位寄存器;手动开关作为计数器,实现 4 位*4 位的乘法。3.实验总结和心得:实验四 查询式输出实验1.实验目的:要求掌握查询式输出的工作原理。2.实验原理:通过查询外设的状态信息决定是否输出数据。3.实验内容:7(1)运行“查询式输出装置” ,如图 2-5 所示。(2)读懂示例程序 checkout.asm,以备测试老师询问。(3)编辑、调试、运行输出程序,将自己学号输出到实验台右侧数据缓冲区框中。4.实验代码:Data segmentBuffer db 1,4,0,5
11、,0,1,0,1,1,4s db “you study id is“,0dh,0ah,“$“ ;程序功能提示Data endsCode segmentAssume cs:code,ds:dataGo: mov ax,dataMov ds,axmov dx,offset s ;显示提示mov ah,9int 21hLEA si,buffer MOV CX,10L1: MOV DX,43bHIN AL,DX ; 读状态端口TEST AL,00000001BJNZ L1 Mov al,siMOV DX,43aHOUT DX,AL ; 数据输出INC siLOOP L1Mov ah,4chInt 21
12、hCode endsEnd go5.实验总结和心得:8实验五 LED 显示实验1.实验目的:要求掌握 8255 芯片的工作原理、初始化、编程应用。2.实验原理:通过三个端口共 24 位二进制数据控制 LED 灯亮灭形成走马灯。3.实验内容:(1)运行“LED 显示实验台” 。(2)读懂示例程序 led1.asm 及 led2.asm,以备测试老师询问。(3)编辑、调试、运行程序,让相邻两个 LED 顺时针(学号末位奇数者)或逆时针(学号末位偶数者)方向旋转亮起来形成走马灯。4.实验代码:data segmentdata endscode segmentassume cs:code,ds:dat
13、ago:mov dx,403Hmov al,80hout dx,all0:mov bx,3mov cl,0mov si,24l1:mov dx,400Hmov al,blout dx,almov dx,401Hmov al,bhout dx,almov dx,402Hmov al,clout dx,alCall delay05SHL bx,1Rcl cl,1 dec si9jnz l1jmp l0mov ah,4chInt 21hdelay05 proc near ; 循环延时子程序push cxpush bxmov cx,0000Hd1: mov bx,1200hd2: dec bxjnz
14、d2loop d1pop bxpop cxretdelay05 endpCode endsEnd go 5.实验总结和心得:实验六 小键盘实验1.实验目的:要求掌握 8255 芯片的工作原理、初始化、编程应用。2.实验原理:通过端口 A 的输出和端口 B 的输入实现按键的判断。3.实验内容:(1)运行“LED 显示实验台” 。(2)读懂示例程序 key.asm,以备测试老师询问。(3)借助实验原理图,说明判断某键被按下的方法。(4)解释程序怎样将按键操作转换为 DOS 命令窗口显示字符的?(5)为什么会将一个字符显示数百次?(6)能否每次按键只显示一次?(说出设想,不一定编程实现)4.实验代码
15、:5.实验总结和心得:实验七 数码管显示实验1.实验目的:要求掌握 8255 芯片的工作原理、初始化、编程应用。2.实验原理:通过端口 A 和端口 B 的输出实现数字在数码管的显示。3.实验内容:修改或自己编写程序将自己学号分三次、间隔 1 秒显示出来。提示:多个数码管同时显示可以通过设置余辉时间实现.104.实验代码:Data segmentPortA equ 404H ;8255 的 PA 口地址xz db 0f9h,99h,0c0h,92h,0c0h,0f9h,0c0h,0f9h,0f9h,99h ;定义 ad 的显示代码s db “Display a b c d at the same
16、 time. Press any key to exit.“,0dh,0ah,“$“ ;程序功能提示Data endsCode segmentassume cs:code,ds:dataStart:mov ax,data mov ds,ax mov dx,offset s ;显示提示mov ah,9int 21hmov dx, PortA+3mov al,80H out dx,al ;PA、PB 口初始化为基本输出方式L0:lea si,xzmov ah,08h ;置位选初值,从左边开始显示L1: push axmov al,si ;显示数字mov dx,PortAout dx,almov a
17、l,ahmov dx,PortA+1out dx,alcall de; 延时mov ah,0bhint 21h ; 检测有无按键,返回 AL=0FFh(有按键)或 0(无按键)cmp al,0FFhjz Exitinc si; 准备显示下一数字pop ax11shr ah,1; 选择下一数码管cmp ah,0; 判断是否显示完“d“jnz l1mov ah,08hL2: push axmov al,si ;显示数字mov dx,PortAout dx,almov al,ahmov dx,PortA+1out dx,alcall de; 延时mov ah,0bhint 21h ; 检测有无按键,
18、返回 AL=0FFh(有按键)或 0(无按键)cmp al,0FFhjz Exitinc si; 准备显示下一数字pop axshr ah,1; 选择下一数码管cmp ah,0; 判断是否显示完“d“jnz l2mov ah,08hmov di,2L3: push axmov al,si ;显示数字mov dx,PortAout dx,almov al,ahmov dx,PortA+1out dx,alcall de; 延时mov ah,0bhint 21h ; 检测有无按键,返回 AL=0FFh(有按键)或 0(无按键)cmp al,0FFhjz Exitinc si; 准备显示下一数字de
19、c dipop axshr ah,1; 选择下一数码管cmp di,0; 判断是否显示完“d“jnz l3jmp l0Exit:mov ah,4ch ; 结束程序int 21hde proc near ; 循环延时子程序push cx12push bxmov cx,0000Hd1: mov bx,7200hd2: dec bxjnz d2loop d1pop bxpop cxretde endpCode endsend Start5.实验总结和心得:实验八 数字钟实验1.实验目的:要求掌握 8255 芯片的工作原理、初始化、编程应用。2.实验原理:通过端口 A 和端口 B 的输出实现数字在数码
20、管的显示。3.实验内容:(1)运行“数码管显示实验台” 。(2)编程实现数字钟,要求时分各两位显示。4.实验代码:Data segmentPortA equ 404H ;8255 的 PA 口地址xz db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;定义 09 的显示代码s db “Display time. Press any key to exit.“,0dh,0ah,“$“ ;程序功能提示Data endsCode segmentassume cs:code,ds:dataStart:mov ax,data mov ds,ax 13mov
21、 dx,offset s ;显示提示mov ah,9int 21hmov dx, PortA+3mov al,80H out dx,al ;PA、PB 口初始化为基本输出方式L0:lea si,xzlea di,xzlea bx,xzlea bp,xzL1: mov ah,08h ;置位选初值,从左边开始显示push axmov al,di ;显示数字mov dx,PortAout dx,almov al,ahmov dx,PortA+1out dx,alcall de; 延时mov ah,0bhcmp di,3h jz A0 jmp A1A0:lea di,xz A1: pop axshr
22、ah,1; 选择下一数码管 L2: push axmov al,bx ;显示数字mov dx,PortAout dx,almov al,ahmov dx,PortA+1out dx,alcall de; 延时mov ah,0bhcmp di,2hjz B2jmp B4B2:cmp bx,4hjz B3jmp B4B3:lea di,xzlea bx,xzB4:cmp bx,9hjz B0jmp B114B0:lea bx,xzinc diB1:pop axshr ah,1 L3: push axmov al,bp ;显示数字mov dx,PortAout dx,almov al,ahmov d
23、x,PortA+1out dx,alcall de; 延时mov ah,0bhcmp bp,6hjz Cjmp C1C:inc bxlea bp,xz C1:pop axshr ah,1 L4: push axmov al,si ;显示数字mov dx,PortAout dx,almov al,ahmov dx,PortA+1out dx,alcall de; 延时mov ah,0bhint 21h ; 检测有无按键,返回 AL=0FFh(有按键)或 0(无按键)cmp al,0FFhjz Exitinc sicmp si,0ahjz D0jmp DD0:lea si,xzinc bp D:pop axshr ah,1jmp L1Exit:mov ah,4ch ; 结束程序int 21hde proc near ; 循环延时子程序push cxpush bx15mov cx,500Hd1: mov bx,0d2: dec bxjnz d2loop d1pop bxpop cxretde endpCode endsend Start5.实验总结和心得: