微机接口实验.docx
《微机接口实验.docx》由会员分享,可在线阅读,更多相关《微机接口实验.docx(20页珍藏版)》请在冰点文库上搜索。
微机接口实验
实验3-01可编程定时器/计数器(8253)
一、实验目的
掌握8253的基本工作原理和编程方法。
二、实验内容
1、按图3-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
三、编程提示
1、8253控制寄存器地址283H
计数器0地址280H
计数器1地址281H
CLK0连接时钟1MHZ
;*8253方式0计数器实验*;
IO8253AEQU283H
IO8253BEQU280H
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAL,14H;设置8253通道0为工作方式2,二进制计数
MOVDX,IO8253A
OUTDX,AL
MOVDX,IO8253B;送计数初值为0FH
MOVAL,0FH
OUTDX,AL
LLL:
INAL,DX;读计数初值
CALLDISP;调显示子程序
PUSHDX
MOVAH,06H
MOVDL,0FFH
INT21H
POPDX
JZLLL
MOVAH,4CH;退出
INT21H
DISPPROCNEAR;显示子程序
PUSHDX
ANDAL,0FH;首先取低四位
MOVDL,AL
CMPDL,9;判断是否<=9
JLENUM;若是则为'0'-'9',ASCII码加30H
ADDDL,7;否则为'A'-'F',ASCII码加37H
NUM:
ADDDL,30H
MOVAH,02H;显示
INT21H
MOVDL,0DH;加回车符
INT21H
MOVDL,0AH;加换行符
INT21H
POPDX
RET;子程序返回
DISPENDP
CODEENDS
ENDSTART
实验三可编程定时器/计数器(8253)
一、实验目的
掌握8253的基本工作原理和编程方法。
二、实验内容
1、按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
三、编程提示
1、8253控制寄存器地址283H
计数器0地址280H
计数器1地址281H
CLK0连接时钟1MHZ
;*******************
;*8253分频*
;*******************
IO8253AEQU280H
IO8253BEQU281H
IO8253CEQU283H
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,IO8253C;向8253写控制字
MOVAL,36H;使0通道为工作方式3
OUTDX,AL
MOVAX,1000;写入循环计数初值1000
MOVDX,IO8253A
OUTDX,AL;先写入低字节
MOVAL,AH
OUTDX,AL;后写入高字节
MOVDX,IO8253C
MOVAL,76H;设8253通道1工作方式2
OUTDX,AL
MOVAX,1000;写入循环计数初值1000
MOVDX,IO8253B
OUTDX,AL;先写低字节
MOVAL,AH
OUTDX,AL;后写高字节
MOVAH,4CH;程序退出
INT21H
CODEENDS
ENDSTART
实验四可编程并行接口
(一)(8255方式0)
一、实验目的
掌握8255方式0的工作原理及使用方法。
二、实验内容
1、实验电路如图4-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2、编程从8255C口输入数据,再从A口输出。
三、编程提示
1、8255控制寄存器端口地址28BH
A口的地址288H
C口的地址28AH
;*******************************;
;*8255方式0的C口输入,A口输出*;
;*******************************;
IO8255AEQU288H
IO8255BEQU28BH
IO8255CEQU28AH
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,IO8255B;设8255为C口输入,A口输出
MOVAL,8BH
OUTDX,AL
INOUT:
MOVDX,IO8255C;从C口输入一数据
INAL,DX
MOVDX,IO8255A;从A口输出刚才自C口
OUTDX,AL;所输入的数据
MOVDL,0FFH;判断是否有按键
MOVAH,06H
INT21H
JZINOUT;若无,则继续自C口输入,A口输出
MOVAH,4CH;否则返回
INT21H
CODEENDS
ENDSTART
实验七竞赛抢答器
一、实验目的
1、了解微机化竞赛抢答器的基本原理。
2、进一步学习使用并行接口。
二、实验内容
图7-1为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当某组抢答按钮按下。
在七段数码管上将其组号(0~7)显示出来,并使微机扬声器响一下。
三、编程提示
设置8255为C口输入、A口输出,读取C口数据,若为0表示无人抢答,若不为0则有人抢答。
根据读取数据可判断其组号。
从键盘上按空格键开始下一轮抢答,按其它键程序
DATASEGMENT
IO8255AEQU28AH
IO8255BEQU28BH
IO8255CEQU288H
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;数码表
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,IO8255B;设8255为A口输出,C口输入
MOVAX,89H
OUTDX,AL
MOVBX,OFFSETLED;使BX指向段码管首址
SSS:
MOVDX,IO8255A
INAL,DX;从8255的C口输入数据
ORAL,AL;比较是否为0
JESSS;若为0,则表明无键按下,转SSS
MOVCL,0FFH;CL作计数器,初值为-1
RR:
SHRAL,1
INCCL
JNCRR
MOVAL,CL
XLAT
MOVDX,IO8255C
OUTDX,AL
MOVDL,7;响铃ASCII码为07
MOVAH,2
INT21H
WAI:
MOVAH,1
INT21H
CMPAL,20H;是否为空格
JNEEEE;不是,转EEE
MOVAL,0;是,关灭灯
MOVDX,IO8255C
OUTDX,AL
JMPSSS
EEE:
MOVAH,4CH;返回
INT21H
CODEENDS
ENDSTART
实验九中断
一、实验目的
1、掌握PC机中断处理系统的基本原理。
2、学会编写中断服务程序。
二、实验原理与内容
1、实验原理
PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。
IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:
中断源中断类型号中断功能
IRQ008H时钟
IRQ109H键盘
IRQ20AH保留
IRQ3OBH串行口2
IRQ40CH串行口1
IRQ50DH硬盘
IRQ60EH软盘
IRQ70FH并行打印机
8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。
对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源:
中断源中断类型号中断功能
IRQ8070H实时时钟
IRQ9071H用户中断
IRQ10072H保留
IRQ11O73H保留
IRQ12074H保留
IRQ13075H协处理器
IRQ14076H硬盘
IRQ15077H保留
TPC-USB实验板上,固定的接到了3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。
2、实验内容
实验电路如图9-1,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。
要求每按一次开关产生一次中断,在屏幕上显示一次“TPCAINTERRUPT!
”,中断10次后程序退出。
;*******************************;
;*中断实验*;
;*******************************;
DATASEGMENT
MESSDB'TPCAINTERRUPT!
',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,CS
MOVDS,AX
MOVDX,OFFSETINT3
MOVAX,250BH
INT21H
INAL,21H
ANDAL,0F7H
OUT21H,AL
MOVCX,10
STI
LL:
JMPLL
INT3:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMESS
MOVAH,09
INT21H
MOVAL,20H
OUT20H,AL
LOOPNEXT
INAL,21H
ORAL,08H
OUT21H,AL
STI
MOVAH,4CH
INT21H
NEXT:
IRET
CODEENDS
ENDSTART
实验十可编程并行接口
(二)(8255方式1)
一、实验目的
1、掌握8255工作方式1时的使用及编程。
2、进一步掌握中断处理程序的编写。
二、实验内容
1、按图10-1,8255方式1的输出电路连好线路。
2、编程:
每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:
依次输出01H、02H,04H,08H,10H,20H,40H,80H使L0~L7依次发光,中断8次结束。
;*******************************;
;*8255方式1实验1*;
;*******************************;
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAX,CS
MOVDS,AX
MOVDX,OFFSETINT_PROC
MOVAX,250BH
INT21H
MOVDX,21H
INAL,DX
ANDAL,0F7H
OUTDX,AL
MOVDX,28BH
MOVAL,0A0H
OUTDX,AL
MOVAL,0DH
OUTDX,AL
MOVBL,1
LL:
JMPLL
INT_PROC:
MOVAL,BL
MOVDX,288H
OUTDX,AL
MOVAL,20H
OUT20H,AL
SHLBL,1
JNCNEXT
INAL,21H
ORAL,08H
OUT21H,AL
STI
MOVAH,4CH
INT21H
NEXT:
IRET
CODEENDS
ENDSTART
实验十可编程并行接口
(二)(8255方式1)
一、实验目的
1、掌握8255工作方式1时的使用及编程。
2、进一步掌握中断处理程序的编写。
二、实验内容
1、按图10-2,8255方式1输入电路,连好线路。
2、编程:
每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:
读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。
;*8255方式1实验2*;
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAX,CS
MOVDS,AX
MOVDX,OFFSETINT_PROC
MOVAX,250BH
INT21H
MOVDX,21H
INAL,DX
ANDAL,0F7H
OUTDX,AL
MOVDX,28BH
MOVAL,0B8H
OUTDX,AL
MOVAL,09H
OUTDX,AL
MOVBL,8
LL:
JMPLL
INT_PROC:
MOVDX,288H
INAL,DX
MOVDL,AL
MOVAH,02H
INT21H
MOVDL,0DH
INT21H
MOVDL,0AH
INT21H
MOVDX,20H
MOVAL,20H
OUTDX,AL
DECBL
JNZNEXT
INAL,21H
ORAL,08H
OUT21H,AL
STI
MOVAH,4CH
INT21H
NEXT:
IRET
CODEENDS
ENDSTART