北交大微机原理实验报告Word文档格式.docx
《北交大微机原理实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《北交大微机原理实验报告Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
DATAENDS
STACK1SEGMENTSTACK
DW100HDUP(0)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA
MOVDS,AX
MOVDX,0EC0BH;
写控制字
MOVAL,80H;
PC0~PC7输出
OUTDX,AL
L0:
MOVDX,0EC0AH
MOVAL,24H;
南北绿灯,东西红灯亮
OUTDX,AL
CALLDELAY
CALLDELAY;
长延时,3s左右
MOVBL,8
MOVAL,04H
L1:
XORAL,40H;
南北黄灯闪,东西红灯亮
延时
DECBL;
闪烁4次
JNZL1
CALLDELAY
MOVAL,81H;
南北红灯亮,东西绿灯亮
MOVAL,80H
L2:
XORAL,02H;
南北红灯亮,东西黄灯闪
延时
DECBL
JNZL2;
MOVDL,0FFH
MOVAH,06H
INT21H
JZL0;
六号功能判断若无字符输入ZF=1继续循环
MOVAH,4CH
DELAY:
PUSHCX
PUSHDX
MOVCX,4000H
LOP1:
MOVDX,0FFFFH
LOP2:
DECDX
JNZLOP2
LOOPLOP1
POPDX
POPCX
RET
CODEENDS
ENDSTART
五、实验中遇到的问题及解决方法
1.关于片选地址的问题
由于TPC卡使用PCI总线,而PCI总线结构支持即插即用功能,每台微机分配给PCI扩展板的资源是动态浮动的,不像ISA总线是固定的。
因此分配给设备的I/O基地址、MEM基地址空间及INT中断号会因为不同的微机而变化。
所以实验时需要使用当前微机中动态分配的地址。
方法:
启动“TPC-2003A集成开发环境”软件---硬件检测---报告卡硬件资源。
结果如下图所示:
其中EC00H:
是TPC设备在微机中被动态分配的I/O基地址,相当于原固定I/O基地址0280H。
综上所述,8255动态分配地址:
控制寄存器:
0EC0BH
C口地址:
0EC0AH
2.如何实现按下键盘结束循环的功能
使用调用DOS功能子程序中的6号功能即可完成这项任务。
具体操作是:
当(DL)=0FFH时,执行键盘输入操作,在执行功能子程序时:
有键按下,ZF=0,字符的ASCII码在AL中;
无键按下:
ZF=1。
因此,我们只需在程序后面加一条JZ指令即可控制循环结束。
六、体会与收获
本次实验上手较为简单,只需注意一下TPC卡动态分配端口地址和开发环境的使用即可。
虽然难度不是很大,但对于初次接触理论课中所学习的硬件接口的我们,亲自动手操作无疑让我们加深了对8255的了解,巩固了课上所学习的基础知识。
本次实验同时也巩固了第四章所学习的内容,应用并掌握了了汇编程序的的编译环境,为今后的实验打下了基础。
实验二可编程定时器/计数器(8253)
掌握8253的基本工作原理和编程方法。
1.按下图虚线连接电路,将计数器0设置为工作方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0遍高电平)。
2.按下图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。
三、实验流程图
实验1
CODE
MOVDX,0EC03H;
计数器0,方式0
MOVAL,00010000B
MOVDX,0EC00H
MOVAL,0EH;
送初值E
MOVCL,1
READ:
INCCL;
自加1
CMPCL,0
JZSTART
MOVDX,0EC00H;
读计数器0口
INAL,DX
MOVDL,AL
MOVCL,AL
CMPAL,9
JGBIG
ADDDL,30H;
0到9,显示ASCII数字
MOVAH,02H
MOVDL,0DH
JMPJUDGE
BIG:
ADDDL,37H;
大于9,显示ASCII字母
MOVDL,0DH;
加回车符,只显示一个符号
JUDGE:
MOVDL,0FFH;
有键按下回DOS
JZREAD
实验2
MOVDX,0EC03H;
计数器0置控制字为工作方式3
MOVAL,00110110B
MOVDX,0EC00H
MOVAX,1000;
向计数器0送初值
OUTDX,AL;
先送低字节后送高字节
MOVAL,AH
计数器1置控制字为工作方式3
MOVAL,01110110B
MOVDX,0EC01H;
向计数器1送初值
NEXT:
MOVDL,0FFH;
DOS6号功能调用,按任意键返回
MOVAH,4CH;
返回系统
在屏幕上显示计数器数值时,如果直接从计数器读取此时的计数值,然后调用02H功能输出,则屏幕上显示的不是数字,而是乱码。
原因是,02H功能是在屏幕上输出DL中所存ASCII码所代表的字符,因此,在输出时,应先将DL中的数据变换为其所对应的ASCII码。
通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器/计数器的基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。
实验中,连接电路,利用代码控制实验电路,深对课本理论的理解。
实验三PC机串行通讯实验
1.进一步了解串行通信的基本原理
2.掌握串行接口芯片8250的基本原理和编程方法
3.熟悉PC机串行口的基本连接方法
1.PC机RS-232串口自发自收
按照PC机串口自发自收的连接方法(将RS232C的DB9的电缆插头第2脚和第3脚短接)连线。
编写PC机自发自收串行通信程序,要求:
从键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。
2.2台PC间RS-232串口通信
按照PC机RS-232串口直接互连的方法连接两台PC机。
编写PC机直接互连串行通信程序;
要求:
由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。
当键入感叹号“!
”,结束收发过程。
由乙机键盘键入字符经串口发送给甲机,再由甲机通过串口接收字符并显示在屏幕上。
”时,结束收发过程。
即,全双工模式。
实验提示:
1.连接线
DB-9连接器双机近距离通信连接图
2.8250寄存器地址
PC机自带两个串口,分为COM1和COM2,地址分别在3F8-3FFH和2F8-2FFH,接口芯片选用8250。
8250片内有10个寄存器,其中有几个是共用地址的,其识别由线路控制寄存器(LCR)的最高位DLAB来决定。
各寄存器的地址和格式如下所示:
Y
开始
返回DOS
初始化8250
读线路状态寄存器
出错否
发送数据就绪否
发送数据
接收数据
显示数据
有!
按下吗?
N
显示?
自发自收:
读发送寄存器
是否为空
读键盘
发送
双机通信:
发送程序:
接收数据就绪否
接收
读接收数据
显示接收字符
结束
接收程序:
程序1——自发自收:
START:
MOVAL,80H;
初始化
MOVDX,3FBH
OUTDX,AL
MOVAX,30H
MOVDX,3F8H
OUTDX,AL;
写入除数低字节
MOVAL,AH
MOVDX,3F9H
写入除数高字节
MOVAL,0AH;