微机原理与接口技术实验报告[交大].doc
《微机原理与接口技术实验报告[交大].doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验报告[交大].doc(27页珍藏版)》请在三一办公上搜索。
1、微机实验报告姓名: 章叶满学号:10214021班级:电子1001时间:2012年12月30日实验一 交通灯控制实验一、 实验目的 通过应用接口技术设计十字路口、复杂路口交通灯控制系统,学会应用“微机原理与接口技术”课程所学的X86汇编语言和接口技术掌握可编程并行接口芯片的硬件设计、软件编程,实现十字路口交通灯的模拟控制并思考计算机如何应用在各种控制系统中。(1) 掌握利用X86汇编语言技巧(2) 掌握X86微处理器与可编程并行接口芯片8255A硬件电路设计(3) 熟悉模拟交通灯控制的实现方法并思考如何应用在实际中。二、 实验内容基本功能:设计一个交通控制系统,该控制系统工作后,交通灯按照如下
2、规律变化:(1) 南北路口的绿灯、东西路口的红灯同时亮3秒左右。(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3) 南北路口的红、东西路口的绿灯同时亮3秒。(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。(5) 返回(1)依次循环。如图5-1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。 红 黄 绿 红 黄 绿图5-1 硬件连接示意图三、 参考流程图四、 源程序及注释DATA SEGMENT ;定义数据段 X DB ?DATA ENDSSTAC
3、K1 SEGMENT STACK ;定义堆栈段 DW 100H DUP(0)STACK1 ENDSCODE SEGMENT ;定义段码段ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS, AX MOV DX,0EC0BH MOV AL,10000000B ;工作方式0,C口输出 OUT DX,ALFIRST: MOV DX,0EC0AH MOV AL,00100100B OUT DX,AL ;南北绿灯亮,东西红灯亮,写入C口 MOV CX,0 ;送入初值65536 MOV AX,4000H ;软件长延时DELAY1: DEC
4、AX JNZ DELAY1 LOOP DELAY1 MOV BL,4 ;控制黄灯亮的次数SECOND:MOV DX,0EC0AH MOV AL,01000100B OUT DX,AL ;南北黄灯亮,东西红灯亮,写入C口 MOV CX,3000H MOV AX,0100H LI1: DEC AX JNZ LI1 LOOP LI1 MOV DX,0EC0AH ;软件短延时 MOV AL,00000100B ;南北黄灯灭,东西红灯亮,写入C口 OUT DX,AL MOV CX,3000H MOV AX,0100HWEN1: DEC AX JNZ WEN1 ;软件短延时 LOOP WEN1 DEC B
5、L JNZ SECOND ;黄灯闪烁4次THIRD: MOV DX,0EC0AH MOV AL,10000001B OUT DX,AL ;南北红灯亮,东西绿灯亮 ,写入C口 MOV CX,0 MOV AX,4000HDELAY2: DEC AX ;软件长延时 JNZ DELAY2 LOOP DELAY2 MOV BL,4 ;控制黄灯亮的次数FORTH: MOV DX, ,0EC0AH MOV AL,10000010B OUT DX,AL ;南北红灯亮,东西绿灯亮 ,写入C口 MOV CX,3000H MOV AX,0100HLI2: DEC AX JNZ LI2 ;软件短延时 LOOP LI2
6、 MOV DX, 0EC0AH MOV AL,10000000B OUT DX,AL ;南北红灯亮,东西黄灯灭,写入C口 MOV CX,3000H MOV AX,0100HWEN2: DEC AX JNZ WEN2 LOOP WEN2 DEC BL JNZ FORTH ;黄灯闪烁4次 MOV DL,0FFH MOV AH,06H INT 21H ;执行键盘输入操作 JZ FIRST MOV AH,4CH INT 21H ;返回操作系统CODE ENDSEND START五、 总结本次实验为8255A并行接口实验,这次实验在代码编写阶段一开始找到了入手点。我在程序中使用了软件延时,时长取决与循环
7、次数和计算机的速度,一开始编制的程序中短延时采用了两层循环,由于自己没有实践经验,所以最后通过实验结果确定了最后的数据。 通过此次程序设计,我认识到画软件流程图的重要性,画好流程图后可以很清晰的看清逻辑,不仅加快了编写过程,而且有利于出错时查找问题所在。虽然这次实验我是一步一步编程下来的,但是在调试结果时,仍发现了红灯错亮的问题,最后发现时写程序时的粗心所致。实验二 可编程定时器/计数器一、 实验目的通过实验了解可编程定时器/计数器的本质是计数,学会再设计应用系统中如何用接口芯片实现计数和定时功能,通过实验思考并比较标准TTL集成电路实现计数和可编程定时器/计数器有什么不同,各有哪些特点?思考
8、计数器可以用哪些场合。(1) 掌握8253A与X86微机处理硬件连接原理(2) 掌握8253A计数定时应用编程(3) 熟悉掌握8253A在PC机系统中典型应用方法并思考如何应用在其他系统中。二、 实验内容基本功能(1) 利用单脉冲发生器作为8253A可编程计数定时器时钟信号,实现N个脉冲后产生输出高电平信号(2) 利用8253A可编程计数定时器实现产生1S钟定时输出程序设计,输入1MHZ1 按图5-2虚线连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。图5-
9、2 8253输入连线图2 按图5-3连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1MHZ)。图5-3 8253 输出连线图(3) 实验原理8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。本实验用到的是方式0计数结束中断。在写入计数值N之后的第一个CLK的下降沿将N装
10、入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高电平,并且保持高电平。三、 参考流程图四、 源程及注释 (1)实现N个脉冲后产生输出高电平 DATA SEGMENT N EQU 06H;计数器初值, CHLDB 0AH,0DH,$;回车换行DATA ENDSSTACK1 SEGMENT STACK DW 100 DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA M
11、OV DS,AXMOV DX,0EC03H ;控制寄存器地址MOV AL,00010000B ;计数器0,工作方式0,二进制OUT DX,AL ;写入控制字MOV DX,0EC00H ;计数器0地址MOV AL,NOUT DX,AL ;写入计数初值 MOV CL,NL0: MOV AL,00H ;计数器0锁存MOV DX,0EC03HOUT DX,ALMOV DX,0EC00HIN AL,DX ;读取当前端口的数值CMP AL,CLJNE L0 ;若AL不等于CL,则继续到L0循环DEC CL ;CL减1来更改CL值MOV DL,ALCMP DL,09H ;DL与9比较,小于9跳到L1JLE
12、L1ADD DL,07H ;DL大于9加7变成A-F之间的数LI: ADD DL,30HMOV AH,02H ;单字符输出计数器当前值INT 21H MOV DX,OFFSET CHL ;输出字符换行MOV AH,09HINT 21H MOV DL,0FFH ;执行键盘输入操作 MOV AH,06H INT 21H JZ L0 MOV AH,4CHINT 21HCODE ENDSEND START(2)计数器定时产生一秒的定时输出DATA SEGMENT X DB 100 DUP (?)DATA ENDSSTACK1 SEGMENT STACK DW 100H DUP(0)STACK1 END
13、SCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS, AX MOV DX,0EC03H MOV AL,00110110B ;计数器0,工作方式3,二进制MOV DX,AL ;写入控制口MOV DX,0EC00HMOV AX,1000 ;计数值1000OUT DX,AL ;写入计数器0低字节MOV AL,AHOUT DX,AL ;写入计数器0高字节MOV DX,0EC03H MOV AL,01110110B ;计数器1,工作方式3,二进制MOV DX,AL ;写入控制口MOV DX,0EC01HMOV A
14、X,1000 ;计数值1000OUT DX,AL ;写入计数器1低字节MOV AL,AHOUT DX,AL ;写入计数器1高字节CODE ENDS END START五、 总结通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器/计数器的基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。实验中,连接电路,利用代码控制实验电路,深对课本理论的理解。实验三 可编程中断控制器一、实验目的通过实验了解中断是计算机系统最重要的工作方式之一,理解中断能实现系统协调工作,了解中断在操作系统,工业控制中的应用。通过实验可学会可编程中断控制器8259的结构、中断申请、中断响应、中断处理、中断返
15、回等中断原理,掌握中断系统的编程与应用。(1)掌握PC机8259A可编程中断控制器中断基本原理(2)掌握中断源、中断处理过程、中断向量表的建立、DOS的使用(3)熟悉主程序、中断服务程序编写,了解中断相应过程二、实验内容(1)学习PC机系统中断原理(2)利用手动产单脉冲作为中断请求信号 , 要求每按一次开关产生一次中断在屏幕上显示一次 “TPC pci card Interrupt” 中断10次后程序退出。实验电路图如下在DOS系统下查得中断源地址为000BH,对应的中断源IRQ11,所对应的中断变量类型号为73H。9054的I/O起始地址为0E800H。8259A主片端口地址为20H、21H
16、8259A从片端口地址为A0H、A1H(3)编程提示1. 由于9054的驱动程序影响直写9054芯片的控制寄存器,中断实验需要在纯DOS的环境中才能正常运行。这里指的纯DOS环境是指微机启动时按F8键进入的DOS环境。WINDOWS重启进入MSDOS方式由于系统资源被重新规划过,所以也不能正常实验。 2. 由于TPC卡使用PCI总线,所以分配的中断号每台微机可能都不同,编程时需要了解当前的微机使用那个中断号并进行设置,获取方法请参看汇编程序使用方法的介绍。(也可使用自动获取资源分配的程序取得中断号) 3. 在纯DOS环境下,有些微机的BIOS设置中有将资源保留给ISA总线使用的选项,致使在纯D
17、OS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就 8253 无法做实验,这时需要将此选项修改为使用即插即用。 4. 在纯DOS环境下,有些微机的BIOS设置中有使用即插即用操作系统的选项,如果在使用即插即用操作系统状态下,BIOS将不会给TPC卡分配系统资源,致使在纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就无法做实验,这时需要将此选项修改为不使用即插即用操作系统。 5. 由于TPC卡使用9054芯片连接微机,所以在编程使用微机中断前需要使能9054的中断功能,代码如下: mov dx,ioport_cent+68h ;设
18、置 tpc 卡中9054芯片io口,使能中断 in ax,dx or ax,0900h out dx,ax 其中IOPORT_CENT是9054芯片寄存器组的I/O起始地址,每台微机可能都不同,编程时需要了解当前的微机使用哪段并进行设置,获取方法请参看本书结尾部分的介绍。(也可使用自动获取资源分配的程序取得),+68H的偏移是关于中断使能的寄存器地址,设置含义如下: 程序退出前还要关闭9054的中断,代码如下: mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,关闭中断 in ax,dx and ax,0f7ffh out dx,ax 6. PC机中断控制器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交大 微机 原理 接口 技术 实验 报告
链接地址:https://www.31ppt.com/p-4193021.html