ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:173.90KB ,
资源ID:8471711      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8471711.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机系统实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机系统实验报告.docx

1、微机系统实验报告微机系统实验报告 西安电子科技大学 实验报告 课程名称 微机系统上机实验 成 绩 实验学时 28 学时 评语:指导教师:吴文华 2016年 12 月 26 日 实验一 汇编语言编程实验 一、实验目的 (1)掌握 汇编语言的编程方法(2)掌握 DOS 功能调用的使用方法(3)掌握 汇编语言程序的调试运行过程 二、实验设备 PC 机一台。三、实验内容 1.将指定数据区的字符串数据以 ASCII码形式显示在屏幕上,并通过 DOS 功能调用完成必要提示信息的显示。2.在屏幕上显示自己的学号姓名信息。3.循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的 ASCII码,直到输入”Q”

2、或“q”时结束。4.自主设计输入显示信息,完成编程与调试,演示实验结果。四、实验源码 DATA SEGMENT DISCHA DBWangHan 14030188004,0AH,0DH,$TAB DB,0AH,0DH,$BLANK DB$DATA ENDS STACK SEGMENT STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,SEG DISCHA MOV DS,AX MOV DX,OFFSET DISCHA MOV AH,09H INT 21H NEXT:MOV AH,01H INT 21H CMP

3、 AL,Q JE ENDSS CMP AL,q JE ENDSS MOV BL,AL MOV AX,SEG BLANK MOV DS,AX MOV DX,OFFSET BLANK MOV AH,09H INT 21H MOV BH,0AH MOV DL,BL MOV CL,04H SHR DL,CL CMP DL,BH JNL Q3 JMP Q2 Q1:ADD DL,07H Q2:ADD DL,30H MOV AH,02H INT 21H MOV DL,BL MOV DH,0FH AND DL,DH CMP DL,BH JNL Q3 JMP Q4 Q3:ADD DL,07H Q4:ADD DL

4、,30H MOV AH,02H INT 21H MOV AX,SEG TAB MOV DS,AX MOV DX,OFFSET TAB MOV AH,09H INT 21H MOV CX,0009H LOOP NEXT ENDSS:MOV AH,4CH INT 21H CODE ENDS END START 五、程序流程图 如下图 1.2所示 图 1.2程序流程图 实验二 数码转换实验 一、实验目的 1.掌握不同进制数及编码相互转换的程序设计方法。2.掌握运算类指令编程及调试方法。3.掌握循环程序的设计方法。二、实验设备 PC 机一台。三、实验内容 1.重复从键盘输入不超过 5位的十进制数,按回

5、车键结束输入;2.将该十进制数转换成二进制数;结果以 2 进制数的形式显示在屏幕上;3.如果输入非数字字符,则报告出错信息,重新输入;4.直到输入“Q”或q时程序运行结束。5.键盘输入一字符串,以空格结束,统计其中数字字符的个数,在屏幕显示 四、实验原理 十进制数可以表示为:Dn*10n+Dn-1*10n-1+D0*100=Di*10i 其中 Di 代表十进制数 1、2、3、9、0。上式可以转换为:Di*10i=(Dn*10+Dn-1)*10+Dn-2)*10+D1)*10+D0 由上式可归纳出十进制数转换为二进制数的方法:从十进制数的最高位 Dn开始做乘 10加次位的操作,依此类推,则可求出

6、二进制数结果。表 2.1 数码转换关系对应表 五、实验源码 1、数制转换 assume cs:code data segment est db Error:Input invalid,0ah,0dh,$data ends stack segment stk db 64 dup(0)stack ends code segment start:mov ax,stack mov ss,ax mov sp,offset stk mov ax,data mov ds,ax rf:mov cx,5 mov ax,0 mov dx,0 mov si,0 mov di,0 rr:mov ah,01h int

