实验十一 简单的输入接口.docVIP

  • 4
  • 0
  • 约2.04千字
  • 约 11页
  • 2017-06-08 发布于河南
  • 举报
实验十一 简单的输入接口

实验十一 简单的输入接口 一、 实验目的 1、理解如何将外部数据读入计算机。 2、掌握硬件消抖的原理和方法。 3、掌握软件延时消抖的编程。 二、实验技术准备 计算机在工作时需要和外部设备进行通讯, 必须通过输入接口电路读入一批数字量或开关量。设计输入接口电路采用的芯片是缓冲器。 三、对读入开关量的预处理 硬件消除抖动 实验内容理解: 当开关来回搬动一次,在屏幕上输出“1”,再来回搬动一次,在屏幕上输出“2”,…… ,共搬动5次。 开关初态分析:(开关的初始位置) 正确理解来回搬动一次的意义。 AL和读入数据位的关系: D4 D0 D0为高电平,AL读入的数据为奇数; D0为低电平,AL读入的数据为偶数; 例如:3F 奇数 3E 偶数 读入数据语句: MOV DX,281H IN AL,DX AND AL,01H (屏蔽多余位) JNZ … JZ … 软件消抖的方法 软件延时消除抖动时间 t 一般为 5 ~ 20毫秒。 实验要求: 完成硬件消抖实验; 完成软件消抖实验。 四、简单的输入接口 硬件消抖电路逻辑图 线路调试:debug↙ 1、搬动消抖开关S,使LED亮。 I 281↙ 查看AL的值应为奇数。如:3F 2、搬动消抖开关S,使LED灭。 I 281↙ 查看AL的值应为偶数。如:3E 硬件消抖源程序 code segment assume cs:code start: mov cx,5 开关变化次数 mov dx,31h 预显示初值“1” for0: push cx push dx mov dx,281h in al,dx and al,1 mov bl,al 读开关初态值保存bl中 for1: mov dx,281h in al,dx and al,1 cmp al,bl jz for1 mov bl,al 存放已变化的开关量到bl中 for2: mov dx,281h in al,dx and al,1 cmp al,bl jz for2 pop dx mov ah,2 int 21h 显示开关变化次数 add dx,1 pop cx loop for0 mov ah,4ch int 21h code ends end start 软件消抖电路逻辑图 软件消抖源程序 code segment assume cs:code start: mov cx,5 开关变化次数 mov dx,31h 预显示初值“1” for0: push cx push dx mov dx,281h in al,dx and al,1 mov bl,al 读开关初态值保存在bl中 for1: mov dx,281h in al,dx and al,1 cmp al,bl jz for1 mov bl,al 存放已变化的开关量到bl中 call delay 延时5 – 20 ms for2: mov dx,281h in al,dx and al,1 cmp al,bl jz for2 call delay 延时5 – 20 ms pop dx mov ah,2 int 21h 显示开关变化次数 add dx,1 pop cx loop for0 mov ah,4ch int 21h delay proc near 延时子程序 push cx mov bx,5000 for3: mov cx,700 for4: loop for4 dec bx jnz for3 pop cx ret de

文档评论(0)

1亿VIP精品文档

相关文档