《微机原理与接口》课程上机操作实验报告Word格式.docx
《《微机原理与接口》课程上机操作实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《《微机原理与接口》课程上机操作实验报告Word格式.docx(25页珍藏版)》请在冰点文库上搜索。
![《微机原理与接口》课程上机操作实验报告Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/f8b9425c-3a53-4da2-854a-f92a7d6def5f/f8b9425c-3a53-4da2-854a-f92a7d6def5f1.gif)
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA
MOVDS,AX
;
---------------INIT----------------
MOVDX,0EC0BH;
写控制字
MOVAL,80H
OUTDX,AL
L3:
MOVDX,0EC0AH
MOVAL,24H;
南北绿灯,东西红灯亮
OUTDX,AL
CALLDELAY
CALLDELAY;
长延时,3s左右
MOVBL,8
MOVAL,04H
L0:
XORAL,40H;
南北黄灯闪,东西红灯亮
延时
DECBL;
闪烁几次
JNZL0
CALLDELAY
MOVAL,81H;
南北红灯亮,东西绿灯亮
CALLDELAY;
MOVBL,9
MOVAL,80H
L1:
XORAL,02H;
南北红灯亮,东西黄灯闪
延时
DECBL
JNZL1;
MOVDL,0FFH
MOVAH,06H
INT21H
JZL3;
六号功能判断若无字符输入ZF=1继续循环
------------------------------
MOVAH,4CH
-----------延时函数------------
DELAY:
PUSHCX
PUSHDX
MOVCX,1FFFH
LOP1:
MOVDX,0FFFFH
LOP2:
DECDX
JNZLOP2
LOOPLOP1
POPDX
POPCX
RET
CODEENDS
ENDSTART
可编程定时时钟/计数器(8253)
一、实验目的
掌握8253的基本工作原理和编程方法。
按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
实验原理
8253具有3个独立的计数通道,采用减1计数方式。
在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。
当计数脉冲是已知周期的时钟信号时,计数就成为定时。
作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。
8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。
本实验用到的是方式0—计数结束中断。
在写入计数值N之后的第一个CLK的下降沿将N装入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。
在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高电平,并且保持高电平。
8253动态分配地址:
0EC03H
计数器0地址:
0EC00H
计数器1地址:
0EC01H
NEQU0BH;
计数器初值,不大于0FH
CHLDB0AH,0DH,'
$'
;
换行
DW100DUP(0)
MOVDS,AX
--------------INIT----------------
MOVDX,0EC03H;
控制寄存器地址
MOVAL,10H;
计数器0,低字节,方式0,二进制计数
OUTDX,AL;
写入控制字
MOVDX,0EC00H
MOVAL,N
OUTDX,AL;
写入计数初值
MOVCL,N
MOVAL,0;
计数器0锁存
MOVDX,IO8253
OUTDX,AL
MOVDX,0EC00H
INAL,DX;
读取当前数值
CMPAL,CL
JNEL0;
若AL不等于CL,则继续到L0循环
DECCL;
更改CL值
MOVDL,AL
CMPDL,09H;
是0~9吗?
JLEASCI
ADDDL,07H;
是A~F
ASCI:
ADDDL,30H
MOVAH,02H;
单字符输出计数器当前值
MOVDX,OFFSETCHL;
输出字符串换行
MOVAH,09H
CMPCL,0
JNLL0;
CL不小于0时,继续循环
2)
STACK1SEGMENTSTACK
ASSUMECS:
STACK1
MOVDS,AX
MOVAL,36H
MOVDX,0EC03H;
写计数器0控制字
MOVAX,1000;
写计数器0初值
MOVDX,0EC00H
OUTDX,AL;
先写低字节后写高字节
MOVAL,AH
OUTDX,AL
-------------------------------------
MOVAL,76H
MOVDX,0C403H
写计数器1控制字
MOVDX,0C401H
MOVAL,AH;
CODEENDS
ENDSTART
串行通讯
二、实验目的
1、进一步了解串行通信的基本原理。
2、掌握串行接口芯片8250的工作原理和编程方法。
3、熟悉PC机串行口的基本连接方法
1、PC机RS-232串口自发自收。
按照PC机串口自发自收的连接方法连线。
编写PC机自发自收串行通信程序,要求:
从键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。
2、两台PC机间RS-232串口通信。
按照PC机RS-232串口直接互连的方法连接两台PC机。
编写PC机直接互连串行通信程序;
要求:
由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。
当键入感叹号“!
”,结束收发过程。
1、异步通信
本实验以字符为单位进行传送,每传送一个字符,以起始位作为开始标志,以停止位作为结束标志。
异步串行通信的工作过程是:
传送开始后,接收设备不断地检测传输线是否有起始位到来,当接收到一系列的“1”(空闲或停止位)之后,检测到第一个“0”,说明起始位出现,就开始接收所规定的数据位、奇偶校验位及停止位。
经过接收器处理,将停止位去掉,把数据位拼装成一字节数据,并且经奇偶校验无错误,才算是正确地接收到了一个字符。
当一个字符接收完毕,接收设备又继续测试传输线,监视“0”电平的到来(下一个字符的开始),直到全部数据接收完毕。
2、8250各部分功能说明
8250片内有10个寄存器,其中有几个是共用地址的,其识别由线路控制寄存器(LCR)的最高位DLAB来决定。
各寄存器的地址如下:
3、数据发送和接收:
1.自发自收
CODESEGMENT
CODE
MOVAL,10000000B;
8250初始化,设DLAB=1
MOVDX,3FBH
MOVAX,30H;
写入除数低字节
MOVDX,3F8H
MOVAL,AH;
写入除数高字节
MOVDX,3F9H
MOVAL,00001010B;
7位数据,1位停止,奇校验
MOVDX,3FBH
写入线路控制寄存器
MOVAL,00010000B;
自检控制
MOVDX,3FCH
写入Modem控制寄存器
MOVAL,0
写中断允许寄存器,屏蔽中断
WAIT_FOR:
MOVDX,3FDH;
读线路状态寄存器
INAL,DX
TESTAL,00011110B;
出错否
JNZERROR;
出错,转ERROR
TESTAL,00000001B;
接收数据就绪否
JNZRECEIVE;
就绪,转接受
TESTAL,00100000B;
发送寄存器空否,不空,返回等待
JZWAIT_FOR
MOVAH,1
INT21H;
读键盘
MOVDX,3F8H;
发送
JMPWAIT_FOR;
返回等待
RECEIVE:
PUSHAX
MOVCX,02000H
T1:
MOVAX,0FFFFH
T2:
DECAX
JNZT2
LOOPT1;
延时程序
读接收数据
ANDAL,01111111B;
保留7位数据
CMPAL,03H;
是Ctrl+C?
JNZCHAR
MOVAH,4CH;
返回DOS
CHAR:
MOVDL,AL
MOVAH,2H;
显示接收字符
POPAX
ERROR:
出错则清除线路状态寄存器
MOVDL,'
?
'
;
显示'
MOVAH,02H
JMPWAIT_FOR
ENDSTART
2.双机通信
(1)发送端:
CODESEGMENT
MOVAL,80H;
8250初始化,设DLAB=1
MOVAX,30H
INCDX
写入除数高字节
MOVAL,0AH;
7位数据,1位停止,奇校验
写入线路控制寄存器
MOVAL,03H
写入Modem控制寄存器
写中断允许寄存器,屏蔽所有中断
WAIT1:
MOVDX,3FDH;
INAL,DX
TESTAL,1EH;
JNZERROR
TESTAL,01H;
JNZSEND;
发送
TESTAL,20H;
发送寄存器空否,不空,返回等待
JZWAIT1
SEND:
INT21H;
CMPAL,21H;
是'
!
JZEXIT;
是,返回操作系统
MOVDX,3F8H;
不是,则发送
JMPWAIT1;
返回等待
JMPWAIT1
EXIT:
MOVAH,4CH
INT21H
(2)接收端:
CODE
8250初始化
MOVAX,30H;
写除数
MOVAL,0AH
写中断允许寄存器,屏蔽所有中断
TESTAL,01H;
JNZRECEIVE;
转接收
TESTAL,20H;
JZWAIT1
均返回等待
MOVDX,3F8H;
保留位数据
JNZCHAR
MOVAH,4CH;
返回操作系统
MOVDL,AL
MOVAH,2;
显示接受字符
JMPWAIT1
课程综合实验(抢答器)
三、实验目的
1、了解微机化竞赛抢答器的基本原理。
2、进一步学习使用并行接口。
图5-4为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当某组抢答按钮按下。
在七段数码管上将其组号(0~7)显示出来,并使喇叭响一下。
从键盘上按空格键开始下一轮抢答,按其它键程序退出。
LISTDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
--------------------------------------------------
MOVDX,0EC0BH
MOVAL,89H
对8255进行初始化
INAL,DX;
读C口状态
CMPAL,0;
如果为0则循环
JZL0
MOVBL,0
INCBL
SHRAL,1;
将AL逻辑右移
JNCL1
DECBL
MOVAL,BL;
求出组号
MOVBX,OFFSETLIST;
七段显示代码表的首址送BX
ANDAX,00FFH;
屏蔽AX高字节,组号
ADDBX,AX;
形成显示字符的地址
MOVAL,[BX];
取出字符送AL
MOVDX,0EC08H
送到A口输出显示
MOVDL,7
MOVAH,2
响铃功能调用
MOVAH,01H
CMPAL,20H;
当为空格时跳到CLOSE
JZCLOSE
CLOSE:
JMPL0
实验总结
做完了微机的实验之后感触很多,实践是检验自己知识掌握程度的最好工具。
做实验之前感觉自己这方面的知识点掌握的还是很牢固的,做了试验之后才发现了自己的不足。
另外微机实验让我有种学以致用的感觉,通过动手操作也提高了我对微机这门课程的兴趣。
最后给实验室一些建议:
1:
希望能把实验室的电脑整体杀一下毒,我身边有好多同学把程序拷贝到自己电脑时出现了电脑死机,系统崩溃的问题,给学习生活带来了很大的不便。
2:
实验室里有很多试验箱是有问题的,会影响实验的完成,希望学校能够及时更换。