自0704微机原理课程设计模版.doc_第1页
自0704微机原理课程设计模版.doc_第2页
自0704微机原理课程设计模版.doc_第3页
自0704微机原理课程设计模版.doc_第4页
自0704微机原理课程设计模版.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

大连理工大学本科实验报告课程名称:计算机原理课程设计学院(系): 电信学部 专 业: 电 气 班 级: 0804 学 号: 200881487 学生姓名: 李清祥 成 绩: 2011年1月13日 实验1 运算类程序设计编程训练一、 实验目的1. 掌握运算类指令编程与调试方法2. 掌握运算类指令对各状态标志位的影响及控制条件转移的使用二、 实验内容 用减奇数法开平方三、 实验说明及知识点用减奇数发可以球得近似平方根,以获得平方根的整数部分,N个自然数之和等于N。若要做的的运算,那么就可以从S数中逐渐减去自然数中的奇数1、3、5、7直到结果为0,然后统计自然数奇数的个数,他就是S的平方根。四、 实验要求与结果1. 给出程序清单, 并加以适量注释DATA SEGMENT VAR DW 81 DATA ENDSSSG SEGMENT STACK DB 256 DUP(0)SSG ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,VAR MOV SI,3500H MOV CL,00H MOV DX, 01H MOV AX,SI A1: SUB AX,DX JL A2 INC CL ADD DX, 02H JMP A1 CMP AX,DX A2:MOV SI,CL CODE ENDS END START设开方数为正整数,存放在3500H; cL为减奇数的个数,开始时为0,每减一个奇数,cL加1; dx为将要减的奇数,开始时为1,然后每次+2; 结果放回3500H。 实验结果2. 画出程序流程图AXDX开始输入一个十进制数81到AX初始化DX=1,CX=0AX=AX-DXDX=DX+2CL=CL+1AXDX输出CL结束YN3. 实验结果:输入一个065535之间的数,回车将输出输入数的平方根的整数部分4实验体会:通过这次实验掌握了运算类指令编程及其调试方法,也学会了通过用汇编语言编程来求一个数个开平方。 实验2 排序程序设计编程训练一、 排序程序设计编程训练1. 利用分支、循环,子程序调用等基本程序结构实现排序程序。2. 掌握综合程序的设计、编制及调试方法。二、 实验内容 在数据区中存放一组数,数据个数就是数据缓冲区的长度,要求用气泡法,对该数据区中的数据按递增(递减)关系排序。三、 实验说明1.,从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第N个数与第N-1个数比较,第N-1个数与第N-2个数比较若第N-1个数大于第N个数则两者交换,否则不交换,知道饿N个数的相邻两个数都比较完为止,此时N个数中最小数将被排在N个数的最前列2,对剩下的N-1个数重复第一步,照到N-1个数中的最小数3,重复第二步,直到N个数全部排好序为止四、实验要求与结果1.给出程序清单,并加以适当注释。DSEG SEGMENT BLOCK DB 12,10,25,9,8,5,7,32,11,18 N DW $-BLOCKDSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEG MOV DS,AX MOV BX,OFFSET BLOCK MOV CX,N DEC CXAGAIN1: MOV DI,CX MOV SI,0000HAGAIN2: MOV AL,BX+SI CMP AL,BX+SI+1 JNB NEXT1 XCHG AL,BX+SI+1 MOV BX+SI,ALNEXT1: INC SI LOOP AGAIN2 MOV CX,DI LOOP AGAIN1 MOV AH,4CH INT 21H CSEG ENDS END START 实验结果开始2.画出程序流程图 BX 数据块首地址 CX数据块长度-1DXCXSI0结束CX=0CXCX-1A(i) A(i+1)CXDISISI+1CXCX+1CX=0A(i)0? Y ax中数据调整为16进制和BCD码形式ds=20ax=ax/ds求平均分按形式输出结果结束四8255并行口实验1.实验目的:(1)学习利用并行接口芯片8255构成并行接口电路的基本方法(2)熟悉掌握并行接口芯片8255的基本性能及在时间应用中的硬件连接、初始化编程方法2.实验内容:编写程序,使8255的PB口为输出口,PA口为输入口,从PA口将K0K7作为一个字节读入,在从PB口输出这一反码字节。3、实验程序CODE SEGMENTASSUME CS:CODESTART:MOV DX,21BH MOV AL,90HOUT DX,AL BG: MOV DX,218HIN AL,DXMOV DX,219HOUT DX,ALJMP BGCODE ENDSEND STAR4、框图循环Pb口输出Pa口读入数据写入控制字开始5、电路图6、程序说明8255采用a口输入,bc口输出,方式0无条件输入输出方式。由开关模拟高低电平,输出二极管的亮与不亮。8个开关输入与输出采用并行方式,允许数据的同步输入和显示。8259单片中断实验1.实验目的:(1)了解PC机的中断结构及8259中断控制器的初始化(2)熟悉8259中断控制器的工作原理和硬件连线方法(3)了解8259的应用和硬件编程方法了解8259中断屏蔽2.实验内容:编写中断实验程序,主程序使8255的口为输出口,输出0FFH,L0L7指示灯全亮,中断服务程序从PB口输出0FFH,L0L3亮,L4L7灭,并延时一段时间后返回主程序。3、程序INT0 EQU 220hINT1 EQU 221hP8255BEQU219HP8255KEQU21BHSTACK SEGMENTSTA DB 50 DUP(?)TOPEQULENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART: CLI MOV AX,TOP MOV SP,AX PUSH DS MOV AX,0000H;定义IRQ0中断 MOV DS,AX MOV AX,OFFSET IRQ0 ADD AX,0000H MOV SI,20H MOV SI,AX MOV AX,CS MOV SI,22H MOV SI,AX POP DS MOV AL,13H ;对8259进行初始化ICW1 MOV DX,INT0 OUT DX,AL MOV AL,8 ;对8259进行初始化ICW2 MOV DX,INT1 OUT DX,AL MOV CX,0FFFFH LOOP $ MOV AL,9 ;对8259进行初始化ICW4 MOV DX,INT1 OUT DX,AL MOV CX,0FFFFH LOOP $ MOV DX,INT1 MOV AL,0FEH ;对8259进行初始化OCW1 OUT DX,AL MOV CX,0FFFFH LOOP $ MOV DX,INT0 ;对8259进行初始化OCW2,普通EOI返回 MOV AL,20H OUT DX,AL MOV CX,0FFFFH LOOP $ STI MOV DX,P8255K ;对8255进行初始化 MOV AL,90H OUT DX,ALDSP:MOV AL,0FFHMOV DX,P8255BOUT DX,AL JMP DSPIRQ0: STIMOV CX,0FFFFH LOOP $MOV AL,0FHMOV DX,P8255BOUT DX,AL MOV DX,INT0 MOV AL,20H OUT DX,ALMOV CX,0FFFFH LOOP $MOV CX,0FFFFH LOOP $ IRET CODE ENDSEND START4、框图 5、电路图6、程序说明主程序使8255输出高电平,实现L0L7指示灯全亮。设置中断IRQ0,实现L0L3亮,L4L7灭,并延时一段时间后返回主程序。将中断向量的入口地址写入后,通过对8259初始化命令字的写入,实现中断的调用。六8259中断优先级实验1. 实验目的(1)了解PC机的中断结构及8259中断控制器的初始化(2)熟悉8259中断控制器的工作原理和硬件连线方法(3)了解8259的应用和硬件编程方法(4)了解8259中断屏蔽,以及优先级的判别等特性2.实验内容:编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0L7指示灯全亮,IR0中断服务程序从PB口输出0FH,L0L3灯亮,L4L7灯灭,并延时一段时间后返回主程序。IR1中断服务程序从PB口输出0F0H,L0L3灭,L4L7亮,并延时一段时间后返回主程序。3、程序INT0 EQU 220hINT1 EQU 221hP8255BEQU219HP8255KEQU21BHSTACK SEGMENTSTA DB 50 DUP(?)TOPEQULENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART: CLI MOV AX,TOP MOV SP,AX PUSH DS MOV AX,0000H;设置中断向量IRQ0 MOV DS,AX MOV AX,OFFSET IRQ0 ADD AX,0000H MOV SI,20H MOV SI,AX MOV AX,CS MOV SI,22H MOV SI,AX MOV AX,0000H;设置中断向量IRQ1 MOV DS,AX MOV AX,OFFSET IRQ1 ADD AX,0000H MOV SI,24H MOV SI,AX MOV AX,CS MOV SI,26H MOV SI,AX POP DS MOV AL,13H ;对8259进行初始化ICW1 MOV DX,INT0 OUT DX,AL MOV AL,8 ;对8259进行初始化ICW2 MOV DX,INT1 OUT DX,AL mov cx,0fffhloop $ MOV AL,9 ;对8259进行初始化ICW4 MOV DX,INT1 OUT DX,AL mov cx,0fffhloop $ MOV DX,INT1 MOV AL,0FCH ;对8259进行初始化OCW1 OUT DX,AL mov cx,0fffhloop $ MOV DX,INT0 MOV AL,20H ; 普通EOI返回 OUT DX,AL mov cx,0fffhloop $ STI MOV DX,P8255K;对8255进行初始化MOV AL,90HOUT DX,ALDSP:MOV AL,0FFHMOV DX,P8255BOUT DX,AL JMP DSP IRQ0: STIMOV CX,0FFFFHLOOP $MOV AL,0FHMOV DX,P8255BOUT DX,AL MOV DX,INT0 MOV AL,20H OUT DX,ALmov cx,0FFFFHLOOP $mov cx,0FFFFHLOOP $ IRET IRQ1: STImov cx,0FFFFHLOOP $MOV AL,0F0HMOV DXP8255BOUT DX,AL MOV DX,INT0 MOV AL,20H OUT DX,ALmov cx,0FFFFHLOOP $mov cx,0FFFFHLOOP $ IRET code endsend start4、实验框图5、电路图6、实验说明在程序起始,定义终端端口irq0和irq1,由命令字知单片8259工作,需要icw4,且为上升沿触发,普通全嵌套方式,禁止同级中断再次进入,缓冲工作方式,非自动结束中断,中断结束时发送eoi命令,清isr中的对应位。主程序使8255输出高电平,实现L0L7指示灯全亮。设置中断IRQ0,实现L0L3亮,L4L7灭,并延时一段时间后返回主程序。设置中断IRQ1,实现L0L3灭,L4L7亮,并延时一段时间后返回主程序。将中断向量的入口地址写入后,通过对8259初始化命令字的写入,使8259工作在全嵌套方式下,中断优先级IRQ0大于IRQ1,这样通过8259对中断的判断来实现中断的响应。七8253定时/计数器实验1.实验目的:(1)了解定时器8253的初始化及用法(2)会用逻辑笔或示波器观察8253的工作状态2实验内容:编写程序,使8253工作的定时/计时器2工作在方式3下3.实验程序:TIM_CTL EQU 203HTIMER0 EQU 200HTIMER1 EQU 201HTIMER2 EQU 202HMODE23 EQU 0B6HMODE13 EQU 76HCODE SEGMENTASSUME CS:CODESTART:TT: CLI MOV DX,TIM_CTL ;初始化8253MOV AL,MODE23OUT DX,ALMOV DX,TIMER2 ;先写低8位MOV AL,0FFh OUT DX,AL MOV AL,0FFh ;后写低8位OUT DX,ALWT: JMP WTCODE ENDSEND START4.实验框图5.实验电路6.实验方法说明设置8253计时器2工作在方式3实现分频器功能,将实验箱上的频率Q0经行65535分频,再由OUT口输出接到逻辑笔,观察逻辑笔的变化。方式3,方波发生器,写入控制字后,out变为高电平,写入初值,下一个clk的下降沿开始计数,计数到一半out变为低电平,计数终止时out又为高电平,并自动进入下一次计数。F(out)=F(clk)/N。八A/D转换实验1.实验目的:(1)了解模/数转换的工作原理(2)掌握0809的使用方法2.实验内容:编写程序,用0809的IN0通道采集数据并在数码管上显示3.实验程序B8279 EQU 212HD8279 EQU 210HLED0 EQU 00 LED1 EQU 38H DATA SEGMENTLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39HDB 5EH,79H,71HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV DX,B8279 ;对8279进行初始化MOV AL,0D0HOUT DX,AL MOV CX,0FFFFH LOOP $MOV DX,B8279 MOV AL,LED0OUT DX,ALMOV AL,LED1OUT DX,AL MOV DX,B8279MOV AL,95H OUT DX,AL MOV DX,D8279 ;数码管显示 MOV AL,40H OUT DX,AL MOV DX,D8279 MOV AL,5eHOUT DX,AL MOV DX,D8279MOV AL,77HOUT DX,AL TT: MOV DX,230H ;选通IN0通道OUT DX,AL MOV CX,0FFFFHLOOP $ MOV DX,B8279MOV AL,83H OUT DX,AL MOV DX,230HIN AL,DX AND AL,0FH LEA BX,LEDXLATMOV DX,D8279 OUT DX,ALMOV DX,B8279 MOV AL,84HOUT DX,ALMOV DX,230HIN AL,DXMOV CL,4H ROR AL,CLAND AL,0FHLEA BX,LEDXLATMOV DX,D8279 OUT DX,ALJMP TT CODE ENDSEND START 4.实验框图5.实验电路图6实验方法说明通过A/D转换接口芯片0809实现模拟量到数据量的转变,并通过键盘显示芯片8279将转换后的数据量显示出来。 高五位显示Ad-xx,旋转电位器旋钮,改变模拟量的大小,转换值xx在00FF范围内变化。九、步进电机实验1.实验目的:(1)了解步进电机的工作原理,以及脉冲分配概念(2)掌握计算机控制步进电机的方法2.实验内容编写程序,通过8255控制步进电机的旋转3.实验程序CODE SEGMENTASSUME CS:CODESTART:MOV DX,21BH ;8255初始化MOV AL,90HOUT DX,ALBG: MOV DX,218HIN AL,DXCMP AL,01HJNZC2MOV BX,0FFFFHJMP WORKC2:CMP AL,02HJNZC4MOV BX,07FFFHJMP WORKC4:CMP AL,04HJNZC8MOV BX,0FFFHJMP WORKC8:CMP AL,08HJNZCCMOV BX,07FFHJMP WORKCC: MOV AL,00HMOV DX,219HOUT DX,ALJMP BGWORK: MOV AL,01HMOV DX,219HOUT DX,ALMOV CX,BXLOOP $ MOV AL,03HMOV DX,219HOUT DX,ALMOV CX,BXLOOP $MOV AL,02HMOV DX,219HOUT DX,ALMOV CX,BXLOOP $ MOV AL,06HMOV DX,219HOUT DX,ALMOV CX,BXLOOP $MOV AL,04HMOV DX,219HOUT DX,ALMOV CX,BXLOOP $ MOV AL,0CHMOV DX,219HOUT DX,ALMOV CX,BXLOOP $MOV AL,08HMOV DX,219HOUT DX,ALMOV CX,BXLOOP $ MOV AL,09HMOV DX,219HOUT DX,ALMOV CX,BXLOOP $JMP BGCODE ENDSEND START4.实验框图5.实验电路图6.实验方法说明初始化8255使PA口为输入口,PB口为输出口,通过判别PA口的数据来使步进电机工作在不同的状态。步进电机的旋转由OUT指令控制,实现步进电机按照预定指令旋转。扳动K0K3,可控制步进电机的转速,K0K3电动机转速依次提高。直流电机调速实验1 实验目的:掌握8255、8253、8259以及直流电机的使用方法及编程方法。2 实验任务:利用实验台上的8255、8259、8253实验电路和直流电机,设计实验电路,编写程序。3 实验内容:正确设计电路,连接电路图,并完成调速实验。4 实验程序:TIM_C EQU 203HTIMER0 EQU 200HTIMER1 EQU 201HTIMER2 EQU 202HP8255A EQU 218HP8255B EQU 219HP8255C EQU 21AHP8255CTL EQU 21BHINT0 EQU 220hINT1 EQU 221hINT10 EQU 228hINT11 EQU 229hSTACK SEGMENTSTA DB 50 DUP(?)TOPEQULENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART: CLI MOV AX,TOP MOV SP,AX PUSH DS MOV AX,0000H;SET IRQ0 MOV DS,AX MOV AX,OFFSET IRQ0 ADD AX,0000H MOV SI,20H MOV SI,AX MOV AX,CS MOV SI,22H MOV SI,AX MOV AX,0000H;SET IRQ1 MOV DS,AX MOV AX,OFFSET IRQ1 ADD AX,0000H MOV SI,24H MOV SI,AX MOV AX,CS MOV SI,26H MOV SI,AX POP DS MOV AL,13H ;ICW1 MOV DX,INT0 OUT DX,AL MOV AL,8 ;ICW2 MOV DX,INT1 OUT DX,AL mov cx,0fffhloop $ MOV AL,9 ;ICW4 MOV DX,INT1 OUT DX,AL mov cx,0fffhloop $ MOV DX,INT1 MOV AL,0FCH ;OCW1 OUT DX,AL mov cx,0fffhloop $ MOV DX,INT0 MOV AL,20H ; OUT DX,AL mov cx,0fffhloop $ MOV AL,13H ;ICW1 MOV DX,INT10 OUT DX,AL MOV AL,8 ;ICW2 MOV DX,INT11 OUT DX,AL mov cx,0fffhloop $ MOV AL,9 ;ICW4 MOV DX,INT11 OUT DX,AL mov cx,0fffhloop $ MOV DX,INT11 MOV AL,0FFH ;OCW1 OUT DX,AL mov cx,0fffhloop $ MOV DX,INT10 MOV AL,20H ; OUT DX,AL mov cx,0fffhloop $ STI nop mov dx,p8255CTL mov al,10010011b out dx,al mov dx,TIM_C mov al,36h out dx,al mov ax,100 mov dx,TIMER0 out dx,al mov al,ah out dx,al mov dx,TIM_C mov al,76h out dx,al mov ax,260 mov dx,TIMER1 out dx,al mov al,ah out dx,al mov dx,p8255CTL mov al,93h out dx,al mov bl,1 status:mov dx,p8255C in al,dx and al,01h jnz status ;mov si,1 mov dx,P8255CTL mov al,0fh out dx,al mov dx,TIM_C mov al,0b0h out dx,al mov ax,0 mov al,bl mov dx,TIMER2 out dx,al mov al,ah out dx,alstatus1:mov dx,P8255C in al,dx and al,02h jz status1 mov

温馨提示

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

评论

0/150

提交评论