《北交大微机原理实验报告》由会员分享,可在线阅读,更多相关《北交大微机原理实验报告(22页珍藏版)》请在金锄头文库上搜索。
1、北京交通大学微机原理与接口技术实验报告2014/12/21 星期日星期日目录目录实验一 交通灯控制实验 2 一、实验目的 2 二、实验内容 2 三、程序流程图 3 四、程序设计 3 五、实验中遇到的问题及解决方法.5 六、体会与收获 6 实验二 可编程定时器/计数器(8253).7 一、实验目的 7 二、实验内容 7 三、实验流程图 8 四、程序设计 8 五、实验中遇到的问题及解决方法.10 六、体会与收获 10 实验三 PC 机串行通讯实验.11 一、实验目的 11 二、实验内容 11 三、程序流程图 12 四、程序设计 14 五、实验中遇到的问题及解决方法.17 六、体会与收获 17 实验
2、四 竞赛抢答器18 一、实验目的 18 二、实验内容 18 三、程序流程图 19 四、程序设计 19 五、实验中遇到的问题及解决方法.20 六、体会与收获 21实验一实验一 交通灯控制实验交通灯控制实验一、一、 实验目的实验目的掌握 8255 方式 0 的工作原理及对并口的使用。二、二、 实验内容实验内容通过并行接口 8255 实现十字路口交通灯的模拟控制。如图 L7、L6、L5 作为南北路口的交通灯与 PC7、PC6、PC5 相连,L2、L1、L0 作为东西路口的交通灯与PC2、PC1、PC0 相连。编程使六个灯按交通灯变化规律亮灭。十字路口交通灯的变化规律要求:(1) 南北路口的绿灯、东西
3、路口的红灯同时亮 3 秒左右。(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3) 南北路口的红灯、东西路口的绿灯同时亮 3 秒左右。(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。(5) 转(1)重复。三、三、 程序流程图程序流程图四、四、 程序设计程序设计DATA SEGMENTX DB ? DATA ENDSSTACK1 SEGMENT STACKDW 100H DUP(0) STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AXMOV DX,0E
4、C0BH;写控制字 MOV AL,80H;PC0PC7 输出 OUT DX,AL L0:MOV DX,0EC0AH MOV AL,24H;南北绿灯,东西红灯亮 OUT DX,ALCALL DELAYCALL DELAY;长延时,3s 左右CALL DELAYCALL DELAY CALL DELAY CALL DELAY CALL DELAYMOV BL,8MOV AL,04H L1:XOR AL,40H;南北黄灯闪,东西红灯亮 OUT DX,AL CALL DELAY;延时 CALL DELAY DEC BL ;闪烁 4 次 JNZ L1CALL DELAYMOV AL,81H;南北红灯亮,
5、东西绿灯亮 OUT DX,ALCALL DELAY CALL DELAY CALL DELAY;长延时,3s 左右CALL DELAY CALL DELAY CALL DELAY CALL DELAYMOV BL,8MOV AL,80H L2:XOR AL,02H;南北红灯亮,东西黄灯闪 OUT DX,AL CALL DELAY;延时 CALL DELAY DEC BL JNZ L2 ;闪烁 4 次CALL DELAYMOV DL,0FFH MOV AH,06H INT 21H JZ L0;六号功能判断若无字符输入 ZF=1 继续循环MOV AH,4CH INT 21HDELAY : PUSH
6、 CXPUSH DXMOV CX,4000HLOP1: MOV DX,0FFFFHLOP2: DEC DXJNZ LOP2LOOP LOP1POP DX POP CXRETCODE ENDSEND START五、五、 实验中遇到的问题及解决方法实验中遇到的问题及解决方法1.关于片选地址的问题由于 TPC 卡使用 PCI 总线,而 PCI 总线结构支持即插即用功能,每台微机分配给 PCI扩展板的资源是动态浮动的,不像 ISA 总线是固定的。因此分配给设备的 I/O 基地址、MEM 基地址空间及 INT 中断号会因为不同的微机而变化。所以实验时需要使用当前微机中动态分配的地址。方法:启动“TPC-
7、2003A 集成开发环境”软件 -硬件检测 -报告卡硬件资源 。结果如下图所示:其中 EC00H:是 TPC 设备在微机中被动态分配的 I/O 基地址,相当于原固定 I/O 基地址 0280H。综上所述,8255 动态分配地址: 控制寄存器:0EC0BHC 口地址: 0EC0AH 2.如何实现按下键盘结束循环的功能使用调用 DOS 功能子程序中的 6 号功能即可完成这项任务。具体操作是:当(DL)=0FFH 时,执行键盘输入操作,在执行功能子程序时:有键按下,ZF=0 ,字符的 ASCII码在 AL 中;无键按下:ZF=1。因此,我们只需在程序后面加一条 JZ 指令即可控制循环结束。六、六、
8、体会与收获体会与收获本次实验上手较为简单,只需注意一下 TPC 卡动态分配端口地址和开发环境的使用即可。虽然难度不是很大,但对于初次接触理论课中所学习的硬件接口的我们,亲自动手操作无疑让我们加深了对 8255 的了解,巩固了课上所学习的基础知识。本次实验同时也巩固了第四章所学习的内容,应用并掌握了了汇编程序的的编译环境,为今后的实验打下了基础。实验二实验二 可编程定时器可编程定时器/计数器计数器(8253)一、一、 实验目的实验目的掌握 8253 的基本工作原理和编程方法。二、二、 实验内容实验内容1.按下图虚线连接电路,将计数器 0 设置为工作方式 0,计数器初值为N(N0FH) ,用手动逐
9、个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察 OUT0 电平变化(当输入 N+1 个脉冲后 OUT0 遍高电平) 。2.按下图连接电路,将计数器 0、计数器 1 分别设置为方式 3,计数初值设为1000,用逻辑笔观察 OUT1 输出电平的变化(频率 1Hz)。三、三、 实验流程图实验流程图四、四、 程序设计程序设计实验实验 1 CODE SEGMENT ASSUME CS:CODE START: MOV DX,0EC03H ;计数器 0,方式 0MOV AL,00010000BOUT DX,ALMOV DX,0EC00H MOV AL,0EH ;送初值 EOUT DX,ALMOV
10、 CL,1 READ: INC CL ;自加 1CMP CL,0JZ STARTMOV DX,0EC00H ;读计数器 0 口IN AL,DXMOV DL,ALMOV CL,ALCMP AL,9JG BIGADD DL,30H ;0 到 9,显示 ASCII 数字MOV AH,02HINT 21HMOV DL,0DHINT 21HJMP JUDGE BIG: ADD DL,37H ;大于 9,显示 ASCII 字母MOV AH,02HINT 21HMOV DL,0DH ;加回车符,只显示一个符号INT 21HJMP JUDGE JUDGE: MOV DL,0FFH ;有键按下回 DOSMOV
11、AH,06HINT 21HJZ READMOV AH,4CHINT 21H CODE ENDS END START实验实验 2 CODE SEGMENT ASSUME CS:CODE START: MOV DX,0EC03H;计数器 0 置控制字为工作方式 3MOV AL,00110110BOUT DX,ALMOV DX,0EC00HMOV AX,1000;向计数器 0 送初值OUT DX,AL;先送低字节后送高字节MOV AL,AHOUT DX,ALMOV DX,0EC03H;计数器 1 置控制字为工作方式 3MOV AL,01110110BOUT DX,ALMOV DX,0EC01H;向计
12、数器 1 送初值MOV AX,1000;先送低字节后送高字节OUT DX,ALMOV AL,AHOUT DX,AL NEXT: MOV DL,0FFH;DOS 6 号功能调用,按任意键返回MOV AH,06HINT 21HMOV AH,4CH;返回系统INT 21H CODE ENDSEND START五、五、 实验中遇到的问题及解决方法实验中遇到的问题及解决方法在屏幕上显示计数器数值时,如果直接从计数器读取此时的计数值,然后调用 02H 功能输出,则屏幕上显示的不是数字,而是乱码。原因是,02H 功能是在屏幕上输出 DL 中所存 ASCII 码所代表的字符,因此,在输出时,应先将 DL 中的
13、数据变换为其所对应的ASCII 码。六、六、 体会与收获体会与收获通过实验,学会 8253 芯片和微机接口原理和方法,掌握 8253 定时器/计数器的基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。实验中,连接电路,利用代码控制实验电路,深对课本理论的理解。实验三实验三 PC 机串行通讯实验机串行通讯实验一、一、 实验目的实验目的1.进一步了解串行通信的基本原理2.掌握串行接口芯片 8250 的基本原理和编程方法3.熟悉 PC 机串行口的基本连接方法二、二、 实验内容实验内容1.PC 机 RS-232 串口自发自收按照 PC 机串口自发自收的连接方法(将 RS232C 的 DB9 的电缆
14、插头第 2 脚和第 3 脚短接)连线。编写 PC 机自发自收串行通信程序,要求:从键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。2.2 台 PC 间 RS-232 串口通信按照 PC 机 RS-232 串口直接互连的方法连接两台 PC 机。编写 PC 机直接互连串行通信程序;要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!” ,结束收发过程。由乙机键盘键入字符经串口发送给甲机,再由甲机通过串口接收字符并显示在屏幕上。当键入感叹号“!”时,结束收发过程。即,全双工模式。实验提示:1.连接线DB-9
15、DB-9 连接器连接器 双机近距离通信连接图双机近距离通信连接图 2.8250 寄存器地址PC 机自带两个串口,分为 COM1 和 COM2,地址分别在 3F8-3FFH 和 2F8-2FFH,接口芯片选用 8250。8250 片内有 10 个寄存器,其中有几个是共用地址的,其识别由线路控制寄存器(LCR)的最高位 DLAB 来决定。各寄存器的地址和格式如下所示:Y开始返回 DOS初始化 8250读线路状态寄存器出错否发送数据就绪否发送数据接收数据显示数据有!按下吗?N显示?YN三、三、 程序流程图程序流程图自发自收:YY开始返回 DOS初始化 8250读线路状态寄存器出错否读发送寄存器是否为空读键盘发送有!按下吗?N显示?NY开始返回 DOS初始化 8250读线路状态寄存器出错否接收数据就绪否接收读接收数据显示接收字符结束显示?N双机通信:发送程序:接收程序:四、四、 程序设计程序设计程序程序 1自发自收:自发自收: CODE SEGMENTASSUME CS:CODE START :MOV AL,80H ;初始化MOV DX,3FBHOUT DX,ALMOV AX,30HMOV DX,3F8HOUT DX,AL ;写入除数低字节MOV AL,AH MOV DX,3F9HOUT DX