微机原理实验报告_第1页
微机原理实验报告_第2页
微机原理实验报告_第3页
微机原理实验报告_第4页
微机原理实验报告_第5页
已阅读5页,还剩19页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上微机原理与接口技术实验报告学院:信息工程学院班级:学号:姓名: 实验一:系统认识实验1 实验目的:掌握TD-PITE 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。2 实验设备:PC机一台,TD-PITE 实验装置一套。3 实验内容:编写实验程序,将00H0FH 共16 个数写入内存3000H 开始的连续16 个存储单元中。4 实验步骤:1. 运行Wmd86 软件,进入Wmd86 集成开发环境。2. 环境调试,“设置”选项中选择汇编语言。 语言环境选择界面 3. 新建文档,编写程序,程序如下:SSTACK SEGMEN

2、T STACK DW 32 DUP(?) SSTACK ENDSCODE SEGMENT ASSUME CS:CODE,SS:SSTACKSTART: PUSH DS XOR AX, AX MOV DS, AX MOV SI, 3000H MOV CX, 16AA1: MOV SI, AL INC SI INC AL LOOP AA1AA2: JMP AA2CODE ENDS END START4. 编译连接,程序无误下载: 信息界面5. 连接PC与实验系统的通讯电缆,打开实验系统电源。6. 下载程序,查看内存3000H 开始的连续16 个存储单元中的内容,显示如下: 8. 由于该内存段原始数

3、据与实验数据相同,便于区分观察,将该内存段初始化,然后查看: 9. 点击运行程序,在此查看该段内存: 10. 设置断点,执行程序: 5 操作练习编写程序,将内存3500H 单元开始的8 个数据复制到3600H 单元开始的数据区中。通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。1、编写程序如下:SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDSCODE SEGMENT ASSUME CS:CODE,SS:SSTACKSTART: PUSH DS XOR AX, AX MOV DS, AX M

4、OV SI, 3500H MOV DI, 3600H MOV CX, 8AA1: MOV AL, SI MOV DI, AL INC SI INC DI LOOP AA1AA2: JMP AA2CODE ENDS END START2、 执行过程如上,内存变化如下: 程序执行前 程序执行后 实验二:数制转换实验1、实验目的1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解;2. 熟悉程序调试的方法。2、实验设备PC机一台,TD-PITE 实验装置一套。3、实验内容 将ASCII码表示的十进制数转换为二进制数 , 将十进制数的ASCII码转换为BCD 码4、 步骤第一部分:将

5、十进制数的ASCII码转换为BCD 码 1、画流程图如下: 2、 根据流程图写出代码:SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AX,0000HMOV DS,AXMOV CX, 0005H ;转换位数MOV DI, 3500H ;ASCII码首地址A1: MOV BL, 0FFH ;将错误标志存入BLMOV AL, DICMP AL, 3AHJNB A2 ;不低于3AH则转A2SUB AL, 30HJB A2 ;低于30H则转A2MOV BL, ALA2: MOV AL, BL

6、 ;结果或错误标志送入ALMOV DI+0AH,AL ;结果存入目标地址INC DILOOP A1A3: JMP A3CODE ENDSEND START3、 编译链接,下载运行程序: 第二部分:将十六位二进制数转换为ASCII码表示的十进制数十六位二进制数的值域为065535,最大可转换为五位十进制数。五位十进制数可表示为:N = D4 104 + D3 103 + D2 102 + D1 10 + D0Di:表示十进制数09将十六位二进制数转换为五位ASCII 码表示的十进制数,就是求D1D4,并将它们转换为ASCII 码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H

7、、3501H中,转换结果存放于3510H3514H 单元中。实验步骤(1) 编写程序,经编译、链接无误后,装入系统;SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV SI,3500H ;源数据地址MOV DX,SIMOV SI,3515H ;目标数据地址A1: DEC SIMOV AX,DXMOV DX,0000HMOV CX,000AH ;除数10DIV CX ;得商送AX, 得余数送DXXCHG AX,DXADD AL,30H ;得Di的ASCII码MOV SI,AL ;存入目标地

8、址CMP DX,0000HJNE A1 ;判断转换结束否,未结束则转A1A2: CMP SI,3510H ;与目标地址得首地址比较JZ A3 ;等于首地址则转A3,否则将剩余地址中填30HDEC SIMOV AL,30HMOV SI,ALJMP A2A3: JMP A3CODE ENDSEND START(2)在3500H、3501H 中存入0C 00(3)运行程序,然后停止运行;(4)检查运行结果,键入D3510,结果应为:30 30 30 31 32;(5) 可反复测试几组数据,验证程序的正确性。例如;将3500h,3501H中存入01 02,j结果如下:第三部分:十六进制数转换为ASCI

