阵列式键盘实验详解

实验二 阵列式键盘实验

一、实验目的

1.掌握键盘和显示器的接口方法和编程方法

2.掌握阵列式键盘的硬件组成和软件编程方法

二、实验说明

本实验提供了一个4X4小建盘,向P0口的低四位逐个输出低电平,如果有键盘按下,则相应输出为低,如果没有键按下,则输出为高。通过输出的列码和读取的行码来判断按下什么键。有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。

三、实验步骤及内容

1.用一根8位数据线连接阵列式键盘实验模块与LED与单片机接口模块。无键按下或有键按下,发光二极管全亮。若将A1-A4接地 ,则发光二极管显示0000XXXX;B1线上有键按下,则发光二极管显示0000XXX,B2线上有键按下,则发光二极管现世0000X0XX,B1和B2均有键按下,则发光二极管显示000000XX……同样可将B1与B4接地,按键与发光二极管显示情况,用户可以自行判断,自由操作。

2.用一根8位数据线连接阵列式键盘实验模块与扫描显示实验模块。无键按下或有键按下,八段LED全亮。用户参照1,观察键盘与八段LED亮熄的关系。

3.使用静态串行显示模块显示键值。单片机最小应用系统1的 P1口接阵列式键盘的A1~B4口,P3.6接静态数码显示DIN,P3.7接CLK。

4.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

5.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 阵列KEY.ASM源程序,进行编译,直到编译无误。

6.进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。在键盘上按下某个键,观察数显是否与按键值一致。16位建盘的键值从左至右、从上至下依次为0~F(16进制数)。

四、流程图及源程序

1.流程图

2.源程序

DBUF EQU 30H

TEMP EQU 40H

DIN BIT P3.6

CLK BIT P3.7

ORG 0000H

LJMP START

ORG 0030H

START:MOV A,#16

MAIN: ACALL DISP

MOV 30H, A

ACALL KEY1

AJMP MAIN

KEY1: MOV P1, #0FH ;A1-A4输出,B1-B4输入,输

;入者对应锁存先写 “1”

MOV A, P1 ;读取键盘状况

CJNE A,#0FH, K11 ;有键按下

K10: AJMP KEY1 ;无键按下

K11: ACALL DELAY ;去抖动

MOV P1, #0FH

MOV A, P1 ;再读键盘状况

CJNE A, #0FH, K12 ;确有键盘按下

SJMP K10 ;误动作

K12: MOV B,A ;存列值

MOV P1, #0EFH ;按键在Ai行

MOV A, P1

CJNE A, #0EFH,K13 ;键在A4

MOV P1, #0DFH

MOV A, P1

CJNE A, #0DFH,K13 ;键在A3行

阵列式键盘实训C语言,阵列式键盘实验详解.doc相关推荐

  1. 英语字典c语言实训,c语言字典(国外英文资料).doc

    c语言字典(国外英文资料) c语言字典(国外英文资料) The main menu The main menu is on top of the Turbo C 2.0 main screen, di ...

  2. ds12c887程序C语言,时钟芯片DS12C887使用说明详解.doc

    汇编程序: ORG 0000H AJMP START START: ACALL SETTIME;设置初始时间 LOOP: ACALL GETTIME;循环读取当前时间 AJMP LOOP; SETTI ...

  3. 单片机应用技能实训(c语言) 李志京,基于应用型人才培养的单片机原理及应用教学改革探讨...

    摘要:本文根据单片机原理及应用课程的特点,从课程教学内容优化.课堂教学改革.实验教学改革等方面进行研究和尝试,目的在于提高学生分析问题和解决问题的能力,增强学生的创新能力和综合素质,并指出了如何改善现 ...

  4. 大二c语言期末考试题库及详解答案,大学C语言期末考试练习题(带详解答案)...

    <大学C语言期末考试练习题(带详解答案)>由会员分享,可在线阅读,更多相关<大学C语言期末考试练习题(带详解答案)(55页珍藏版)>请在金锄头文库上搜索. 1.一. 单项选择题 ...

  5. C语言 字符数组 和 字符串 详解

    C语言 字符数组 和 字符串 详解 用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ...

  6. c语言线性表库函数大全,数据结构(C语言版)-线性表习题详解

    <数据结构(C语言版)-线性表习题详解>由会员分享,可在线阅读,更多相关<数据结构(C语言版)-线性表习题详解(23页珍藏版)>请在人人文库网上搜索. 1.数 据 结 构 ,线 ...

  7. gets和fgets函数及其区别,C语言gets和fgets函数详解

    gets和fgets函数及其区别,C语言gets和fgets函数详解 每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的"互联网蠕虫",它在 UNIX 操作系统的 ...

  8. c语言选择结构程序设计实验报告6,c语言-选择结构程序设计实验报告4.doc

    c语言-选择结构程序设计实验报告4.doc 实验报告 实验题目:选择结构程序设计 实验目的: 了解C语言表示逻辑量的方法(以0代表"假"以非0代表"真"). 学 ...

  9. java的匿名函数_JAVA语言中的匿名函数详解

    本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...

最新文章

  1. C# 图片文件文本string格式 传输问题
  2. 虚拟桌面启动后自动全屏
  3. C#引用office库
  4. 幼儿园 php,input.php
  5. 表单字段三维数组名_【技术汇】回转式空气预热器温度场三维数值模拟
  6. variable 'xxx' unsafe in 'case'的处理
  7. kaggle中zillow比赛中模型融合的方法及其代码
  8. Laravel 超好用代码提示工具 Laravel IDE Helper
  9. java5错误_Error:java: 错误: 不支持发行版本 5
  10. Python老师遇到的那些无语的问题
  11. SD-WAN技术分析
  12. 3.in_array低性能问题
  13. javascript中 try catch finally 的使用
  14. java 偏向锁的撤销_源码解析-偏向锁撤销流程解读
  15. xps测试数据处理软件,XPS数据处理时 XPSpeaks 分峰拟合
  16. 医院计算机考核制度,医院信息科考核内容标准细则
  17. android 4.1.2大小,4.1.2 Activity初窥门径
  18. 群晖DDNS和端口转发等相关讲解
  19. CEPH篇 块存储、文件存储和对象存储意义和差异及ubuntu20.4下 ceph安装
  20. 北华航天工业学院计算机如何,北华航天工业学院的实力怎么样?如何评价这所学校?...

热门文章

  1. C#中CompareTo()语法的用法
  2. 新款苹果iPad 真香!包邮送一台!
  3. 两个tplink路由器有线桥接_两个TP-LINK路由器设置怎样进行无线桥接——简单几步轻松搞定...
  4. ArcGis-学习笔记2-地理投影及图层编辑
  5. 微信小程序新建/导入项目报错:self signed certificate in certificat 和 getaddrinfo ENOTFOUND servic的原因及解决办法
  6. 详解CSS——display各个属性值(带例子)
  7. 炒作?中国首富马云域名mayun.me跳转新浪微博
  8. mentalray cause maya2012 crash on standalone mode
  9. 托福口语21天——day4 发音纠正 语料 真题
  10. 海投 or 内推?秋招上岸最佳路线推荐!