7、21h cmp al,0dh je rend cmp al,q je qt cmp al,Q je qt cmp al,0 jl err cmp al,9 jg err jmp cnt err:call perr cnt:sub al,0 mov bh,0 mov bl,al mov ax,di push bx mov bx,10 mul bx pop bx add ax,bx adc dx,0 mov si,dx mov di,ax loop rr rend:call newline mov bx,si call itb mov bx,di call itb call newline jmp

8、 rf qt:mov ax,4c00h int 21h itb:mov cx,16 rs:mov ax,bx and ax,01h mov dl,al add dl,0 push dx shr bx,1 loop rs mov cx,16 r:pop dx mov ah,02h int 21h loop r ret newline:mov ah,02h mov dl,0dh int 21h mov dl,0ah int 21h ret perr:mov dx,offset est mov ah,09h int 21h jmp rf ret code ends end start 2、数字统计

9、assume cs:code stack segment stk db 16 dup(0)stack ends code segment start:mov ax,stack mov ss,ax mov sp,0 mov bx,0 rc:mov ah,01h int 21h cmp al,je brk cmp al,0 jl n cmp al,9 jg n inc bx n:jmp rc brk:call show_num mov ax,4c00h int 21h show_num:mov si,0 rs:mov ax,bx mov cl,10 div cl add ah,0 mov dl,a

10、h push dx mov ah,0 inc si cmp ax,0 je rt jmp rs rt:mov cx,si s:pop dx mov ah,02h int 21h loop s ret code ends end start 六、程序流程图 如下图 2.2所示 图 2.2 十进制 ASCII码转换为二进制数流程图 实验三 基本 IO扩展口实验 一、实验目的 1.了解 TTL芯片扩展简单 I/O 口的方法。2.掌握数据输入输出程序编制的方法。二、实验设备 PC 机一台,实验箱 三、实验内容 本实验要求用 74LS244 作为输入口,读取开关状态,并将此状态通过 74LS273 连到

11、发光二极管显示。具体实验内容如下:1.开关 Yi 为低电平时对应的发光二极管亮,Yi 为高电平时对应的发光二极管灭。2.当开关 Yi 全为高电平时,发光二极管 Qi 从左至右轮流点亮。3.当开关 Yi 全为低电平时,发光二极管 Qi 从右至左轮流点亮。四、实验原理 74LS244 是一种三态输出的 8总线缓冲驱动器,无锁存功能,当 G 为低电平,Ai信号传送到 Yi,当为高电平时,Yi 处于禁止高阻状态;74LS273 是一种带清除功能的 8D触发器,1D8D为数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,常用作 8 位地址锁存器。五、实验步骤 1.按照实验连线图连接:244的 C

12、S 接到 ISA 总线接口模块的 0000H,Y7Y0开关 K1K8。273的 CS 接到 ISA 总线接口模块的 0020H,Q7Q0发光二极管 L1L8。该模块的 WR、RD 分别连到 ISA总线接口模块的 IOWR、IORD。该模块的数据(AD0AD7)连到 ISA总线接口模块的数据(LD0LD7)。2.编写实验程序,编译链接,运行程序 3.拨动开关,观察发光二极管的变化。六、实验源码 MY_STACK SEGMENT PARA STACK DB 100 DUP(?)MY_STACK ENDS MY_DATA SEGMENT PARA DATA IO_9054base_address D

13、B 4 DUP(0);PCI卡 9054 芯片 I/O 基地址暂存空间 IO_base_address DB 4 DUP(0);PCI卡 I/O 基地址暂存空间 pcicardnotfind DB 0DH,0AH,pci card not find or address/interrupt error!,0DH,0AH,$GOOD DB 0DH,0AH,The Program is Executing!,0DH,0AH,$LS244 DW 00000H LS273 DW 00020H RA DB?LB DB?DELAY_SET EQU 0FFFH ;延时常数 MY_DATA ENDs MY_C

