计算机原理实验大报告.doc_第1页
计算机原理实验大报告.doc_第2页
计算机原理实验大报告.doc_第3页
计算机原理实验大报告.doc_第4页
计算机原理实验大报告.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

微机原理实验实验题目:顺序控制目录实验内容一:实验一、8255并行接口实验-3实验二、8259中断实验-5实验三、8253定时计数器实验-6实验四、步进电机试验-8实验五、六位数码管显示实验-10实验内容二:实验题目-13实验要求-14设计思路-14实验接线图-14程序流程图-15实验程序-16实验总结-21个人体会-21参考文献-21实验内容一实验一:题目:拨动开关和LED显示实验【实验目的】 掌握使用8255并行接口连接拨动开关,控制LED显示输出的技术。【实验内容】 按图32将8255端口A与8位拨动开关连接,8255端口B与8位LED连接,选择 8255 为方式0工作,编程序完成LED实时显示开关状态的功能,即每位LED对应一位开关状态。开关往下拨动,对应LED灭,开关往上拨动,对应LED点亮。 编程涉及8255端口地址有四个,由于8255片选信号线与地址译码区的2002FH连接,即8255的I/O偏移地址为03,加上前一个实验所获知的I/O基址,两者相加之后才是最终访问8255的I/O地址。注意,该地址一定是一个16位数,所以I/O操作要使用IN AL,DX 和OUT DX, AL指令。程序内容:.Model small.386io8255_a equ 200hio8255_b equ 201hio8255kz equ 203hcode segment assume cs:codestart: mov dx,io8255kz mov al,90h ;设置8255控制字,A口输入,B口输出 out dx,alaa: mov dx,io8255_a in al,dx ;输入开关状态 mov dx,io8255_b out dx,al ;把A口数据送B口寄存器,用LED显示输出 jmp aa ;循环code ends end start程序框图:电路图:实验二:题目:MIR5中断控制器实验 【实验目的】了解8259中断控制器的基本使用,掌握中断程序编程技术。【实验内容】使用单脉冲电路产生的脉冲信号作为386EX模块8259中断请求输入,每按一次单脉冲按键,触发一次中断,使7段数码管显示的“5”字左移一位,显示到最左端后再从最右端开始显示,如此重复。 程序内容:.Model small.386data segment led_cs equ 200hled_cs1 equ 201h ledcode db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67h old dd ?data ends code segment assume cs:code,ds:data start: cli mov ax,data mov ds,ax mov es,ax in al,21h and al,11011111b ;mask byte out 21h,al push ds mov bx,0 mov ds,bx lea ax,cs:int_proc ;WRITE INTERRUPT PROGRAM EMTRY ADDRESS mov bx,5 ;n=IRx mov si,30h ;base =30H add si,bx sal si,2 ;type num X 4 mov ds:si,ax push cs pop ax mov ds:si+2,ax pop ds ttt: lea bx,ledcode stisss: mov ch,1 lll: cmp ch,40h je sss jmp lllint_proc proc far push ax call disp mov al,20h out 20h,al pop ax sti iret int_proc endp disp proc push dx push bx push axl: mov al,6dh mov dx,led_cs nop nop out dx,al mov al,che: mov dx,led_cs1 out dx,al shl ch,1 exitdisp: pop ax pop bx pop dx retdisp endpdelay proc push ecx mov ecx,0fffffffhkk1: loop kk1 pop ecx retdelay endpcode ends end start程序框图:电路图:实验三:题目:定时/计数器8254实验 【实验目的】熟悉8254在系统中的电路接法,掌握8254的工作方式及应用编程。【实验内容】使用8254两个计数器级连,采用定时方式工作,周期性的点亮及熄灭发光二极管各1秒。程序内容:.Model small.386data segmenti8254_0 EQU 200H i8254_1 equ 201hi8254kz equ 203hdata endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,i8254kz mov al,36h ;计数器0方式3,BCD码计数 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,i8254_0 ;计数器0设置初值 out dx,al ;先写低字节 mov al,ah out dx,al ;后写高字节 mov dx,i8254kz mov al,76h ;计数器1方式3,二进制计数 out dx,al mov ax,1000 mov dx,i8254_1 ddd: out dx,al ;先写低字节 mov al,ah out dx,al ;后写高字节 nop jmp ddd hltcode ends end start程序框图:电路图:实验四:题目:步进电机实验 【实验目的】掌握步进电机的控制方法。【实验内容】编写实验程序,利用8255A口控制步进电机的运转。步进电机型号为20BY20H04,电压5V,每转一圈需48步,每步旋转7.5度。程序内容:.model small.386 io_address equ 200h data segmentspeed db 2 data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,IO_ADDRESS add dx,03 mov al,80h ;输出8255控制字 out dx,alspeedin: a1: mov dx,IO_ADDRESS ;输出步进代码顺序为 1,3,2,6,4,c,8,9 mov al,01h out dx,al call delay mov al,03h out dx,al call delay mov al,02h out dx,al call delay mov al,06h out dx,al call delay mov al,04h out dx,al call delay mov al,0Ch out dx,al call delay mov al,08h out dx,al call delay mov al,09h out dx,al call delay ;jmp a1delay proc ;延时子程序 push ax push cx push dx mov dh,speedx1: mov cx,0f00hx2: loop x2 dec dh jnz x1 pop dx pop cx pop ax retdelay endpcode ends end start程序框图:电路图:实验五:题目:六位七段数码管串行显示实验【实验目的】 了解共阴级数码管显示数字的原理,掌握六位共阴级数码管动态显示的控制方法。【实验内容】09数字按照从右到左的顺序在6位数码上循环步进显示,即0从最右端开始显示,然后按一定间隔时间向左步进移动显示,显示到数码管最左端后变换数字,然后按同样方法显示1、2.9,以此循环往复。程序内容:.model small .386 data segmentled_cs equ 200hledcode db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67hbuf dw ?data endscode segment assume cs:code,ds:datastart: cli mov ax,data mov ds,ax mov buf,55aahttt: mov ch,10 lea si,ledcodettl: mov bl,si mov cl,01hlll: call disp cmp cl,40h jnz lll inc si dec ch jnz ttl jmp ttt disp proc push dx push ax mov al,bllp1: mov dx,led_cs out dx,al mov al,cllp2: mov dx,led_cs inc dx out dx,al call delay sal cl,1 pop ax pop dx retdisp endp delay proc push cx push dxdelay1: mov dx,10delay2: mov cx,0ffffhdelay3: loop delay3 dec dx jnz delay2 pop dx pop cx retdelay endpcode ends end start程序框图:电路图:实验内容二实验题目:顺序控制(一)工业中有很多顺序控制,意思是遵循一个规律,一步一步地按照程序指令工作。如:加工生产线、车床、生产中的流水线等,都是按照一定规律连续工作,它们可以分成闭环控制和开环控制。闭环控制是指一个加工过程结束后,能自动进入下一个循环加工的控制:而开环控制是指一个加工过程结束后,该加工过程结束,如包装生产线等。 下面有一个自动磨床是一个典型的闭环控制的实例。它是遵循以下工作顺序,第一步上料(被磨削的工件放到指定位置)、第二步磨刀开始向工件方向运动、第三步开始磨削工件(此时步进电机运动)、第四步修正磨刀、第五步继续磨削工件(此时为精磨削,步进电机还要动)、第六步检测尺寸到达要求后退出磨削状态(磨刀退回原位,步进电机退回原位)、第七步工件下料(放下磨好的工件)。然后再上料,进行上述操作。应注意的是,没一个动作,都有一个电磁阀或几个电磁阀动作后产生的,驱动具体进程,而每个进程是否到位,取决于检测的开关是否被压倒,如果没有被压倒,说明该进程没有结束,开关压倒后,说明该进程结束,发出下一个命令等。顺序控制可以用下表来表示。序号输入状态序号输出状态备注101h111h上料202h224h磨刀靠近工件306h308h磨削工件44100步(前进)步进电机正转508h546h修正磨刀606h08h磨削工件7650步(前进)步进电机正转80ah737h磨刀退回98-150步(后退)步进电机反转100dh988下料 在加工工件过程中,可以中断加工过程,如果加工过程被中断,必须按照原来的加工顺序的反向顺序,一步一步退回原位,直到下料为止,即等待上料状态。实验要求:1. 根据题意,设计一个实验电路。2. 具有状态显示和行程开关检测以及步进电机控制电路,同时有中断加工过程的功能。能自动循环加工工件。3. 利用中断、定时器、并行口等器件设计电路。设计思路:1. 采用拨码开关当作状态输入。2. LED灯当作状态输出。3. 采用手动单脉冲作为中断输入,使用CPU内部8259芯片。4. 用8255同时对输入输出做译码,其中8255A口输入,B口输出。实验连线图:实验流程图:开始 定义数据段代码段堆栈段 单脉冲中断Y Y输入状态=拨码开关NNY下一输出状态一个循环结束实验程序:IO8255_A EQU 200HIO8255_B EQU 201HIO8255KZ EQU 203HIO_ADDRESS EQU 200HDATA SEGMENTSPEED DB 2DATA ENDSSS_SEG SEGMENTSS_SEG ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SS_SEGMAIN PROC FAR START: CLI MOV AX,DATA MOV DS,AX MOV ES,AX ;-设置386的8259中断屏蔽字- IN AL,21H AND AL,11011111B ;MASK BYTE OUT 21H,AL PUSH DS ;-初始化8259- UI: MOV DX,200H ;设置8259的ICW1 MOV AL,13H ;中断请求为边沿触发,单片8259 OUT DX,AL MOV DX,201H ;设置8259的ICW4 MOV AL,01H OUT DX,AL MOV DX,201H ;设置8259的OCW1 MOV AL,00H ;打开所有中断允许 OUT DX, AL MOV AX,0 MOV DS,AX LEA AX,CS:RETURN_PROC ;WRITE INTERRUPT PROGRAM EMTRY ADDRESS MOV BX, 5 ;N=IRX MOV SI,30H ;BASE =30H ADD SI,BX ADD SI,SI ;TYPE NUM ADD SI,SI ;X4 MOV DS:SI,AX PUSH CS POP AX MOV DS:SI+2,AX POP DS STI MOV DX,IO8255KZ MOV AL,90H ;设置8255控制字,A口输入,B口输出 OUT DX,AL MOV AL,88H MOV DX,IO8255_B OUT DX,ALAA: MOV DX,IO8255_A IN AL,DX ;输入开关状态 CMP AL,01H JNZ AA MOV AL,11H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,ALBB:MOV DX,IO8255_A IN AL,DXCMP AL,02HJNZ BBMOV AL,24H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,ALCC: MOV DX,IO8255_A IN AL,DXCMP AL,06HJNZ CCMOV AL,08H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,AL MOV AX,DATA MOV DS,AX MOV DX,IO_ADDRESS ADD DX,03 MOV AL,80H ;输出8255控制字 OUT DX,AL MOV CX,100 A1: MOV DX,IO_ADDRESS ;输出步进代码顺序为 1,3,2,6,4,C,8,9 MOV AL,01H OUT DX,AL CALL DELAY MOV AL,03H OUT DX,AL CALL DELAY MOV AL,02H OUT DX,AL CALL DELAY MOV AL,06H OUT DX,AL CALL DELAY MOV AL,04H OUT DX,AL CALL DELAY MOV AL,0CH OUT DX,AL CALL DELAY MOV AL,08H OUT DX,AL CALL DELAY MOV AL,09H OUT DX,AL CALL DELAY LOOP A1 MOV DX,IO8255KZ MOV AL,90H ;设置8255控制字,A口输入,B口输出 OUT DX,AL MOV AL,08H MOV DX,IO8255_B OUT DX,ALEE: MOV DX,IO8255_A IN AL,DXCMP AL,08HJNZ EEMOV AL,46H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,ALFF: MOV DX,IO8255_A IN AL,DX ;输入开关状态 CMP AL,06H JNZ FF MOV AL,08H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,AL MOV AX,DATA MOV DS,AX MOV DX,IO_ADDRESS ADD DX,03 MOV AL,80H ;输出8255控制字 OUT DX,AL MOV CX,50 B1: MOV DX,IO_ADDRESS ;输出步进代码顺序为 1,3,2,6,4,C,8,9 MOV AL,01H OUT DX,AL CALL DELAY MOV AL,03H OUT DX,AL CALL DELAY MOV AL,02H OUT DX,AL CALL DELAY MOV AL,06H OUT DX,AL CALL DELAY MOV AL,04H OUT DX,AL CALL DELAY MOV AL,0CH OUT DX,AL CALL DELAY MOV AL,08H OUT DX,AL CALL DELAY MOV AL,09H OUT DX,AL CALL DELAY LOOP B1 MOV DX,IO8255KZ MOV AL,90H ;设置8255控制字,A口输入,B口输出 OUT DX,AL MOV AL,08H MOV DX,IO8255_B OUT DX,ALGG: MOV DX,IO8255_A IN AL,DX ;输入开关状态 CMP AL,0AH JNZ GG MOV AL,37H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,AL MOV AX,DATA MOV DS,AX MOV DX,IO_ADDRESS ADD DX,03 MOV AL,80H ;输出8255控制字 OUT DX,AL MOV CX,150 C1: MOV DX,IO_ADDRESS ;输出步进代码顺序为 9,8,C,4,6,2,3,1 MOV AL,09H OUT DX,AL CALL DELAY MOV AL,08H OUT DX,AL CALL DELAY MOV AL,0CH OUT DX,AL CALL DELAY MOV AL,04H OUT DX,AL CALL DELAY MOV AL,06H OUT DX,AL CALL DELAY MOV AL,02H OUT DX,AL CALL DELAY MOV AL,03H OUT DX,AL CALL DELAY MOV AL,01H OUT DX,AL CALL DELAY LOOP C1 MOV DX,IO8255KZ MOV AL,90H ;设置8255控制字,A口输入,B口输出 OUT DX,AL MOV AL,37H MOV DX,IO8255_B OUT DX,ALHH: MOV DX,IO8255_A IN AL,DX ;输入开关状态 CMP AL,0DH JNZ HH MOV AL,88H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,ALSSS: MOV CH,1 CMP CH,40H JE SSS JMP START ;循环MAIN ENDPRETURN_PROC PROC ;中断子程序 PUSH AX PUSH CX PUSH DX KS: MOV DX,IO8255KZ MOV AL,90H ;设置8255控制字,A口输入,B口输出 OUT DX,AL MOV DX,IO8255_A IN AL,DX MOV SI,0 CMP AL,0DH JZ Z7 CMP AL,0AH JZ Z6 CMP AL,06H JZ Z5 CMP AL,08H JZ Z4 CMP AL,02H JZ Z2 CMP AL,01H JZ Z1Z7: MOV DX,IO8255_A IN AL,DX CMP AL,0DHJNZ Z7MOV AX,DATA MOV DS,AX MOV DX,IO_ADDRESS ADD DX,03 MOV AL,80H ;输出8255控制字 OUT DX,AL MOV CX,150 C2: MOV DX,IO_ADDRESS ;输出步进代码顺序为 1,3,2,6,4,C,8,9 MOV AL,01H OUT DX,AL CALL DELAY MOV AL,03H OUT DX,AL CALL DELAY MOV AL,02H OUT DX,AL CALL DELAY MOV AL,06H OUT DX,AL CALL DELAY MOV AL,04H OUT DX,AL CALL DELAY MOV AL,0CH OUT DX,AL CALL DELAY MOV AL,08H OUT DX,AL CALL DELAY MOV AL,09H OUT DX,AL CALL DELAY LOOP C2 MOV DX,IO8255KZ MOV AL,90H ;设置8255控制字,A口输入,B口输出 OUT DX,ALMOV AL,37H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,ALZ6: MOV DX,IO8255_A IN AL,DX CMP AL,0AHJNZ Z6 MOV AX,DATA MOV DS,AX MOV DX,IO_ADDRESS ADD DX,03 MOV AL,80H ;输出8255控制字 OUT DX,AL MOV CX,50 B2: MOV DX,IO_ADDRESS ;输出步进代码顺序为 9,8,C,4,6,2,3,1 MOV AL,09H OUT DX,AL CALL DELAY MOV AL,08H OUT DX,AL CALL DELAY MOV AL,0CH OUT DX,AL CALL DELAY MOV AL,04H OUT DX,AL CALL DELAY MOV AL,06H OUT DX,AL CALL DELAY MOV AL,02H OUT DX,AL CALL DELAY MOV AL,03H OUT DX,AL CALL DELAY MOV AL,01H OUT DX,AL CALL DELAY LOOP B2 MOV DX,IO8255KZ MOV AL,90H ;设置8255控制字,A口输入,B口输出 OUT DX,ALMOV AL,08H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,ALZ5: MOV DX,IO8255_A IN AL,DX CMP AL,06HJNZ Z5MOV AL,46H MOV DX,IO8255_B ;把A口数据送B口寄存器,用LED显示输出 OUT DX,ALZ4: MOV DX,IO8255_A IN AL,DX CMP AL,08HJNZ Z4 MOV AX,DATA MOV DS,AX MOV DX,IO_ADDRESS ADD DX,03 MOV AL,80H ;输出8255控制字 OUT DX,AL MOV CX,100 A2: MOV DX,IO_ADDRESS ;输出步进代码顺序为 9,8,C,4,6,2,3,1 MOV AL,09H OUT DX,AL CALL DELAY MOV AL,08H OUT DX,AL CALL DELAY MOV AL,0CH OUT DX,AL CALL DELAY MOV AL,04H OUT DX,AL CALL DELAY MOV AL,06H OUT DX,AL CALL DELAY MOV AL,02H OUT DX,AL CALL DELAY MOV AL,03H

温馨提示

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

评论

0/150

提交评论