阵列式键盘实训C语言,阵列式键盘实验详解.doc
阵列式键盘实验详解
实验二 阵列式键盘实验
一、实验目的
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相关推荐
- 英语字典c语言实训,c语言字典(国外英文资料).doc
c语言字典(国外英文资料) c语言字典(国外英文资料) The main menu The main menu is on top of the Turbo C 2.0 main screen, di ...
- ds12c887程序C语言,时钟芯片DS12C887使用说明详解.doc
汇编程序: ORG 0000H AJMP START START: ACALL SETTIME;设置初始时间 LOOP: ACALL GETTIME;循环读取当前时间 AJMP LOOP; SETTI ...
- 单片机应用技能实训(c语言) 李志京,基于应用型人才培养的单片机原理及应用教学改革探讨...
摘要:本文根据单片机原理及应用课程的特点,从课程教学内容优化.课堂教学改革.实验教学改革等方面进行研究和尝试,目的在于提高学生分析问题和解决问题的能力,增强学生的创新能力和综合素质,并指出了如何改善现 ...
- 大二c语言期末考试题库及详解答案,大学C语言期末考试练习题(带详解答案)...
<大学C语言期末考试练习题(带详解答案)>由会员分享,可在线阅读,更多相关<大学C语言期末考试练习题(带详解答案)(55页珍藏版)>请在金锄头文库上搜索. 1.一. 单项选择题 ...
- C语言 字符数组 和 字符串 详解
C语言 字符数组 和 字符串 详解 用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ...
- c语言线性表库函数大全,数据结构(C语言版)-线性表习题详解
<数据结构(C语言版)-线性表习题详解>由会员分享,可在线阅读,更多相关<数据结构(C语言版)-线性表习题详解(23页珍藏版)>请在人人文库网上搜索. 1.数 据 结 构 ,线 ...
- gets和fgets函数及其区别,C语言gets和fgets函数详解
gets和fgets函数及其区别,C语言gets和fgets函数详解 每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的"互联网蠕虫",它在 UNIX 操作系统的 ...
- c语言选择结构程序设计实验报告6,c语言-选择结构程序设计实验报告4.doc
c语言-选择结构程序设计实验报告4.doc 实验报告 实验题目:选择结构程序设计 实验目的: 了解C语言表示逻辑量的方法(以0代表"假"以非0代表"真"). 学 ...
- java的匿名函数_JAVA语言中的匿名函数详解
本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...
最新文章
- C# 图片文件文本string格式 传输问题
- 虚拟桌面启动后自动全屏
- C#引用office库
- 幼儿园 php,input.php
- 表单字段三维数组名_【技术汇】回转式空气预热器温度场三维数值模拟
- variable 'xxx' unsafe in 'case'的处理
- kaggle中zillow比赛中模型融合的方法及其代码
- Laravel 超好用代码提示工具 Laravel IDE Helper
- java5错误_Error:java: 错误: 不支持发行版本 5
- Python老师遇到的那些无语的问题
- SD-WAN技术分析
- 3.in_array低性能问题
- javascript中 try catch finally 的使用
- java 偏向锁的撤销_源码解析-偏向锁撤销流程解读
- xps测试数据处理软件,XPS数据处理时 XPSpeaks 分峰拟合
- 医院计算机考核制度,医院信息科考核内容标准细则
- android 4.1.2大小,4.1.2 Activity初窥门径
- 群晖DDNS和端口转发等相关讲解
- CEPH篇 块存储、文件存储和对象存储意义和差异及ubuntu20.4下 ceph安装
- 北华航天工业学院计算机如何,北华航天工业学院的实力怎么样?如何评价这所学校?...
热门文章
- C#中CompareTo()语法的用法
- 新款苹果iPad 真香!包邮送一台!
- 两个tplink路由器有线桥接_两个TP-LINK路由器设置怎样进行无线桥接——简单几步轻松搞定...
- ArcGis-学习笔记2-地理投影及图层编辑
- 微信小程序新建/导入项目报错:self signed certificate in certificat 和 getaddrinfo ENOTFOUND servic的原因及解决办法
- 详解CSS——display各个属性值(带例子)
- 炒作?中国首富马云域名mayun.me跳转新浪微博
- mentalray cause maya2012 crash on standalone mode
- 托福口语21天——day4 发音纠正 语料 真题
- 海投 or 内推?秋招上岸最佳路线推荐!