14、ODE SEGMENT PARA CODE MY_PROC PROC FAR ASSUME CS:MY_CODE,DS:MY_DATA,SS:MY_STACK MAIN:.386;386 模式编译 MOV AX,MY_DATA MOV DS,AX MOV ES,AX MOV AX,MY_STACK MOV SS,AX CALL FINDPCI ;自动查找 PCI卡资源及 IO口基址 MOV CX,word ptr IO_base_address ;MOV CX,0E800H ;直接加入(E800:本机 PCI卡 IO口基址)ADD LS244,CX ;PCI卡 IO基址+偏移 ADD LS27

15、3,CX MOV RA,7FH MOV LB,0FEH READ1:MOV DX,LS244 ;读取开关状态 IN AL,DX CMP AL,0FFH JE READ2 CMP AL,000H JE READ3 NOT AL ;取反 JMP READ4 READ2:CALL RIGHT JMP READ4 READ3:CALL LEFT READ4:MOV DX,LS273 OUT DX,AL ;送 LED显示 CALL DELAY CALL BREAK JMP READ1 MY_PROC ENDp RIGHT PROC NEAR MOV AL,RA ROR AL,1 MOV RA,AL RE

16、T RIGHT ENDP LEFT PROC NEAR MOV AL,LB ROL AL,1 MOV LB,AL RET LEFT ENDP;*;/*按任意键退出*/;*BREAK PROC NEAR ;按任意键退出 PUSHF PUSH AX PUSH DX MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21H RETURN:POP DX POP AX POPF RET BREAK ENDP;*;/*延时程序*/;*DELAY PROC NEAR ;延时程序 PUSHF PUSH DX PUSH CX MOV DX,DEL

17、AY_SET D1:MOV CX,-1 D2:DEC CX JNZ D2 DEC DX JNZ D1 POP CX POP DX POPF RET DELAY ENDp 实验四 可编程并行接口实验 一、实验目的 1.了解可编程并行接口 8255的内部结构,2.掌握工作方式、初始化编程及应用。二、实验设备 PC 机一台,实验箱 三、实验内容 1.流水灯实验:利用 8255的 A口、B口循环点亮发光二极管。2.交通灯实验:利用 8255的 A口模拟交通信号灯。3.I/O 输入输出实验:利用 8255的 A口读取开关状态,8255的 B 口把状态送发光二极管显示。四、实验原理 8255是一个通用可编

18、程并行接口电路。它具有 A、B、C 三个 8位并行口。其中 C口也可用作 A、B口的联络信号及中断申请信号。通过编程,它可以被设置为基本输入输出、选通输入输出以及双向传送方式。对于 C 口还具有按位置 0、1的功能。图 4.1 可编程并行接口 8255芯片接口电路 D7 D6 D5 D4 D3 D2 D1 D0 1(特征位)A组方式 00=方式 0 01=方式 1 1X=方式 2 A口 0=输出 1=输入 C 口高 4位 0=输出 1=输入 B组方式 0=方式 0 1=方式 1 B口 0=输出 1=输入 C 口低 4 位 0=输出 1=输入 0(特征位)不用 位选择 000=C 口 0位111

19、=C口 7位 0=复位 1=置位 表 4.1 8255 控制字 五、实验步骤 1.流水灯实验 图 4.2 流水灯实验连线图 模块的 WR、RD分别连到 ISA总线接口模块的 IOWR、IORD。模块的数据(AD0AD7)、地址线(A0A7)分别连到 ISA总线接口模块的数据(LD0LD7)、地址线(LA0LA7)。8255模块选通线 CE 连到 ISA总线接口模块的 0000H。8255的 PA0PA7 连到发光二极管的 L0L7;8255的 PB0PB7 连到发光二极管的 L8L15。运行程序,观察发光二极管。2.交通灯实验 模块的 WR、RD分别连到 ISA总线接口模块的 IOWR、IOR

20、D。模块的数据(AD0AD7)、地址线(A0A7)分别连到 ISA总线接口模块的数据(LD0LD7)、地址线(LA0LA7)。8255模块选通线 CE 连到 ISA总线接口模块的 0000H。8255的 PA0-L7、PA1-L6、PA2-L5、PA3-L3、PA4-L2、PA5-L1。运行程序,观察发光二极管。图 4.3 交通灯实验连线图 六、实验源码 1 流水灯 MY_STACK SEGMENT PARA STACK DB 100 DUP(?)MY_STACK ENDS;MY_DATA SEGMENT PARA DATA IO_9054base_address DB 4 DUP(0);PC

