北京交通大学微机原理实验报告(yuan)(共35页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《北京交通大学微机原理实验报告(yuan)(共35页).doc》由会员分享,可在线阅读,更多相关《北京交通大学微机原理实验报告(yuan)(共35页).doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上微机原理实验报告隋伟自动化0801目 录一、I/O地址译码与交通灯控制实验3二、可编程定时器/计数器(8253)6三、中断实验(纯DOS)11四、模/数转换器18 五、串行通讯 16六、课程综合实验(抢答器) 28七、自主设计实验LED显示32 八、参考文献35一、I/O地址译码与交通灯控制实验一.实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。二.实验内容如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。
2、十字路口交通灯的变化规律要求:(1) 南北路口的绿灯、东西路口的红灯同时亮3秒左右。(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3) 南北路口的红灯、东西路口的绿灯同时亮3秒左右。(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。(5) 转(1)重复。8255动态分配地址: 控制寄存器: 0C40BHA口地址: 0C408HC口地址: 0C40AH 三程序流程图和程序清单DATA SEGMENT X DB ?DATA ENDSSTACK1 SEGMENT STACK DW 100H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:C
3、ODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AX;-INIT-MOV DX,0EC0BH;写控制字MOV AL,80HOUT DX,AL L3:MOV DX,0EC0AHMOV AL,24H;南北绿灯,东西红灯亮OUT DX,ALCALL DELAYCALL DELAY;长延时,3s左右 CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY MOV BL,8 MOV AL,04HL0:XOR AL,40H;南北黄灯闪,东西红灯亮OUT DX,ALCALL DELAY;延时 CALL DELAY
4、DEC BL ;闪烁几次JNZ L0CALL DELAYMOV AL,81H;南北红灯亮,东西绿灯亮OUT DX,AL CALL DELAYCALL DELAYCALL DELAY;长延时,3s左右 CALL DELAY CALL DELAY CALL DELAY CALL DELAYMOV BL,9 MOV AL,80HL1:XOR AL,02H;南北红灯亮,东西黄灯闪OUT DX,ALCALL DELAY;延时 CALL DELAYDEC BLJNZ L1 ;闪烁几次 CALL DELAYMOV DL,0FFHMOV AH,06HINT 21HJZ L3;六号功能判断若无字符输入ZF=1继
5、续循环;-MOV AH,4CHINT 21H;-延时函数- DELAY : PUSH CX PUSH DX MOV CX,1FFFH LOP1: MOV DX,0FFFFH LOP2: DEC DXJNZ LOP2LOOP LOP1POP DXPOP CXRETCODE ENDS END START四实验遇到的问题和解决方法问题:绿灯灭后黄灯没有出现闪烁的效果,一直保持常亮解决方法:修改程序,通过利用异或和循环指令使绿灯灭、红灯亮后,黄灯口的状态从0到1循环变换,并通过调用延迟子程序,从而实现人眼可辨的黄灯闪的效果。二、可编程定时时钟/计数器(8253)一、实验目的掌握8253的基本工作原理和
6、编程方法。二、实验内容1 按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。图 5-1 2 按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。 图5-2 三实验原理8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。作计数器时, 要求计数的次数可直接作为计数器的初
7、值预置到减“1”计数器中。8253中各通道可有6种可供选择的工作方式, 以完成定时、计数或脉冲发生器等多种功能。本实验用到的是方式0计数结束中断。在写入计数值N之后的第一个CLK的下降沿将N装入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高电平,并且保持高电平。8253动态分配地址: 控制寄存器: 0C403H计数器0地址: 0C400H计数器1地址: 0C401H 四程序流程图和程序清单1)DATA SEGMENT N EQU 0BH;计数器初值,不大于0FH CHLDB
8、 0AH,0DH,$;换行DATA ENDSSTACK1 SEGMENT STACK DW 100 DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATA MOV DS,AX;-INIT-MOV DX,0C403H;控制寄存器地址MOV AL,10H;计数器0,低字节,方式0,二进制计数OUT DX,AL ;写入控制字MOV DX,0C400HMOV AL,NOUT DX,AL ;写入计数初值MOV CL,NL0: ;MOV AL,0;计数器0锁存;MOV DX,IO8253;OUT DX,
9、ALMOV DX,0C400HIN AL,DX;读取当前数值CMP AL,CLJNE L0;若AL不等于CL,则继续到L0循环DEC CL;更改CL值MOV DL,ALCMP DL,09H ;是09吗?JLE ASCI ADD DL,07H ;是AFASCI: ADD DL,30HMOV AH,02H ;单字符输出计数器当前值INT 21HMOV DX,OFFSET CHL;输出字符串换行MOV AH,09HINT 21HCMP CL,0 JNL L0;CL不小于0时,继续循环;-MOV AH,4CHINT 21HCODE ENDSEND START2)DATA SEGMENT X DB ?D
10、ATA ENDSSTACK1 SEGMENT STACK DW 100H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATAMOV DS,AX MOV AL,36H MOV DX,0C403H ;写计数器0控制字 OUT DX,AL MOV AX,1000 ;写计数器0初值 MOV DX,0C400H OUT DX,AL ;先写低字节后写高字节 MOV AL,AH OUT DX,AL ;- MOV AL,76H MOV DX,0C403H OUT DX,AL ;写计数器1控制字 MOV
11、 AX,1000 ;写计数器0初值 MOV DX,0C401H OUT DX,AL MOV AL,AH ;先写低字节后写高字节 OUT DX,AL CODE ENDSEND START五实验遇到的问题和解决方案问题:计数初值没有显示出来解决方法:进行TD调试,发现逻辑上出现了问题。修改程序,通过利用CMP AL,CL JNZ L0来实现将所有的计数值都显示出来。三、中断实验(纯DOS)一、实验目的 、掌握PC机中断处理系统的基本原理。 、学会编写中断服务程序。 二、实验原理与内容 1、实验原理 PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求
12、信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源: 中断源 中断类型号 中断功能 IRQ0 08H 时钟 IRQ1 09H 键盘 IRQ2 0AH 保留 IRQ3 OBH 串行口2 IRQ4 0CH 串行口1 IRQ5 0DH 硬盘 IRQ6 0EH 软盘 IRQ7 0FH 并行打印机 8个中断源的中断请求信号线IRQ0IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对
13、外可以提供16个中断源: 中断源 中断类型号 中断功能 52 IRQ8 070H 实时时钟 IRQ9 071H 用户中断 IRQ10 072H 保留 IRQ11 O73H 保留 IRQ12 074H 保留 IRQ13 075H 协处理器 IRQ14 076H 硬盘 IRQ15 077H 保留 PCI总线中的中断线只有四根,INTA#、INTB#、INTC#、INTD#,它们需要通过P&P的设置来和某一根中断相连接才能进行中断申请。2、实验内容 实验电路如图31,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。要求每按一次开关产生一次中断,在屏幕上显示一次“TPC pci card In
14、terrupt”,中断10次后程序退出。 三、编程提示 1. 由于9054的驱动程序影响直写9054芯片的控制寄存器,中断实验需要在纯DOS的环境中才能正常运行。这里指的纯DOS环境是指微机启动时按F8键进入的DOS环境。WINDOWS重启进入MSDOS方式由于系统资源被重新规划过,所以也不能正常实验。 2. 由于TPC卡使用PCI总线,所以分配的中断号每台微机可能都不同,编程时需要了解当前的微机使用那个中断号并进行设置,获取方法请参看汇编程序使用方法的介绍。(也可使用自动获取资源分配的程序取得中断号) 3. 在纯DOS环境下,有些微机的BIOS设置中有将资源保留给ISA总线使用的选项,致使在
15、纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就 53 无法做实验,这时需要将此选项修改为使用即插即用。 4. 在纯DOS环境下,有些微机的BIOS设置中有使用即插即用操作系统的选项,如果在使用即插即用操作系统状态下,BIOS将不会给TPC卡分配系统资源,致使在纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就无法做实验,这时需要将此选项修改为不使用即插即用操作系统。 5. 由于TPC卡使用9054芯片连接微机,所以在编程使用微机中断前需要使能9054的中断功能,代码如下: mov dx,ioport_cent+68h ;设
16、置 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机中断控制器
17、8259 的地址为20H、21H,编程时要根据中断类型号设置中断矢量,8259中断屏蔽寄存器IMR对应位要清零(允许中断),中断服务结束返回前要使用中断结束命令: MOV AL,20H OUT 20H,AL 中断结束返回DOS时应将IMR对应位置1,以关闭中断 。 四、参考流程图 五、参考程序 程序名:INT.ASM;386以上微机适用 ;纯dos下才能使用 ;tasm4.1或以上编译 data segment int_vect EQU 071H ;中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77h 55 irq_mask_2_7 equ b ;中断掩码,中断0-7时从低
18、至高相应位为零,中断8-15时第2位为零 irq_mask_9_15 equ b ;中断0-7时全一,中断8-15时从低至高相应位为零 ioport_cent equ 0d800h ;tpc 卡中9054芯片的io地址 csreg dw ? ipreg dw ? ;旧中断向量保存空间 irq_times dw 00h ;中断计数 msg1 db 0dh,0ah,TPC pci card Interrupt,0dh,0ah,$ msg2 db 0dh,0ah,Press any key to exit!,0dh,0ah,$ msg3 db 0dh,0ah,Press DMC to interru
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京 交通大学 微机 原理 实验 报告 yuan 35
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内