9、I码由表1-2-1 中十六进制数与ASCII 码的对应关系可知:将十六进制数0H09H 加上30H后得到相应的ASCII码,AHFH 加上37H 可得到相应的ASCII码。将四位十六进制数存放于起始地址为3500H 的内存单元中,把它们转换为ASCII 码后存入起始地址为350AH 的内存单元中。自行绘制流程图。实验步骤(1) 编写程序,经编译、链接无误后装入系统;SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV CX,0004HMOV DI,3500H ;十六进制数源地址MOV DX

10、,DIA1: MOV AX,DXAND AX,000FH ;取低4位CMP AL,0AHJB A2 ;小于0AH则转A2ADD AL,07H ;在AFH之间,需多加上7HA2: ADD AL,30H ;转换为相应ASCII码MOV DI+0DH,AL ;结果存入目标地址DEC DIPUSH CXMOV CL,04HSHR DX,CL ;将十六进制数右移4位POP CXLOOP A1A3: JMP A3CODE ENDSEND START(2)在3500H、3501H 中存入四位十六进制数203B,即键入E3500,然后输入3B 20;(3)先运行程序,然后再停止运行;(4)键入D350A,显示

11、结果为:0000:350A 32 30 33 42 CC ;(5) 反复输入几组数据,验证程序功能。例如键入E3500,然后输入2D,46,显示结果如下: 实验三:循环程序设计实验1、实验目的1. 加深对循环结构的理解;2. 掌握循环结构程序设计的方法以及调试方法。2、实验设备PC机一台,TD-PITE 实验装置一套。3、 实验内容 计算S1233445N(N1),直到N(N1)项大于200为止,求某数据区内负数的个数。4、步骤第一部分:计算S1233445N(N1),直到N(N1)项大于200为止1、 构思程序,画流程图: 2、 写出程序: SSTACK SEGMENT STACKDW 64

12、 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,0001HMOV BL,02HA1: MOV AL,BLINC BLMUL BLADD DX,AX ;结果存于DX中CMP AX,00C8H ;判断N(N+1)与200的大小JNA A1A2: JMP A2CODE ENDSEND START3、 编译连接,下载程序,运行:4. 修改数据后验证如下,其中将00C8H改为00D8: 第二部分:求某数据区内负数的个数 1、构思程序结构,画出流程图: 2、写出程序:SSTACK SEGMENT STACKDW 64 DUP(?)SSTA

13、CK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DI, 3000H ;数据区首地址MOV CL, DI ;取数据个数XOR CH, CHMOV BL, CHINC DI ;指向第一个数据A1: MOV AL, DITEST AL, 80H ;检查数据首位是否为1JE A2INC BL ;负数个数加1A2: INC DILOOP A1MOV DI, BL ;保存结果A3: JMP A3CODE ENDSEND START3、 编译、链接无误后装入系统,键入E3000,输入数据如下:300006 ,300112,300288,300382,300490,30

14、0522,300633 4、 查看内存检验结果如下:5. 修改数据,编译、链接无误后装入系统,键入E3000,输入数据如下:3000=06,3001=82,3002=86,3003=88,3004=90,3005=11,3006=226. 修改后检验的结果如下: 实验四:8259 中断控制实验1、实验目的1. 掌握8259 中断控制器的工作原理;2. 学习8259 的应用编程方法;3. 掌握8259 级联方式的使用方法。2、实验设备PC机一台,TD-PITE 实验装置一套。3、实验内容及步骤1. 中断控制器8259 简介在Intel 386EX 芯片中集成有中断控制单元(ICU),该单元包含有

15、两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A 是一致的,操作方法也相同。从片的INT连接到主片的IR2 信号上构成两片8259 的级联。在TD-PITE 实验系统中,将主控制器的IR6、IR7 以及从控制器的IR1 开放出来供实验使用,主片8259 的IR4 供系统串口使用。2、按下图链接好实验电路:3、写出实验程序如下:SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV

16、 AX, OFFSET MIR7 ;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV SI, AX ;填IRQ7的偏移矢量MOV AX, CS ;段地址MOV SI, 003EHMOV SI, AX ;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;ICW2MOV AL, 04HOUT 21H, AL ;ICW3MOV AL, 01HOUT 21H, AL ;ICW4MOV AL, 6FH ;OCW1OUT 21H, ALSTIAA1: NOPJMP AA1MIR7

