矩阵键盘检测实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明理工大学信息工程与自动化学院学生实验报告

(2013 —2014 学年第 2 学期)

课程名称:单片机原理及接口技术开课实验室: 2014年5月27日

一、上机目的及内容

上机目的:掌握单片机I/O口的输入检测的方法、矩阵按键的识别方法、键盘消抖等。

学会实时程序的调试技巧。

上机内容:实验板上电时,数码管不显示,顺序按下矩阵键盘后,在数码管上依次显示0到F,6个数码管同时静态显示即可。

二、实验原理及本技术路线图(方框原理图或程序流程图)

我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms 左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms,如果我们在首次检测到键被按下后延时10ms 左右再去检测,这时如果是干扰信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。

下图中按键s6-s218条线分别联接p3口相连,p3.0~p3.3控制1~4行,p3.4~p3.7控制1~4列。

三、所用仪器、材料(设备名称、型号、规格等或使用软件)

Pc机一台,keil软件,stc-isp

四、实验方法、步骤(或:程序代码或操作过程)

1、按实验要求在KeilC中创建项目,编辑、编译程序。

2、将编译生成的目标码文件(后缀为.Hex)下载到实验板电路中。

3、在实验板中运行程序,观察实验运行结果并记录。

程序代码:

org 0000h

wei bit p2.7

duan bit p2.6

main: mov p3,#0ffh

mov a,p3

setb wei

mov p0,#0ffh

clr wei

mov dptr,#table

m1: mov p3,#0feh

mov a,p3

cjne a,#0feh,s1

jmp s7

s1: call delay

mov a,p3

cjne a,#0feh,s2

jmp s7

s2: mov a,p3

cjne a,#0eeh,s3

mov r2,#0

jmp s8

s3: mov a,p3

cjne a,#0deh,s4

mov r2,#1

jmp s8

s4: mov a,p3

cjne a,#0beh,s5

mov r2,#2

jmp s8

s5: mov a,p3

cjne a,#7eh,s8

mov r2,#3

jmp s8

s8: mov a,p3

cjne a,#0feh,s8

call display

s7: nop

jmp m2

m2: mov p3,#0fdh

mov a,p3

cjne a,#0fdh,l0

jmp l0

l0: call delay

mov a,p3

cjne a,#0fdh,l2

jmp l7

l2: mov a,p3

cjne a,#0edh,l3

mov r2,#4

jmp l8

l3: mov a,p3

cjne a,#0ddh,l4

mov r2,#5

jmp l8

l4: mov a,p3

cjne a,#0bdh,l5

mov r2,#6

jmp l8

l5: mov a,p3

cjne a,#7dh,l8

mov r2,#7

jmp l8

l8: mov a,p3

cjne a,#0fdh,l8

call display

l7: nop

jmp m3

m3 : mov p3,#0fbh

mov a,p3

cjne a,#0fbh,a0

jmp a0

a0: call delay

mov a,p3

cjne a,#0fbh,a2

jmp a7

a2: mov a,p3

cjne a,#0ebh,a3

mov r2,#8

jmp a8

a3: mov a,p3

cjne a,#0dbh,a4

mov r2,#9

jmp a8

a4: mov a,p3

cjne a,#0bbh,a5

mov r2,#10

jmp a8

a5: mov a,p3

cjne a,#7bh,a8

mov r2,#11

jmp a8

a8: mov a,p3

cjne a,#0fbh,a8

call display

a7: nop

jmp m4

m4: mov p3,#0f7h

mov a,p3

cjne a,#0f7h,b0

jmp b0

b0: call delay

mov a,p3

cjne a,#0f7h,b2

jmp b7

b2: mov a,p3

cjne a,#0e7h,b3

mov r2,#12

jmp b8

b3: mov a,p3

cjne a,#0d7h,b4

mov r2,#13

jmp b8

b4: mov a,p3

cjne a,#0b7h,b5

mov r2,#14

jmp b8

b5: mov a,p3

cjne a,#77h,b8

mov r2,#15

jmp b8

b8: mov a,p3

cjne a,#0f7h,b8

call display

b7: nop

jmp m1 display:setb wei

mov p0,#0c0h

clr wei

相关文档
最新文档