21、I卡 9054 芯片 I/O 基地址暂存空间 IO_base_address DB 4 DUP(0);PCI卡 I/O 基地址暂存空间 pcicardnotfind DB 0DH,0AH,pci card not find or address/interrupt error!,0DH,0AH,$GOOD DB 0DH,0AH,The Program is Executing!,0DH,0AH,$LA DB?LB DB?P8255_A DW 0000H P8255_B DW 0001H P8255_C DW 0002H P8255_MODE DW 0003H DELAY_SET EQU 1FF

22、FH MES2 DB PCI CONFIG READ ERROR!$MY_DATA ENDs MY_CODE SEGMENT PARA CODE MY_PROC PROC FAR ASSUME CS:MY_CODE,DS:MY_DATA,SS:MY_STACK START:.386;386 模式编译 MOV AX,MY_DATA MOV DS,AX MOV ES,AX MOV AX,MY_STACK MOV SS,AX CALL FINDPCI ;自动查找 PCI卡资源及 IO口基址 MOV CX,word ptr IO_base_address ;MOV CX,0E800H ;直接加入(E8

23、00:本机 PCI卡 IO口基址)ADD P8255_A,CX ;PCI卡 IO基址+偏移 ADD P8255_B,CX ADD P8255_C,CX ADD P8255_MODE,CX MOV DX,P8255_MODE;8255 初始化,三个口全为输出 MOV AL,80H OUT DX,AL MOV DX,P8255_A ;PA 口赋初值 MOV AL,7FH OUT DX,AL MOV LA,AL MOV DX,P8255_B ;PB口赋初值 MOV AL,0FEH OUT DX,AL MOV LB,AL CALL DELAY A1:MOV AL,LA ;PA 口数据右移一位 ROR

24、AL,1 MOV LA,AL MOV DX,P8255_A OUT DX,AL MOV AL,LB ROL AL,1 MOV LB,AL MOV DX,P8255_B ;PB口数据右移一位 OUT DX,AL CALL DELAY ;延时 CALL BREAK ;按任意键退出 JMP A1 MY_PROC ENDp ;*;/*延时子程序*/;*;DELAY PROC NEAR ;延时程序 PUSHF PUSH DX PUSH CX MOV DX,DELAY_SET D1:MOV CX,-1 D2:DEC CX JNZ D2 DEC DX JNZ D1 POP CX POP DX POPF RE

25、T DELAY ENDp;*;/*按任意键退出子程序*/;*;BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21H RETURN:RET BREAK ENDP;2 交通灯 MY_STACK SEGMENT PARA STACK DB 100 DUP(?)MY_STACK ENDS MY_DATA SEGMENT PARA DATA IO_9054base_address DB 4 DUP(0);PCI卡 9054 芯片 I/O 基地址暂存空间 IO_base_address DB 4 DUP(

26、0);PCI卡 I/O基地址暂存空间 pcicardnotfind DB 0DH,0AH,pci card not find or address/interrupt error!,0DH,0AH,$GOOD DB 0DH,0AH,The Program is Executing!,0DH,0AH,$P8255_A DW 0000H P8255_B DW 0001H P8255_C DW 0002H P8255_MODE DW 0003H DELAY_SET EQU 0FfffH DELAY_SET1 EQU 08ffH MES2 DB PCI CONFIG READ ERROR!$MY_DA

27、TA ENDs MY_CODE SEGMENT PARA CODE MY_PROC PROC FAR ASSUME CS:MY_CODE,DS:MY_DATA,SS:MY_STACK START:.386;386 模式编译 MOV AX,MY_DATA MOV DS,AX MOV ES,AX MOV AX,MY_STACK MOV SS,AX CALL FINDPCI ;自动查找 PCI卡资源及 IO口基址 MOV CX,word ptr IO_base_address ;MOV CX,0E800H ;直接加入(E800:本机 PCI卡 IO口基址)ADD P8255_A,CX ;PCI卡 I

