简单的输入接口实验

 一.实验目的:

1. 理解如何将外部数据读入计算机;

2. 掌握最小模式下读总线周期时序图,以及输入接口电路的设计方法;

3. 掌握利用74LS244缓冲器将外部数据读入计算机的过程和方法;

4. 掌握在TPC-USB环境下输入接口软硬件的调试方法;

5. 掌握软件延时消抖的作用和编程方法。 

二. 实验内容:

1. 设计一个接口电路并编程实现:当按动单脉冲开关时,读入单脉冲信号(上升沿或下降沿)来控制一个LED灯的亮灭切换,要求LED灯(灭亮)切换两次 再闪烁3次后熄灭,程序结束。

输出及输入接口设计的电路框图:

电路连线图: 

源代码 

CODE SEGMENT
ASSUME CS:CODE
START:MOV DX,280H                    ;传送输入端口地址
IN AL,DX                             ;输入信号
AND AL,01H
MOV BL,AL
MOV CX,4                             ;接受电平变化信号4次
MOV AH,01H
LOOP1:
IN AL,DX
AND AL,01H                           ;取低四位  
CMP AL,BL
JZ LOOP1
LOOP2:
MOV BL,AL
NOT AH,1                              ;每次循环灯开或灭一次
MOV AL,AH
MOV DX,288H                           ;传送输出端口地址                    
OUT DX,AL
MOV DX,280H
LOOP LOOP1
MOV CX,3                            ;同时闪烁3次
CALL DELAY
AGAIN:MOV DX,288H                             
MOV AL,01H
OUT DX,AL                            ;输出控制信号
CALL DELAY
MOV DX,288H
MOV AL,0H
OUT DX,AL
CALL DELAY
LOOP AGAIN
MOV AH,4CH
INT 21H
DELAY PROC NEAR                     ;延时1s子程序
PUSH CX
MOV BX,10000
FOR1:MOV CX,2000H
FOR :LOOP FOR
DEC BX
JNZ FOR1
POP CX                        
RET
DELAY ENDP
CODE ENDS
END START

三.实验现象:

当按动单脉冲开关时,要求LED灯(灭亮)切换两次 ,之后再闪烁3次后熄灭,程序结束。

四.实验内容:

2. 设计一个接口电路并编程实现:扳动电平开关一个来回作为一次读入信号,控制三个LED灯的依次点亮,扳动三个来回后三个LED灯同时闪烁3次后熄灭,程序结束。

注意: 电平开关信号扳动一个来回(低电平高电平低电平)时LED(灭灭)。

输出及输入接口设计的电路框图:

电路连线图:

 

源代码:

 CCODE SEGMENT
ASSUME CS:CODE
START:MOV DX,280H                      ;传送输入端口地址
IN AL,DX                               ;输入信号
AND AL,01H
MOV BL,AL
MOV CX,7                              ;接受电平变化信号4次                         
MOV AH,01H
L1:
MOV BH,01H
MOV AL,BH
MOV DX,288H                            ;传送输出端口地址
OUT DX,AL                              ;输出信号
MOV DX,280H                     
DEC CX
LOOP1:
IN AL,DX
AND AL,01H
CMP AL,BL
JZ LOOP1
LOOP2:
MOV BL,AL
CMP CX,5                     ;当开关断开时,依次使各个led熄灭
JZ L1                        ;即电平信号在5,3,1次变化时
CMP CX,3
JZ L1
SHL AH,1
MOV AL,AH
MOV DX,288H
OUT DX,AL
MOV DX,280H
LOOP LOOP1
MOV CX,3                         ;3个led亮灭循环三次
CALL DELAY
AGAIN:MOV DX,288H
MOV AL,0EH
OUT DX,AL
CALL DELAY
MOV DX,288H
MOV AL,0H
OUT DX,AL
CALL DELAY                             ;延时1s子程序
LOOP AGAIN
MOV AH,4CH
INT 21H
DELAY PROC NEAR
PUSH CX
MOV BX,10000
FOR1:MOV CX,2000H
FOR2:LOOP FOR2
DEC BX
JNZ FOR1
POP CX
RET
DELAY ENDP
CODE ENDS
END START

 

实验现象扳动电平开关一次作为一次读入信号,控制三个LED灯的依次亮灭切换一次,扳动三个来回后三个LED灯同时闪烁3次后熄灭,程序结束。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部