17、: STICALL DELAYMOV AX, 0137HINT 10H ;显示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL ;中断结束命令IRETDELAY: PUSH CXMOV CX, 0F00HAA0: PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START4、 编译链接,下载程序运行: 实验五:8255 并行接口实验1 实验目的1. 学习并掌握8255 的工作方式及其应用;2. 掌握8255 典型应用电路的接法。2 实验设备PC机一台,TD-PITE 实验装置一套。3 实验内容1. 基本输入输出实验

18、。编写程序,使8255 的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。2. 流水灯显示实验。编写程序,使8255 的A口和B口均为输出,数据灯D7D0由左向右,每次仅亮一个灯,循环显示,D15D8与D7D0 正相反,由右向左,每次仅点亮一个灯,循环显示。4 实验原理并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能

19、在以下三种方式下工作:方式0-基本输入/输出方式、方式1-选通输入/输出方式、方式2-双向选通工作方式。8255 的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图5 实验步骤本实验使8255 端口A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。用一组开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。具体实验步骤如下述:1、 按下图按图电路 2、 编写程序: SSTACK SEGMENT STACK DW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME C

20、S:CODESTART: MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1: MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642HOUT DX, ALJMP AA1DELAY: PUSH CXMOV CX, 0F00HAA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDS END START 3、运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。 4.结果:拨动K0.K7,以及D0.D7开关时,数据灯的显示就会对应的发光。第二部分:流水灯显示实验使8255的A口和B口均为输出,数据灯D7

21、D0 由左向右,每次仅亮一个灯,循环显示,D15D8 与D7D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图2-6-5所示。实验步骤如下所述: 1、按下图链接电路图: 2、 编写实验程序,经编译、链接无误后装入系统 SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX, 0646HMOV AL, 80HOUT DX, ALMOV BX, 8001HAA1: MOV DX, 0640HMOV AL, BHOUT DX, ALROR BH, 1MOV DX, 0642HM

22、OV AL, BLOUT DX, ALROL BL, 1CALL DELAYCALL DELAYJMP AA1DELAY: PUSH CXMOV CX, 0F000HAA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START3、 运行程序,观察LED 灯的显示,验证程序功能4、 结果:数据灯D7D0 由左向右,每次仅亮一个灯,循环显示,D15D8 与D7D0 正相反,由右向左,每次仅点亮一个灯,循环显示5、 4、改变循环寻址顺序,重新导入程序,编译连接,运行程序发现流水灯流向改变。例如:将程序中的ROR BH 1以及ROL BL 1改成ROR B

23、H 2以及ROL BL 2.6、 结果:数据灯D7D0 由左向右,每次仅亮一个灯且中间间隔一个灯不亮,循环显示,D15D8 与D7D0 正相反,由右向左,每次仅点亮一个灯且中间间隔一个灯不亮,循环显示 实验六 :电子发声设计实验1 实验目的学习用8254 定时/计数器使蜂鸣器发声的编程方法。2 实验设备PC微机一台、TD-PITE 实验箱一台。3 实验内容根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。4 实验说明及步骤一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。将一段乐曲的音符对应频率的方波依次送到扬声

24、器,就可以演奏出这段乐曲。利用8254的方式3“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率的方波。计数初值的计算如下:计数初值 输入时钟 输出频率例如输入时钟采用1MHz,要得到800Hz 的频率,计数初值即为800。音符与频率对照关系如表2-11-1所示。对于每一个音符的演奏时间,可以通过软件延时来处理。首先确定单位延时时间程序(根据CPU 的频率不同而有所变化)。然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY 子程序即可。1、 链接下图链接电路 2、 编写程序如下:IOY0 EQU 06C0HMY8254_COUNT0 EQU IOY0+0

25、0H ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+02H ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+04H ;8254计数器2端口地址MY8254_MODE EQU IOY0+06H ;8254控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTFREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;频率表DW 495,495,624,742,833,833,833,742,624DW 624,495,556,495

26、,556,624,495,416,416,371DW 495,833,742,624,624,495,556,495,556,833DW 742,624,624,742,833,990,742,624,624,495DW 556,495,556,624,495,416,416,371,495,0TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;时间表DB 6, 2, 4, 4, 12, 1, 3, 6, 2DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 6, 2, 4, 4, 12DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论