28、O基址+偏移 ADD P8255_B,CX ADD P8255_C,CX ADD P8255_MODE,CX MOV DX,P8255_MODE MOV AL,80H ;3 个口全部为输出 OUT DX,AL MOV DX,P8255_A ;CALL ST0 ;全为红灯 TRAFFIC1:CALL ST1 ;南北为绿灯,东西为红灯 ;CALL DELAY CALL ST2 ;南北黄灯闪烁,东西为红灯 ;CALL DELAY CALL ST3 ;南北为红灯,东西为绿灯 ;CALL DELAY CALL ST4 ;南北为红灯,东西黄灯闪烁 CALL BREAK JMP TRAFFIC1 MY_PR

29、OC ENDp;*;/*初始状态全为红灯*/;*;ST0 PROC NEAR MOV AL,1BH OUT DX,AL CALL DELAY RET ST0 ENDp ;*;/*南北为绿灯,东西为红灯子程序*/;*;ST1 PROC NEAR MOV DX,P8255_A MOV AL,33H OUT DX,AL CALL DELAY ;CALL DELAY RET ST1 ENDp ;*;/*南北黄灯闪烁,东西为红灯子程序*/;*;ST2 PROC NEAR MOV CX,5H ST20:MOV AL,2BH OUT DX,AL CALL DELAY MOV AL,3BH OUT DX,Al

30、 CALL DELAY LOOP ST20 RET ST2 ENDp ;*;/*南北为红灯,东西为绿灯子程序*/;*;ST3 PROC NEAR MOV AL,1EH OUT DX,AL CALL DELAY ;CALL DELAY RET ST3 ENDp ;*;/*南北为红灯,东西黄灯闪烁子程序*/;*;ST4 PROC NEAR MOV CX,5H ST40:MOV AL,1DH OUT DX,AL CALL DELAY MOV AL,1FH OUT DX,AL CALL DELAY LOOP ST40 RET ST4 ENDp;*;/*延时子程序*/;*;DELAY PROC NEAR

31、 ;延时程序 PUSHF PUSH DX PUSH CX MOV DX,DELAY_SET D1:MOV CX,-1 D2:DEC CX JNZ D2 DEC DX JNZ D1 POP CX POP DX POPF RET DELAY ENDp DELAY1 PROC NEAR ;延时程序 PUSHF PUSH DX PUSH CX MOV DX,DELAY_SET1 D3:MOV CX,-1 D4:DEC CX JNZ D4 DEC DX JNZ D3 POP CX POP DX POPF RET DELAY1 ENDp;*;/*按任意键退出子程序*/;*;BREAK PROC NEAR

32、;按任意键退出 PUSHF PUSH AX PUSH DX MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21H RETURN:POP DX POP AX POPF RET BREAK ENDP;实验五 可编程定时器/计数器实验 一、实验目的 1.掌握 8254定时/计数器的编程方法。2.学习 8254的几种工作方式。3.了解计数器的硬件连接及时序关系。二、实验设备 PC 机一台,实验箱 三、实验内容 1.将 32Hz 的晶振频率作为 8254 的时钟输入,利用定时器 8254 产生 1Hz 的方波,用发光二极管显示输出结果

33、(发光二极管闪烁)。2.用开关控制结束程序执行,发光二极管熄灭。四、实验原理 8254是一种可编程的定时器/计数器芯片,它具有 3个独立的 16位计数器通道,每个计数器都有 6种工作方式,6 种工作方式主要有 5点不同:一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号 GATE对计数操作的影响不同;三是 OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同。图 5.1 可编程定时器/计数器 8254管脚图 对 8254的编程分两部分:首先向控制字寄存器写入方式控制字,然后向指定的通道写入计数值。方式控制字格式如下:D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD 其中:SC1、SC0 用来选择计数器通道;M2、M1、M0用来选择工作方

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1